From gerrit-no-reply at lists.osmocom.org Fri Jun 1 05:29:42 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 1 Jun 2018 05:29:42 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9401 Change subject: gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx ...................................................................... gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx Change-Id: Iad7cde5c08daacc3f5c4175d21d89fad25a5c3d7 --- M src/gprs/gb_proxy_main.c 1 file changed, 14 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/01/9401/1 diff --git a/src/gprs/gb_proxy_main.c b/src/gprs/gb_proxy_main.c index 04143bb..474aa52 100644 --- a/src/gprs/gb_proxy_main.c +++ b/src/gprs/gb_proxy_main.c @@ -70,7 +70,7 @@ #define CONFIG_FILE_LEGACY "osmo_gbproxy.cfg" static char *config_file = NULL; -struct gbproxy_config gbcfg = {0}; +struct gbproxy_config *gbcfg; static int daemonize = 0; /* Pointer to the SGSN peer */ @@ -84,7 +84,7 @@ switch (event) { case GPRS_NS_EVT_UNIT_DATA: - rc = gbprox_rcvmsg(&gbcfg, msg, nsvc->nsei, bvci, nsvc->nsvci); + rc = gbprox_rcvmsg(gbcfg, msg, nsvc->nsei, bvci, nsvc->nsvci); break; default: LOGP(DGPRS, LOGL_ERROR, "SGSN: Unknown event %u from NS\n", event); @@ -309,14 +309,20 @@ LOGP(DGPRS, LOGL_ERROR, "Unable to instantiate NS\n"); exit(1); } - gbproxy_init_config(&gbcfg); - gbcfg.nsi = bssgp_nsi; + + gbcfg = talloc_zero(tall_bsc_ctx, struct gbproxy_config); + if (!gbcfg) { + LOGP(DGPRS, LOGL_FATAL, "Unable to allocate config\n"); + exit(1); + } + gbproxy_init_config(gbcfg); + gbcfg->nsi = bssgp_nsi; gprs_ns_vty_init(bssgp_nsi); gprs_ns_set_log_ss(DNS); bssgp_set_log_ss(DBSSGP); - osmo_signal_register_handler(SS_L_NS, &gbprox_signal, &gbcfg); + osmo_signal_register_handler(SS_L_NS, &gbprox_signal, gbcfg); - rc = gbproxy_parse_config(config_file, &gbcfg); + rc = gbproxy_parse_config(config_file, gbcfg); if (rc < 0) { LOGP(DGPRS, LOGL_FATAL, "Cannot parse config file '%s'\n", config_file); exit(2); @@ -328,10 +334,10 @@ if (rc < 0) exit(1); - if (!gprs_nsvc_by_nsei(gbcfg.nsi, gbcfg.nsip_sgsn_nsei)) { + if (!gprs_nsvc_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSEI %u " "without creating that NSEI before\n", - gbcfg.nsip_sgsn_nsei); + gbcfg->nsip_sgsn_nsei); exit(2); } -- To view, visit https://gerrit.osmocom.org/9401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iad7cde5c08daacc3f5c4175d21d89fad25a5c3d7 Gerrit-Change-Number: 9401 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 05:29:43 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 1 Jun 2018 05:29:43 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9402 Change subject: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands ...................................................................... gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands This patch adds a control interface to osmo-gbproxy as well as the first two commands to query the state of each NSVC and gbproxy peer. The "ns-state" command replies with nsei, nsvci, local state, role, remote state of all NSVCs. The "gbproxy-state" command replies with nsei, bvci, mcc, mnc, lac, rac, and state of each peer. If there are no entries an error is returned. $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g ns-state Got message: b'GET_REPLY 23 gb-status 101,101,DEAD,BLOCKED,SGSN,DEAD,UNBLOCKED;' $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g gbproxy-state Got message: b'ERROR 23 No peers found' Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Ticket: OS#3281, SYS#4235 Sponsored-by: On-Waves ehf --- M include/osmocom/sgsn/gb_proxy.h M src/gprs/Makefile.am A src/gprs/gb_proxy_ctrl.c M src/gprs/gb_proxy_main.c 4 files changed, 131 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/02/9402/1 diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 2540a7e..70de3d7 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -184,6 +184,9 @@ int gbproxy_vty_init(void); int gbproxy_parse_config(const char *config_file, struct gbproxy_config *cfg); +/* gb_proxy_ctrl.c */ +int gb_ctrl_cmds_install(void); + /* gb_proxy.c */ int gbproxy_init_config(struct gbproxy_config *cfg); diff --git a/src/gprs/Makefile.am b/src/gprs/Makefile.am index 4c7f730..1cf6785 100644 --- a/src/gprs/Makefile.am +++ b/src/gprs/Makefile.am @@ -44,6 +44,7 @@ gb_proxy.c \ gb_proxy_main.c \ gb_proxy_vty.c \ + gb_proxy_ctrl.c \ gb_proxy_patch.c \ gb_proxy_tlli.c \ gb_proxy_peer.c \ diff --git a/src/gprs/gb_proxy_ctrl.c b/src/gprs/gb_proxy_ctrl.c new file mode 100644 index 0000000..9096edc --- /dev/null +++ b/src/gprs/gb_proxy_ctrl.c @@ -0,0 +1,109 @@ +/* Control Interface Implementation for the Gb-proxy */ +/* + * (C) 2018 by Daniel Willmann + * (C) 2018 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include + + +#include + +#include +#include +#include +#include + +extern vector ctrl_node_vec; + +static int get_ns_status(struct ctrl_cmd *cmd, void *data) +{ + struct gbproxy_config *cfg = data; + struct gprs_ns_inst *nsi = cfg->nsi; + struct gprs_nsvc *nsvc; + + cmd->reply = talloc_strdup(cmd, ""); + + llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { + if (nsvc == nsi->unknown_nsvc) + continue; + + cmd->reply = talloc_asprintf_append(cmd->reply, + "%u,%u,%s,%s,%s,%s,%s;", + nsvc->nsei, nsvc->nsvci, + NS_DESC_A(nsvc->state), + NS_DESC_B(nsvc->state), + nsvc->remote_end_is_sgsn ? "SGSN" : "BSS", + NS_DESC_A(nsvc->remote_state), + NS_DESC_B(nsvc->remote_state)); + + } + + if (strnlen(cmd->reply, 2) == 0) { + talloc_free(cmd->reply); + cmd->reply = "No NSVCs found"; + goto err; + } + + return CTRL_CMD_REPLY; + +err: + return CTRL_CMD_ERROR; +} + +CTRL_CMD_DEFINE_RO(ns_status, "ns-state"); + +static int get_gbproxy_status(struct ctrl_cmd *cmd, void *data) +{ + struct gbproxy_config *cfg = data; + struct gbproxy_peer *peer; + + cmd->reply = talloc_strdup(cmd, ""); + + llist_for_each_entry(peer, &cfg->bts_peers, list) { + struct gprs_ra_id raid; + gsm48_parse_ra(&raid, peer->ra); + + cmd->reply = talloc_asprintf_append(cmd->reply, "%u,%u,%u,%u,%u,%u,%s;", + peer->nsei, peer->bvci, + raid.mcc, raid.mnc, + raid.lac, raid.rac, + peer->blocked ? "BLOCKED" : "UNBLOCKED"); + } + + if (strnlen(cmd->reply, 2) == 0) { + talloc_free(cmd->reply); + cmd->reply = "No peers found"; + goto err; + } + + return CTRL_CMD_REPLY; + +err: + return CTRL_CMD_ERROR; +} + +CTRL_CMD_DEFINE_RO(gbproxy_status, "gbproxy-state"); + +int gb_ctrl_cmds_install(void) +{ + int rc = 0; + rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_ns_status); + rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_gbproxy_status); + return rc; +} diff --git a/src/gprs/gb_proxy_main.c b/src/gprs/gb_proxy_main.c index 474aa52..97e6342 100644 --- a/src/gprs/gb_proxy_main.c +++ b/src/gprs/gb_proxy_main.c @@ -46,6 +46,10 @@ #include #include +#include +#include +#include + #include #include #include @@ -263,6 +267,7 @@ int main(int argc, char **argv) { int rc; + struct ctrl_handle *ctrl; tall_bsc_ctx = talloc_named_const(NULL, 0, "nsip_proxy"); msgb_talloc_ctx_init(tall_bsc_ctx, 0); @@ -334,6 +339,19 @@ if (rc < 0) exit(1); + /* Start control interface after getting config for + * ctrl_vty_get_bind_addr() */ + ctrl = ctrl_interface_setup_dynip(gbcfg, ctrl_vty_get_bind_addr(), OSMO_CTRL_PORT_GBPROXY, NULL); + if (!ctrl) { + LOGP(DGPRS, LOGL_FATAL, "Failed to create CTRL interface.\n"); + exit(1); + } + + if (gb_ctrl_cmds_install() != 0) { + LOGP(DGPRS, LOGL_FATAL, "Failed to install CTRL commands.\n"); + exit(1); + } + if (!gprs_nsvc_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSEI %u " "without creating that NSEI before\n", -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 08:57:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 08:57:31 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9401 ) Change subject: gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iad7cde5c08daacc3f5c4175d21d89fad25a5c3d7 Gerrit-Change-Number: 9401 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 08:57:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 10:01:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 10:01:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: *_Emulation.ttcn: Specify destination when replying on procedure ports Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9403 Change subject: *_Emulation.ttcn: Specify destination when replying on procedure ports ...................................................................... *_Emulation.ttcn: Specify destination when replying on procedure ports procedure ports (like message ports) require us to specify the destination of a message ("reply") in case it is connected 1:N and not just 1:1. This didn't show up as a problem so far, as we typically only had one component talking to those procedure ports at any given point in time. Change-Id: I696ec67080815348bb95e43ecbbf262e533e39a3 --- M library/BSSGP_Emulation.ttcn M library/BSSMAP_Emulation.ttcn M library/GSUP_Emulation.ttcn M library/GTP_Emulation.ttcn M library/MGCP_Emulation.ttcn M library/MNCC_Emulation.ttcn M library/RSL_Emulation.ttcn M library/SMPP_Emulation.ttcn 8 files changed, 20 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/03/9403/1 diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn index 321c344..38666b8 100644 --- a/library/BSSGP_Emulation.ttcn +++ b/library/BSSGP_Emulation.ttcn @@ -441,15 +441,15 @@ [] BSSGP_PROC.getcall(BSSGP_register_client:{?,?,?}) -> param(imsi, tlli, cell_id) sender vc_conn { f_tbl_client_add(imsi, tlli, cell_id, vc_conn); - BSSGP_PROC.reply(BSSGP_register_client:{imsi, tlli, cell_id}); + BSSGP_PROC.reply(BSSGP_register_client:{imsi, tlli, cell_id}) to vc_conn; } [] BSSGP_PROC.getcall(BSSGP_unregister_client:{?}) -> param(imsi) sender vc_conn { f_tbl_client_del(imsi, vc_conn); - BSSGP_PROC.reply(BSSGP_unregister_client:{imsi}); + BSSGP_PROC.reply(BSSGP_unregister_client:{imsi}) to vc_conn; } [] BSSGP_PROC.getcall(BSSGP_llgmm_assign:{?,?}) -> param(tlli_old, tlli) sender vc_conn { f_tbl_client_llgmm_assign(tlli_old, tlli, vc_conn); - BSSGP_PROC.reply(BSSGP_llgmm_assign:{tlli_old, tlli}); + BSSGP_PROC.reply(BSSGP_llgmm_assign:{tlli_old, tlli}) to vc_conn; } } diff --git a/library/BSSMAP_Emulation.ttcn b/library/BSSMAP_Emulation.ttcn index 95b39f3..e65c550 100644 --- a/library/BSSMAP_Emulation.ttcn +++ b/library/BSSMAP_Emulation.ttcn @@ -713,12 +713,12 @@ [] PROC.getcall(BSSMAPEM_register:{?,?}) -> param(l3_info, vc_hdlr) { f_create_expect(l3_info, vc_hdlr); - PROC.reply(BSSMAPEM_register:{l3_info, vc_hdlr}); + PROC.reply(BSSMAPEM_register:{l3_info, vc_hdlr}) to vc_hdlr; } [] PROC.getcall(BSSMAPEM_register_imsi:{?,?,?}) -> param(imsi, tmsi, vc_hdlr) { f_create_imsi(imsi, tmsi, vc_hdlr); - PROC.reply(BSSMAPEM_register_imsi:{imsi, tmsi, vc_hdlr}); + PROC.reply(BSSMAPEM_register_imsi:{imsi, tmsi, vc_hdlr}) to vc_hdlr; } diff --git a/library/GSUP_Emulation.ttcn b/library/GSUP_Emulation.ttcn index 3990b73..7cf1656 100644 --- a/library/GSUP_Emulation.ttcn +++ b/library/GSUP_Emulation.ttcn @@ -222,7 +222,7 @@ /* Client -> us: procedure call to register expect */ [] GSUP_PROC.getcall(GSUPEM_register:{?,?}) -> param(imsi, vc_hdlr) { f_create_expect(imsi, vc_hdlr); - GSUP_PROC.reply(GSUPEM_register:{imsi, vc_hdlr}); + GSUP_PROC.reply(GSUPEM_register:{imsi, vc_hdlr}) to vc_hdlr; } } diff --git a/library/GTP_Emulation.ttcn b/library/GTP_Emulation.ttcn index e5e5e36..534fdef 100644 --- a/library/GTP_Emulation.ttcn +++ b/library/GTP_Emulation.ttcn @@ -206,12 +206,12 @@ [] CLIENT_PROC.getcall(GTPEM_register_imsi:{?}) -> param(imsi) sender vc_conn { f_imsi_tbl_add(imsi, vc_conn); - CLIENT_PROC.reply(GTPEM_register_imsi:{imsi}); + CLIENT_PROC.reply(GTPEM_register_imsi:{imsi}) to vc_conn; } [] CLIENT_PROC.getcall(GTPEM_register_teid:{?}) -> param(teid) sender vc_conn { f_tid_tbl_add(teid, vc_conn); - CLIENT_PROC.reply(GTPEM_register_teid:{teid}); + CLIENT_PROC.reply(GTPEM_register_teid:{teid}) to vc_conn; } } diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn index e2f79b3..b02dc06 100644 --- a/library/MGCP_Emulation.ttcn +++ b/library/MGCP_Emulation.ttcn @@ -307,11 +307,11 @@ } [] MGCP_PROC.getcall(MGCPEM_register:{?,?}) -> param(crit, vc_conn) { f_create_expect(crit, vc_conn); - MGCP_PROC.reply(MGCPEM_register:{crit, vc_conn}); + MGCP_PROC.reply(MGCPEM_register:{crit, vc_conn}) to vc_conn; } [] MGCP_PROC.getcall(MGCPEM_delete_ep:{?,?}) -> param(ep, vc_conn) { f_ep_table_del(vc_conn, ep); - MGCP_PROC.reply(MGCPEM_delete_ep:{ep, vc_conn}); + MGCP_PROC.reply(MGCPEM_delete_ep:{ep, vc_conn}) to vc_conn; } } diff --git a/library/MNCC_Emulation.ttcn b/library/MNCC_Emulation.ttcn index 59e3e77..d9b7c79 100644 --- a/library/MNCC_Emulation.ttcn +++ b/library/MNCC_Emulation.ttcn @@ -351,7 +351,7 @@ /* Client -> us: procedure call to register expect */ [] MNCC_PROC.getcall(MNCCEM_register:{?,?}) -> param(dest_nr, vc_hdlr) { f_create_expect(dest_nr, vc_hdlr); - MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr}); + MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr}) to vc_hdlr; } } diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 3634373..119a9be 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -451,30 +451,30 @@ /* explicit registration, e.g. in (non-immediate) assignment case */ [] RSL_PROC.getcall(RSLEM_register:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) { f_cid_create_cnr(trx_nr, chan_nr, vc_conn); - RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn}); + RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn}) to vc_conn; } [] RSL_PROC.getcall(RSLEM_unregister:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) { cid := f_cid_by_chan_nr(trx_nr, chan_nr); f_cid_clear(cid); - RSL_PROC.reply(RSLEM_unregister:{trx_nr, chan_nr, vc_conn}); + RSL_PROC.reply(RSLEM_unregister:{trx_nr, chan_nr, vc_conn}) to vc_conn; } - [] RSL_PROC.getcall(RSLEM_suspend:{true}) { + [] RSL_PROC.getcall(RSLEM_suspend:{true}) -> sender vc_conn { log("Suspending DChan"); dchan_suspended := true; - RSL_PROC.reply(RSLEM_suspend:{true}); + RSL_PROC.reply(RSLEM_suspend:{true}) to vc_conn; } - [] RSL_PROC.getcall(RSLEM_suspend:{false}) { + [] RSL_PROC.getcall(RSLEM_suspend:{false}) -> sender vc_conn { log("Resuming DChan"); dchan_suspended := false; - RSL_PROC.reply(RSLEM_suspend:{false}); + RSL_PROC.reply(RSLEM_suspend:{false}) to vc_conn; } - [] RSL_PROC.getcall(RSLEM_get_last_act:{?,?,?}) -> param(trx_nr, chan_nr) { + [] RSL_PROC.getcall(RSLEM_get_last_act:{?,?,?}) -> param(trx_nr, chan_nr) sender vc_conn { var RSL_Message last_chan_act := f_lookup_last_act(trx_nr, chan_nr); - RSL_PROC.reply(RSLEM_get_last_act:{trx_nr, chan_nr, last_chan_act}); + RSL_PROC.reply(RSLEM_get_last_act:{trx_nr, chan_nr, last_chan_act}) to vc_conn; } } } diff --git a/library/SMPP_Emulation.ttcn b/library/SMPP_Emulation.ttcn index c14340c..27876dc 100644 --- a/library/SMPP_Emulation.ttcn +++ b/library/SMPP_Emulation.ttcn @@ -314,7 +314,7 @@ [] SMPP_PROC.getcall(SMPPEM_register:{?,?}) -> param(dest_addr, vc_conn) { f_create_expect(dest_addr, vc_conn); - SMPP_PROC.reply(SMPPEM_register:{dest_addr, vc_conn}); + SMPP_PROC.reply(SMPPEM_register:{dest_addr, vc_conn}) to vc_conn; } } } -- To view, visit https://gerrit.osmocom.org/9403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I696ec67080815348bb95e43ecbbf262e533e39a3 Gerrit-Change-Number: 9403 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 10:01:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 10:01:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP_Templates: Add templates for LCLS related IEs + messages Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9404 Change subject: BSSMAP_Templates: Add templates for LCLS related IEs + messages ...................................................................... BSSMAP_Templates: Add templates for LCLS related IEs + messages We will soon implement some LCLS related test cases, and hence we need some templates for sending and matching received messages. Change-Id: I5300418ae493f6c315248562938b47ae1931b452 --- M library/BSSMAP_Templates.ttcn 1 file changed, 161 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/04/9404/1 diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 91de5fb..be535ab 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -970,6 +970,167 @@ } } +/* TS 29.205 B.2.1.9 */ +template (value) GlobalCallReferenceValue ts_GCR(octetstring net_id, OCT2 node_id, OCT5 cref_id) := { + networkIDLengthIndicator := 0, /* overwritten */ + networkID := net_id, + nodeIDLengthIndicator := 0, /* overwritten */ + nodeID := node_id, + callReferenceIDLengthIndicator := 0, /* overwritten */ + callReferenceID := cref_id +} +template GlobalCallReferenceValue tr_GCR(template octetstring net_id, + template OCT2 node_id, + template OCT5 cref_id) := { + networkIDLengthIndicator := ?, + networkID := net_id, + nodeIDLengthIndicator := ?, + nodeID := node_id, + callReferenceIDLengthIndicator := ?, + callReferenceID := cref_id +} + +/* TS 47.008 3.2.2.115 */ +template (value) BSSMAP_IE_GlobalCallReference ts_BSSMAP_IE_GCR(template (value) GlobalCallReferenceValue gcr) := { + elementIdentifier := '89'O, + lengthIndicator := 0, /* overwritten */ + globalCallReferenceValue := gcr +} +template BSSMAP_IE_GlobalCallReference tr_BSSMAP_IE_GCR(template GlobalCallReferenceValue gcr) := { + elementIdentifier := '89'O, + lengthIndicator := ?, + globalCallReferenceValue := gcr +} + +/* TS 48.008 3.2.2.116 */ +const BIT4 LCLS_CFG_both_way := '0000'B; +const BIT4 LCLS_CFG_both_way_and_bicast_UL := '0001'B; +const BIT4 LCLS_CFG_both_way_and_send_DL := '0010'B; +const BIT4 LCLS_CFG_both_way_and_send_DL_block_local_DL := '0011'B; +const BIT4 LCLS_CFG_both_way_and_bicast_UL_send_DL := '0100'B; +const BIT4 LCLS_CFG_both_way_and_bicast_UL_send_DL_block_local_DL := '0101'B; + +template (value) BSSMAP_IE_LCLS_Configuration ts_BSSMAP_IE_LclsCfg(BIT4 cfg_val) := { + elementIdentifier := '8A'O, + lCLS_ConfigurationValue := cfg_val, + spare := '0000'B +} +template BSSMAP_IE_LCLS_Configuration tr_BSSMAP_IE_LclsCfg(template BIT4 cfg_val) := { + elementIdentifier := '8A'O, + lCLS_ConfigurationValue := cfg_val, + spare := '0000'B +} + +/* TS 48.008 3.2.2.117 */ +const BIT4 LCLS_CSC_connect := '0000'B; +const BIT4 LCLS_CSC_do_not_connect := '0001'B; +const BIT4 LCLS_CSC_release_lcls := '0010'B; +const BIT4 LCLS_CSC_bicast_UL_at_handover := '0011'B; +const BIT4 LCLS_CSC_bicast_UL_and_recv_DL_at_handover := '0100'B; + +template (value) BSSMAP_IE_LCLS_ConnectionStatusControl ts_BSSMAP_IE_LclsCsc(BIT4 csc) := { + elementIdentifier := '8B'O, + lCLS_ConnectionStatusControlValue := csc, + spare := '0000'B +} +template BSSMAP_IE_LCLS_ConnectionStatusControl tr_BSSMAP_IE_LclsCsc(template BIT4 csc) := { + elementIdentifier := '8B'O, + lCLS_ConnectionStatusControlValue := csc, + spare := '0000'B +} + +/* TS 48.008 3.2.2.119 */ +const BIT4 LCLS_STS_not_yet_ls := '0000'B; +const BIT4 LCLS_STS_not_possible_ls := '0001'B; +const BIT4 LCLS_STS_no_longer_ls := '0010'B; +const BIT4 LCLS_STS_req_lcls_not_supp := '0011'B; +const BIT4 LCLS_STS_locally_switched := '0100'B; + +template (value) BSSMAP_IE_LCLS_BSS_Status ts_BSSMAP_IE_LclsSts(BIT4 sts) := { + elementIdentifier := '8D'O, + lCLS_BSS_StatusValue := sts, + spare := '0000'B +} +template BSSMAP_IE_LCLS_BSS_Status tr_BSSMAP_IE_LclsSts(template BIT4 sts) := { + elementIdentifier := '8D'O, + lCLS_BSS_StatusValue := sts, + spare := '0000'B +} + +/* TS 48.008 3.2.1.91 */ +template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrl(template (omit) BSSMAP_IE_LCLS_Configuration cfg, + template (omit) BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + pdu := { + bssmap := { + lCLS_ConnectControl := { + messageType := '74'O, + lCLS_Configuration := cfg, + lCLS_ConnectionStatusControl := csc + } + } + } +} +template PDU_BSSAP tr_BSSMAP_LclsConnCtrl(template BSSMAP_IE_LCLS_Configuration cfg, + template BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + pdu := { + bssmap := { + lCLS_ConnectControl := { + messageType := '74'O, + lCLS_Configuration := cfg, + lCLS_ConnectionStatusControl := csc + } + } + } +} + +/* TS 48.008 3.2.1.92 */ +template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrlAck(template (value) BSSMAP_IE_LCLS_BSS_Status sts) := { + pdu := { + bssmap := { + lCLS_connectControlAck := { + messageType := '75'O, + lCLS_BSS_Status := sts + } + } + } +} +template PDU_BSSAP tr_BSSMAP_LclsConnCtrlAck(template BSSMAP_IE_LCLS_BSS_Status sts) := { + pdu := { + bssmap := { + lCLS_connectControlAck := { + messageType := '75'O, + lCLS_BSS_Status := sts + } + } + } +} + +/* TS 48.008 3.2.1.93 */ +template (value) PDU_BSSAP ts_BSSMAP_LclsNotification(template (omit) BSSMAP_IE_LCLS_BSS_Status sts, + template (omit) BSSMAP_IE_LCLS_BreakRequest brq) := { + pdu := { + bssmap := { + lCLS_Notification := { + messageType := '76'O, + lCLS_BSS_Status := sts, + lCLS_BreakRequest := brq + } + } + } +} +template PDU_BSSAP tr_BSSMAP_LclsNotification(template BSSMAP_IE_LCLS_BSS_Status sts, + template BSSMAP_IE_LCLS_BreakRequest brq) := { + pdu := { + bssmap := { + lCLS_Notification := { + messageType := '76'O, + lCLS_BSS_Status := sts, + lCLS_BreakRequest := brq + } + } + } +} + -- To view, visit https://gerrit.osmocom.org/9404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5300418ae493f6c315248562938b47ae1931b452 Gerrit-Change-Number: 9404 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 10:02:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 10:02:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: *_Emulation.ttcn: Specify destination when replying on procedure ports In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9403 ) Change subject: *_Emulation.ttcn: Specify destination when replying on procedure ports ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I696ec67080815348bb95e43ecbbf262e533e39a3 Gerrit-Change-Number: 9403 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 10:02:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 10:02:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 10:02:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: *_Emulation.ttcn: Specify destination when replying on procedure ports In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9403 ) Change subject: *_Emulation.ttcn: Specify destination when replying on procedure ports ...................................................................... *_Emulation.ttcn: Specify destination when replying on procedure ports procedure ports (like message ports) require us to specify the destination of a message ("reply") in case it is connected 1:N and not just 1:1. This didn't show up as a problem so far, as we typically only had one component talking to those procedure ports at any given point in time. Change-Id: I696ec67080815348bb95e43ecbbf262e533e39a3 --- M library/BSSGP_Emulation.ttcn M library/BSSMAP_Emulation.ttcn M library/GSUP_Emulation.ttcn M library/GTP_Emulation.ttcn M library/MGCP_Emulation.ttcn M library/MNCC_Emulation.ttcn M library/RSL_Emulation.ttcn M library/SMPP_Emulation.ttcn 8 files changed, 20 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn index 321c344..38666b8 100644 --- a/library/BSSGP_Emulation.ttcn +++ b/library/BSSGP_Emulation.ttcn @@ -441,15 +441,15 @@ [] BSSGP_PROC.getcall(BSSGP_register_client:{?,?,?}) -> param(imsi, tlli, cell_id) sender vc_conn { f_tbl_client_add(imsi, tlli, cell_id, vc_conn); - BSSGP_PROC.reply(BSSGP_register_client:{imsi, tlli, cell_id}); + BSSGP_PROC.reply(BSSGP_register_client:{imsi, tlli, cell_id}) to vc_conn; } [] BSSGP_PROC.getcall(BSSGP_unregister_client:{?}) -> param(imsi) sender vc_conn { f_tbl_client_del(imsi, vc_conn); - BSSGP_PROC.reply(BSSGP_unregister_client:{imsi}); + BSSGP_PROC.reply(BSSGP_unregister_client:{imsi}) to vc_conn; } [] BSSGP_PROC.getcall(BSSGP_llgmm_assign:{?,?}) -> param(tlli_old, tlli) sender vc_conn { f_tbl_client_llgmm_assign(tlli_old, tlli, vc_conn); - BSSGP_PROC.reply(BSSGP_llgmm_assign:{tlli_old, tlli}); + BSSGP_PROC.reply(BSSGP_llgmm_assign:{tlli_old, tlli}) to vc_conn; } } diff --git a/library/BSSMAP_Emulation.ttcn b/library/BSSMAP_Emulation.ttcn index 95b39f3..e65c550 100644 --- a/library/BSSMAP_Emulation.ttcn +++ b/library/BSSMAP_Emulation.ttcn @@ -713,12 +713,12 @@ [] PROC.getcall(BSSMAPEM_register:{?,?}) -> param(l3_info, vc_hdlr) { f_create_expect(l3_info, vc_hdlr); - PROC.reply(BSSMAPEM_register:{l3_info, vc_hdlr}); + PROC.reply(BSSMAPEM_register:{l3_info, vc_hdlr}) to vc_hdlr; } [] PROC.getcall(BSSMAPEM_register_imsi:{?,?,?}) -> param(imsi, tmsi, vc_hdlr) { f_create_imsi(imsi, tmsi, vc_hdlr); - PROC.reply(BSSMAPEM_register_imsi:{imsi, tmsi, vc_hdlr}); + PROC.reply(BSSMAPEM_register_imsi:{imsi, tmsi, vc_hdlr}) to vc_hdlr; } diff --git a/library/GSUP_Emulation.ttcn b/library/GSUP_Emulation.ttcn index 3990b73..7cf1656 100644 --- a/library/GSUP_Emulation.ttcn +++ b/library/GSUP_Emulation.ttcn @@ -222,7 +222,7 @@ /* Client -> us: procedure call to register expect */ [] GSUP_PROC.getcall(GSUPEM_register:{?,?}) -> param(imsi, vc_hdlr) { f_create_expect(imsi, vc_hdlr); - GSUP_PROC.reply(GSUPEM_register:{imsi, vc_hdlr}); + GSUP_PROC.reply(GSUPEM_register:{imsi, vc_hdlr}) to vc_hdlr; } } diff --git a/library/GTP_Emulation.ttcn b/library/GTP_Emulation.ttcn index e5e5e36..534fdef 100644 --- a/library/GTP_Emulation.ttcn +++ b/library/GTP_Emulation.ttcn @@ -206,12 +206,12 @@ [] CLIENT_PROC.getcall(GTPEM_register_imsi:{?}) -> param(imsi) sender vc_conn { f_imsi_tbl_add(imsi, vc_conn); - CLIENT_PROC.reply(GTPEM_register_imsi:{imsi}); + CLIENT_PROC.reply(GTPEM_register_imsi:{imsi}) to vc_conn; } [] CLIENT_PROC.getcall(GTPEM_register_teid:{?}) -> param(teid) sender vc_conn { f_tid_tbl_add(teid, vc_conn); - CLIENT_PROC.reply(GTPEM_register_teid:{teid}); + CLIENT_PROC.reply(GTPEM_register_teid:{teid}) to vc_conn; } } diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn index e2f79b3..b02dc06 100644 --- a/library/MGCP_Emulation.ttcn +++ b/library/MGCP_Emulation.ttcn @@ -307,11 +307,11 @@ } [] MGCP_PROC.getcall(MGCPEM_register:{?,?}) -> param(crit, vc_conn) { f_create_expect(crit, vc_conn); - MGCP_PROC.reply(MGCPEM_register:{crit, vc_conn}); + MGCP_PROC.reply(MGCPEM_register:{crit, vc_conn}) to vc_conn; } [] MGCP_PROC.getcall(MGCPEM_delete_ep:{?,?}) -> param(ep, vc_conn) { f_ep_table_del(vc_conn, ep); - MGCP_PROC.reply(MGCPEM_delete_ep:{ep, vc_conn}); + MGCP_PROC.reply(MGCPEM_delete_ep:{ep, vc_conn}) to vc_conn; } } diff --git a/library/MNCC_Emulation.ttcn b/library/MNCC_Emulation.ttcn index 59e3e77..d9b7c79 100644 --- a/library/MNCC_Emulation.ttcn +++ b/library/MNCC_Emulation.ttcn @@ -351,7 +351,7 @@ /* Client -> us: procedure call to register expect */ [] MNCC_PROC.getcall(MNCCEM_register:{?,?}) -> param(dest_nr, vc_hdlr) { f_create_expect(dest_nr, vc_hdlr); - MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr}); + MNCC_PROC.reply(MNCCEM_register:{dest_nr, vc_hdlr}) to vc_hdlr; } } diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index 3634373..119a9be 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -451,30 +451,30 @@ /* explicit registration, e.g. in (non-immediate) assignment case */ [] RSL_PROC.getcall(RSLEM_register:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) { f_cid_create_cnr(trx_nr, chan_nr, vc_conn); - RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn}); + RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn}) to vc_conn; } [] RSL_PROC.getcall(RSLEM_unregister:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) { cid := f_cid_by_chan_nr(trx_nr, chan_nr); f_cid_clear(cid); - RSL_PROC.reply(RSLEM_unregister:{trx_nr, chan_nr, vc_conn}); + RSL_PROC.reply(RSLEM_unregister:{trx_nr, chan_nr, vc_conn}) to vc_conn; } - [] RSL_PROC.getcall(RSLEM_suspend:{true}) { + [] RSL_PROC.getcall(RSLEM_suspend:{true}) -> sender vc_conn { log("Suspending DChan"); dchan_suspended := true; - RSL_PROC.reply(RSLEM_suspend:{true}); + RSL_PROC.reply(RSLEM_suspend:{true}) to vc_conn; } - [] RSL_PROC.getcall(RSLEM_suspend:{false}) { + [] RSL_PROC.getcall(RSLEM_suspend:{false}) -> sender vc_conn { log("Resuming DChan"); dchan_suspended := false; - RSL_PROC.reply(RSLEM_suspend:{false}); + RSL_PROC.reply(RSLEM_suspend:{false}) to vc_conn; } - [] RSL_PROC.getcall(RSLEM_get_last_act:{?,?,?}) -> param(trx_nr, chan_nr) { + [] RSL_PROC.getcall(RSLEM_get_last_act:{?,?,?}) -> param(trx_nr, chan_nr) sender vc_conn { var RSL_Message last_chan_act := f_lookup_last_act(trx_nr, chan_nr); - RSL_PROC.reply(RSLEM_get_last_act:{trx_nr, chan_nr, last_chan_act}); + RSL_PROC.reply(RSLEM_get_last_act:{trx_nr, chan_nr, last_chan_act}) to vc_conn; } } } diff --git a/library/SMPP_Emulation.ttcn b/library/SMPP_Emulation.ttcn index c14340c..27876dc 100644 --- a/library/SMPP_Emulation.ttcn +++ b/library/SMPP_Emulation.ttcn @@ -314,7 +314,7 @@ [] SMPP_PROC.getcall(SMPPEM_register:{?,?}) -> param(dest_addr, vc_conn) { f_create_expect(dest_addr, vc_conn); - SMPP_PROC.reply(SMPPEM_register:{dest_addr, vc_conn}); + SMPP_PROC.reply(SMPPEM_register:{dest_addr, vc_conn}) to vc_conn; } } } -- To view, visit https://gerrit.osmocom.org/9403 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I696ec67080815348bb95e43ecbbf262e533e39a3 Gerrit-Change-Number: 9403 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 10:02:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 10:02:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP_Templates: Add templates for LCLS related IEs + messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9404 ) Change subject: BSSMAP_Templates: Add templates for LCLS related IEs + messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5300418ae493f6c315248562938b47ae1931b452 Gerrit-Change-Number: 9404 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 10:02:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 10:02:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 10:02:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP_Templates: Add templates for LCLS related IEs + messages In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9404 ) Change subject: BSSMAP_Templates: Add templates for LCLS related IEs + messages ...................................................................... BSSMAP_Templates: Add templates for LCLS related IEs + messages We will soon implement some LCLS related test cases, and hence we need some templates for sending and matching received messages. Change-Id: I5300418ae493f6c315248562938b47ae1931b452 --- M library/BSSMAP_Templates.ttcn 1 file changed, 161 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 91de5fb..be535ab 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -970,6 +970,167 @@ } } +/* TS 29.205 B.2.1.9 */ +template (value) GlobalCallReferenceValue ts_GCR(octetstring net_id, OCT2 node_id, OCT5 cref_id) := { + networkIDLengthIndicator := 0, /* overwritten */ + networkID := net_id, + nodeIDLengthIndicator := 0, /* overwritten */ + nodeID := node_id, + callReferenceIDLengthIndicator := 0, /* overwritten */ + callReferenceID := cref_id +} +template GlobalCallReferenceValue tr_GCR(template octetstring net_id, + template OCT2 node_id, + template OCT5 cref_id) := { + networkIDLengthIndicator := ?, + networkID := net_id, + nodeIDLengthIndicator := ?, + nodeID := node_id, + callReferenceIDLengthIndicator := ?, + callReferenceID := cref_id +} + +/* TS 47.008 3.2.2.115 */ +template (value) BSSMAP_IE_GlobalCallReference ts_BSSMAP_IE_GCR(template (value) GlobalCallReferenceValue gcr) := { + elementIdentifier := '89'O, + lengthIndicator := 0, /* overwritten */ + globalCallReferenceValue := gcr +} +template BSSMAP_IE_GlobalCallReference tr_BSSMAP_IE_GCR(template GlobalCallReferenceValue gcr) := { + elementIdentifier := '89'O, + lengthIndicator := ?, + globalCallReferenceValue := gcr +} + +/* TS 48.008 3.2.2.116 */ +const BIT4 LCLS_CFG_both_way := '0000'B; +const BIT4 LCLS_CFG_both_way_and_bicast_UL := '0001'B; +const BIT4 LCLS_CFG_both_way_and_send_DL := '0010'B; +const BIT4 LCLS_CFG_both_way_and_send_DL_block_local_DL := '0011'B; +const BIT4 LCLS_CFG_both_way_and_bicast_UL_send_DL := '0100'B; +const BIT4 LCLS_CFG_both_way_and_bicast_UL_send_DL_block_local_DL := '0101'B; + +template (value) BSSMAP_IE_LCLS_Configuration ts_BSSMAP_IE_LclsCfg(BIT4 cfg_val) := { + elementIdentifier := '8A'O, + lCLS_ConfigurationValue := cfg_val, + spare := '0000'B +} +template BSSMAP_IE_LCLS_Configuration tr_BSSMAP_IE_LclsCfg(template BIT4 cfg_val) := { + elementIdentifier := '8A'O, + lCLS_ConfigurationValue := cfg_val, + spare := '0000'B +} + +/* TS 48.008 3.2.2.117 */ +const BIT4 LCLS_CSC_connect := '0000'B; +const BIT4 LCLS_CSC_do_not_connect := '0001'B; +const BIT4 LCLS_CSC_release_lcls := '0010'B; +const BIT4 LCLS_CSC_bicast_UL_at_handover := '0011'B; +const BIT4 LCLS_CSC_bicast_UL_and_recv_DL_at_handover := '0100'B; + +template (value) BSSMAP_IE_LCLS_ConnectionStatusControl ts_BSSMAP_IE_LclsCsc(BIT4 csc) := { + elementIdentifier := '8B'O, + lCLS_ConnectionStatusControlValue := csc, + spare := '0000'B +} +template BSSMAP_IE_LCLS_ConnectionStatusControl tr_BSSMAP_IE_LclsCsc(template BIT4 csc) := { + elementIdentifier := '8B'O, + lCLS_ConnectionStatusControlValue := csc, + spare := '0000'B +} + +/* TS 48.008 3.2.2.119 */ +const BIT4 LCLS_STS_not_yet_ls := '0000'B; +const BIT4 LCLS_STS_not_possible_ls := '0001'B; +const BIT4 LCLS_STS_no_longer_ls := '0010'B; +const BIT4 LCLS_STS_req_lcls_not_supp := '0011'B; +const BIT4 LCLS_STS_locally_switched := '0100'B; + +template (value) BSSMAP_IE_LCLS_BSS_Status ts_BSSMAP_IE_LclsSts(BIT4 sts) := { + elementIdentifier := '8D'O, + lCLS_BSS_StatusValue := sts, + spare := '0000'B +} +template BSSMAP_IE_LCLS_BSS_Status tr_BSSMAP_IE_LclsSts(template BIT4 sts) := { + elementIdentifier := '8D'O, + lCLS_BSS_StatusValue := sts, + spare := '0000'B +} + +/* TS 48.008 3.2.1.91 */ +template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrl(template (omit) BSSMAP_IE_LCLS_Configuration cfg, + template (omit) BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + pdu := { + bssmap := { + lCLS_ConnectControl := { + messageType := '74'O, + lCLS_Configuration := cfg, + lCLS_ConnectionStatusControl := csc + } + } + } +} +template PDU_BSSAP tr_BSSMAP_LclsConnCtrl(template BSSMAP_IE_LCLS_Configuration cfg, + template BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + pdu := { + bssmap := { + lCLS_ConnectControl := { + messageType := '74'O, + lCLS_Configuration := cfg, + lCLS_ConnectionStatusControl := csc + } + } + } +} + +/* TS 48.008 3.2.1.92 */ +template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrlAck(template (value) BSSMAP_IE_LCLS_BSS_Status sts) := { + pdu := { + bssmap := { + lCLS_connectControlAck := { + messageType := '75'O, + lCLS_BSS_Status := sts + } + } + } +} +template PDU_BSSAP tr_BSSMAP_LclsConnCtrlAck(template BSSMAP_IE_LCLS_BSS_Status sts) := { + pdu := { + bssmap := { + lCLS_connectControlAck := { + messageType := '75'O, + lCLS_BSS_Status := sts + } + } + } +} + +/* TS 48.008 3.2.1.93 */ +template (value) PDU_BSSAP ts_BSSMAP_LclsNotification(template (omit) BSSMAP_IE_LCLS_BSS_Status sts, + template (omit) BSSMAP_IE_LCLS_BreakRequest brq) := { + pdu := { + bssmap := { + lCLS_Notification := { + messageType := '76'O, + lCLS_BSS_Status := sts, + lCLS_BreakRequest := brq + } + } + } +} +template PDU_BSSAP tr_BSSMAP_LclsNotification(template BSSMAP_IE_LCLS_BSS_Status sts, + template BSSMAP_IE_LCLS_BreakRequest brq) := { + pdu := { + bssmap := { + lCLS_Notification := { + messageType := '76'O, + lCLS_BSS_Status := sts, + lCLS_BreakRequest := brq + } + } + } +} + -- To view, visit https://gerrit.osmocom.org/9404 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5300418ae493f6c315248562938b47ae1931b452 Gerrit-Change-Number: 9404 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 10:02:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 10:02:50 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9401 ) Change subject: gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx ...................................................................... gb_proxy: tallocate memory for gbproxy cfg so it can be a talloc ctx Change-Id: Iad7cde5c08daacc3f5c4175d21d89fad25a5c3d7 --- M src/gprs/gb_proxy_main.c 1 file changed, 14 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gprs/gb_proxy_main.c b/src/gprs/gb_proxy_main.c index 04143bb..474aa52 100644 --- a/src/gprs/gb_proxy_main.c +++ b/src/gprs/gb_proxy_main.c @@ -70,7 +70,7 @@ #define CONFIG_FILE_LEGACY "osmo_gbproxy.cfg" static char *config_file = NULL; -struct gbproxy_config gbcfg = {0}; +struct gbproxy_config *gbcfg; static int daemonize = 0; /* Pointer to the SGSN peer */ @@ -84,7 +84,7 @@ switch (event) { case GPRS_NS_EVT_UNIT_DATA: - rc = gbprox_rcvmsg(&gbcfg, msg, nsvc->nsei, bvci, nsvc->nsvci); + rc = gbprox_rcvmsg(gbcfg, msg, nsvc->nsei, bvci, nsvc->nsvci); break; default: LOGP(DGPRS, LOGL_ERROR, "SGSN: Unknown event %u from NS\n", event); @@ -309,14 +309,20 @@ LOGP(DGPRS, LOGL_ERROR, "Unable to instantiate NS\n"); exit(1); } - gbproxy_init_config(&gbcfg); - gbcfg.nsi = bssgp_nsi; + + gbcfg = talloc_zero(tall_bsc_ctx, struct gbproxy_config); + if (!gbcfg) { + LOGP(DGPRS, LOGL_FATAL, "Unable to allocate config\n"); + exit(1); + } + gbproxy_init_config(gbcfg); + gbcfg->nsi = bssgp_nsi; gprs_ns_vty_init(bssgp_nsi); gprs_ns_set_log_ss(DNS); bssgp_set_log_ss(DBSSGP); - osmo_signal_register_handler(SS_L_NS, &gbprox_signal, &gbcfg); + osmo_signal_register_handler(SS_L_NS, &gbprox_signal, gbcfg); - rc = gbproxy_parse_config(config_file, &gbcfg); + rc = gbproxy_parse_config(config_file, gbcfg); if (rc < 0) { LOGP(DGPRS, LOGL_FATAL, "Cannot parse config file '%s'\n", config_file); exit(2); @@ -328,10 +334,10 @@ if (rc < 0) exit(1); - if (!gprs_nsvc_by_nsei(gbcfg.nsi, gbcfg.nsip_sgsn_nsei)) { + if (!gprs_nsvc_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSEI %u " "without creating that NSEI before\n", - gbcfg.nsip_sgsn_nsei); + gbcfg->nsip_sgsn_nsei); exit(2); } -- To view, visit https://gerrit.osmocom.org/9401 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iad7cde5c08daacc3f5c4175d21d89fad25a5c3d7 Gerrit-Change-Number: 9401 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 12:01:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 12:01:22 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9402 ) Change subject: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/9402/1/src/gprs/gb_proxy_ctrl.c File src/gprs/gb_proxy_ctrl.c: https://gerrit.osmocom.org/#/c/9402/1/src/gprs/gb_proxy_ctrl.c at 4 PS1, Line 4: * (C) 2018 by sysmocom s.f.m.c. GmbH that should be (C) sysmocom / Author: Daniel Willmann. -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 12:01:22 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 15:27:08 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Fri, 1 Jun 2018 15:27:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sync TTCN3 MSC test config with docker-playground Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9405 Change subject: sync TTCN3 MSC test config with docker-playground ...................................................................... sync TTCN3 MSC test config with docker-playground Update MSC_Tests.default according to the current MSC_Tests.cfg used by docker-playground. Add osmo-msc.cfg and osmo-stp.cfg example configuration files. Allows the MSC tests to be run locally. Change-Id: Ia00f0315a5246c3ec55563ebd21a586aec8e4688 --- M msc/MSC_Tests.default A msc/osmo-msc.cfg A msc/osmo-stp.cfg 3 files changed, 149 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/05/9405/1 diff --git a/msc/MSC_Tests.default b/msc/MSC_Tests.default index cd984fd..e8508c2 100644 --- a/msc/MSC_Tests.default +++ b/msc/MSC_Tests.default @@ -27,6 +27,7 @@ M3UA_Emulation.tsp_logVerbose := true; MSC_Tests.mp_bssap_cfg := { { + transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23906, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 193, @@ -37,6 +38,7 @@ rctx := 0 }, { + transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23907, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 194, @@ -48,6 +50,14 @@ } }; +# remote (IUT) side +MSC_Tests.mp_msc_mncc := "/tmp/mncc.sock"; +MSC_Tests.mp_msc_ip := "127.0.0.1" +# local (emulation) side) +MSC_Tests.mp_hlr_ip := "127.0.0.1" +MSC_Tests.mp_mgw_ip := "127.0.0.1" + + Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoMSC"; [MAIN_CONTROLLER] diff --git a/msc/osmo-msc.cfg b/msc/osmo-msc.cfg new file mode 100644 index 0000000..80f2fba --- /dev/null +++ b/msc/osmo-msc.cfg @@ -0,0 +1,87 @@ +! +! OsmoMSC (1.1.2.66-629c4-dirty) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category 1 + logging timestamp 1 + logging level all everything + logging level rll notice + logging level cc debug + logging level mm debug + logging level rr notice + logging level mncc debug + logging level pag notice + logging level msc notice + logging level mgcp debug + logging level ho notice + logging level db notice + logging level ref notice + logging level ctrl notice + logging level smpp debug + logging level ranap debug + logging level vlr debug + logging level iucs debug + logging level lglobal notice + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl info + logging level lgtp notice + logging level lstats notice + logging level lgsup notice + logging level loap notice + logging level lss7 notice + logging level lsccp notice + logging level lsua notice + logging level lm3ua notice + logging level lmgcp debug +! +stats interval 5 +! +line vty + no login + #bind 0.0.0.0 +ctrl + #bind 0.0.0.0 +! +cs7 instance 0 + point-code 0.23.1 + asp asp-clnt-OsmoMSC-A 2905 0 m3ua + remote-ip 127.0.0.1 + as as-clnt-OsmoMSC-A m3ua + asp asp-clnt-OsmoMSC-A + routing-key 2 0.23.1 +network + network country code 262 + mobile network code 42 + short name OsmoMSC + long name OsmoMSC + encryption a5 0 + authentication optional + rrlp mode none + mm info 0 + periodic location update 30 +msc + assign-tmsi + cs7-instance-a 0 + cs7-instance-iu 0 + mgw remote-ip 127.0.0.1 + emergency-call route-to-msisdn 112 +mncc-int + default-codec tch-f fr + default-codec tch-h hr +smpp + local-tcp-port 2775 + policy closed + no smpp-first + esme msc_tester + password osmocom1 +hlr + remote-ip 127.0.0.1 + #remote-port 4222 diff --git a/msc/osmo-stp.cfg b/msc/osmo-stp.cfg new file mode 100644 index 0000000..aa0a326 --- /dev/null +++ b/msc/osmo-stp.cfg @@ -0,0 +1,52 @@ +! +! OsmoSTP (0.8.1) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category 1 + logging timestamp 1 + logging level all everything + logging level lglobal notice + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp notice + logging level lstats notice + logging level lgsup notice + logging level loap notice + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp notice +! +line vty + no login +! +cs7 instance 0 + xua rkm routing-key-allocation dynamic-permitted + asp virt-bsc0-0 23906 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-bsc0 m3ua + asp virt-bsc0-0 + routing-key 0 0.24.1 + asp virt-bsc1-0 23907 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-bsc1 m3ua + asp virt-bsc1-0 + routing-key 1 0.24.2 + route-table system + update route 0.24.1 7.255.7 linkset virt-bsc0 + update route 0.24.2 7.255.7 linkset virt-bsc1 + listen m3ua 2905 + accept-asp-connections dynamic-permitted + listen ipa 5000 + accept-asp-connections dynamic-permitted -- To view, visit https://gerrit.osmocom.org/9405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia00f0315a5246c3ec55563ebd21a586aec8e4688 Gerrit-Change-Number: 9405 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 15:31:40 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Fri, 1 Jun 2018 15:31:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: expect TC_establish_and_nothing to pass Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9406 Change subject: expect TC_establish_and_nothing to pass ...................................................................... expect TC_establish_and_nothing to pass The test case TC_establish_and_nothing is now passing. Update expected results list accordingly. Change-Id: I925fa4ad2e38e189cf5dd1ae76a24cdb9011fdc8 Related: OS#2879 --- M msc/expected-results.xml 1 file changed, 1 insertion(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/06/9406/1 diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 0b192d0..42e47b2 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -37,12 +37,7 @@ - - Timeout waiting for ClearCommand/Release - MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_establish_and_nothing testcase - - + Timeout waiting for ClearCommand/Release MSC_Tests.ttcn:MASKED MSC_Tests control part -- To view, visit https://gerrit.osmocom.org/9406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I925fa4ad2e38e189cf5dd1ae76a24cdb9011fdc8 Gerrit-Change-Number: 9406 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 15:32:31 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Fri, 1 Jun 2018 15:32:31 +0000 Subject: Change in osmocom-bb[master]: mobile: Make time spent in c7 configurable Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9407 Change subject: mobile: Make time spent in c7 configurable ...................................................................... mobile: Make time spent in c7 configurable When no cell was found during the PLMN search the camp on any cell state will be entered. LUs are prevented in this state and it will be left after the start_any_timer has timedout. Even if camping on the home network the state will not be left before the expiry of the timer. For systematic tests this is producing a too high upper bound. Make it configurable so we can succeed with a UL more quickly. Change-Id: I25bc985cd4360d5e37d05a7b16b39eefb75ce20f --- M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/subscriber.c M src/host/layer23/src/mobile/vty_interface.c 4 files changed, 26 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/07/9407/1 diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index cdf6323..a1bce06 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -1,6 +1,8 @@ #ifndef _settings_h #define _settings_h +#define MOB_C7_DEFLT_ANY_TIMEOUT 30 + struct gsm_settings { char layer2_socket_path[128]; char sap_socket_path[128]; @@ -100,6 +102,9 @@ uint8_t class_dtm; uint8_t dtm_mac; uint8_t dtm_egprs; + + /* Timeout for GSM 03.22 C7 state */ + uint8_t any_timeout; }; struct gsm_settings_abbrev { diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index 6d50c6b..f1c0cfc 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -90,6 +90,8 @@ /* software features */ set->cc_dtmf = 1; + set->any_timeout = MOB_C7_DEFLT_ANY_TIMEOUT; + INIT_LLIST_HEAD(&set->abbrev); return 0; diff --git a/src/host/layer23/src/mobile/subscriber.c b/src/host/layer23/src/mobile/subscriber.c index d332a07..6a30148 100644 --- a/src/host/layer23/src/mobile/subscriber.c +++ b/src/host/layer23/src/mobile/subscriber.c @@ -99,7 +99,7 @@ subscr->key_seq = 7; /* any cell selection timer timeout */ - subscr->any_timeout = 30; + subscr->any_timeout = ms->settings.any_timeout; /* init lists */ INIT_LLIST_HEAD(&subscr->plmn_list); diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index 37093ce..f8ecb28 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -1528,6 +1528,10 @@ vty_out(vty, " hplmn-search %s%s", (set->test_always) ? "everywhere" : "foreign-country", VTY_NEWLINE); + if (!hide_default || set->any_timeout != MOB_C7_DEFLT_ANY_TIMEOUT) + vty_out(vty, " c7-any-timeout %d%s", + set->any_timeout, VTY_NEWLINE); + /* no shutdown must be written to config, because shutdown is default */ vty_out(vty, " %sshutdown%s", (ms->shutdown != MS_SHUTDOWN_NONE) ? "" : "no ", VTY_NEWLINE); @@ -2170,6 +2174,19 @@ return CMD_SUCCESS; } +DEFUN(cfg_ms_any_timeout, cfg_ms_any_timeout_cmd, "c7-any-timeout <0-255>", + "Seconds to wait in C7 before doing a PLMN search") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + set->any_timeout = atoi(argv[0]); + + vty_restart_if_started(vty, ms); + + return CMD_SUCCESS; +} + static int config_write_dummy(struct vty *vty) { return CMD_SUCCESS; @@ -2891,6 +2908,7 @@ install_element(MS_NODE, &cfg_ms_testsim_cmd); install_element(MS_NODE, &cfg_ms_neighbour_cmd); install_element(MS_NODE, &cfg_ms_no_neighbour_cmd); + install_element(MS_NODE, &cfg_ms_any_timeout_cmd); install_element(MS_NODE, &cfg_ms_support_cmd); install_node(&support_node, config_write_dummy); install_element(SUPPORT_NODE, &cfg_ms_sup_dtmf_cmd); -- To view, visit https://gerrit.osmocom.org/9407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I25bc985cd4360d5e37d05a7b16b39eefb75ce20f Gerrit-Change-Number: 9407 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:26:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:26:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP_Templates: Fix LCLS related template definitions Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9408 Change subject: BSSMAP_Templates: Fix LCLS related template definitions ...................................................................... BSSMAP_Templates: Fix LCLS related template definitions They should all have been derived from the tr_BSSAP_BSSMAP / ts_BSSAP_BSSMAP base templates. Change-Id: Ib9ef03fe1c5f2eedde9e274a50dfedb2fb6b6a0f --- M library/BSSMAP_Templates.ttcn 1 file changed, 11 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/08/9408/1 diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index be535ab..ad90d66 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1059,7 +1059,7 @@ /* TS 48.008 3.2.1.91 */ template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrl(template (omit) BSSMAP_IE_LCLS_Configuration cfg, - template (omit) BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + template (omit) BSSMAP_IE_LCLS_ConnectionStatusControl csc) modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_ConnectControl := { @@ -1071,7 +1071,8 @@ } } template PDU_BSSAP tr_BSSMAP_LclsConnCtrl(template BSSMAP_IE_LCLS_Configuration cfg, - template BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + template BSSMAP_IE_LCLS_ConnectionStatusControl csc) +modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_ConnectControl := { @@ -1084,7 +1085,8 @@ } /* TS 48.008 3.2.1.92 */ -template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrlAck(template (value) BSSMAP_IE_LCLS_BSS_Status sts) := { +template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrlAck(template (value) BSSMAP_IE_LCLS_BSS_Status sts) +modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_connectControlAck := { @@ -1094,7 +1096,8 @@ } } } -template PDU_BSSAP tr_BSSMAP_LclsConnCtrlAck(template BSSMAP_IE_LCLS_BSS_Status sts) := { +template PDU_BSSAP tr_BSSMAP_LclsConnCtrlAck(template BSSMAP_IE_LCLS_BSS_Status sts) +modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_connectControlAck := { @@ -1107,7 +1110,8 @@ /* TS 48.008 3.2.1.93 */ template (value) PDU_BSSAP ts_BSSMAP_LclsNotification(template (omit) BSSMAP_IE_LCLS_BSS_Status sts, - template (omit) BSSMAP_IE_LCLS_BreakRequest brq) := { + template (omit) BSSMAP_IE_LCLS_BreakRequest brq) +modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_Notification := { @@ -1119,7 +1123,8 @@ } } template PDU_BSSAP tr_BSSMAP_LclsNotification(template BSSMAP_IE_LCLS_BSS_Status sts, - template BSSMAP_IE_LCLS_BreakRequest brq) := { + template BSSMAP_IE_LCLS_BreakRequest brq) +modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_Notification := { -- To view, visit https://gerrit.osmocom.org/9408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib9ef03fe1c5f2eedde9e274a50dfedb2fb6b6a0f Gerrit-Change-Number: 9408 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:26:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:26:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9409 Change subject: BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() ...................................................................... BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() In case we want to derive other component types by extending MSC_ConnectionHandler, we will want to connect additional ports before starting the component. Hence, split the connect part into f_create_handler(), while keeping the create + start part in f_start_handler(). Change-Id: If272816b7e720e8b8f000f7ab8baa20619b35fb7 --- M bsc/BSC_Tests.ttcn 1 file changed, 10 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/09/9409/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 9b92207..40e777e 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1431,13 +1431,8 @@ type function void_fn(charstring id) runs on MSC_ConnHdlr; -/* helper function to create, connect and start a MSC_ConnHdlr component */ -function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit) -runs on test_CT return MSC_ConnHdlr { - var charstring id := testcasename(); - var MSC_ConnHdlr vc_conn; - - vc_conn := MSC_ConnHdlr.create(id); +/* helper function to create and connect a MSC_ConnHdlr component */ +function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); @@ -1448,6 +1443,14 @@ } connect(vc_conn:BSSAP, g_bssap.vc_BSSMAP:CLIENT); connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); +} + +function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit) +runs on test_CT return MSC_ConnHdlr { + var charstring id := testcasename(); + var MSC_ConnHdlr vc_conn; + vc_conn := MSC_ConnHdlr.create(id); + f_connect_handler(vc_conn); vc_conn.start(f_handler_init(fn, id, pars)); return vc_conn; } -- To view, visit https://gerrit.osmocom.org/9409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If272816b7e720e8b8f000f7ab8baa20619b35fb7 Gerrit-Change-Number: 9409 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:26:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:26:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: mark some functions as non-private Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9410 Change subject: BSC_Tests.ttcn: mark some functions as non-private ...................................................................... BSC_Tests.ttcn: mark some functions as non-private Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef --- M bsc/BSC_Tests.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/9410/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 40e777e..74a74d8 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -562,7 +562,7 @@ } /* generate an assignment request for either AoIP or SCCPlite */ -private function f_gen_ass_req() return PDU_BSSAP { +function f_gen_ass_req() return PDU_BSSAP { var PDU_BSSAP ass_cmd; if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := @@ -576,7 +576,7 @@ } /* generate an assignment complete template for either AoIP or SCCPlite */ -private function f_gen_exp_compl() return template PDU_BSSAP { +function f_gen_exp_compl() return template PDU_BSSAP { var template PDU_BSSAP exp_compl; if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?); @@ -1740,7 +1740,7 @@ } type record of CodecListTest CodecListTests -private function f_TC_assignment_codec(charstring id) runs on MSC_ConnHdlr { +function f_TC_assignment_codec(charstring id) runs on MSC_ConnHdlr { var PDU_BSSAP ass_cmd := f_gen_ass_req(); var template PDU_BSSAP exp_compl := f_gen_exp_compl(); -- To view, visit https://gerrit.osmocom.org/9410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef Gerrit-Change-Number: 9410 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:26:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:26:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9411 Change subject: bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr ...................................................................... bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr Change-Id: I44b46c9bc8f13eed9b3d18a6ce67980d2af0d46a --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/11/9411/1 diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 1a5bed9..16a0547 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -361,6 +361,7 @@ GsmFrameNumber fn, hexstring imsi, RslLinkId link_id, + integer media_nr, /* determins MGCP EP, port numbers */ BSSMAP_IE_SpeechCodecList ass_codec_list optional, TestHdlrEncrParams encr optional }; @@ -370,6 +371,7 @@ fn := 23, imsi := '001019876543210'H, link_id := valueof(ts_RslLinkID_DCCH(0)), + media_nr := 1, ass_codec_list := omit, encr := omit } @@ -712,7 +714,7 @@ /* establish a channel fully, expecting an assignment matching 'exp' */ function f_establish_fully(template (omit) PDU_BSSAP ass_tpl, template PDU_BSSAP exp_ass_cpl) runs on MSC_ConnHdlr { - f_MscConnHdlr_init(1, "127.0.0.2", "127.0.0.3"); + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3"); f_create_chan_and_exp(); /* we should now have a COMPL_L3 at the MSC */ -- To view, visit https://gerrit.osmocom.org/9411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I44b46c9bc8f13eed9b3d18a6ce67980d2af0d46a Gerrit-Change-Number: 9411 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:31:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:31:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP_Templates: Fix LCLS related template definitions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9408 ) Change subject: BSSMAP_Templates: Fix LCLS related template definitions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib9ef03fe1c5f2eedde9e274a50dfedb2fb6b6a0f Gerrit-Change-Number: 9408 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 16:31:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:32:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:32:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9409 ) Change subject: BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If272816b7e720e8b8f000f7ab8baa20619b35fb7 Gerrit-Change-Number: 9409 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 16:32:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:33:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:33:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9411 ) Change subject: bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I44b46c9bc8f13eed9b3d18a6ce67980d2af0d46a Gerrit-Change-Number: 9411 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 16:33:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:33:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:33:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: mark some functions as non-private In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9410 to look at the new patch set (#2). Change subject: BSC_Tests.ttcn: mark some functions as non-private ...................................................................... BSC_Tests.ttcn: mark some functions as non-private Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef --- M bsc/BSC_Tests.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/9410/2 -- To view, visit https://gerrit.osmocom.org/9410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef Gerrit-Change-Number: 9410 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:35:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:35:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: mark some functions as non-private In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9410 to look at the new patch set (#3). Change subject: BSC_Tests.ttcn: mark some functions as non-private ...................................................................... BSC_Tests.ttcn: mark some functions as non-private Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/9410/3 -- To view, visit https://gerrit.osmocom.org/9410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef Gerrit-Change-Number: 9410 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:35:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:35:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: mark some functions as non-private In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9410 ) Change subject: BSC_Tests.ttcn: mark some functions as non-private ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef Gerrit-Change-Number: 9410 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 16:35:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:36:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:36:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSSMAP_Templates: Fix LCLS related template definitions In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9408 ) Change subject: BSSMAP_Templates: Fix LCLS related template definitions ...................................................................... BSSMAP_Templates: Fix LCLS related template definitions They should all have been derived from the tr_BSSAP_BSSMAP / ts_BSSAP_BSSMAP base templates. Change-Id: Ib9ef03fe1c5f2eedde9e274a50dfedb2fb6b6a0f --- M library/BSSMAP_Templates.ttcn 1 file changed, 11 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index be535ab..ad90d66 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1059,7 +1059,7 @@ /* TS 48.008 3.2.1.91 */ template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrl(template (omit) BSSMAP_IE_LCLS_Configuration cfg, - template (omit) BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + template (omit) BSSMAP_IE_LCLS_ConnectionStatusControl csc) modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_ConnectControl := { @@ -1071,7 +1071,8 @@ } } template PDU_BSSAP tr_BSSMAP_LclsConnCtrl(template BSSMAP_IE_LCLS_Configuration cfg, - template BSSMAP_IE_LCLS_ConnectionStatusControl csc) := { + template BSSMAP_IE_LCLS_ConnectionStatusControl csc) +modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_ConnectControl := { @@ -1084,7 +1085,8 @@ } /* TS 48.008 3.2.1.92 */ -template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrlAck(template (value) BSSMAP_IE_LCLS_BSS_Status sts) := { +template (value) PDU_BSSAP ts_BSSMAP_LclsConnCtrlAck(template (value) BSSMAP_IE_LCLS_BSS_Status sts) +modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_connectControlAck := { @@ -1094,7 +1096,8 @@ } } } -template PDU_BSSAP tr_BSSMAP_LclsConnCtrlAck(template BSSMAP_IE_LCLS_BSS_Status sts) := { +template PDU_BSSAP tr_BSSMAP_LclsConnCtrlAck(template BSSMAP_IE_LCLS_BSS_Status sts) +modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_connectControlAck := { @@ -1107,7 +1110,8 @@ /* TS 48.008 3.2.1.93 */ template (value) PDU_BSSAP ts_BSSMAP_LclsNotification(template (omit) BSSMAP_IE_LCLS_BSS_Status sts, - template (omit) BSSMAP_IE_LCLS_BreakRequest brq) := { + template (omit) BSSMAP_IE_LCLS_BreakRequest brq) +modifies ts_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_Notification := { @@ -1119,7 +1123,8 @@ } } template PDU_BSSAP tr_BSSMAP_LclsNotification(template BSSMAP_IE_LCLS_BSS_Status sts, - template BSSMAP_IE_LCLS_BreakRequest brq) := { + template BSSMAP_IE_LCLS_BreakRequest brq) +modifies tr_BSSAP_BSSMAP := { pdu := { bssmap := { lCLS_Notification := { -- To view, visit https://gerrit.osmocom.org/9408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib9ef03fe1c5f2eedde9e274a50dfedb2fb6b6a0f Gerrit-Change-Number: 9408 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:36:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:36:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9409 ) Change subject: BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() ...................................................................... BSC_Tests.ttcn: Split f_connect_handler() off f_start_handler() In case we want to derive other component types by extending MSC_ConnectionHandler, we will want to connect additional ports before starting the component. Hence, split the connect part into f_create_handler(), while keeping the create + start part in f_start_handler(). Change-Id: If272816b7e720e8b8f000f7ab8baa20619b35fb7 --- M bsc/BSC_Tests.ttcn 1 file changed, 10 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 9b92207..40e777e 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1431,13 +1431,8 @@ type function void_fn(charstring id) runs on MSC_ConnHdlr; -/* helper function to create, connect and start a MSC_ConnHdlr component */ -function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit) -runs on test_CT return MSC_ConnHdlr { - var charstring id := testcasename(); - var MSC_ConnHdlr vc_conn; - - vc_conn := MSC_ConnHdlr.create(id); +/* helper function to create and connect a MSC_ConnHdlr component */ +function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); @@ -1448,6 +1443,14 @@ } connect(vc_conn:BSSAP, g_bssap.vc_BSSMAP:CLIENT); connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); +} + +function f_start_handler(void_fn fn, template (omit) TestHdlrParams pars := omit) +runs on test_CT return MSC_ConnHdlr { + var charstring id := testcasename(); + var MSC_ConnHdlr vc_conn; + vc_conn := MSC_ConnHdlr.create(id); + f_connect_handler(vc_conn); vc_conn.start(f_handler_init(fn, id, pars)); return vc_conn; } -- To view, visit https://gerrit.osmocom.org/9409 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If272816b7e720e8b8f000f7ab8baa20619b35fb7 Gerrit-Change-Number: 9409 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:36:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:36:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests.ttcn: mark some functions as non-private In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9410 ) Change subject: BSC_Tests.ttcn: mark some functions as non-private ...................................................................... BSC_Tests.ttcn: mark some functions as non-private Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 40e777e..80fb8c3 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -562,7 +562,7 @@ } /* generate an assignment request for either AoIP or SCCPlite */ -private function f_gen_ass_req() return PDU_BSSAP { +function f_gen_ass_req() return PDU_BSSAP { var PDU_BSSAP ass_cmd; if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { var BSSMAP_IE_AoIP_TransportLayerAddress tla := @@ -576,7 +576,7 @@ } /* generate an assignment complete template for either AoIP or SCCPlite */ -private function f_gen_exp_compl() return template PDU_BSSAP { +function f_gen_exp_compl() return template PDU_BSSAP { var template PDU_BSSAP exp_compl; if (mp_bssap_cfg.transport == BSSAP_TRANSPORT_AoIP) { exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?); -- To view, visit https://gerrit.osmocom.org/9410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I25301d27510cbe41c09d4fd81c07d453c5f5b4ef Gerrit-Change-Number: 9410 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:36:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:36:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9411 ) Change subject: bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr ...................................................................... bsc: Derive MGCP EP + Port numbers from new g_pars.media_nr Change-Id: I44b46c9bc8f13eed9b3d18a6ce67980d2af0d46a --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 1a5bed9..16a0547 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -361,6 +361,7 @@ GsmFrameNumber fn, hexstring imsi, RslLinkId link_id, + integer media_nr, /* determins MGCP EP, port numbers */ BSSMAP_IE_SpeechCodecList ass_codec_list optional, TestHdlrEncrParams encr optional }; @@ -370,6 +371,7 @@ fn := 23, imsi := '001019876543210'H, link_id := valueof(ts_RslLinkID_DCCH(0)), + media_nr := 1, ass_codec_list := omit, encr := omit } @@ -712,7 +714,7 @@ /* establish a channel fully, expecting an assignment matching 'exp' */ function f_establish_fully(template (omit) PDU_BSSAP ass_tpl, template PDU_BSSAP exp_ass_cpl) runs on MSC_ConnHdlr { - f_MscConnHdlr_init(1, "127.0.0.2", "127.0.0.3"); + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3"); f_create_chan_and_exp(); /* we should now have a COMPL_L3 at the MSC */ -- To view, visit https://gerrit.osmocom.org/9411 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I44b46c9bc8f13eed9b3d18a6ce67980d2af0d46a Gerrit-Change-Number: 9411 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:36:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:36:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: expect TC_establish_and_nothing to pass In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9406 ) Change subject: expect TC_establish_and_nothing to pass ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I925fa4ad2e38e189cf5dd1ae76a24cdb9011fdc8 Gerrit-Change-Number: 9406 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 16:36:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:36:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:36:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: expect TC_establish_and_nothing to pass In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9406 ) Change subject: expect TC_establish_and_nothing to pass ...................................................................... expect TC_establish_and_nothing to pass The test case TC_establish_and_nothing is now passing. Update expected results list accordingly. Change-Id: I925fa4ad2e38e189cf5dd1ae76a24cdb9011fdc8 Related: OS#2879 --- M msc/expected-results.xml 1 file changed, 1 insertion(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 0b192d0..42e47b2 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -37,12 +37,7 @@ - - Timeout waiting for ClearCommand/Release - MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_establish_and_nothing testcase - - + Timeout waiting for ClearCommand/Release MSC_Tests.ttcn:MASKED MSC_Tests control part -- To view, visit https://gerrit.osmocom.org/9406 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I925fa4ad2e38e189cf5dd1ae76a24cdb9011fdc8 Gerrit-Change-Number: 9406 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:37:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:37:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sync TTCN3 MSC test config with docker-playground In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9405 ) Change subject: sync TTCN3 MSC test config with docker-playground ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia00f0315a5246c3ec55563ebd21a586aec8e4688 Gerrit-Change-Number: 9405 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 16:37:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 16:37:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 16:37:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sync TTCN3 MSC test config with docker-playground In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9405 ) Change subject: sync TTCN3 MSC test config with docker-playground ...................................................................... sync TTCN3 MSC test config with docker-playground Update MSC_Tests.default according to the current MSC_Tests.cfg used by docker-playground. Add osmo-msc.cfg and osmo-stp.cfg example configuration files. Allows the MSC tests to be run locally. Change-Id: Ia00f0315a5246c3ec55563ebd21a586aec8e4688 --- M msc/MSC_Tests.default A msc/osmo-msc.cfg A msc/osmo-stp.cfg 3 files changed, 149 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/msc/MSC_Tests.default b/msc/MSC_Tests.default index cd984fd..e8508c2 100644 --- a/msc/MSC_Tests.default +++ b/msc/MSC_Tests.default @@ -27,6 +27,7 @@ M3UA_Emulation.tsp_logVerbose := true; MSC_Tests.mp_bssap_cfg := { { + transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23906, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 193, @@ -37,6 +38,7 @@ rctx := 0 }, { + transport := BSSAP_TRANSPORT_AoIP, sccp_service_type := "mtp3_itu", sctp_addr := { 23907, "127.0.0.1", 2905, "127.0.0.1" }, own_pc := 194, @@ -48,6 +50,14 @@ } }; +# remote (IUT) side +MSC_Tests.mp_msc_mncc := "/tmp/mncc.sock"; +MSC_Tests.mp_msc_ip := "127.0.0.1" +# local (emulation) side) +MSC_Tests.mp_hlr_ip := "127.0.0.1" +MSC_Tests.mp_mgw_ip := "127.0.0.1" + + Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoMSC"; [MAIN_CONTROLLER] diff --git a/msc/osmo-msc.cfg b/msc/osmo-msc.cfg new file mode 100644 index 0000000..80f2fba --- /dev/null +++ b/msc/osmo-msc.cfg @@ -0,0 +1,87 @@ +! +! OsmoMSC (1.1.2.66-629c4-dirty) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category 1 + logging timestamp 1 + logging level all everything + logging level rll notice + logging level cc debug + logging level mm debug + logging level rr notice + logging level mncc debug + logging level pag notice + logging level msc notice + logging level mgcp debug + logging level ho notice + logging level db notice + logging level ref notice + logging level ctrl notice + logging level smpp debug + logging level ranap debug + logging level vlr debug + logging level iucs debug + logging level lglobal notice + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl info + logging level lgtp notice + logging level lstats notice + logging level lgsup notice + logging level loap notice + logging level lss7 notice + logging level lsccp notice + logging level lsua notice + logging level lm3ua notice + logging level lmgcp debug +! +stats interval 5 +! +line vty + no login + #bind 0.0.0.0 +ctrl + #bind 0.0.0.0 +! +cs7 instance 0 + point-code 0.23.1 + asp asp-clnt-OsmoMSC-A 2905 0 m3ua + remote-ip 127.0.0.1 + as as-clnt-OsmoMSC-A m3ua + asp asp-clnt-OsmoMSC-A + routing-key 2 0.23.1 +network + network country code 262 + mobile network code 42 + short name OsmoMSC + long name OsmoMSC + encryption a5 0 + authentication optional + rrlp mode none + mm info 0 + periodic location update 30 +msc + assign-tmsi + cs7-instance-a 0 + cs7-instance-iu 0 + mgw remote-ip 127.0.0.1 + emergency-call route-to-msisdn 112 +mncc-int + default-codec tch-f fr + default-codec tch-h hr +smpp + local-tcp-port 2775 + policy closed + no smpp-first + esme msc_tester + password osmocom1 +hlr + remote-ip 127.0.0.1 + #remote-port 4222 diff --git a/msc/osmo-stp.cfg b/msc/osmo-stp.cfg new file mode 100644 index 0000000..aa0a326 --- /dev/null +++ b/msc/osmo-stp.cfg @@ -0,0 +1,52 @@ +! +! OsmoSTP (0.8.1) configuration saved from vty +!! +! +log stderr + logging filter all 1 + logging color 0 + logging print category 1 + logging timestamp 1 + logging level all everything + logging level lglobal notice + logging level llapd notice + logging level linp notice + logging level lmux notice + logging level lmi notice + logging level lmib notice + logging level lsms notice + logging level lctrl notice + logging level lgtp notice + logging level lstats notice + logging level lgsup notice + logging level loap notice + logging level lss7 debug + logging level lsccp debug + logging level lsua debug + logging level lm3ua debug + logging level lmgcp notice +! +line vty + no login +! +cs7 instance 0 + xua rkm routing-key-allocation dynamic-permitted + asp virt-bsc0-0 23906 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-bsc0 m3ua + asp virt-bsc0-0 + routing-key 0 0.24.1 + asp virt-bsc1-0 23907 2905 m3ua + local-ip 127.0.0.1 + remote-ip 127.0.0.1 + as virt-bsc1 m3ua + asp virt-bsc1-0 + routing-key 1 0.24.2 + route-table system + update route 0.24.1 7.255.7 linkset virt-bsc0 + update route 0.24.2 7.255.7 linkset virt-bsc1 + listen m3ua 2905 + accept-asp-connections dynamic-permitted + listen ipa 5000 + accept-asp-connections dynamic-permitted -- To view, visit https://gerrit.osmocom.org/9405 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia00f0315a5246c3ec55563ebd21a586aec8e4688 Gerrit-Change-Number: 9405 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 1 20:02:43 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jun 2018 20:02:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b11a6688424b_1a87aca684495232@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 200s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0 [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 200s] @@ -5785,6 +5807,7 @@ [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. [ 200s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0 [ 200s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 200s] 4. testsuite.at:25: 4. tbf (testsuite.at:25): FAILED (testsuite.at:29) [ 200s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 200s] make[1]: *** [override_dh_auto_test] Error 1 [ 200s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 200s] debian/rules:12: recipe for target 'build' failed [ 200s] make: *** [build] Error 2 [ 200s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 200s] [ 200s] cloud127 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Fri Jun 1 20:02:25 UTC 2018. [ 200s] [ 200s] ### VM INTERACTION START ### [ 200s] Powering off. [ 200s] [ 185.247561] reboot: Power down [ 202s] ### VM INTERACTION END ### [ 202s] [ 202s] cloud127 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Fri Jun 1 20:02:28 UTC 2018. [ 202s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From jenkins at lists.osmocom.org Fri Jun 1 22:41:20 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 1 Jun 2018 22:41:20 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-rtl-sdr_=C2=BB_a1=3Ddefau?= =?UTF-8?Q?lt,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#54?= In-Reply-To: <158013854.267.1527806480922.JavaMail.jenkins@jenkins.osmocom.org> References: <158013854.267.1527806480922.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <165453326.281.1527892880474.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 93.48 KB...] make[2]: Leaving directory ' Making dvi in src make[2]: Entering directory ' make[2]: Nothing to be done for 'dvi'. make[2]: Leaving directory ' make[2]: Entering directory ' make[2]: Nothing to be done for 'dvi-am'. make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make check-recursive make[2]: Entering directory ' Making check in include make[3]: Entering directory ' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory ' Making check in src make[3]: Entering directory ' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory ' make[3]: Entering directory ' make[3]: Nothing to be done for 'check-am'. make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make install-recursive make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 ../../../include/rtl-sdr.h ../../../include/rtl-sdr_export.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' make[4]: Entering directory ' /bin/mkdir -p ' /bin/bash ../libtool --mode=install /usr/bin/install -c librtlsdr.la ' libtool: install: /usr/bin/install -c .libs/librtlsdr.so.0.0.5 libtool: install: (cd && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so.0 || { rm -f librtlsdr.so.0 && ln -s librtlsdr.so.0.0.5 librtlsdr.so.0; }; }) libtool: install: (cd && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so || { rm -f librtlsdr.so && ln -s librtlsdr.so.0.0.5 librtlsdr.so; }; }) libtool: install: /usr/bin/install -c .libs/librtlsdr.lai libtool: install: /usr/bin/install -c .libs/librtlsdr.a libtool: install: chmod 644 libtool: install: ranlib libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- /bin/mkdir -p ' /bin/bash ../libtool --mode=install /usr/bin/install -c rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power ' libtool: install: /usr/bin/install -c .libs/rtl_sdr libtool: install: /usr/bin/install -c .libs/rtl_tcp libtool: install: /usr/bin/install -c .libs/rtl_test libtool: install: /usr/bin/install -c .libs/rtl_fm libtool: install: /usr/bin/install -c .libs/rtl_eeprom libtool: install: /usr/bin/install -c .libs/rtl_adsb libtool: install: /usr/bin/install -c .libs/rtl_power make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 ./doc/html.tar ' /bin/mkdir -p ' /usr/bin/install -c -m 644 librtlsdr.pc ' make install-data-hook make[5]: Entering directory ' cd && tar xf html.tar --strip-components 1 && rm -f html.tar make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' Making installcheck in include make[2]: Entering directory ' make[2]: Nothing to be done for 'installcheck'. make[2]: Leaving directory ' Making installcheck in src make[2]: Entering directory ' make[2]: Nothing to be done for 'installcheck'. make[2]: Leaving directory ' make[2]: Entering directory ' make[2]: Nothing to be done for 'installcheck-am'. make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' Making uninstall in include make[2]: Entering directory ' ( cd ' && rm -f rtl-sdr.h rtl-sdr_export.h ) make[2]: Leaving directory ' Making uninstall in src make[2]: Entering directory ' ( cd ' && rm -f rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power ) /bin/bash ../libtool --mode=uninstall rm -f ' libtool: uninstall: rm -f make[2]: Leaving directory ' make[2]: Entering directory ' ( cd ' && rm -f html.tar ) ( cd ' && rm -f librtlsdr.pc ) make uninstall-hook make[3]: Entering directory ' cd && rm -rf make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make install-recursive make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-5828/ /usr/bin/install -c -m 644 ../../../include/rtl-sdr.h ../../../include/rtl-sdr_export.h '/tmp/am-dc-5828/ make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' make[4]: Entering directory ' /bin/mkdir -p '/tmp/am-dc-5828/ /bin/bash ../libtool --mode=install /usr/bin/install -c librtlsdr.la '/tmp/am-dc-5828/ libtool: install: /usr/bin/install -c .libs/librtlsdr.so.0.0.5 /tmp/am-dc-5828/ libtool: install: (cd /tmp/am-dc-5828/ && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so.0 || { rm -f librtlsdr.so.0 && ln -s librtlsdr.so.0.0.5 librtlsdr.so.0; }; }) libtool: install: (cd /tmp/am-dc-5828/ && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so || { rm -f librtlsdr.so && ln -s librtlsdr.so.0.0.5 librtlsdr.so; }; }) libtool: install: /usr/bin/install -c .libs/librtlsdr.lai /tmp/am-dc-5828/ libtool: install: /usr/bin/install -c .libs/librtlsdr.a /tmp/am-dc-5828/ libtool: install: chmod 644 /tmp/am-dc-5828/ libtool: install: ranlib /tmp/am-dc-5828/ libtool: warning: remember to run 'libtool --finish /bin/mkdir -p '/tmp/am-dc-5828/ /bin/bash ../libtool --mode=install /usr/bin/install -c rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power '/tmp/am-dc-5828/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_sdr /tmp/am-dc-5828/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_tcp /tmp/am-dc-5828/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_test /tmp/am-dc-5828/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_fm /tmp/am-dc-5828/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_eeprom /tmp/am-dc-5828/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_adsb /tmp/am-dc-5828/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_power /tmp/am-dc-5828/ make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-5828/ /usr/bin/install -c -m 644 ./doc/html.tar '/tmp/am-dc-5828/ /bin/mkdir -p '/tmp/am-dc-5828/ /usr/bin/install -c -m 644 librtlsdr.pc '/tmp/am-dc-5828/ make install-data-hook make[5]: Entering directory ' cd /tmp/am-dc-5828/ && tar xf html.tar --strip-components 1 && rm -f html.tar make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' Making uninstall in include make[2]: Entering directory ' ( cd '/tmp/am-dc-5828/ && rm -f rtl-sdr.h rtl-sdr_export.h ) make[2]: Leaving directory ' Making uninstall in src make[2]: Entering directory ' ( cd '/tmp/am-dc-5828/ && rm -f rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power ) /bin/bash ../libtool --mode=uninstall rm -f '/tmp/am-dc-5828/ libtool: uninstall: rm -f /tmp/am-dc-5828/ /tmp/am-dc-5828/ /tmp/am-dc-5828/ /tmp/am-dc-5828/ /tmp/am-dc-5828/ make[2]: Leaving directory ' make[2]: Entering directory ' ( cd '/tmp/am-dc-5828/ && rm -f html.tar ) ( cd '/tmp/am-dc-5828/ && rm -f librtlsdr.pc ) make uninstall-hook make[3]: Entering directory ' cd /tmp/am-dc-5828/ && rm -rf make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' ERROR: files left after uninstall: (check DESTDIR support) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Makefile:757: recipe for target 'distuninstallcheck' failed make[1]: *** [distuninstallcheck] Error 1 make[1]: Leaving directory ' Makefile:701: recipe for target 'distcheck' failed make: *** [distcheck] Error 1 + cat-testlogs.sh Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE Not sending mail to unregistered user steve at steve-m.de From gerrit-no-reply at lists.osmocom.org Fri Jun 1 22:43:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 22:43:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add LCLS related test cases Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9412 Change subject: bsc: Add LCLS related test cases ...................................................................... bsc: Add LCLS related test cases This is an early WIP, we actually will need to establish two calls/legs before the BSC is able to locally correlate them. Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 --- M bsc/BSC_Tests.ttcn A bsc/BSC_Tests_LCLS.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/BSSMAP_Templates.ttcn 4 files changed, 565 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/12/9412/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 80fb8c3..3830e7d 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1830,8 +1830,6 @@ vc_conn.done; } - - /* test if L3 RR CLASSMARK CHANGE is translated to BSSMAP CLASSMARK UPDATE */ private function f_tc_classmark(charstring id) runs on MSC_ConnHdlr { g_pars := valueof(t_def_TestHdlrPars); diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn new file mode 100644 index 0000000..217cb37 --- /dev/null +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -0,0 +1,510 @@ +module BSC_Tests_LCLS { + +/* Integration Tests for OsmoBSC + * (C) 2018 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * This test suite tests OsmoBSC while emulating both multiple BTS + MS as + * well as the MSC. See README for more details. + * + * There are test cases that run in so-called 'handler mode' and test cases + * that run directly on top of the BSSAP and RSL CodecPorts. The "handler mode" + * tests abstract the multiplexing/demultiplexing of multiple SCCP connections + * and/or RSL channels and are hence suitable for higher-level test cases, while + * the "raw" tests directly on top of the CodecPorts are more suitable for lower- + * level testing. + */ + +import from General_Types all; +import from Osmocom_Types all; +import from GSM_Types all; +import from IPL4asp_Types all; + +import from BSSAP_Types all; +import from BSSAP_Adapter all; +import from BSSAP_CodecPort all; +import from BSSMAP_Templates all; +import from IPA_Emulation all; +import from IPA_CodecPort all; +import from IPA_Types all; +import from RSL_Types all; +import from RSL_Emulation all; +import from MGCP_Types all; +import from MGCP_Emulation all; + +import from Osmocom_CTRL_Functions all; +import from Osmocom_CTRL_Types all; +import from Osmocom_CTRL_Adapter all; + +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; + +import from MobileL3_CommonIE_Types all; +import from MobileL3_Types all; +import from L3_Templates all; +import from GSM_RR_Types all; + +import from BSSMAP_Templates all; +import from BSSMAP_Emulation all; + +import from MSC_ConnectionHandler all; +import from BSC_Tests all; + +/* The philosophy of this testsuite is to re-use as much as possible the existing components + * and functions that we have in BSC_Tests and its dependencies. However, as opposed to those + * normal BSC tests, we here have to run *two* ConnHdlr and synchronize activity between them. + * + * We do this by adding some special-purpose ports between the main test component running the + * test case [lcls_]test_CT and the per-connection [LCLS_]MSC_ConnHdlr. + */ + + +/* take test_CT from BSC_Tests and extend it with LCLS specific bits */ +type component lcls_test_CT extends test_CT { + /* Component references */ + var LCLS_MSC_ConnHdlr vc_CONN_A; + var LCLS_MSC_ConnHdlr vc_CONN_B; + /* Ports to the two call legs */ + port LCLS_InterComp_PT CONN_A; + port LCLS_InterComp_PT CONN_B; +} + +/* take MSC_ConnHdlr and extend it with LCLS specific bits */ +type component LCLS_MSC_ConnHdlr extends MSC_ConnHdlr { + /* Port back to the controlling lcls_test_CT */ + port LCLS_InterComp_PT MASTER; +} + +/* port type between lcls_test_CT and LCLS_MSC_ConnHdlr */ +type port LCLS_InterComp_PT message { + /* BSSAP from BSSA_ConnHdlr */ + inout PDU_BSSAP, PDU_DTAP_MO, PDU_DTAP_MT, + /* RSL from RSL_DchanHdlr */ + RSLDC_ChanRqd, RSL_Message, + /* MGCP from MGCP_ConnHdlr */ + MgcpCommand, MgcpResponse, + LclsCompSync; +} with { extension "internal" }; + +type enumerated LclsCompSync { + /* ConnHdlr signals to master component that assignment has completed */ + LCLS_COMP_SYNC_ASS_COMPL +} + + +/* forward messages between the RSL/MGCP/BSSAP Emulation and the master component */ +private altstep as_lcls_conn_hdlr_proxy() runs on LCLS_MSC_ConnHdlr { + var PDU_BSSAP bssap; + var PDU_DTAP_MO dtap_mo; + var PDU_DTAP_MT dtap_mt; + var MgcpCommand mgcp_cmd; + var MgcpResponse mgcp_rsp; + var RSL_Message rsl_msg; + /* from ConnHdlr to master process */ + [] BSSAP.receive(PDU_BSSAP:?) -> value bssap { MASTER.send(bssap); } + [] BSSAP.receive(PDU_DTAP_MO:?) -> value dtap_mo { MASTER.send(dtap_mo); } + [] BSSAP.receive(PDU_DTAP_MT:?) -> value dtap_mt { MASTER.send(dtap_mt); } + [] MGCP.receive(MgcpCommand:?) -> value mgcp_cmd { MASTER.send(mgcp_cmd); } + [] MGCP.receive(MgcpResponse:?) -> value mgcp_rsp { MASTER.send(mgcp_rsp); } + [] RSL.receive(RSL_Message:?) -> value rsl_msg { MASTER.send(rsl_msg); } + /* from master process to ConnHdlr */ + [] MASTER.receive(PDU_BSSAP:?) -> value bssap { BSSAP.send(bssap); } + [] MASTER.receive(PDU_DTAP_MO:?) -> value dtap_mo { BSSAP.send(dtap_mo); } + [] MASTER.receive(PDU_DTAP_MT:?) -> value dtap_mt { BSSAP.send(dtap_mt); } + [] MASTER.receive(MgcpCommand:?) -> value mgcp_cmd { MGCP.send(mgcp_cmd); } + [] MASTER.receive(MgcpResponse:?) -> value mgcp_rsp { MGCP.send(mgcp_rsp); } +} + + +private function f_lcls_connhdlr_main(charstring id) runs on LCLS_MSC_ConnHdlr { + /* 1) establish the connection between RSL and BSSAP side */ + var PDU_BSSAP ass_req := f_gen_ass_req(); + var template PDU_BSSAP ass_compl := f_gen_exp_compl(); + ass_req.pdu.bssmap.assignmentRequest.codecList := g_pars.ass_codec_list; + f_establish_fully(ass_req, ass_compl); + + /* 2) notify master that assignment has completed */ + MASTER.send(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + + /* 3) proxy packets between master component and various ports */ + while (true) { + as_lcls_conn_hdlr_proxy(); + } +} + +type function lcls_void_fn(charstring id) runs on LCLS_MSC_ConnHdlr; + +/* first function inside ConnHdlr component; sets g_pars + starts function */ +private function f_handler_init(lcls_void_fn fn, charstring id, template (omit) TestHdlrParams pars := omit) +runs on LCLS_MSC_ConnHdlr { + if (isvalue(pars)) { + g_pars := valueof(pars); + } + fn.apply(id); +} + +/* function creating the two ConnHdlrs, connecting them + starting them */ +private function f_lcls_test_init(TestHdlrParams pars_a, TestHdlrParams pars_b) runs on lcls_test_CT { + var charstring id_a := testcasename() & "-A"; + var charstring id_b := testcasename() & "-B"; + + pars_b.imsi := '002029876543210'H; + pars_b.media_nr := 2; + + /* create and connect the two ConnHandlers */ + vc_CONN_A := LCLS_MSC_ConnHdlr.create(id_a); + f_connect_handler(vc_CONN_A); + connect(vc_CONN_A:MASTER, self:CONN_A); + + vc_CONN_B := LCLS_MSC_ConnHdlr.create(id_b); + f_connect_handler(vc_CONN_B); + connect(vc_CONN_B:MASTER, self:CONN_B); + + /* start the two components */ + vc_CONN_A.start(f_handler_init(refers(f_lcls_connhdlr_main), id_a, pars_a)); + f_sleep(3.0); + vc_CONN_B.start(f_handler_init(refers(f_lcls_connhdlr_main), id_b, pars_b)); +} + +private function f_lcls_test_fini() runs on lcls_test_CT { + vc_CONN_A.stop; + vc_CONN_B.stop; +} + +/* ignore some messages which we're not interested in evaluating (yet) */ +private altstep as_ignore() runs on lcls_test_CT { + [] CONN_A.receive(MgcpCommand:?) { repeat; } + [] CONN_B.receive(MgcpCommand:?) { repeat; } +} + +/* fail if any notify is being received */ +private altstep as_fail_on_lcls_notify() runs on lcls_test_CT +{ + [] CONN_A.receive(tr_BSSMAP_LclsNotification(?, *)) { + setverdict(fail, "Unexpected BSSMAP LCLS Notification"); + } + [] CONN_B.receive(tr_BSSMAP_LclsNotification(?, *)) { + setverdict(fail, "Unexpected BSSMAP LCLS Notification"); + } +} + +private function f_wait_fail_notify() runs on lcls_test_CT +{ + timer T := 3.0; + T.start; + alt { + [] as_fail_on_lcls_notify(); + [] T.timeout { } + } +} + +private function f_lcls_init(integer nr_bts := 1) runs on lcls_test_CT +{ + var default d; + + d := activate(as_ignore()); + f_init(nr_bts, true); + f_sleep(1.0); +} + + +/* Send an ASSIGNMENT REQ with LCLS GCR only, without LCLS CFG or CSC */ +testcase TC_lcls_gcr_only() runs on lcls_test_CT { + var TestHdlrParams pars := valueof(t_def_TestHdlrPars); + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + /* Expect LCLS status to be not reported, as no LCLS config was signalled */ + pars.lcls.exp_sts := omit; + + f_lcls_test_init(pars, pars); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect connect both-way */ +testcase TC_lcls_gcr_bway_connect() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* second call should then reuslt in LS */ + pars_b.lcls.exp_sts := LCLS_STS_locally_switched; + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS CFG+CSC enabling LCLS but GCR doesn't match! */ +testcase TC_lcls_gcr_nomatch_bway_connect() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_b.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090b'O)); + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */ +testcase TC_lcls_gcr_bway_dont_connect() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_do_not_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* Expect LCLS is *NOT* established */ + pars_b.lcls.exp_sts := LCLS_STS_not_yet_ls; + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */ +testcase TC_lcls_gcr_unsuppported_cfg() runs on lcls_test_CT { + var TestHdlrParams pars := valueof(t_def_TestHdlrPars); + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars.lcls.cfg := LCLS_CFG_both_way_and_send_DL; + pars.lcls.csc := LCLS_CSC_connect; + /* Expect LCLS is *NOT* established with "LCLS_STS_req_lcls_not_supp" */ + pars.lcls.exp_sts := LCLS_STS_req_lcls_not_supp; + + f_lcls_test_init(pars, pars); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */ +testcase TC_lcls_gcr_unsuppported_csc() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_bicast_UL_and_recv_DL_at_handover; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* Expect LCLS is *NOT* established */ + pars_b.lcls.exp_sts := LCLS_STS_not_yet_ls; + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with "do not connect" and enable later using LCLS CTRL */ +testcase TC_lcls_gcr_bway_dont_connect_csc() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_do_not_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* Expect LCLS is *NOT* established */ + pars_b.lcls.exp_sts := LCLS_STS_not_yet_ls; + + /* start call and expect it to be "not yet" LS */ + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + f_sleep(2.0); + /* send "connect" on A side, expect call to remain in "not yet" */ + CONN_A.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_connect))); + CONN_A.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_not_yet_ls))); + f_sleep(2.0); + /* send "connect" on B side, expect call to go LS, with notify to A side */ + CONN_B.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_connect))); + interleave { + [] CONN_B.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_locally_switched))); + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + } + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +/* Establish LCLS "connect" followed by a MSC-initiated break */ +testcase TC_lcls_connect_break() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* second call should then reuslt in LS */ + pars_b.lcls.exp_sts := LCLS_STS_locally_switched; + + /* Expect LS to be established successfully */ + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + + /* request LS release on "A" side; call continues to be locally switched */ + CONN_A.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_release_lcls))); + CONN_A.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_locally_switched))); + f_sleep(2.0); + + /* request LS release on "B" side; call LS is released */ + CONN_B.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_release_lcls))); + interleave { + [] CONN_B.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_no_longer_ls))); + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_no_longer_ls)); + } + + f_lcls_test_fini(); +} + +/* Establish LCLS "connect" followed by a SCCP-level release of one leg */ +testcase TC_lcls_connect_clear() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* second call should then reuslt in LS */ + pars_b.lcls.exp_sts := LCLS_STS_locally_switched; + + /* Expect LS to be established successfully */ + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + + /* Perform hard BSSMAP Clear on "A" side, expect no LS on "B" side */ + var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; + var octetstring l3_rr_chan_rel := '060D00'O; + CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val))); + interleave { + [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), l3_rr_chan_rel)); + [] CONN_A.receive(tr_BSSMAP_ClearComplete); + [] CONN_B.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_possible_ls)); + } + f_sleep(2.0); + + f_lcls_test_fini(); +} + + + + +/* TODO: + * establish with one side connect, then enable using LCLS CTRL + * LCLS CTRL for call that doesn't have LCLS enabled + * LCLS IEs without GCR in ASS CMD + * actual media plane changes on MGCP level + * GCR updates? + * Handover related LCLS bits (after we have inter-BSC HO in OsmoBSC) +*/ + + +control { + + execute( TC_lcls_gcr_only() ); + execute( TC_lcls_gcr_bway_connect() ); + execute( TC_lcls_gcr_nomatch_bway_connect() ); + execute( TC_lcls_gcr_bway_dont_connect() ); + execute( TC_lcls_gcr_unsuppported_cfg() ); + execute( TC_lcls_gcr_unsuppported_csc() ); + execute( TC_lcls_gcr_bway_dont_connect_csc() ); + execute( TC_lcls_connect_break() ); + execute( TC_lcls_connect_clear() ); + + +} + + +} diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 16a0547..225e86b 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -356,6 +356,15 @@ enc_key := key } +type record TestHdlrParamsLcls { + GlobalCallReferenceValue gcr optional, + /* LCLS Configuration */ + BIT4 cfg optional, + /* LCLS Connection Status Control */ + BIT4 csc optional, + BIT4 exp_sts optional +} + type record TestHdlrParams { OCT1 ra, GsmFrameNumber fn, @@ -363,7 +372,8 @@ RslLinkId link_id, integer media_nr, /* determins MGCP EP, port numbers */ BSSMAP_IE_SpeechCodecList ass_codec_list optional, - TestHdlrEncrParams encr optional + TestHdlrEncrParams encr optional, + TestHdlrParamsLcls lcls }; template (value) TestHdlrParams t_def_TestHdlrPars := { @@ -373,7 +383,13 @@ link_id := valueof(ts_RslLinkID_DCCH(0)), media_nr := 1, ass_codec_list := omit, - encr := omit + encr := omit, + lcls := { + gcr := omit, + cfg := omit, + csc := omit, + exp_sts := omit + } } function f_create_chan_and_exp() runs on MSC_ConnHdlr { @@ -711,11 +727,36 @@ } } +/* patch an BSSMAP ASS REQ with LCLS related IEs, depending on g_params */ +function f_ass_patch_lcls(inout template (omit) PDU_BSSAP ass_tpl, + inout template PDU_BSSAP ass_cpl) runs on MSC_ConnHdlr { + if (istemplatekind(ass_tpl, "omit")) { + return; + } + if (ispresent(g_pars.lcls.gcr)) { + ass_tpl.pdu.bssmap.assignmentRequest.globalCallReference := ts_BSSMAP_IE_GCR(g_pars.lcls.gcr); + } + if (ispresent(g_pars.lcls.cfg)) { + ass_tpl.pdu.bssmap.assignmentRequest.lCLS_Configuration := ts_BSSMAP_IE_LclsCfg(g_pars.lcls.cfg); + } + if (ispresent(g_pars.lcls.csc)) { + ass_tpl.pdu.bssmap.assignmentRequest.lCLS_ConnectionStatusControl := ts_BSSMAP_IE_LclsCsc(g_pars.lcls.csc); + } + if (ispresent(g_pars.lcls.exp_sts)) { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(g_pars.lcls.exp_sts); + } else { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := omit; + } +} + /* establish a channel fully, expecting an assignment matching 'exp' */ function f_establish_fully(template (omit) PDU_BSSAP ass_tpl, template PDU_BSSAP exp_ass_cpl) runs on MSC_ConnHdlr { f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3"); + /* patch in the LCLS related items, as needed */ + f_ass_patch_lcls(ass_tpl, exp_ass_cpl); + f_create_chan_and_exp(); /* we should now have a COMPL_L3 at the MSC */ BSSAP.receive(tr_BSSMAP_ComplL3); diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index ad90d66..d92ea61 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1136,6 +1136,18 @@ } } +template PDU_BSSAP tr_BSSMAP_LclsNotificationSts(BIT4 sts) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + lCLS_Notification := { + messageType := '76'O, + lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(sts), + lCLS_BreakRequest := omit + } + } + } +} -- To view, visit https://gerrit.osmocom.org/9412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 Gerrit-Change-Number: 9412 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 22:43:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 22:43:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: LCLS: Introduce a copy+pasted f_connect_handler() function Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9413 Change subject: LCLS: Introduce a copy+pasted f_connect_handler() function ...................................................................... LCLS: Introduce a copy+pasted f_connect_handler() function ... using the original one is hitting a ttcn3_compiler bug in TITAN 6.3.1, see https://www.eclipse.org/forums/index.php/m/1789918/ Change-Id: I7c2dfd3c6e63b54c019fba0c07a1bb777d68f6b5 --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn 2 files changed, 16 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/13/9413/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 3830e7d..f99d46b 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1432,7 +1432,7 @@ type function void_fn(charstring id) runs on MSC_ConnHdlr; /* helper function to create and connect a MSC_ConnHdlr component */ -function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { +private function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 217cb37..42194bf 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -146,6 +146,21 @@ fn.apply(id); } +/* helper function to create and connect a MSC_ConnHdlr component */ +/* FIXME: Why can't we use BSC_Tests.f_connect_andler() ?!? */ +private function f_connect_handler(inout LCLS_MSC_ConnHdlr vc_conn) runs on lcls_test_CT { + connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC); + connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); + connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); + connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC); + if (isvalue(bts[1])) { + connect(vc_conn:RSL1, bts[1].rsl.vc_RSL:CLIENT_PT); + connect(vc_conn:RSL1_PROC, bts[1].rsl.vc_RSL:RSL_PROC); + } + connect(vc_conn:BSSAP, g_bssap.vc_BSSMAP:CLIENT); + connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); +} + /* function creating the two ConnHdlrs, connecting them + starting them */ private function f_lcls_test_init(TestHdlrParams pars_a, TestHdlrParams pars_b) runs on lcls_test_CT { var charstring id_a := testcasename() & "-A"; -- To view, visit https://gerrit.osmocom.org/9413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7c2dfd3c6e63b54c019fba0c07a1bb777d68f6b5 Gerrit-Change-Number: 9413 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 22:45:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 22:45:59 +0000 Subject: Change in osmo-bsc[master]: Remove unused logging subsystems DCC and DMGCP Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9414 Change subject: Remove unused logging subsystems DCC and DMGCP ...................................................................... Remove unused logging subsystems DCC and DMGCP Change-Id: Ib4f67bb00e1d5460e643717b53f6a4d81278dc5d --- M include/osmocom/bsc/debug.h M src/osmo-bsc/osmo_bsc_main.c 2 files changed, 1 insertion(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/14/9414/1 diff --git a/include/osmocom/bsc/debug.h b/include/osmocom/bsc/debug.h index 37f102c..2b3d150 100644 --- a/include/osmocom/bsc/debug.h +++ b/include/osmocom/bsc/debug.h @@ -9,7 +9,6 @@ /* Debug Areas of the code */ enum { DRLL, - DCC, DMM, DRR, DRSL, @@ -17,7 +16,6 @@ DPAG, DMEAS, DMSC, - DMGCP, DHO, DHODEC, DREF, diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 095a07a..f3daccc 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -81,7 +81,7 @@ printf(" Some useful help...\n"); printf(" -h --help this text\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); - printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); + printf(" -d option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -c --config-file filename The config file to use.\n"); @@ -281,12 +281,6 @@ .color = "\033[1;31m", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DCC] = { - .name = "DCC", - .description = "Layer3 Call Control (CC)", - .color = "\033[1;32m", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DMM] = { .name = "DMM", .description = "Layer3 Mobility Management (MM)", @@ -327,11 +321,6 @@ .description = "Mobile Switching Center", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DMGCP] = { - .name = "DMGCP", - .description = "Media Gateway Control Protocol", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DHO] = { .name = "DHO", .description = "Hand-Over Process", -- To view, visit https://gerrit.osmocom.org/9414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib4f67bb00e1d5460e643717b53f6a4d81278dc5d Gerrit-Change-Number: 9414 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 22:46:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 22:46:01 +0000 Subject: Change in osmo-bsc[master]: VTY: Print some more information in "show conns" Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9415 Change subject: VTY: Print some more information in "show conns" ...................................................................... VTY: Print some more information in "show conns" We now print information such as * SCCP connection ID * MSC number * handover decision2 fail count * channel mode (SIGN/SPEECH) * MGW endpoint * secondary lchan (if any, e.g. during assignment) Change-Id: I2f8000844afc9da93ca39976399e5f76a45530de --- M src/libbsc/bsc_vty.c 1 file changed, 12 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/15/9415/1 diff --git a/src/libbsc/bsc_vty.c b/src/libbsc/bsc_vty.c index e53a14f..1b76578 100644 --- a/src/libbsc/bsc_vty.c +++ b/src/libbsc/bsc_vty.c @@ -1515,6 +1515,17 @@ return lchan_summary(vty, argc, argv, lchan_dump_short_vty); } +static void dump_one_subscr_conn(struct vty *vty, const struct gsm_subscriber_connection *conn) +{ + vty_out(vty, "conn ID=%u, MSC=%u, hodec2_fail=%d, mode=%s, mgw_ep=%s%s", + conn->sccp.conn_id, conn->sccp.msc->nr, conn->hodec2.failures, + get_value_string(gsm48_chan_mode_names, conn->user_plane.chan_mode), + conn->user_plane.mgw_endpoint, VTY_NEWLINE); + lchan_dump_full_vty(vty, conn->lchan); + if (conn->secondary_lchan) + lchan_dump_full_vty(vty, conn->secondary_lchan); +} + DEFUN(show_subscr_conn, show_subscr_conn_cmd, "show conns", @@ -1528,8 +1539,7 @@ vty_out(vty, "Active subscriber connections: %s", VTY_NEWLINE); llist_for_each_entry(conn, &net->subscr_conns, entry) { - vty_out(vty, "conn nr #%u:%s", count, VTY_NEWLINE); - lchan_dump_full_vty(vty, conn->lchan); + dump_one_subscr_conn(vty, conn); no_conns = false; count++; } -- To view, visit https://gerrit.osmocom.org/9415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2f8000844afc9da93ca39976399e5f76a45530de Gerrit-Change-Number: 9415 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 22:46:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 22:46:01 +0000 Subject: Change in osmo-bsc[master]: WIP: Add initial 3GPP LCLS support to OsmoBSC Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9416 Change subject: WIP: Add initial 3GPP LCLS support to OsmoBSC ...................................................................... WIP: Add initial 3GPP LCLS support to OsmoBSC This code doesn't yet actually change the media path to the local loopback, but it contains the following code: * receive/parse/interpret LCLS specific BSSMAP IEs and PDUs * osmo_fsm handling the various states and their transitions * call leg correlation (finding the other subscr_conn with same GCR) * communication between the two call-leg LCLS FSMs * detection of supported / unsupported LCLS configurations * display of GCR / LCLS information in "show conns" Change-Id: I614fade62834def5cafc94c4d2578cd747a3f9f7 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/osmo_bsc_lcls.h M src/libbsc/Makefile.am M src/libbsc/bsc_subscr_conn_fsm.c M src/libbsc/bsc_vty.c A src/libbsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_main.c 10 files changed, 818 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/16/9416/1 diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index bae13f0..0987be9 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -47,4 +47,5 @@ vty.h \ bsc_api.h \ penalty_timers.h \ + osmo_bsc_lcls.h \ $(NULL) diff --git a/include/osmocom/bsc/debug.h b/include/osmocom/bsc/debug.h index 2b3d150..1133bf6 100644 --- a/include/osmocom/bsc/debug.h +++ b/include/osmocom/bsc/debug.h @@ -23,5 +23,6 @@ DCTRL, DFILTER, DPCU, + DLCLS, Debug_LastEntry, }; diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 1cf79a5..b1fceb3 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -188,6 +188,18 @@ enum gsm48_chan_mode chan_mode; } user_plane; + + /* LCLS (local call, local switch) related state */ + struct { + uint8_t global_call_ref[15]; + uint8_t global_call_ref_len; /* length of global_call_ref */ + uint8_t config; /* TS 48.008 3.2.2.116 */ + uint8_t control;/* TS 48.008 3.2.2.117 */ + /* LCLS FSM */ + struct osmo_fsm_inst *fi; + /* pointer to "other" connection, if Call Leg Relocation was successful */ + struct gsm_subscriber_connection *other; + } lcls; }; diff --git a/include/osmocom/bsc/osmo_bsc_lcls.h b/include/osmocom/bsc/osmo_bsc_lcls.h new file mode 100644 index 0000000..cb43cf3 --- /dev/null +++ b/include/osmocom/bsc/osmo_bsc_lcls.h @@ -0,0 +1,36 @@ +#pragma once +#include + +enum lcls_fsm_state { + ST_NO_LCLS, + ST_NOT_YET_LS, + ST_NOT_POSSIBLE_LS, + ST_NO_LONGER_LS, + ST_REQ_LCLS_NOT_SUPP, + ST_LOCALLY_SWITCHED, + /* locally switched; received remote break; wait for "local" break */ + ST_LOCALLY_SWITCHED_WAIT_BREAK, + /* locally switched; received break; wait for "other" break */ + ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK, +}; + +enum lcls_event { + /* update LCLS config/control based on some BSSMAP signaling */ + LCLS_EV_UPDATE_CFG_CSC, + /* we have been identified as the correlation peer of another conn */ + LCLS_EV_CORRELATED, + /* "other" LCLS connection has enabled local switching */ + LCLS_EV_OTHER_ENABLED, + /* "other" LCLS connection is breaking local switch */ + LCLS_EV_OTHER_BREAK, + /* "other" LCLS connection is dying */ + LCLS_EV_OTHER_DEAD, +}; + +enum gsm0808_lcls_status lcls_get_status(struct gsm_subscriber_connection *conn); + +void lcls_update_config(struct gsm_subscriber_connection *conn, + const uint8_t *config, const uint8_t *control); + +extern struct osmo_fsm lcls_fsm; + diff --git a/src/libbsc/Makefile.am b/src/libbsc/Makefile.am index d215e14..2e44729 100644 --- a/src/libbsc/Makefile.am +++ b/src/libbsc/Makefile.am @@ -65,5 +65,6 @@ handover_decision_2.c \ bsc_subscr_conn_fsm.c \ meas_feed.c \ + osmo_bsc_lcls.c \ $(NULL) diff --git a/src/libbsc/bsc_subscr_conn_fsm.c b/src/libbsc/bsc_subscr_conn_fsm.c index 89ac482..46504c4 100644 --- a/src/libbsc/bsc_subscr_conn_fsm.c +++ b/src/libbsc/bsc_subscr_conn_fsm.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -223,6 +224,33 @@ return channel_mode << 4 | channel; } +/* Add the LCLS BSS Status IE to a BSSMAP message. We assume this is + * called on a msgb that was returned by gsm0808_create_ass_compl() */ +static void bssmap_add_lcls_status(struct msgb *msg, enum gsm0808_lcls_status status) +{ + OSMO_ASSERT(msg->l3h[0] == BSSAP_MSG_BSS_MANAGEMENT); + OSMO_ASSERT(msg->l3h[2] == BSS_MAP_MSG_ASSIGMENT_COMPLETE || + msg->l3h[2] == BSS_MAP_MSG_HANDOVER_RQST_ACKNOWLEDGE || + msg->l3h[2] == BSS_MAP_MSG_HANDOVER_COMPLETE || + msg->l3h[2] == BSS_MAP_MSG_HANDOVER_PERFORMED); + OSMO_ASSERT(msgb_tailroom(msg) >= 2); + + /* append IE to end of message */ + msgb_tv_put(msg, GSM0808_IE_LCLS_BSS_STATUS, status); + /* increment the "length" byte in the BSSAP header */ + msg->l3h[1] += 2; +} + +/* Add (append) the LCLS BSS Status IE to a BSSMAP message, if there is any LCLS + * active on the given \a conn */ +static void bssmap_add_lcls_status_if_needed(struct gsm_subscriber_connection *conn, + struct msgb *msg) +{ + enum gsm0808_lcls_status status = lcls_get_status(conn); + if (status != 0xff) + bssmap_add_lcls_status(msg, status); +} + /* Generate and send assignment complete message */ static void send_ass_compl(struct gsm_lchan *lchan, struct osmo_fsm_inst *fi, bool voice) { @@ -268,6 +296,9 @@ conn->sccp.conn_id); } + /* Add LCLS BSS-Status IE in case there is any LCLS status for this connection */ + bssmap_add_lcls_status_if_needed(conn, resp); + sigtran_send(conn, resp, fi); } @@ -1026,6 +1057,15 @@ conn->lchan = NULL; } + if (conn->lcls.other) { + LOGPFSML(fi, LOGL_DEBUG, "Signaling death to LCLS peern\n"); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_DEAD, conn); + conn->lcls.other = NULL; + } + + if (conn->lcls.fi) + osmo_fsm_inst_term(conn->lcls.fi, cause, NULL); + if (conn->bsub) { LOGPFSML(fi, LOGL_DEBUG, "Putting bsc_subscr\n"); bsc_subscr_put(conn->bsub); @@ -1117,6 +1157,7 @@ if (!g_initialized) { osmo_fsm_register(&gscon_fsm); + osmo_fsm_register(&lcls_fsm); g_initialized = true; } @@ -1137,6 +1178,15 @@ return NULL; } + /* initialize to some magic values that indicate "IE not [yet] received" */ + conn->lcls.config = 0xff; + conn->lcls.control = 0xff; + conn->lcls.fi = osmo_fsm_inst_alloc(&lcls_fsm, conn, conn, LOGL_NOTICE, NULL); + if (!conn->lcls.fi) { + osmo_fsm_inst_term(conn->fi, OSMO_FSM_TERM_ERROR, NULL); + return NULL; + } + llist_add_tail(&conn->entry, &net->subscr_conns); return conn; } diff --git a/src/libbsc/bsc_vty.c b/src/libbsc/bsc_vty.c index 1b76578..42d0af4 100644 --- a/src/libbsc/bsc_vty.c +++ b/src/libbsc/bsc_vty.c @@ -1521,6 +1521,14 @@ conn->sccp.conn_id, conn->sccp.msc->nr, conn->hodec2.failures, get_value_string(gsm48_chan_mode_names, conn->user_plane.chan_mode), conn->user_plane.mgw_endpoint, VTY_NEWLINE); + if (conn->lcls.global_call_ref_len) { + vty_out(vty, " LCLS GCR: %s%s", + osmo_hexdump_nospc(conn->lcls.global_call_ref, conn->lcls.global_call_ref_len), + VTY_NEWLINE); + vty_out(vty, " LCLS Config: 0x%02x, LCLS Control: 0x%02x, LCLS BSS Status: %s%s", + conn->lcls.config, conn->lcls.control, osmo_fsm_inst_state_name(conn->lcls.fi), + VTY_NEWLINE); + } lchan_dump_full_vty(vty, conn->lchan); if (conn->secondary_lchan) lchan_dump_full_vty(vty, conn->secondary_lchan); diff --git a/src/libbsc/osmo_bsc_lcls.c b/src/libbsc/osmo_bsc_lcls.c new file mode 100644 index 0000000..c00c9cd --- /dev/null +++ b/src/libbsc/osmo_bsc_lcls.c @@ -0,0 +1,646 @@ +/* (C) 2018 by Harald Welte + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct value_string lcls_event_names[] = { + { LCLS_EV_UPDATE_CFG_CSC, "UPDATE_CFG_CSC" }, + { LCLS_EV_CORRELATED, "CORRELATED" }, + { LCLS_EV_OTHER_ENABLED, "OTHER_ENABLED" }, + { LCLS_EV_OTHER_BREAK, "OTHER_BREAK" }, + { LCLS_EV_OTHER_DEAD, "OTHER_DEAD" }, + { 0, NULL } +}; + + +/*********************************************************************** + * Utility functions + ***********************************************************************/ + +enum gsm0808_lcls_status lcls_get_status(struct gsm_subscriber_connection *conn) +{ + if (!conn->lcls.fi) + return 0xff; + + switch (conn->lcls.fi->state) { + case ST_NO_LCLS: + return 0xff; + case ST_NOT_YET_LS: + return GSM0808_LCLS_STS_NOT_YET_LS; + case ST_NOT_POSSIBLE_LS: + return GSM0808_LCLS_STS_NOT_POSSIBLE_LS; + case ST_NO_LONGER_LS: + return GSM0808_LCLS_STS_NO_LONGER_LS; + case ST_REQ_LCLS_NOT_SUPP: + return GSM0808_LCLS_STS_REQ_LCLS_NOT_SUPP; + case ST_LOCALLY_SWITCHED: + case ST_LOCALLY_SWITCHED_WAIT_BREAK: + case ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK: + return GSM0808_LCLS_STS_LOCALLY_SWITCHED; + } + OSMO_ASSERT(0); +} + +static void lcls_send_notify(struct gsm_subscriber_connection *conn) +{ + enum gsm0808_lcls_status status = lcls_get_status(conn); + struct msgb *msg; + + if (status == 0xff) + return; + + LOGPFSM(conn->lcls.fi, "Sending BSSMAP LCLS NOTIFICATION\n"); + msg = gsm0808_create_lcls_notification(status, false); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_TX_SCCP, msg); +} + +static struct gsm_subscriber_connection * +find_conn_with_same_gcr(struct gsm_subscriber_connection *conn_local) +{ + struct gsm_network *net = conn_local->network; + struct gsm_subscriber_connection *conn_other; + + llist_for_each_entry(conn_other, &net->subscr_conns, entry) { + /* don't report back the same connection */ + if (conn_other == conn_local) + continue; + /* don't consider any conn where GCR length is not the same as before */ + if (conn_other->lcls.global_call_ref_len != conn_local->lcls.global_call_ref_len) + continue; + if (!memcmp(conn_other->lcls.global_call_ref, conn_local->lcls.global_call_ref, + conn_local->lcls.global_call_ref_len)) + return conn_other; + } + return NULL; +} + +static bool lcls_is_supported_config(enum gsm0808_lcls_config cfg) +{ + /* this is the only configuration that we support for now */ + if (cfg == GSM0808_LCLS_CFG_BOTH_WAY) + return true; + else + return false; +} + +/* LCLS Call Leg Correlation as per 23.284 4.3 / 48.008 3.1.33.2.1 */ +static int lcls_perform_correlation(struct gsm_subscriber_connection *conn_local) +{ + struct gsm_subscriber_connection *conn_other; + + OSMO_ASSERT(conn_local->lcls.global_call_ref_len); + OSMO_ASSERT(conn_local->lcls.other == NULL); + + conn_other = find_conn_with_same_gcr(conn_local); + if (!conn_other) { + /* we found no other call with same GCR: not possible */ + return -ENODEV; + } + + /* store pointer to "other" in "local" */ + conn_local->lcls.other = conn_other; + /* notify other conn about our correlation */ + osmo_fsm_inst_dispatch(conn_other->lcls.fi, LCLS_EV_CORRELATED, conn_local); + + return 0; +} + + +struct lcls_cfg_csc { + enum gsm0808_lcls_config config; + enum gsm0808_lcls_control control; +}; + +/* Update the connections LCLS configuration and return old/previous configuration. + * \returns (staticallly allocated) old configuration; NULL if new config not supported */ +static struct lcls_cfg_csc *update_lcls_cfg_csc(struct gsm_subscriber_connection *conn, + struct lcls_cfg_csc *new_cfg_csc) +{ + static struct lcls_cfg_csc old_cfg_csc; + old_cfg_csc.config = conn->lcls.config; + old_cfg_csc.control = conn->lcls.control; + + if (new_cfg_csc->config != 0xff) { + if (!lcls_is_supported_config(new_cfg_csc->config)) + return NULL; + if (conn->lcls.config != new_cfg_csc->config) { + /* TODO: logging */ + conn->lcls.config = new_cfg_csc->config; + } + } + if (new_cfg_csc->control != 0xff) { + if (conn->lcls.control != new_cfg_csc->control) { + /* TODO: logging */ + conn->lcls.control = new_cfg_csc->control; + } + } + + return &old_cfg_csc; +} + +/* Attempt to update conn->lcls with the new config/csc provided. If new config is + * unsupported, change into LCLS NOT SUPPORTED state and return -EINVAL. */ +static int lcls_handle_cfg_update(struct gsm_subscriber_connection *conn, void *data) +{ + struct lcls_cfg_csc *new_cfg_csc, *old_cfg_csc; + + new_cfg_csc = (struct lcls_cfg_csc *) data; + old_cfg_csc = update_lcls_cfg_csc(conn, new_cfg_csc); + if (!old_cfg_csc) { + osmo_fsm_inst_state_chg(conn->lcls.fi, ST_REQ_LCLS_NOT_SUPP, 0, 0); + return -EINVAL; + } + return 0; +} + +/* notify the LCLS FSM about new LCLS Config and/or CSC */ +void lcls_update_config(struct gsm_subscriber_connection *conn, + const uint8_t *config, const uint8_t *control) +{ + struct lcls_cfg_csc new_cfg = { + .config = 0xff, + .control = 0xff, + }; + /* nothing to update, skip it */ + if (!config && !control) + return; + if (config) + new_cfg.config = *config; + if (control) + new_cfg.control = *control; + osmo_fsm_inst_dispatch(conn->lcls.fi, LCLS_EV_UPDATE_CFG_CSC, &new_cfg); +} + +static int lcls_try_enable(struct gsm_subscriber_connection *conn) +{ + struct gsm_subscriber_connection *other_conn = conn->lcls.other; + OSMO_ASSERT(other_conn); + + if (!lcls_is_supported_config(conn->lcls.config)) { + LOGPFSM(conn->lcls.fi, "Not enabling due to unsupported local config\n"); + return -1; + } + + if (!lcls_is_supported_config(other_conn->lcls.config)) { + LOGPFSM(conn->lcls.fi, "Not enabling due to unsupported other config\n"); + return -1; + } + + if (conn->lcls.control != GSM0808_LCLS_CSC_CONNECT) { + LOGPFSM(conn->lcls.fi, "Not enabling due to insufficient local control\n"); + return -1; + } + + if (other_conn->lcls.control != GSM0808_LCLS_CSC_CONNECT) { + LOGPFSM(conn->lcls.fi, "Not enabling due to insufficient other control\n"); + return -1; + } + + return 0; +} + +/*********************************************************************** + * State callback functions + ***********************************************************************/ + +static void lcls_no_lcls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + /* we're just starting and cannot yet have a correlated call */ + OSMO_ASSERT(conn->lcls.other == NULL); + + /* If there's no GCR set, we can never leave this state */ + if (conn->lcls.global_call_ref_len == 0) { + LOGPFSML(fi, LOGL_NOTICE, "No GCR set, ignoring %s\n", + osmo_fsm_event_name(fi->fsm, event)); + return; + } + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + if (lcls_perform_correlation(conn) != 0) { + /* Correlation leads to no result: Not Possible to LS */ + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + return; + } + /* we now have two correlated calls */ + OSMO_ASSERT(conn->lcls.other); + if (lcls_try_enable(conn) != 0) { + /* Couldn't be enabled: Not yet LS */ + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + } else { + /* Local Switching now active */ + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_not_yet_ls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + /* not yet locally switched means that we have correlation but no instruction + * to actually connect them yet */ + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + if (lcls_try_enable(conn) == 0) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } + break; + case LCLS_EV_OTHER_ENABLED: + OSMO_ASSERT(conn->lcls.other == data); + if (lcls_try_enable(conn) == 0) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + } else { + /* we couldn't enable our side, so ask other side to break */ + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + } + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_not_possible_ls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other == NULL); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + if (lcls_perform_correlation(conn) != 0) { + /* no correlation result: Remain in NOT_POSSIBLE_LS */ + return; + } + /* we now have two correlated calls */ + OSMO_ASSERT(conn->lcls.other); + if (lcls_try_enable(conn) != 0) + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + else { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } + break; + case LCLS_EV_CORRELATED: + /* other call informs us that he correlated with us */ + conn->lcls.other = data; + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + /* Send NOTIFY about the fact that correlation happened */ + lcls_send_notify(conn); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_no_longer_ls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + if (lcls_try_enable(conn) == 0) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } + break; + case LCLS_EV_OTHER_ENABLED: + OSMO_ASSERT(conn->lcls.other == data); + if (lcls_try_enable(conn) == 0) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + } else { + /* we couldn't enable our side, so ask other side to break */ + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + } + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_req_lcls_not_supp_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + /* we could have a correlated other call or not */ + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + if (lcls_perform_correlation(conn) != 0) { + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + return; + } + /* we now have two correlated calls */ + OSMO_ASSERT(conn->lcls.other); + if (lcls_try_enable(conn) != 0) + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + else + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + break; + default: + OSMO_ASSERT(0); + break; + } + +} + +static void lcls_locally_switched_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + struct lcls_cfg_csc *cfg = NULL; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + cfg = data; + if (cfg->control == GSM0808_LCLS_CSC_RELEASE_LCLS) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + /* FIXME: what if there's a new config included? */ + return; + } + if (lcls_handle_cfg_update(conn, data) != 0) + return; + /* TODO: Handle any changes of "config" once we support bi-casting etc. */ + break; + case LCLS_EV_OTHER_BREAK: + OSMO_ASSERT(conn->lcls.other == data); + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED_WAIT_BREAK, 0, 0); + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_locally_switched_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other); + + /* FIXME: actually enable local switching */ + LOGPFSM(fi, "=== HERE IS WHERE WE ENABLE LCLS\n"); +} + +static void lcls_break_local_switching(struct gsm_subscriber_connection *conn) +{ + OSMO_ASSERT(conn->lcls.other); + + /* FIXME: actually disable local switching */ + LOGPFSM(conn->lcls.fi, "=== HERE IS WHERE WE DISABLE LCLS\n"); +} + +static void lcls_locally_switched_wait_break_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + struct lcls_cfg_csc *cfg = NULL; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + cfg = data; + if (cfg->control == GSM0808_LCLS_CSC_RELEASE_LCLS) { + lcls_break_local_switching(conn); + osmo_fsm_inst_state_chg(fi, ST_NO_LONGER_LS, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + /* no NOTIFY here, as the caller will be returning status in LCLS-CTRL-ACK */ + /* FIXME: what if there's a new config included? */ + return; + } + if (lcls_handle_cfg_update(conn, data) != 0) + return; + /* TODO: Handle any changes of "config" once we support bi-casting etc. */ + break; + case LCLS_EV_OTHER_BREAK: + /* we simply ignore it, must be a re-transmission */ + break; + case LCLS_EV_OTHER_DEAD: + default: + lcls_locally_switched_fn(fi, event, data); + break; + } +} + +static void lcls_locally_switched_wait_other_break_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + /* TODO: Handle any changes of "config" once we support bi-casting etc. */ + break; + case LCLS_EV_OTHER_BREAK: + OSMO_ASSERT(conn->lcls.other == data); + lcls_break_local_switching(conn); + osmo_fsm_inst_state_chg(fi, ST_NO_LONGER_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + case LCLS_EV_OTHER_DEAD: + default: + lcls_locally_switched_fn(fi, event, data); + break; + } +} + + + +/*********************************************************************** + * FSM Definition + ***********************************************************************/ + +#define S(x) (1 << (x)) + +static const struct osmo_fsm_state lcls_fsm_states[] = { + [ST_NO_LCLS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_CORRELATED), + .out_state_mask = S(ST_NO_LCLS) | + S(ST_NOT_YET_LS) | + S(ST_NOT_POSSIBLE_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NO_LCLS", + .action = lcls_no_lcls_fn, + }, + [ST_NOT_YET_LS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_CORRELATED) | + S(LCLS_EV_OTHER_ENABLED) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NOT_YET_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NOT_YET_LS", + .action = lcls_not_yet_ls_fn, + }, + [ST_NOT_POSSIBLE_LS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_CORRELATED), + .out_state_mask = S(ST_NOT_YET_LS) | + S(ST_NOT_POSSIBLE_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NOT_POSSIBLE_LS", + .action = lcls_not_possible_ls_fn, + }, + [ST_NO_LONGER_LS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_CORRELATED) | + S(LCLS_EV_OTHER_ENABLED) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NO_LONGER_LS", + .action = lcls_no_longer_ls_fn, + }, + [ST_REQ_LCLS_NOT_SUPP] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NOT_YET_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "REQ_LCLS_NOT_SUPP", + .action = lcls_req_lcls_not_supp_fn, + }, + [ST_LOCALLY_SWITCHED] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_OTHER_BREAK) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_NOT_POSSIBLE_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED_WAIT_BREAK) | + S(ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK) | + S(ST_LOCALLY_SWITCHED), + .name = "LOCALLY_SWITCHED", + .action = lcls_locally_switched_fn, + .onenter = lcls_locally_switched_onenter, + }, + /* received an "other" break, waiting for the local break */ + [ST_LOCALLY_SWITCHED_WAIT_BREAK] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_OTHER_BREAK) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED) | + S(ST_LOCALLY_SWITCHED_WAIT_BREAK), + .name = "LOCALLY_SWITCHED_WAIT_BREAK", + .action = lcls_locally_switched_wait_break_fn, + }, + /* received a local break, waiting for the "other" break */ + [ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_OTHER_BREAK) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED) | + S(ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK), + .name = "LOCALLY_SWITCHED_WAIT_OTHER_BREAK", + .action = lcls_locally_switched_wait_other_break_fn, + }, + + +}; + +struct osmo_fsm lcls_fsm = { + .name = "LCLS", + .states = lcls_fsm_states, + .num_states = ARRAY_SIZE(lcls_fsm_states), + .allstate_event_mask = 0, + .allstate_action = NULL, + .cleanup = NULL, + .timer_cb = NULL, + .log_subsys = DLCLS, + .event_names = lcls_event_names, +}; diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index f7f99fa..ae8407d 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -634,6 +635,57 @@ return -1; } +/* handle LCLS specific IES in BSSMAP ASS REQ */ +static void bssmap_handle_ass_req_lcls(struct gsm_subscriber_connection *conn, + const struct tlv_parsed *tp) +{ + const struct tlv_p_entry *tlv; + + tlv = TLVP_GET(tp, GSM0808_IE_GLOBAL_CALL_REF); + if (tlv) { + if (tlv->len > sizeof(conn->lcls.global_call_ref)) + LOGP(DMSC, LOGL_ERROR, "Global Call Ref IE of %u bytes too long.\n", tlv->len); + else { + memcpy(&conn->lcls.global_call_ref, tlv->val, tlv->len); + conn->lcls.global_call_ref_len = tlv->len; + } + } + + /* Update the LCLS state with Config + CSC (if any) */ + lcls_update_config(conn, TLVP_VAL_MINLEN(tp, GSM0808_IE_LCLS_CONFIG, 1), + TLVP_VAL_MINLEN(tp, GSM0808_IE_LCLS_CONN_STATUS_CTRL, 1)); +} + +/* TS 48.008 3.2.1.91 */ +static int bssmap_handle_lcls_connect_ctrl(struct gsm_subscriber_connection *conn, + struct msgb *msg, unsigned int length) +{ + struct msgb *resp; + struct tlv_parsed tp; + int rc; + + OSMO_ASSERT(conn); + + if (conn->lcls.global_call_ref_len == 0) { + /* no LCLS if no GCR set previously! */ + return 0; + } + + rc = tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); + if (rc < 0) + return rc; + + /* Update the LCLS state with Config + CSC (if any) */ + lcls_update_config(conn, TLVP_VAL_MINLEN(&tp, GSM0808_IE_LCLS_CONFIG, 1), + TLVP_VAL_MINLEN(&tp, GSM0808_IE_LCLS_CONN_STATUS_CTRL, 1)); + + resp = gsm0808_create_lcls_conn_ctrl_ack(lcls_get_status(conn)); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_TX_SCCP, resp); + + return 0; +} + + /* * Handle the assignment request message. * @@ -682,6 +734,8 @@ goto reject; } + bssmap_handle_ass_req_lcls(conn, &tp); + /* Currently we only support a limited subset of all * possible channel types, such as multi-slot or CSD */ switch (ct.ch_indctr) { @@ -852,6 +906,9 @@ case BSS_MAP_MSG_ASSIGMENT_RQST: ret = bssmap_handle_assignm_req(conn, msg, length); break; + case BSS_MAP_MSG_LCLS_CONNECT_CTRL: + ret = bssmap_handle_lcls_connect_ctrl(conn, msg, length); + break; default: LOGP(DMSC, LOGL_NOTICE, "Unimplemented msg type: %s\n", gsm0808_bssmap_name(msg->l4h[0])); diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index f3daccc..5d949b8 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -358,6 +358,12 @@ .description = "PCU Interface", .enabled = 1, .loglevel = LOGL_DEBUG, }, + [DLCLS] = { + .name = "DLCLS", + .description = "Local Call, Local Switch", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, + }; static int filter_fn(const struct log_context *ctx, struct log_target *tar) -- To view, visit https://gerrit.osmocom.org/9416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I614fade62834def5cafc94c4d2578cd747a3f9f7 Gerrit-Change-Number: 9416 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 1 20:18:09 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 01 Jun 2018 20:18:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b11aa07b30b3_1a87aca684497827@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 77s] @@ -6090,8 +6103,9 @@ [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) ack: (BSN=1176)"RRRRRRRRRRIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIRRRIRRRRRRRRRRRRRRRRRRRRRRRRRRI"(BSN=1287) R=ACK I=NACK [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) DL analysis, range=1176:1288, lost=73, recv=39, skipped=0, bsn=1944, info='RRRRRRRRRRRRRRRRRRRRRRRRRRLRRRLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRRRRRRRR................................................................................................................................................................................................................................................................................................................................................................................' [ 77s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 65% [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1186)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAANAAAAAAAAAAAAAAAAAAAAAAAAAA"(V(S)-1=1287) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid [ 77s] -DL packet loss of IMSI= / TLLI=0xffeeddcc: 78% [ 77s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 100% [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to RELEASING [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free [ 77s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! [ 77s] 4. testsuite.at:25: 4. tbf (testsuite.at:25): FAILED (testsuite.at:29) [ 77s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 77s] make[1]: *** [override_dh_auto_test] Error 1 [ 77s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 77s] debian/rules:12: recipe for target 'build' failed [ 77s] make: *** [build] Error 2 [ 77s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 77s] [ 77s] build77 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Fri Jun 1 20:17:52 UTC 2018. [ 77s] [ 77s] ### VM INTERACTION START ### [ 78s] Powering off. [ 78s] [ 73.472552] reboot: Power down [ 78s] ### VM INTERACTION END ### [ 78s] [ 78s] build77 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Fri Jun 1 20:17:54 UTC 2018. [ 78s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jun 1 22:49:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Jun 2018 22:49:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add LCLS related test cases In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9412 ) Change subject: bsc: Add LCLS related test cases ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9412/1/bsc/BSC_Tests_LCLS.ttcn File bsc/BSC_Tests_LCLS.ttcn: https://gerrit.osmocom.org/#/c/9412/1/bsc/BSC_Tests_LCLS.ttcn at 13 PS1, Line 13: There are test cases that run in so-called 'handler mode' and test cases : * that run directly on top of the BSSAP and RSL CodecPorts. The "handler mode" : * tests abstract the multiplexing/demultiplexing of multiple SCCP connections : * and/or RSL channels and are hence suitable for higher-level test cases, while : * the "raw" tests directly on top of the CodecPorts are more suitable for lower- : * level testing. this is copy+pasted from BSC_Tests.ttcn and needs alteration -- To view, visit https://gerrit.osmocom.org/9412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 Gerrit-Change-Number: 9412 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 01 Jun 2018 22:49:58 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 23:26:39 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Jun 2018 23:26:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: L3_Templates: add GSM 04.80 RELEASE_COMPLETE message In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9367 to look at the new patch set (#2). Change subject: L3_Templates: add GSM 04.80 RELEASE_COMPLETE message ...................................................................... L3_Templates: add GSM 04.80 RELEASE_COMPLETE message Change-Id: Iaf295aeb4ef475d41d0eeddcca5e864016fd91cc --- M library/L3_Templates.ttcn 1 file changed, 117 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/67/9367/2 -- To view, visit https://gerrit.osmocom.org/9367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iaf295aeb4ef475d41d0eeddcca5e864016fd91cc Gerrit-Change-Number: 9367 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 1 23:26:39 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Jun 2018 23:26:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add single *#100# request testcase In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9372 to look at the new patch set (#3). Change subject: msc/USSD: add single *#100# request testcase ...................................................................... msc/USSD: add single *#100# request testcase In this testcase we perform LUR, then request our own number and then expect the response with matching MSISDN. Change-Id: I82450c6f48f6c17bc33e0ec6c91f2a73e44793ad --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 65 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/72/9372/3 -- To view, visit https://gerrit.osmocom.org/9372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82450c6f48f6c17bc33e0ec6c91f2a73e44793ad Gerrit-Change-Number: 9372 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 11:05:06 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 2 Jun 2018 11:05:06 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Fix memory leak in case the storage can not be opened Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9417 Change subject: mobile/sms: Fix memory leak in case the storage can not be opened ...................................................................... mobile/sms: Fix memory leak in case the storage can not be opened Before jumping to the failure handling code free the sms_file. Change-Id: Ifce2bc130fe3a5bd49ad457ee61002952dd496ba --- M src/host/layer23/src/mobile/gsm411_sms.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/17/9417/1 diff --git a/src/host/layer23/src/mobile/gsm411_sms.c b/src/host/layer23/src/mobile/gsm411_sms.c index 9090697..3eca48a 100644 --- a/src/host/layer23/src/mobile/gsm411_sms.c +++ b/src/host/layer23/src/mobile/gsm411_sms.c @@ -213,8 +213,10 @@ snprintf(sms_file, len, "%s/%s", home, osmocomsms); fp = fopen(sms_file, "a"); - if (!fp) + if (!fp) { + talloc_free(sms_file); goto fail; + } fprintf(fp, "[SMS from %s]\n%s\n", gsms->address, gsms->text); fclose(fp); -- To view, visit https://gerrit.osmocom.org/9417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifce2bc130fe3a5bd49ad457ee61002952dd496ba Gerrit-Change-Number: 9417 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 11:05:07 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 2 Jun 2018 11:05:07 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Simplify the string format routines Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9418 Change subject: mobile/sms: Simplify the string format routines ...................................................................... mobile/sms: Simplify the string format routines It seems the original code didn't allocate \0 for the string. Just use talloc_asprintf and get a new string... Change-Id: I8ffb50b04d2d6196caf0231711f3467abc8c5ea5 --- M src/host/layer23/src/mobile/gsm411_sms.c 1 file changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/18/9418/1 diff --git a/src/host/layer23/src/mobile/gsm411_sms.c b/src/host/layer23/src/mobile/gsm411_sms.c index 3eca48a..fe13ba1 100644 --- a/src/host/layer23/src/mobile/gsm411_sms.c +++ b/src/host/layer23/src/mobile/gsm411_sms.c @@ -182,7 +182,6 @@ struct gsm_sms *gsms) { const char osmocomsms[] = ".osmocom/bb/sms.txt"; - int len; const char *home; char *sms_file; char vty_text[sizeof(gsms->text)], *p; @@ -206,11 +205,9 @@ "your home directory.\n", osmocomsms); return GSM411_RP_CAUSE_MT_MEM_EXCEEDED; } - len = strlen(home) + 1 + sizeof(osmocomsms); - sms_file = talloc_size(l23_ctx, len); + sms_file = talloc_asprintf(l23_ctx, "%s/%s", home, osmocomsms); if (!sms_file) goto fail; - snprintf(sms_file, len, "%s/%s", home, osmocomsms); fp = fopen(sms_file, "a"); if (!fp) { -- To view, visit https://gerrit.osmocom.org/9418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8ffb50b04d2d6196caf0231711f3467abc8c5ea5 Gerrit-Change-Number: 9418 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 11:15:35 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 2 Jun 2018 11:15:35 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Fix memory leak in case the storage can not be opened In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9417 ) Change subject: mobile/sms: Fix memory leak in case the storage can not be opened ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/9417/1/src/host/layer23/src/mobile/gsm411_sms.c File src/host/layer23/src/mobile/gsm411_sms.c: https://gerrit.osmocom.org/#/c/9417/1/src/host/layer23/src/mobile/gsm411_sms.c at 213 PS1, Line 213: snprintf(sms_file, len, "%s/%s", home, osmocomsms); Hmm, we also compose a similar path in main.c. Probably, it makes sense to compose this path once there, and store somewhere in ms->settings... -- To view, visit https://gerrit.osmocom.org/9417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifce2bc130fe3a5bd49ad457ee61002952dd496ba Gerrit-Change-Number: 9417 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 02 Jun 2018 11:15:35 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:44:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:44:44 +0000 Subject: Change in libosmocore[master]: gsm0808: Add value_string for LCLS related IEs Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9419 Change subject: gsm0808: Add value_string for LCLS related IEs ...................................................................... gsm0808: Add value_string for LCLS related IEs Change-Id: I18d7a29496929c761aeaba9c0aee847befc13108 --- M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 3 files changed, 51 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/19/9419/1 diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 8402957..d704aa9 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -27,6 +27,7 @@ #include #include #include +#include struct sockaddr_storage; @@ -135,4 +136,18 @@ const char *gsm0808_bssap_name(uint8_t msg_type); const char *gsm0808_cause_name(uint8_t cause); +extern const struct value_string gsm0808_lcls_config_names[]; +extern const struct value_string gsm0808_lcls_control_names[]; +extern const struct value_string gsm0808_lcls_status_names[]; + +static inline const char *gsm0808_lcls_config_name(uint8_t val) { + return get_value_string(gsm0808_lcls_config_names, val); +} +static inline const char *gsm0808_lcls_control_name(uint8_t val) { + return get_value_string(gsm0808_lcls_control_names, val); +} +static inline const char *gsm0808_lcls_status_name(uint8_t val) { + return get_value_string(gsm0808_lcls_status_names, val); +} + /*! @} */ diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 347e985..3a63137 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -1144,4 +1144,37 @@ return get_value_string(gsm0808_cause_names, cause); } +const struct value_string gsm0808_lcls_config_names[] = { + { GSM0808_LCLS_CFG_BOTH_WAY, "Connect both-way" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL, + "Connect both-way, bi-cast UL to CN" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_SEND_DL, + "Connect both-way, send access DL from CN" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_SEND_DL_BLOCK_LOCAL_DL, + "Connect both-way, send access DL from CN, block local DL" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL_SEND_DL, + "Connect both-way, bi-cast UL to CN, send access DL from CN" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL_SEND_DL_BLOCK_LOCAL_DL, + "Connect both-way, bi-cast UL to CN, send access DL from CN, block local DL" }, + { 0, NULL } +}; + +const struct value_string gsm0808_lcls_control_names[] = { + { GSM0808_LCLS_CSC_CONNECT, "Connect" }, + { GSM0808_LCLS_CSC_DO_NOT_CONNECT, "Do not connect" }, + { GSM0808_LCLS_CSC_RELEASE_LCLS, "Release LCLS" }, + { GSM0808_LCLS_CSC_BICAST_UL_AT_HANDOVER, "Bi-cast UL at Handover" }, + { GSM0808_LCLS_CSC_BICAST_UL_AND_RECV_DL_AT_HANDOVER, "Bi-cast UL and receive DL at Handover" }, + { 0, NULL } +}; + +const struct value_string gsm0808_lcls_status_names[] = { + { GSM0808_LCLS_STS_NOT_YET_LS, "Call not yet locally switched" }, + { GSM0808_LCLS_STS_NOT_POSSIBLE_LS, "Call not possible to be locally switched" }, + { GSM0808_LCLS_STS_NO_LONGER_LS, "Call is no longer locally switched" }, + { GSM0808_LCLS_STS_REQ_LCLS_NOT_SUPP, "Requested LCLS configuration is not supported" }, + { GSM0808_LCLS_STS_LOCALLY_SWITCHED, "Call is locally switched with requested LCLS config" }, + { 0, NULL } +}; + /*! @} */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index c05b4ee..117cecf 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -195,6 +195,9 @@ gsm0808_speech_codec_from_chan_type; gsm0808_speech_codec_type_names; gsm0808_channel_type_name; +gsm0808_lcls_config_names; +gsm0808_lcls_control_names; +gsm0808_lcls_status_names; gsm0858_rsl_ul_meas_enc; -- To view, visit https://gerrit.osmocom.org/9419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I18d7a29496929c761aeaba9c0aee847befc13108 Gerrit-Change-Number: 9419 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:44:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:44:45 +0000 Subject: Change in libosmocore[master]: fsm: Change semantics of LOGPFSML() log-level Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9420 Change subject: fsm: Change semantics of LOGPFSML() log-level ...................................................................... fsm: Change semantics of LOGPFSML() log-level The general idea about each osmo_fsm_instance having a separate log-level was to be able to selectively increase/show/enable logging for some FSM instances (e.g. of a particular subscriber) while maintaining normal logging verbosity for all other instances of the same FSM. The introduction of LOGPFSML() broke that idea, as it would use a compile-time log level, irrespective of the osmo_fsm_inst.log_level setting of the given instance. Let's combine the two: Use the explicit level stated at LOGPFSML(), _unless_ this instance has a higher log_level configured. This way, all FSMs should normally be created with osmo_fsm_inst.log_level == LOGL_DEBUG. At that point LOGPFSM() statements would be rendered at debug level, typically below the threshold of most logging configurations. Code that has explicit higher log levels like LOGPFSML(fi, LOGL_ERROR) would always be printed, as it is an error message. And if we now increase the osmo_fsm_inst.log_level, then even the normal LOGPFSM() statements would suddenly be logged at that higher level, selectively increasing log verbosity - like originally intended. Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a --- M include/osmocom/core/fsm.h 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/20/9420/1 diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index 67e00ad..9e1062f 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -120,7 +120,8 @@ void osmo_fsm_log_addr(bool log_addr); #define LOGPFSML(fi, level, fmt, args...) \ - LOGP((fi)->fsm->log_subsys, level, "%s{%s}: " fmt, \ + LOGP((fi)->fsm->log_subsys, OSMO_MAX(level, (fi)->log_level), \ + "%s{%s}: " fmt, \ osmo_fsm_inst_name(fi), \ osmo_fsm_state_name((fi)->fsm, (fi)->state), ## args) -- To view, visit https://gerrit.osmocom.org/9420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a Gerrit-Change-Number: 9420 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:44:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:44:45 +0000 Subject: Change in libosmocore[master]: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9421 Change subject: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum ...................................................................... tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum This is a combination of TLVP_VAP() and TLVP_GET_MINLEN() Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b --- M include/osmocom/gsm/tlv.h 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/9421/1 diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index a130dc8..84fd511 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -467,6 +467,16 @@ #define TLVP_GET_MINLEN(_tp, tag, min_len) \ (TLVP_PRES_LEN(_tp, tag, min_len)? &(_tp)->lv[tag] : NULL) +/*! Like TLVP_VAL(), but enforcing a minimum val length. + * \param[in] _tp pointer to \ref tlv_parsed. + * \param[in] tag IE tag to return. + * \param[in] min_len Minimum value length in bytes. + * \returns struct tlv_p_entry pointer, or NULL if not present or too short. + */ +#define TLVP_VAL_MINLEN(_tp, tag, min_len) \ + (TLVP_PRES_LEN(_tp, tag, min_len)? (_tp)->lv[tag].val : NULL) + + /*! Align given TLV element with 16 bit value to an even address * \param[in] tp pointer to \ref tlv_parsed * \param[in] pos element to return -- To view, visit https://gerrit.osmocom.org/9421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b Gerrit-Change-Number: 9421 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:52:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:52:34 +0000 Subject: Change in libosmocore[master]: fsm: Change semantics of LOGPFSML() log-level In-Reply-To: References: Message-ID: Hello Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9420 to look at the new patch set (#2). Change subject: fsm: Change semantics of LOGPFSML() log-level ...................................................................... fsm: Change semantics of LOGPFSML() log-level The general idea about each osmo_fsm_instance having a separate log-level was to be able to selectively increase/show/enable logging for some FSM instances (e.g. of a particular subscriber) while maintaining normal logging verbosity for all other instances of the same FSM. The introduction of LOGPFSML() in Change-Id If295fdabb3f31a0fd9490d1e0df57794c75ae547 broke that idea, as it would use a compile-time log level, irrespective of the osmo_fsm_inst.log_level setting of the given instance. Let's combine the two: Use the explicit level stated at LOGPFSML(), _unless_ this instance has a higher log_level configured. This way, all FSMs should normally be created with osmo_fsm_inst.log_level == LOGL_DEBUG. At that point LOGPFSM() statements would be rendered at debug level, typically below the threshold of most logging configurations. Code that has explicit higher log levels like LOGPFSML(fi, LOGL_ERROR) would always be printed, as it is an error message. And if we now increase the osmo_fsm_inst.log_level, then even the normal LOGPFSM() statements would suddenly be logged at that higher level, selectively increasing log verbosity - like originally intended. Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a --- M include/osmocom/core/fsm.h 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/20/9420/2 -- To view, visit https://gerrit.osmocom.org/9420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a Gerrit-Change-Number: 9420 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:52:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:52:34 +0000 Subject: Change in libosmocore[master]: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum In-Reply-To: References: Message-ID: Harald Welte has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9421 ) Change subject: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum ...................................................................... tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum This is a combination of TLVP_VAP() and TLVP_GET_MINLEN() Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b --- M include/osmocom/gsm/tlv.h 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/9421/2 -- To view, visit https://gerrit.osmocom.org/9421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b Gerrit-Change-Number: 9421 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:53:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:53:05 +0000 Subject: Change in libosmocore[master]: fsm: Change semantics of LOGPFSML() log-level In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9420 ) Change subject: fsm: Change semantics of LOGPFSML() log-level ...................................................................... Patch Set 2: added neels as reviewer, as he's the one who introduced LOGPFSML(). -- To view, visit https://gerrit.osmocom.org/9420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a Gerrit-Change-Number: 9420 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Sat, 02 Jun 2018 12:53:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:53:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:53:08 +0000 Subject: Change in libosmocore[master]: gsm0808: Add value_string for LCLS related IEs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9419 ) Change subject: gsm0808: Add value_string for LCLS related IEs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18d7a29496929c761aeaba9c0aee847befc13108 Gerrit-Change-Number: 9419 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:53:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:53:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:53:19 +0000 Subject: Change in libosmocore[master]: gsm0808: Add value_string for LCLS related IEs In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9419 ) Change subject: gsm0808: Add value_string for LCLS related IEs ...................................................................... gsm0808: Add value_string for LCLS related IEs Change-Id: I18d7a29496929c761aeaba9c0aee847befc13108 --- M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 3 files changed, 51 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 8402957..d704aa9 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -27,6 +27,7 @@ #include #include #include +#include struct sockaddr_storage; @@ -135,4 +136,18 @@ const char *gsm0808_bssap_name(uint8_t msg_type); const char *gsm0808_cause_name(uint8_t cause); +extern const struct value_string gsm0808_lcls_config_names[]; +extern const struct value_string gsm0808_lcls_control_names[]; +extern const struct value_string gsm0808_lcls_status_names[]; + +static inline const char *gsm0808_lcls_config_name(uint8_t val) { + return get_value_string(gsm0808_lcls_config_names, val); +} +static inline const char *gsm0808_lcls_control_name(uint8_t val) { + return get_value_string(gsm0808_lcls_control_names, val); +} +static inline const char *gsm0808_lcls_status_name(uint8_t val) { + return get_value_string(gsm0808_lcls_status_names, val); +} + /*! @} */ diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 347e985..3a63137 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -1144,4 +1144,37 @@ return get_value_string(gsm0808_cause_names, cause); } +const struct value_string gsm0808_lcls_config_names[] = { + { GSM0808_LCLS_CFG_BOTH_WAY, "Connect both-way" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL, + "Connect both-way, bi-cast UL to CN" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_SEND_DL, + "Connect both-way, send access DL from CN" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_SEND_DL_BLOCK_LOCAL_DL, + "Connect both-way, send access DL from CN, block local DL" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL_SEND_DL, + "Connect both-way, bi-cast UL to CN, send access DL from CN" }, + { GSM0808_LCLS_CFG_BOTH_WAY_AND_BICAST_UL_SEND_DL_BLOCK_LOCAL_DL, + "Connect both-way, bi-cast UL to CN, send access DL from CN, block local DL" }, + { 0, NULL } +}; + +const struct value_string gsm0808_lcls_control_names[] = { + { GSM0808_LCLS_CSC_CONNECT, "Connect" }, + { GSM0808_LCLS_CSC_DO_NOT_CONNECT, "Do not connect" }, + { GSM0808_LCLS_CSC_RELEASE_LCLS, "Release LCLS" }, + { GSM0808_LCLS_CSC_BICAST_UL_AT_HANDOVER, "Bi-cast UL at Handover" }, + { GSM0808_LCLS_CSC_BICAST_UL_AND_RECV_DL_AT_HANDOVER, "Bi-cast UL and receive DL at Handover" }, + { 0, NULL } +}; + +const struct value_string gsm0808_lcls_status_names[] = { + { GSM0808_LCLS_STS_NOT_YET_LS, "Call not yet locally switched" }, + { GSM0808_LCLS_STS_NOT_POSSIBLE_LS, "Call not possible to be locally switched" }, + { GSM0808_LCLS_STS_NO_LONGER_LS, "Call is no longer locally switched" }, + { GSM0808_LCLS_STS_REQ_LCLS_NOT_SUPP, "Requested LCLS configuration is not supported" }, + { GSM0808_LCLS_STS_LOCALLY_SWITCHED, "Call is locally switched with requested LCLS config" }, + { 0, NULL } +}; + /*! @} */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index c05b4ee..117cecf 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -195,6 +195,9 @@ gsm0808_speech_codec_from_chan_type; gsm0808_speech_codec_type_names; gsm0808_channel_type_name; +gsm0808_lcls_config_names; +gsm0808_lcls_control_names; +gsm0808_lcls_status_names; gsm0858_rsl_ul_meas_enc; -- To view, visit https://gerrit.osmocom.org/9419 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I18d7a29496929c761aeaba9c0aee847befc13108 Gerrit-Change-Number: 9419 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:53:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:53:24 +0000 Subject: Change in libosmocore[master]: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9421 ) Change subject: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b Gerrit-Change-Number: 9421 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:53:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:54:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:54:06 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Fix memory leak in case the storage can not be opened In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9417 ) Change subject: mobile/sms: Fix memory leak in case the storage can not be opened ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifce2bc130fe3a5bd49ad457ee61002952dd496ba Gerrit-Change-Number: 9417 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 02 Jun 2018 12:54:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:54:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:54:24 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Simplify the string format routines In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9418 ) Change subject: mobile/sms: Simplify the string format routines ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8ffb50b04d2d6196caf0231711f3467abc8c5ea5 Gerrit-Change-Number: 9418 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:54:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:54:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:54:50 +0000 Subject: Change in osmocom-bb[master]: mobile: Make time spent in c7 configurable In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9407 ) Change subject: mobile: Make time spent in c7 configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I25bc985cd4360d5e37d05a7b16b39eefb75ce20f Gerrit-Change-Number: 9407 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:54:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:54:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:54:57 +0000 Subject: Change in libosmocore[master]: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9421 ) Change subject: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/9421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b Gerrit-Change-Number: 9421 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:54:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:55:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:55:03 +0000 Subject: Change in libosmocore[master]: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9421 ) Change subject: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum ...................................................................... Patch Set 3: -Verified -- To view, visit https://gerrit.osmocom.org/9421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b Gerrit-Change-Number: 9421 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:55:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:55:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:55:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: L3_Templates: add GSM 04.80 RELEASE_COMPLETE message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9367 ) Change subject: L3_Templates: add GSM 04.80 RELEASE_COMPLETE message ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaf295aeb4ef475d41d0eeddcca5e864016fd91cc Gerrit-Change-Number: 9367 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:55:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:56:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:56:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add single *#100# request testcase In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9372 ) Change subject: msc/USSD: add single *#100# request testcase ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82450c6f48f6c17bc33e0ec6c91f2a73e44793ad Gerrit-Change-Number: 9372 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 12:56:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:56:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:56:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: L3_Templates: add GSM 04.80 RELEASE_COMPLETE message In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9367 ) Change subject: L3_Templates: add GSM 04.80 RELEASE_COMPLETE message ...................................................................... L3_Templates: add GSM 04.80 RELEASE_COMPLETE message Change-Id: Iaf295aeb4ef475d41d0eeddcca5e864016fd91cc --- M library/L3_Templates.ttcn 1 file changed, 117 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 593c990..b346da6 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -1318,6 +1318,25 @@ facilityInformation := facility } +private function f_facility_or_omit(template (omit) OCTN facility) +return template (omit) Facility_TLV { + if (istemplatekind(facility, "omit")) { + return omit; + } else { + return ts_FacTLV(valueof(facility)); + } +} +private function f_facility_or_wc(template OCTN facility) +return template Facility_TLV { + if (istemplatekind(facility, "*")) { + return *; + } else if (istemplatekind(facility, "?")) { + return ?; + } else { + return tr_FacTLV(facility); + } +} + template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_REGISTER( uint3_t tid, BIT1 ti_flag, OCTN facility, @@ -1502,6 +1521,104 @@ } } +template (value) PDU_ML3_MS_NW ts_ML3_MO_SS_RELEASE_COMPLETE( + uint3_t tid, BIT1 ti_flag, + template (omit) ML3_Cause_TLV cause := omit, + template (omit) OCTN facility := omit +) := { + discriminator := '1011'B, + tiOrSkip := { + transactionId := { + tio := int2bit(tid, 3), + tiFlag := ti_flag, + tIExtension := omit + } + }, + msgs := { + ss := { + releaseComplete_MS_NW := { + messageType := '101010'B, + nsd := '00'B, + cause := cause, + facility := f_facility_or_omit(facility) + } + } + } +} +template PDU_ML3_MS_NW tr_ML3_MO_SS_RELEASE_COMPLETE( + template uint3_t tid, template BIT1 ti_flag, + template ML3_Cause_TLV cause := *, + template OCTN facility := * +) := { + discriminator := '1011'B, + tiOrSkip := { + transactionId := { + tio := f_tid_or_wc(tid), + tiFlag := ti_flag, + tIExtension := omit + } + }, + msgs := { + ss := { + releaseComplete_MS_NW := { + messageType := '101010'B, + nsd := '00'B, + cause := cause, + facility := f_facility_or_wc(facility) + } + } + } +} + +template (value) PDU_ML3_NW_MS ts_ML3_MT_SS_RELEASE_COMPLETE( + uint3_t tid, BIT1 ti_flag, + template (omit) ML3_Cause_TLV cause := omit, + template (omit) OCTN facility := omit +) := { + discriminator := '1011'B, + tiOrSkip := { + transactionId := { + tio := int2bit(tid, 3), + tiFlag := ti_flag, + tIExtension := omit + } + }, + msgs := { + ss := { + releaseComplete_NW_MS := { + messageType := '101010'B, + nsd := '00'B, + cause := cause, + facility := f_facility_or_omit(facility) + } + } + } +} +template PDU_ML3_NW_MS tr_ML3_MT_SS_RELEASE_COMPLETE( + template uint3_t tid, template BIT1 ti_flag, + template ML3_Cause_TLV cause := *, + template OCTN facility := * +) := { + discriminator := '1011'B, + tiOrSkip := { + transactionId := { + tio := f_tid_or_wc(tid), + tiFlag := ti_flag, + tIExtension := omit + } + }, + msgs := { + ss := { + releaseComplete_NW_MS := { + messageType := '101010'B, + nsd := '00'B, + cause := cause, + facility := f_facility_or_wc(facility) + } + } + } +} + /*********************************************************************** * GPRS Mobility Management ***********************************************************************/ -- To view, visit https://gerrit.osmocom.org/9367 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iaf295aeb4ef475d41d0eeddcca5e864016fd91cc Gerrit-Change-Number: 9367 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:56:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:56:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library: introduce Facility IE templates for SS/USSD In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9368 ) Change subject: library: introduce Facility IE templates for SS/USSD ...................................................................... library: introduce Facility IE templates for SS/USSD Change-Id: Ibc3e8f70230d656b2f0994ea0c63e6554b6165de --- A library/SS_Templates.ttcn 1 file changed, 202 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/SS_Templates.ttcn b/library/SS_Templates.ttcn new file mode 100644 index 0000000..316b71b --- /dev/null +++ b/library/SS_Templates.ttcn @@ -0,0 +1,202 @@ +module SS_Templates { + +/* SS/USSD Facility IE templates, building on top of SS_Types. + * + * (C) 2018 by Vadim Yanitskiy + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from SS_Types all; + +/* GSM TS 04.80, section 4.5, SS operation code */ +type enumerated SS_Op_Code { + SS_OP_CODE_REGISTER_SS ('0A'O), + SS_OP_CODE_ERASE_SS ('0B'O), + SS_OP_CODE_ACTIVATE_SS ('0C'O), + SS_OP_CODE_DEACTIVATE_SS ('0D'O), + SS_OP_CODE_INTERROGATE_SS ('0E'O), + SS_OP_CODE_NOTIFY_SS ('10'O), + SS_OP_CODE_REGISTER_PASSWORD ('11'O), + SS_OP_CODE_GET_PASSWORD ('12'O), + SS_OP_CODE_PROCESS_USS_DATA ('13'O), + SS_OP_CODE_FORWARD_CHECK_SS_IND ('26'O), + SS_OP_CODE_PROCESS_USS_REQ ('3B'O), + SS_OP_CODE_USS_REQUEST ('3C'O), + SS_OP_CODE_USS_NOTIFY ('3D'O), + SS_OP_CODE_FORWARD_CUG_INFO ('78'O), + SS_OP_CODE_SPLIT_MPTY ('79'O), + SS_OP_CODE_RETRIEVE_MPTY ('7A'O), + SS_OP_CODE_HOLD_MPTY ('7B'O), + SS_OP_CODE_BUILD_MPTY ('7C'O), + SS_OP_CODE_FORWARD_CHARGE_ADVICE ('7D'O) +} + +/* GSM TS 04.80, section 4.5, SS error code */ +type enumerated SS_Err_Code { + SS_ERR_CODE_UNKNOWN_SUBSCRIBER ('01'O), + SS_ERR_CODE_ILLEGAL_SUBSCRIBER ('09'O), + SS_ERR_CODE_BEARER_SERVICE_NOT_PROVISIONED ('0A'O), + SS_ERR_CODE_TELESERVICE_NOT_PROVISIONED ('0B'O), + SS_ERR_CODE_ILLEGAL_EQUIPMENT ('0C'O), + SS_ERR_CODE_CALL_BARRED ('0D'O), + SS_ERR_CODE_ILLEGAL_SS_OPERATION ('10'O), + SS_ERR_CODE_SS_ERROR_STATUS ('11'O), + SS_ERR_CODE_SS_NOT_AVAILABLE ('12'O), + SS_ERR_CODE_SS_SUBSCRIPTION_VIOLATION ('13'O), + SS_ERR_CODE_SS_INCOMPATIBILITY ('14'O), + SS_ERR_CODE_FACILITY_NOT_SUPPORTED ('15'O), + SS_ERR_CODE_ABSENT_SUBSCRIBER ('1B'O), + SS_ERR_CODE_SYSTEM_FAILURE ('22'O), + SS_ERR_CODE_DATA_MISSING ('23'O), + SS_ERR_CODE_UNEXPECTED_DATA_VALUE ('24'O), + SS_ERR_CODE_PW_REGISTRATION_FAILURE ('25'O), + SS_ERR_CODE_NEGATIVE_PW_CHECK ('26'O), + SS_ERR_CODE_NUM_PW_ATTEMPTS_VIOLATION ('2B'O), + SS_ERR_CODE_UNKNOWN_ALPHABET ('47'O), + SS_ERR_CODE_USSD_BUSY ('48'O), + SS_ERR_CODE_MAX_MPTY_PARTICIPANTS ('7E'O), + SS_ERR_CODE_RESOURCES_NOT_AVAILABLE ('7F'O) +} + +/** + * According to GSM TS 02.90, section 4.1.1, + * the mobile initiated USSD request shall contain + * an alphabet indicator set to "SMS default alphabet" + * and language indicator set to "language unspecified". + * + * This DCS value is used quite often, so it makes + * sense to define it here as a constant. + */ +const octetstring SS_USSD_DEFAULT_DCS := '0F'O; + +template (value) SS_FacilityInformation ts_SS_USSD_FACILITY_INVOKE( + integer invoke_id := 1, + SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ, + octetstring ussd_dcs := SS_USSD_DEFAULT_DCS, + octetstring ussd_string := 'AA180C3602'O // *#100# +) := { + { + invoke := { + invokeId := { present_ := invoke_id }, + linkedId := omit, + opcode := { + local := enum2int(op_code) + }, + argument := { + uSSD_Arg := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string, + alertingPattern := omit, + msisdn := omit + } + } + } + } +} +template SS_FacilityInformation tr_SS_USSD_FACILITY_INVOKE( + template integer invoke_id := ?, + template integer op_code := ?, + template octetstring ussd_dcs := ?, + template octetstring ussd_string := ? +) := { + { + invoke := { + invokeId := { present_ := invoke_id }, + linkedId := omit, + opcode := { + local := op_code + }, + argument := { + uSSD_Arg := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string, + alertingPattern := omit, + msisdn := omit + } + } + } + } +} + +template (value) SS_FacilityInformation ts_SS_USSD_FACILITY_RETURN_RESULT( + integer invoke_id := 1, + SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ, + octetstring ussd_dcs, + octetstring ussd_string +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := { + opcode := { + local := enum2int(op_code) + }, + result := { + uSSD_Res := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string + } + } + } + } + } +} +template SS_FacilityInformation tr_SS_USSD_FACILITY_RETURN_RESULT( + template integer invoke_id := ?, + template integer op_code := ?, + template octetstring ussd_dcs := ?, + template octetstring ussd_string := ? +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := { + opcode := { + local := op_code + }, + result := { + uSSD_Res := { + ussd_DataCodingScheme := ussd_dcs, + ussd_String := ussd_string + } + } + } + } + } +} + +/* Common for both structured and unstructured SS */ +template (value) SS_FacilityInformation ts_SS_FACILITY_RETURN_ERROR( + integer invoke_id := 1, + SS_Err_Code err_code +) := { + { + returnError := { + invokeId := { present_ := invoke_id }, + errcode := { + local := enum2int(err_code) + }, + parameter := omit + } + } +} +template SS_FacilityInformation tr_SS_FACILITY_RETURN_ERROR( + template integer invoke_id := ?, + template integer err_code := ? +) := { + { + returnError := { + invokeId := { present_ := invoke_id }, + errcode := { + local := err_code + }, + parameter := omit + } + } +} + +} -- To view, visit https://gerrit.osmocom.org/9368 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibc3e8f70230d656b2f0994ea0c63e6554b6165de Gerrit-Change-Number: 9368 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:56:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:56:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: import GSM 7-bit coding functions In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9369 ) Change subject: msc: import GSM 7-bit coding functions ...................................................................... msc: import GSM 7-bit coding functions Change-Id: Ie8dd865d0c4c64827284c737d431e6c87b3d0847 --- M msc/gen_links.sh M msc/regen_makefile.sh 2 files changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/gen_links.sh b/msc/gen_links.sh index 0ceed43..1fe5d6e 100755 --- a/msc/gen_links.sh +++ b/msc/gen_links.sh @@ -10,6 +10,7 @@ DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h" +FILES+=" TCCEncoding_Functions.ttcn TCCEncoding.cc " # GSM 7-bit coding gen_links $DIR $FILES DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src diff --git a/msc/regen_makefile.sh b/msc/regen_makefile.sh index 5798f8a..556d69e 100755 --- a/msc/regen_makefile.sh +++ b/msc/regen_makefile.sh @@ -1,6 +1,6 @@ #!/bin/sh -FILES="*.ttcn *.ttcnpp SCCP_EncDec.cc SCTPasp_PT.cc TCCConversion.cc TCCInterface.cc UD_PT.cc MNCC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc SDP_EncDec.cc RTP_EncDec.cc IPA_CodecPort_CtrlFunctDef.cc RTP_CodecPort_CtrlFunctDef.cc MGCP_CodecPort_CtrlFunctDef.cc TELNETasp_PT.cc Native_FunctionDefs.cc SMPP_EncDec.cc SMPP_CodecPort_CtrlFunctDef.cc MAP_EncDec.cc SS_EncDec.cc *.c *.asn" +FILES="*.ttcn *.ttcnpp SCCP_EncDec.cc SCTPasp_PT.cc TCCConversion.cc TCCInterface.cc UD_PT.cc MNCC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc SDP_EncDec.cc RTP_EncDec.cc IPA_CodecPort_CtrlFunctDef.cc RTP_CodecPort_CtrlFunctDef.cc MGCP_CodecPort_CtrlFunctDef.cc TELNETasp_PT.cc Native_FunctionDefs.cc SMPP_EncDec.cc SMPP_CodecPort_CtrlFunctDef.cc MAP_EncDec.cc SS_EncDec.cc TCCEncoding.cc *.c *.asn" export CPPFLAGS_TTCN3="-DIPA_EMULATION_MGCP -DIPA_EMULATION_GSUP -DIPA_EMULATION_SCCP -DUSE_MTP3_DISTRIBUTOR" -- To view, visit https://gerrit.osmocom.org/9369 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie8dd865d0c4c64827284c737d431e6c87b3d0847 Gerrit-Change-Number: 9369 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:56:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:56:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: introduce USSD helper functions In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9370 ) Change subject: msc: introduce USSD helper functions ...................................................................... msc: introduce USSD helper functions Change-Id: Ic528b968a9bc7c12e8395364e895400aa016c8f5 --- A msc/USSD_Helpers.ttcn M msc/gen_links.sh 2 files changed, 64 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/USSD_Helpers.ttcn b/msc/USSD_Helpers.ttcn new file mode 100644 index 0000000..6a71681 --- /dev/null +++ b/msc/USSD_Helpers.ttcn @@ -0,0 +1,63 @@ +module USSD_Helpers { + +/* USSD helpers for composing messages, building on top + * of both L3_Templates and USSD_Templates. + * + * (C) 2018 by Vadim Yanitskiy + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from TCCEncoding_Functions all; + +import from SS_Templates all; +import from SS_Types all; + +function f_USSD_FACILITY_IE_INVOKE( + integer invoke_id := 1, + SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ, + charstring ussd_string := "*#100#" +) return octetstring { + var SS_FacilityInformation facility_ie; + var octetstring ussd_string_enc; + + /* Encode input string with GSM 7-bit encoding */ + ussd_string_enc := f_encGSM7bit(ussd_string); + + /* Encode Facility IE */ + facility_ie := valueof(ts_SS_USSD_FACILITY_INVOKE( + invoke_id := invoke_id, + op_code := op_code, + ussd_dcs := SS_USSD_DEFAULT_DCS, + ussd_string := ussd_string_enc + )); + + return enc_SS_FacilityInformation(facility_ie); +} + +function f_USSD_FACILITY_IE_RETURN_RESULT( + integer invoke_id := 1, + SS_Op_Code op_code := SS_OP_CODE_PROCESS_USS_REQ, + charstring ussd_string := "Lorem Ipsum" +) return octetstring { + var SS_FacilityInformation facility_ie; + var octetstring ussd_string_enc; + + /* Encode input string with GSM 7-bit encoding */ + ussd_string_enc := f_encGSM7bit(ussd_string); + + /* Encode Facility IE */ + facility_ie := valueof(ts_SS_USSD_FACILITY_RETURN_RESULT( + invoke_id := invoke_id, + op_code := op_code, + ussd_dcs := SS_USSD_DEFAULT_DCS, + ussd_string := ussd_string_enc + )); + + return enc_SS_FacilityInformation(facility_ie); +} + +} diff --git a/msc/gen_links.sh b/msc/gen_links.sh index 1fe5d6e..8b40268 100755 --- a/msc/gen_links.sh +++ b/msc/gen_links.sh @@ -90,6 +90,7 @@ FILES+="RTP_CodecPort.ttcn RTP_CodecPort_CtrlFunctDef.cc " FILES+="MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunctDef.cc " FILES+="SMPP_CodecPort.ttcn SMPP_CodecPort_CtrlFunct.ttcn SMPP_CodecPort_CtrlFunctDef.cc SMPP_Emulation.ttcn SMPP_Templates.ttcn " +FILES+="SS_Templates.ttcn " gen_links $DIR $FILES ignore_pp_results -- To view, visit https://gerrit.osmocom.org/9370 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic528b968a9bc7c12e8395364e895400aa016c8f5 Gerrit-Change-Number: 9370 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:56:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:56:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/BSC_ConnectionHandler.ttcn: add EST_TYPE_SS_ACT for SS/USSD In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9371 ) Change subject: msc/BSC_ConnectionHandler.ttcn: add EST_TYPE_SS_ACT for SS/USSD ...................................................................... msc/BSC_ConnectionHandler.ttcn: add EST_TYPE_SS_ACT for SS/USSD Change-Id: If439e7c082b435d7f668065c9f8e3bdfa941dcc5 --- M msc/BSC_ConnectionHandler.ttcn 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index b7a4f50..803cb4d 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -192,7 +192,8 @@ EST_TYPE_MO_CALL, EST_TYPE_EMERG_CALL, EST_TYPE_PAG_RESP, - EST_TYPE_MO_SMS + EST_TYPE_MO_SMS, + EST_TYPE_SS_ACT }; /* helper function to fully establish a dedicated channel */ @@ -221,6 +222,9 @@ case (EST_TYPE_MO_SMS) { l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_SMS, mi)); } + case (EST_TYPE_SS_ACT) { + l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_SS_ACT, mi)); + } } /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */ -- To view, visit https://gerrit.osmocom.org/9371 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If439e7c082b435d7f668065c9f8e3bdfa941dcc5 Gerrit-Change-Number: 9371 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 12:56:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 12:56:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add single *#100# request testcase In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9372 ) Change subject: msc/USSD: add single *#100# request testcase ...................................................................... msc/USSD: add single *#100# request testcase In this testcase we perform LUR, then request our own number and then expect the response with matching MSISDN. Change-Id: I82450c6f48f6c17bc33e0ec6c91f2a73e44793ad --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 65 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index f843839..05d6b4f 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -51,6 +51,10 @@ import from SMPP_Templates all; import from SMPP_Emulation all; +import from SS_Types all; +import from SS_Templates all; +import from USSD_Helpers all; + const integer NUM_BSC := 2; type record of BSSAP_Configuration BSSAP_Configurations; @@ -2101,6 +2105,64 @@ vc_conn.done; } +/*********************************************************************** + * USSD Testing + ***********************************************************************/ + +private function f_tc_lu_and_ussd_single_req(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Perform location update */ + f_perform_lu(); + + /* Send CM Service Request for SS/USSD */ + f_establish_fully(EST_TYPE_SS_ACT); + + /* Compose a new SS/REGISTER message with request */ + var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( + tid := 1, /* We just need a single transaction */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "*#100#" + ) + ); + + /* Compose SS/RELEASE_COMPLETE template with expected response */ + var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := 1, /* Response should arrive within the same transaction */ + ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ + facility := f_USSD_FACILITY_IE_RETURN_RESULT( + invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "Your extension is " & hex2str(g_pars.msisdn) & "\r" + ) + ); + + /* Request own number request */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); + alt { + /* We expect RELEASE_COMPLETE message with the response */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + } + + f_expect_clear(); +} +testcase TC_lu_and_ussd_single_req() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_single_req), 46); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2182,6 +2244,8 @@ execute( TC_smpp_mo_sms() ); execute( TC_smpp_mt_sms() ); + execute( TC_lu_and_ussd_single_req() ); + /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); } diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 42e47b2..ac18fde 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -71,4 +71,5 @@ + -- To view, visit https://gerrit.osmocom.org/9372 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I82450c6f48f6c17bc33e0ec6c91f2a73e44793ad Gerrit-Change-Number: 9372 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 13:16:39 2018 From: gerrit-no-reply at lists.osmocom.org (Thorsten Alteholz) Date: Sat, 2 Jun 2018 13:16:39 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Thorsten Alteholz has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 2: I wonder why Section: shall be contrib for that package ... -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Sat, 02 Jun 2018 13:16:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 13:22:34 2018 From: gerrit-no-reply at lists.osmocom.org (Thorsten Alteholz) Date: Sat, 2 Jun 2018 13:22:34 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Thorsten Alteholz has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 2: setup.py is also made by Katerina Barone-Adesi but licensed under AGPL and not yet in debian/copyright -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Sat, 02 Jun 2018 13:22:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 13:43:36 2018 From: gerrit-no-reply at lists.osmocom.org (Thorsten Alteholz) Date: Sat, 2 Jun 2018 13:43:36 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Thorsten Alteholz has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 2: Would it be a solution for the split to use something like setup-lib.py and setup-scripts.py and add two other calls in override_dh_auto_install (otherwise the copying/moving of the scripts could be done manually as well) -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Sat, 02 Jun 2018 13:43:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 14:12:36 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 2 Jun 2018 14:12:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GSUP_Types.ttcn: add SS related messages and IEs Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9422 Change subject: GSUP_Types.ttcn: add SS related messages and IEs ...................................................................... GSUP_Types.ttcn: add SS related messages and IEs Recently we introduced a few new GSUP IEs, related to TCAP-like session management and Supplementary Services in libosmocore. Let's sync the TTCN-3 implementation and add the corresponding templates for SS payloads. Change-Id: I54767e49ae98db67f71dd28278b14435860313e0 --- M library/GSUP_Types.ttcn 1 file changed, 153 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/22/9422/1 diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn index 4c2aac0..359e272 100644 --- a/library/GSUP_Types.ttcn +++ b/library/GSUP_Types.ttcn @@ -39,7 +39,11 @@ OSMO_GSUP_AUTN_IE ('25'O), OSMO_GSUP_AUTS_IE ('26'O), OSMO_GSUP_RES_IE ('27'O), - OSMO_GSUP_CN_DOMAIN_IE ('28'O) + OSMO_GSUP_CN_DOMAIN_IE ('28'O), + + OSMO_GSUP_SESSION_ID_IE ('30'O), + OSMO_GSUP_SESSION_STATE_IE ('31'O), + OSMO_GSUP_SS_INFO_IE ('35'O) } with { variant "FIELDLENGTH(8)" }; type enumerated GSUP_MessageType { @@ -67,7 +71,11 @@ OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST ('00011100'B), OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR ('00011101'B), - OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT ('00011110'B) + OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT ('00011110'B), + + OSMO_GSUP_MSGT_PROC_SS_REQUEST ('00100000'B), + OSMO_GSUP_MSGT_PROC_SS_ERROR ('00100001'B), + OSMO_GSUP_MSGT_PROC_SS_RESULT ('00100010'B) } with { variant "FIELDLENGTH(8)" }; type enumerated GSUP_CancelType { @@ -80,6 +88,13 @@ OSMO_GSUP_CN_DOMAIN_CS (2) } with { variant "FIELDLENGTH(8)" }; +type enumerated GSUP_SessionState { + OSMO_GSUP_SESSION_STATE_NONE (0), + OSMO_GSUP_SESSION_STATE_BEGIN (1), + OSMO_GSUP_SESSION_STATE_CONTINUE (2), + OSMO_GSUP_SESSION_STATE_END (3) +} with { variant "FIELDLENGTH(8)" }; + type record GSUP_MSISDN { uint8_t len, hexstring digits optional @@ -110,6 +125,9 @@ pdp_qos, tag = OSMO_GSUP_PDP_QOS_IE; pdp_type, tag = OSMO_GSUP_PDP_TYPE_IE; charg_char, tag = OSMO_GSUP_CHARG_CHAR_IE; + session_state, tag = OSMO_GSUP_SESSION_STATE_IE; + session_id, tag = OSMO_GSUP_SESSION_ID_IE; + ss_info, tag = OSMO_GSUP_SS_INFO_IE; )" }; @@ -138,7 +156,12 @@ octetstring apn, octetstring pdp_qos, OCT2 pdp_type, - octetstring charg_char + octetstring charg_char, + /* Session information */ + GSUP_SessionState session_state, + OCT4 session_id, + /* Supplementary Services */ + octetstring ss_info }; type record GSUP_PDU { @@ -513,5 +536,132 @@ } } +template (value) GSUP_IE ts_GSUP_IE_SessionId(OCT4 sid) := { + tag := OSMO_GSUP_SESSION_ID_IE, + len := 0, /* overwritten */ + val := { + session_id := sid + } +} +template GSUP_IE tr_GSUP_IE_SessionId(template OCT4 sid) := { + tag := OSMO_GSUP_SESSION_ID_IE, + len := ?, + val := { + session_id := sid + } +} + +template (value) GSUP_IE ts_GSUP_IE_SessionState(GSUP_SessionState state) := { + tag := OSMO_GSUP_SESSION_STATE_IE, + len := 0, /* overwritten */ + val := { + session_state := state + } +} +template GSUP_IE tr_GSUP_IE_SessionState(template GSUP_SessionState state) := { + tag := OSMO_GSUP_SESSION_STATE_IE, + len := ?, + val := { + session_state := state + } +} + +template (value) GSUP_IE ts_GSUP_IE_SSInfo(octetstring ss) := { + tag := OSMO_GSUP_SS_INFO_IE, + len := 0, /* overwritten */ + val := { + ss_info := ss + } +} +template GSUP_IE tr_GSUP_IE_SSInfo(template octetstring ss) := { + tag := OSMO_GSUP_SS_INFO_IE, + len := ?, + val := { + ss_info := ss + } +} + +template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ( + hexstring imsi, + OCT4 sid, + GSUP_SessionState state, + octetstring ss +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_REQUEST, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_SessionState(state)), + valueof(ts_GSUP_IE_SSInfo(ss)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_REQ( + template hexstring imsi, + template OCT4 sid := ?, + template GSUP_SessionState state := ?, + template octetstring ss := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_REQUEST, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_SessionState(state), + tr_GSUP_IE_SSInfo(ss) + } +); + +template (value) GSUP_PDU ts_GSUP_PROC_SS_RES( + hexstring imsi, + OCT4 sid, + GSUP_SessionState state, + octetstring ss +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_SessionState(state)), + valueof(ts_GSUP_IE_SSInfo(ss)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_RES( + template hexstring imsi, + template OCT4 sid := ?, + template GSUP_SessionState state := ?, + template octetstring ss := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_SessionState(state), + tr_GSUP_IE_SSInfo(ss) + } +); + +template (value) GSUP_PDU ts_GSUP_PROC_SS_ERR( + hexstring imsi, + OCT4 sid, + integer cause +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_ERROR, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_Cause(cause)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_ERR( + template hexstring imsi, + template OCT4 sid := ?, + template integer cause := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_ERROR, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_Cause(cause) + } +); } with { encode "RAW"; variant "FIELDORDER(msb)" } -- To view, visit https://gerrit.osmocom.org/9422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I54767e49ae98db67f71dd28278b14435860313e0 Gerrit-Change-Number: 9422 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 14:41:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 14:41:32 +0000 Subject: Change in libosmocore[master]: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9421 ) Change subject: tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum ...................................................................... tlv: Add TLVP_VAL_MINLEN() to obtain value _if_ length is >= minimum This is a combination of TLVP_VAP() and TLVP_GET_MINLEN() Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b --- M include/osmocom/gsm/tlv.h 1 file changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index a130dc8..84fd511 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -467,6 +467,16 @@ #define TLVP_GET_MINLEN(_tp, tag, min_len) \ (TLVP_PRES_LEN(_tp, tag, min_len)? &(_tp)->lv[tag] : NULL) +/*! Like TLVP_VAL(), but enforcing a minimum val length. + * \param[in] _tp pointer to \ref tlv_parsed. + * \param[in] tag IE tag to return. + * \param[in] min_len Minimum value length in bytes. + * \returns struct tlv_p_entry pointer, or NULL if not present or too short. + */ +#define TLVP_VAL_MINLEN(_tp, tag, min_len) \ + (TLVP_PRES_LEN(_tp, tag, min_len)? (_tp)->lv[tag].val : NULL) + + /*! Align given TLV element with 16 bit value to an even address * \param[in] tp pointer to \ref tlv_parsed * \param[in] pos element to return -- To view, visit https://gerrit.osmocom.org/9421 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic5a177941219ebc3a3bceb3f68bdb3b2cacb934b Gerrit-Change-Number: 9421 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 14:44:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 14:44:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GSUP_Types.ttcn: add SS related messages and IEs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9422 ) Change subject: GSUP_Types.ttcn: add SS related messages and IEs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I54767e49ae98db67f71dd28278b14435860313e0 Gerrit-Change-Number: 9422 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 14:44:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 16:07:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 16:07:44 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9423 Change subject: cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' ...................................................................... cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' Change-Id: Ib4d8864baf538ec5871f42fa717eba3b7da9f48e --- M src/libosmo-mgcp-client/mgcp_client_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/23/9423/1 diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 07a65e6..6f84ffa 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -476,7 +476,7 @@ * mgcp_conn_delete() to instruct the FSM to perform a graceful exit */ if (strlen(mgcp_ctx->conn_id)) { LOGPFSML(fi, LOGL_ERROR, - "MGW/DLCX: aprupt FSM termination with connections still present, sending unconditional DLCX...\n"); + "MGW/DLCX: abrupt FSM termination with connections still present, sending unconditional DLCX...\n"); msg = make_dlcx_msg(mgcp_ctx); OSMO_ASSERT(msg); mgcp_client_tx(mgcp, msg, NULL, NULL); -- To view, visit https://gerrit.osmocom.org/9423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib4d8864baf538ec5871f42fa717eba3b7da9f48e Gerrit-Change-Number: 9423 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:52:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:52:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Disable verbose logging of MGCP encoder/decoder Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9424 Change subject: bsc: Disable verbose logging of MGCP encoder/decoder ...................................................................... bsc: Disable verbose logging of MGCP encoder/decoder Change-Id: I8147029a20828e762819be35ffebd801b22d2b6b --- M bsc/BSC_Tests.default 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/24/9424/1 diff --git a/bsc/BSC_Tests.default b/bsc/BSC_Tests.default index 19c0c8c..6ba9ea2 100644 --- a/bsc/BSC_Tests.default +++ b/bsc/BSC_Tests.default @@ -2,6 +2,7 @@ BSSAP.FileMask := LOG_NOTHING; "VirtMSC-M3UA".FileMask := ERROR | WARNING; "VirtMSC-SCCP".FileMask := ERROR | WARNING; +"VirtMSC-MGCP".FileMask := ERROR | WARNING; "IPA0-RSL-IPA".FileMask := ERROR | WARNING; "IPA0-CTRL-IPA".FileMask := ERROR | WARNING; mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; -- To view, visit https://gerrit.osmocom.org/9424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8147029a20828e762819be35ffebd801b22d2b6b Gerrit-Change-Number: 9424 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:54:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:54:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Disable verbose logging of MGCP encoder/decoder In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9424 ) Change subject: bsc: Disable verbose logging of MGCP encoder/decoder ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8147029a20828e762819be35ffebd801b22d2b6b Gerrit-Change-Number: 9424 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 18:54:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:54:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:54:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: LCLS: Introduce a copy+pasted f_connect_handler() function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9413 ) Change subject: LCLS: Introduce a copy+pasted f_connect_handler() function ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7c2dfd3c6e63b54c019fba0c07a1bb777d68f6b5 Gerrit-Change-Number: 9413 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 18:54:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:56:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:56:51 +0000 Subject: Change in osmo-bsc[master]: Add initial 3GPP LCLS support to OsmoBSC In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9416 ) Change subject: Add initial 3GPP LCLS support to OsmoBSC ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I614fade62834def5cafc94c4d2578cd747a3f9f7 Gerrit-Change-Number: 9416 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 18:56:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:56:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:56:56 +0000 Subject: Change in osmo-bsc[master]: VTY: Print some more information in "show conns" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9415 ) Change subject: VTY: Print some more information in "show conns" ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2f8000844afc9da93ca39976399e5f76a45530de Gerrit-Change-Number: 9415 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 18:56:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:57:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:57:24 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9423 ) Change subject: cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib4d8864baf538ec5871f42fa717eba3b7da9f48e Gerrit-Change-Number: 9423 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 02 Jun 2018 18:57:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:57:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:57:26 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9423 ) Change subject: cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' ...................................................................... cosmetic: fix typo in log message: 'abrupt' instead of 'aprupt' Change-Id: Ib4d8864baf538ec5871f42fa717eba3b7da9f48e --- M src/libosmo-mgcp-client/mgcp_client_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 07a65e6..6f84ffa 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -476,7 +476,7 @@ * mgcp_conn_delete() to instruct the FSM to perform a graceful exit */ if (strlen(mgcp_ctx->conn_id)) { LOGPFSML(fi, LOGL_ERROR, - "MGW/DLCX: aprupt FSM termination with connections still present, sending unconditional DLCX...\n"); + "MGW/DLCX: abrupt FSM termination with connections still present, sending unconditional DLCX...\n"); msg = make_dlcx_msg(mgcp_ctx); OSMO_ASSERT(msg); mgcp_client_tx(mgcp, msg, NULL, NULL); -- To view, visit https://gerrit.osmocom.org/9423 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib4d8864baf538ec5871f42fa717eba3b7da9f48e Gerrit-Change-Number: 9423 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 2 18:57:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Jun 2018 18:57:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: GSUP_Types.ttcn: add SS related messages and IEs In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9422 ) Change subject: GSUP_Types.ttcn: add SS related messages and IEs ...................................................................... GSUP_Types.ttcn: add SS related messages and IEs Recently we introduced a few new GSUP IEs, related to TCAP-like session management and Supplementary Services in libosmocore. Let's sync the TTCN-3 implementation and add the corresponding templates for SS payloads. Change-Id: I54767e49ae98db67f71dd28278b14435860313e0 --- M library/GSUP_Types.ttcn 1 file changed, 153 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn index 4c2aac0..359e272 100644 --- a/library/GSUP_Types.ttcn +++ b/library/GSUP_Types.ttcn @@ -39,7 +39,11 @@ OSMO_GSUP_AUTN_IE ('25'O), OSMO_GSUP_AUTS_IE ('26'O), OSMO_GSUP_RES_IE ('27'O), - OSMO_GSUP_CN_DOMAIN_IE ('28'O) + OSMO_GSUP_CN_DOMAIN_IE ('28'O), + + OSMO_GSUP_SESSION_ID_IE ('30'O), + OSMO_GSUP_SESSION_STATE_IE ('31'O), + OSMO_GSUP_SS_INFO_IE ('35'O) } with { variant "FIELDLENGTH(8)" }; type enumerated GSUP_MessageType { @@ -67,7 +71,11 @@ OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST ('00011100'B), OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR ('00011101'B), - OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT ('00011110'B) + OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT ('00011110'B), + + OSMO_GSUP_MSGT_PROC_SS_REQUEST ('00100000'B), + OSMO_GSUP_MSGT_PROC_SS_ERROR ('00100001'B), + OSMO_GSUP_MSGT_PROC_SS_RESULT ('00100010'B) } with { variant "FIELDLENGTH(8)" }; type enumerated GSUP_CancelType { @@ -80,6 +88,13 @@ OSMO_GSUP_CN_DOMAIN_CS (2) } with { variant "FIELDLENGTH(8)" }; +type enumerated GSUP_SessionState { + OSMO_GSUP_SESSION_STATE_NONE (0), + OSMO_GSUP_SESSION_STATE_BEGIN (1), + OSMO_GSUP_SESSION_STATE_CONTINUE (2), + OSMO_GSUP_SESSION_STATE_END (3) +} with { variant "FIELDLENGTH(8)" }; + type record GSUP_MSISDN { uint8_t len, hexstring digits optional @@ -110,6 +125,9 @@ pdp_qos, tag = OSMO_GSUP_PDP_QOS_IE; pdp_type, tag = OSMO_GSUP_PDP_TYPE_IE; charg_char, tag = OSMO_GSUP_CHARG_CHAR_IE; + session_state, tag = OSMO_GSUP_SESSION_STATE_IE; + session_id, tag = OSMO_GSUP_SESSION_ID_IE; + ss_info, tag = OSMO_GSUP_SS_INFO_IE; )" }; @@ -138,7 +156,12 @@ octetstring apn, octetstring pdp_qos, OCT2 pdp_type, - octetstring charg_char + octetstring charg_char, + /* Session information */ + GSUP_SessionState session_state, + OCT4 session_id, + /* Supplementary Services */ + octetstring ss_info }; type record GSUP_PDU { @@ -513,5 +536,132 @@ } } +template (value) GSUP_IE ts_GSUP_IE_SessionId(OCT4 sid) := { + tag := OSMO_GSUP_SESSION_ID_IE, + len := 0, /* overwritten */ + val := { + session_id := sid + } +} +template GSUP_IE tr_GSUP_IE_SessionId(template OCT4 sid) := { + tag := OSMO_GSUP_SESSION_ID_IE, + len := ?, + val := { + session_id := sid + } +} + +template (value) GSUP_IE ts_GSUP_IE_SessionState(GSUP_SessionState state) := { + tag := OSMO_GSUP_SESSION_STATE_IE, + len := 0, /* overwritten */ + val := { + session_state := state + } +} +template GSUP_IE tr_GSUP_IE_SessionState(template GSUP_SessionState state) := { + tag := OSMO_GSUP_SESSION_STATE_IE, + len := ?, + val := { + session_state := state + } +} + +template (value) GSUP_IE ts_GSUP_IE_SSInfo(octetstring ss) := { + tag := OSMO_GSUP_SS_INFO_IE, + len := 0, /* overwritten */ + val := { + ss_info := ss + } +} +template GSUP_IE tr_GSUP_IE_SSInfo(template octetstring ss) := { + tag := OSMO_GSUP_SS_INFO_IE, + len := ?, + val := { + ss_info := ss + } +} + +template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ( + hexstring imsi, + OCT4 sid, + GSUP_SessionState state, + octetstring ss +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_REQUEST, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_SessionState(state)), + valueof(ts_GSUP_IE_SSInfo(ss)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_REQ( + template hexstring imsi, + template OCT4 sid := ?, + template GSUP_SessionState state := ?, + template octetstring ss := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_REQUEST, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_SessionState(state), + tr_GSUP_IE_SSInfo(ss) + } +); + +template (value) GSUP_PDU ts_GSUP_PROC_SS_RES( + hexstring imsi, + OCT4 sid, + GSUP_SessionState state, + octetstring ss +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_SessionState(state)), + valueof(ts_GSUP_IE_SSInfo(ss)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_RES( + template hexstring imsi, + template OCT4 sid := ?, + template GSUP_SessionState state := ?, + template octetstring ss := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_SessionState(state), + tr_GSUP_IE_SSInfo(ss) + } +); + +template (value) GSUP_PDU ts_GSUP_PROC_SS_ERR( + hexstring imsi, + OCT4 sid, + integer cause +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_ERROR, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_Cause(cause)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_ERR( + template hexstring imsi, + template OCT4 sid := ?, + template integer cause := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_ERROR, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_Cause(cause) + } +); } with { encode "RAW"; variant "FIELDORDER(msb)" } -- To view, visit https://gerrit.osmocom.org/9422 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I54767e49ae98db67f71dd28278b14435860313e0 Gerrit-Change-Number: 9422 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sat Jun 2 20:01:59 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jun 2018 20:01:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b12f7c79df08_1a87aca68461977a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 137s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% [ 137s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE [ 137s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0 [ 137s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 137s] 4. testsuite.at:25: 4. tbf (testsuite.at:25): FAILED (testsuite.at:29) [ 137s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 137s] make[1]: *** [override_dh_auto_test] Error 1 [ 137s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 137s] debian/rules:12: recipe for target 'build' failed [ 137s] make: *** [build] Error 2 [ 137s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 137s] [ 137s] lamb20 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sat Jun 2 20:01:56 UTC 2018. [ 137s] [ 137s] ### VM INTERACTION START ### [ 137s] [ 128.948238] serial8250: too much work for irq4 [ 137s] [ 129.040224] serial8250: too much work for irq4 [ 137s] [ 129.132147] serial8250: too much work for irq4 [ 137s] [ 129.228193] serial8250: too much work for irq4 [ 137s] [ 129.320272] serial8250: too much work for irq4 [ 137s] [ 129.420263] serial8250: too much work for irq4 [ 137s] [ 129.512216] serial8250: too much work for irq4 [ 137s] [ 129.604210] serial8250: too much work for irq4 [ 137s] Powering off. [ 137s] [ 130.343570] reboot: Power down [ 137s] ### VM INTERACTION END ### [ 137s] [ 137s] lamb20 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sat Jun 2 20:01:57 UTC 2018. [ 137s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 2 20:31:07 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 02 Jun 2018 20:31:07 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b12fe91a3aee_1a87aca6846216fc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 127s] | #define HAVE_STDLIB_H 1 [ 127s] | #define HAVE_STRING_H 1 [ 127s] | #define HAVE_MEMORY_H 1 [ 127s] | #define HAVE_STRINGS_H 1 [ 127s] | #define HAVE_INTTYPES_H 1 [ 127s] | #define HAVE_STDINT_H 1 [ 127s] | #define HAVE_UNISTD_H 1 [ 127s] | #define HAVE_DLFCN_H 1 [ 127s] | #define LT_OBJDIR ".libs/" [ 127s] | #define STDC_HEADERS 1 [ 127s] | [ 127s] | configure: exit 0 [ 127s] [ 127s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 127s] make[1]: *** [override_dh_auto_test] Error 1 [ 127s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 127s] debian/rules:12: recipe for target 'build' failed [ 127s] make: *** [build] Error 2 [ 127s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 127s] [ 127s] lamb61 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sat Jun 2 20:31:00 UTC 2018. [ 127s] [ 127s] ### VM INTERACTION START ### [ 128s] Powering off. [ 128s] [ 120.803971] reboot: Power down [ 128s] ### VM INTERACTION END ### [ 128s] [ 128s] lamb61 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sat Jun 2 20:31:02 UTC 2018. [ 128s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From jenkins at lists.osmocom.org Sat Jun 2 22:41:20 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 2 Jun 2018 22:41:20 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-rtl-sdr_=C2=BB_a1=3Ddefau?= =?UTF-8?Q?lt,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#55?= In-Reply-To: <165453326.281.1527892880474.JavaMail.jenkins@jenkins.osmocom.org> References: <165453326.281.1527892880474.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <546852190.296.1527979280499.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 93.30 KB...] make[2]: Nothing to be done for 'dvi'. make[2]: Leaving directory ' Making dvi in src make[2]: Entering directory ' make[2]: Nothing to be done for 'dvi'. make[2]: Leaving directory ' make[2]: Entering directory ' make[2]: Nothing to be done for 'dvi-am'. make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make check-recursive make[2]: Entering directory ' Making check in include make[3]: Entering directory ' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory ' Making check in src make[3]: Entering directory ' make[3]: Nothing to be done for 'check'. make[3]: Leaving directory ' make[3]: Entering directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make install-recursive make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 ../../../include/rtl-sdr.h ../../../include/rtl-sdr_export.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' make[4]: Entering directory ' /bin/mkdir -p ' /bin/bash ../libtool --mode=install /usr/bin/install -c librtlsdr.la ' libtool: install: /usr/bin/install -c .libs/librtlsdr.so.0.0.5 libtool: install: (cd && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so.0 || { rm -f librtlsdr.so.0 && ln -s librtlsdr.so.0.0.5 librtlsdr.so.0; }; }) libtool: install: (cd && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so || { rm -f librtlsdr.so && ln -s librtlsdr.so.0.0.5 librtlsdr.so; }; }) libtool: install: /usr/bin/install -c .libs/librtlsdr.lai libtool: install: /usr/bin/install -c .libs/librtlsdr.a libtool: install: chmod 644 libtool: install: ranlib libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- /bin/mkdir -p ' /bin/bash ../libtool --mode=install /usr/bin/install -c rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power ' libtool: install: /usr/bin/install -c .libs/rtl_sdr libtool: install: /usr/bin/install -c .libs/rtl_tcp libtool: install: /usr/bin/install -c .libs/rtl_test libtool: install: /usr/bin/install -c .libs/rtl_fm libtool: install: /usr/bin/install -c .libs/rtl_eeprom libtool: install: /usr/bin/install -c .libs/rtl_adsb libtool: install: /usr/bin/install -c .libs/rtl_power make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 ./doc/html.tar ' /bin/mkdir -p ' /usr/bin/install -c -m 644 librtlsdr.pc ' make install-data-hook make[5]: Entering directory ' cd && tar xf html.tar --strip-components 1 && rm -f html.tar make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' Making installcheck in include make[2]: Entering directory ' make[2]: Nothing to be done for 'installcheck'. make[2]: Leaving directory ' Making installcheck in src make[2]: Entering directory ' make[2]: Nothing to be done for 'installcheck'. make[2]: Leaving directory ' make[2]: Entering directory ' make[2]: Nothing to be done for 'installcheck-am'. make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' Making uninstall in include make[2]: Entering directory ' ( cd ' && rm -f rtl-sdr.h rtl-sdr_export.h ) make[2]: Leaving directory ' Making uninstall in src make[2]: Entering directory ' ( cd ' && rm -f rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power ) /bin/bash ../libtool --mode=uninstall rm -f ' libtool: uninstall: rm -f make[2]: Leaving directory ' make[2]: Entering directory ' ( cd ' && rm -f html.tar ) ( cd ' && rm -f librtlsdr.pc ) make uninstall-hook make[3]: Entering directory ' cd && rm -rf make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make[1]: Leaving directory ' make[1]: Entering directory ' make install-recursive make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-24621/ /usr/bin/install -c -m 644 ../../../include/rtl-sdr.h ../../../include/rtl-sdr_export.h '/tmp/am-dc-24621/ make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' make[4]: Entering directory ' /bin/mkdir -p '/tmp/am-dc-24621/ /bin/bash ../libtool --mode=install /usr/bin/install -c librtlsdr.la '/tmp/am-dc-24621/ libtool: install: /usr/bin/install -c .libs/librtlsdr.so.0.0.5 /tmp/am-dc-24621/ libtool: install: (cd /tmp/am-dc-24621/ && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so.0 || { rm -f librtlsdr.so.0 && ln -s librtlsdr.so.0.0.5 librtlsdr.so.0; }; }) libtool: install: (cd /tmp/am-dc-24621/ && { ln -s -f librtlsdr.so.0.0.5 librtlsdr.so || { rm -f librtlsdr.so && ln -s librtlsdr.so.0.0.5 librtlsdr.so; }; }) libtool: install: /usr/bin/install -c .libs/librtlsdr.lai /tmp/am-dc-24621/ libtool: install: /usr/bin/install -c .libs/librtlsdr.a /tmp/am-dc-24621/ libtool: install: chmod 644 /tmp/am-dc-24621/ libtool: install: ranlib /tmp/am-dc-24621/ libtool: warning: remember to run 'libtool --finish /bin/mkdir -p '/tmp/am-dc-24621/ /bin/bash ../libtool --mode=install /usr/bin/install -c rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power '/tmp/am-dc-24621/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_sdr /tmp/am-dc-24621/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_tcp /tmp/am-dc-24621/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_test /tmp/am-dc-24621/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_fm /tmp/am-dc-24621/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_eeprom /tmp/am-dc-24621/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_adsb /tmp/am-dc-24621/ libtool: warning: 'librtlsdr.la' has not been installed in ' libtool: install: /usr/bin/install -c .libs/rtl_power /tmp/am-dc-24621/ make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/tmp/am-dc-24621/ /usr/bin/install -c -m 644 ./doc/html.tar '/tmp/am-dc-24621/ /bin/mkdir -p '/tmp/am-dc-24621/ /usr/bin/install -c -m 644 librtlsdr.pc '/tmp/am-dc-24621/ make install-data-hook make[5]: Entering directory ' cd /tmp/am-dc-24621/ && tar xf html.tar --strip-components 1 && rm -f html.tar make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' Making uninstall in include make[2]: Entering directory ' ( cd '/tmp/am-dc-24621/ && rm -f rtl-sdr.h rtl-sdr_export.h ) make[2]: Leaving directory ' Making uninstall in src make[2]: Entering directory ' ( cd '/tmp/am-dc-24621/ && rm -f rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power ) /bin/bash ../libtool --mode=uninstall rm -f '/tmp/am-dc-24621/ libtool: uninstall: rm -f /tmp/am-dc-24621/ /tmp/am-dc-24621/ /tmp/am-dc-24621/ /tmp/am-dc-24621/ /tmp/am-dc-24621/ make[2]: Leaving directory ' make[2]: Entering directory ' ( cd '/tmp/am-dc-24621/ && rm -f html.tar ) ( cd '/tmp/am-dc-24621/ && rm -f librtlsdr.pc ) make uninstall-hook make[3]: Entering directory ' cd /tmp/am-dc-24621/ && rm -rf make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' make[1]: Entering directory ' ERROR: files left after uninstall: (check DESTDIR support) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Makefile:757: recipe for target 'distuninstallcheck' failed make[1]: *** [distuninstallcheck] Error 1 make[1]: Leaving directory ' Makefile:701: recipe for target 'distcheck' failed make: *** [distcheck] Error 1 + cat-testlogs.sh Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE Not sending mail to unregistered user steve at steve-m.de From gerrit-no-reply at lists.osmocom.org Sun Jun 3 07:35:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 07:35:50 +0000 Subject: Change in meta-telephony[laforge/nightly]: set up osmocom recipes with AUTOREV to track git master Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9425 Change subject: set up osmocom recipes with AUTOREV to track git master ...................................................................... set up osmocom recipes with AUTOREV to track git master This is for the upcoming nightly builds, where all our osmo* recipes are going to track current master of their respective upstream git repository. Change-Id: Idda98bdfa07c16aee1955fa63373b358bb754c90 --- M recipes-misc/libsmpp/libsmpp34_git.bb M recipes-osmocom/libasn1c/libasn1c_git.bb M recipes-osmocom/libosmo-abis/libosmo-abis_git.bb M recipes-osmocom/libosmo-netif/libosmo-netif_git.bb M recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb M recipes-osmocom/libosmocore/libosmocore_git.bb M recipes-osmocom/openbsc/openbsc_git.bb M recipes-osmocom/osmo-bsc/osmo-bsc_git.bb M recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb M recipes-osmocom/osmo-hlr/osmo-hlr_git.bb M recipes-osmocom/osmo-iuh/osmo-iuh_git.bb M recipes-osmocom/osmo-mgw/osmo-mgw_git.bb M recipes-osmocom/osmo-msc/osmo-msc_git.bb M recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb M recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb 15 files changed, 15 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/25/9425/1 diff --git a/recipes-misc/libsmpp/libsmpp34_git.bb b/recipes-misc/libsmpp/libsmpp34_git.bb index e04e525..6e25adb 100644 --- a/recipes-misc/libsmpp/libsmpp34_git.bb +++ b/recipes-misc/libsmpp/libsmpp34_git.bb @@ -6,7 +6,7 @@ DEPENDS = "libxml2" S = "${WORKDIR}/git" -SRCREV = "6996e5dba9603208609f4604a3b3d59f88c85d90" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/libsmpp34.git;protocol=git" PV = "1.13.0+gitr${SRCPV}" PR = "r0" diff --git a/recipes-osmocom/libasn1c/libasn1c_git.bb b/recipes-osmocom/libasn1c/libasn1c_git.bb index 9d4fa87..f34fada 100644 --- a/recipes-osmocom/libasn1c/libasn1c_git.bb +++ b/recipes-osmocom/libasn1c/libasn1c_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "d36012fb029fd9914b4e8125c9c3186785940258" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/libasn1c.git;protocol=git" PV = "0.9.31+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb b/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb index 1bfdb18..f434746 100644 --- a/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb +++ b/recipes-osmocom/libosmo-abis/libosmo-abis_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "7b89f12e66a280746fc8e7906505b2d769d19706" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/libosmo-abis.git;protocol=git" PV = "0.5.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb b/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb index 419cb2c..b42f3e0 100644 --- a/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb +++ b/recipes-osmocom/libosmo-netif/libosmo-netif_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "e38ee9b808970cd49663221cb823365ef18797d5" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/libosmo-netif.git;protocol=git" PV = "0.2.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb b/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb index bb83638..7a1c007 100644 --- a/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb +++ b/recipes-osmocom/libosmo-sccp/libosmo-sccp_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "c88605c41c25b34d2e2b08f0e1028c2bd6d9404b" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/libosmo-sccp.git;protocol=git" PV = "0.9.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/libosmocore/libosmocore_git.bb b/recipes-osmocom/libosmocore/libosmocore_git.bb index c2c37f5..479f7d0 100644 --- a/recipes-osmocom/libosmocore/libosmocore_git.bb +++ b/recipes-osmocom/libosmocore/libosmocore_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "cacaa4a1616d7c0ea370ff197d816f706909bde5" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/libosmocore.git;protocol=git;nobranch=1" PV = "0.11.0+gitr${SRCPV}" PR = "r0" diff --git a/recipes-osmocom/openbsc/openbsc_git.bb b/recipes-osmocom/openbsc/openbsc_git.bb index e3af4bc..0d0dda9 100644 --- a/recipes-osmocom/openbsc/openbsc_git.bb +++ b/recipes-osmocom/openbsc/openbsc_git.bb @@ -4,7 +4,7 @@ PRINC = "0" PR = "${INC_PR}.0" -SRCREV = "cc69659217d19af5635638a0fbd4f0702f79bac4" +SRCREV = "${AUTOREV}" SRC_URI += "git://git.osmocom.org/openbsc.git;protocol=git" S = "${WORKDIR}/git/openbsc" diff --git a/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb b/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb index 2d8a71f..bd941ca 100644 --- a/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb +++ b/recipes-osmocom/osmo-bsc/osmo-bsc_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "e5a9665c009f9b81bbc370480405cb91cbe99b66" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-bsc.git;protocol=git" PV = "1.2.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb index 13d3cbd..a05a2ce 100644 --- a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb +++ b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb @@ -5,7 +5,7 @@ PV = "1.2.1+gitr${SRCPV}" PR = "r0" -SRCREV = "ac07625086948281295e54dd295228153ecd5ff0" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-ggsn \ file://osmo-ggsn.init \ file://libgtp-queue_depth_32.patch \ diff --git a/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb b/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb index d10d893..f19f985 100644 --- a/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb +++ b/recipes-osmocom/osmo-hlr/osmo-hlr_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "78f430102516a970b9899f962d4562ebdb718670" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-hlr.git;protocol=git" PV = "0.2.1+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb b/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb index a983c4e..ac838bf 100644 --- a/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb +++ b/recipes-osmocom/osmo-iuh/osmo-iuh_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "ba941e553d60a06a45ad96f0ad4161383d4c0d30" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-iuh.git;protocol=git" PV = "0.3.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-mgw/osmo-mgw_git.bb b/recipes-osmocom/osmo-mgw/osmo-mgw_git.bb index d863300..2ecba43 100644 --- a/recipes-osmocom/osmo-mgw/osmo-mgw_git.bb +++ b/recipes-osmocom/osmo-mgw/osmo-mgw_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "d761d355f9b71b1dfe462e55a6e030bb026d8bf1" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-mgw.git;protocol=git" PV = "1.3.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-msc/osmo-msc_git.bb b/recipes-osmocom/osmo-msc/osmo-msc_git.bb index 3e5e9d7..164aa7d 100644 --- a/recipes-osmocom/osmo-msc/osmo-msc_git.bb +++ b/recipes-osmocom/osmo-msc/osmo-msc_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "cb8c75bba030c7ab9f2e49b2f40292a1738f3220" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-msc.git;protocol=git" PV = "1.2.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb b/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb index f76ced5..25200e4 100644 --- a/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb +++ b/recipes-osmocom/osmo-sgsn/osmo-sgsn_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "39c67e2640fc34346dffe3cff9f9f8e905fe5ad9" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-sgsn.git;protocol=git" PV = "1.3.0+gitr${SRCPV}" PR = "${INC_PR}.0" diff --git a/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb b/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb index b5a1627..fdbeb93 100644 --- a/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb +++ b/recipes-osmocom/osmo-sip-connector/osmo-sip-connector_git.bb @@ -1,7 +1,7 @@ require ${PN}.inc S = "${WORKDIR}/git" -SRCREV = "55faf3867540f5d42a69e17cdc02f0e522f42478" +SRCREV = "${AUTOREV}" SRC_URI = "git://git.osmocom.org/osmo-sip-connector.git;protocol=git" PV = "1.1.1+gitr${SRCPV}" PR = "${INC_PR}.0" -- To view, visit https://gerrit.osmocom.org/9425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: newchange Gerrit-Change-Id: Idda98bdfa07c16aee1955fa63373b358bb754c90 Gerrit-Change-Number: 9425 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 07:38:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 07:38:48 +0000 Subject: Change in meta-telephony[laforge/nightly]: set up osmocom recipes with AUTOREV to track git master In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9425 ) Change subject: set up osmocom recipes with AUTOREV to track git master ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: comment Gerrit-Change-Id: Idda98bdfa07c16aee1955fa63373b358bb754c90 Gerrit-Change-Number: 9425 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 03 Jun 2018 07:38:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 07:38:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 07:38:49 +0000 Subject: Change in meta-telephony[laforge/nightly]: set up osmocom recipes with AUTOREV to track git master In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9425 ) Change subject: set up osmocom recipes with AUTOREV to track git master ...................................................................... set up osmocom recipes with AUTOREV to track git master This is for the upcoming nightly builds, where all our osmo* recipes are going to track current master of their respective upstream git repository. Change-Id: Idda98bdfa07c16aee1955fa63373b358bb754c90 --- 0 files changed, 0 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified -- To view, visit https://gerrit.osmocom.org/9425 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: merged Gerrit-Change-Id: Idda98bdfa07c16aee1955fa63373b358bb754c90 Gerrit-Change-Number: 9425 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:26:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:26:59 +0000 Subject: Change in osmo-bsc[master]: LCLS: add VTY config to enable/disable LCLS on per-MSC basis Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9426 Change subject: LCLS: add VTY config to enable/disable LCLS on per-MSC basis ...................................................................... LCLS: add VTY config to enable/disable LCLS on per-MSC basis The user might not want to enable LCLS support for administrative reasons. So let's keep it disabled by default, until somebody explicitly enables it with "lcls-mode mgw-loop". In the future, we may want to introduce a "lcls-mode bts-loop" where we don't loop at the BSC-colocated MGW, but where we instruct the BTSs to feed the RTP directly to each other. This would require a falt/transparent IP routing between the BTSs in the RAN. Change-Id: Ied7985056c8cd182bf16119007a08cc5be14459b Related: OS#1602 --- M include/osmocom/bsc/bsc_msc_data.h M src/libbsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_vty.c 3 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/26/9426/1 diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index baa58e7..7235fba 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -58,6 +58,12 @@ MSC_CON_TYPE_LOCAL, }; +enum bsc_lcls_mode { + BSC_LCLS_MODE_DISABLED, + BSC_LCLS_MODE_MGW_LOOP, + /* we may later introduce BTS_LOOP here: direct RTP between BTSs */ +}; + /*! /brief Information on a remote MSC for libbsc. */ struct bsc_msc_data { @@ -85,6 +91,7 @@ struct gsm48_multi_rate_conf amr_conf; struct gsm_audio_support **audio_support; int audio_length; + enum bsc_lcls_mode lcls_mode; /* ussd welcome text */ char *ussd_welcome_txt; diff --git a/src/libbsc/osmo_bsc_lcls.c b/src/libbsc/osmo_bsc_lcls.c index e32376d..c2b0760 100644 --- a/src/libbsc/osmo_bsc_lcls.c +++ b/src/libbsc/osmo_bsc_lcls.c @@ -286,6 +286,12 @@ /* we're just starting and cannot yet have a correlated call */ OSMO_ASSERT(conn->lcls.other == NULL); + if (conn->sccp.msc->lcls_mode == BSC_LCLS_MODE_DISABLED) { + LOGPFSML(fi, LOGL_DEBUG, "LCLS disabled for this MSC, ignoring %s\n", + osmo_fsm_event_name(fi->fsm, event)); + return; + } + /* If there's no GCR set, we can never leave this state */ if (conn->lcls.global_call_ref_len == 0) { LOGPFSML(fi, LOGL_NOTICE, "No GCR set, ignoring %s\n", diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 34080c0..e6df7b3 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -38,6 +38,12 @@ #define IPA_STR "IP.ACCESS specific\n" +static const struct value_string bsc_lcls_mode_names[] = { + { BSC_LCLS_MODE_DISABLED, "disabled" }, + { BSC_LCLS_MODE_MGW_LOOP, "mgw-loop" }, + { 0, NULL } +}; + static struct osmo_bsc_data *osmo_bsc_data(struct vty *vty) { return bsc_gsmnet->bsc_data; @@ -175,6 +181,8 @@ msc->a.msc_addr_name, VTY_NEWLINE); } vty_out(vty, " asp-protocol %s%s", osmo_ss7_asp_protocol_name(msc->a.asp_proto), VTY_NEWLINE); + vty_out(vty, " lcls-mode %s%s", get_value_string(bsc_lcls_mode_names, msc->lcls_mode), + VTY_NEWLINE); /* write MGW configuration */ mgcp_client_config_write(vty, " "); @@ -628,6 +636,18 @@ return CMD_SUCCESS; } +DEFUN(cfg_net_msc_lcls_mode, + cfg_net_msc_lcls_mode_cmd, + "lcls-mode (disabled|mgw-loop)", + "Configure 3GPP LCLS (Local Call, Local Switch)\n" + "Disable LCLS for all calls of this MSC\n" + "Enable LCLS with loopping traffic in MGW\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + data->lcls_mode = get_string_value(bsc_lcls_mode_names, argv[0]); + return CMD_SUCCESS; +} + DEFUN(cfg_net_bsc_mid_call_text, cfg_net_bsc_mid_call_text_cmd, "mid-call-text .TEXT", @@ -903,6 +923,7 @@ install_element(MSC_NODE, &cfg_net_msc_amr_5_90_cmd); install_element(MSC_NODE, &cfg_net_msc_amr_5_15_cmd); install_element(MSC_NODE, &cfg_net_msc_amr_4_75_cmd); + install_element(MSC_NODE, &cfg_net_msc_lcls_mode_cmd); install_element(MSC_NODE, &cfg_msc_acc_lst_name_cmd); install_element(MSC_NODE, &cfg_msc_no_acc_lst_name_cmd); install_element(MSC_NODE, &cfg_msc_cs7_bsc_addr_cmd); -- To view, visit https://gerrit.osmocom.org/9426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ied7985056c8cd182bf16119007a08cc5be14459b Gerrit-Change-Number: 9426 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:27:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:27:13 +0000 Subject: Change in osmo-bsc[master]: VTY: Print some more information in "show conns" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9415 ) Change subject: VTY: Print some more information in "show conns" ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2f8000844afc9da93ca39976399e5f76a45530de Gerrit-Change-Number: 9415 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 03 Jun 2018 10:27:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:27:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:27:37 +0000 Subject: Change in osmo-bsc[master]: Add initial 3GPP LCLS support to OsmoBSC In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9416 ) Change subject: Add initial 3GPP LCLS support to OsmoBSC ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I614fade62834def5cafc94c4d2578cd747a3f9f7 Gerrit-Change-Number: 9416 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 03 Jun 2018 10:27:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:28:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:28:54 +0000 Subject: Change in osmo-bsc[master]: VTY: Print some more information in "show conns" In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9415 ) Change subject: VTY: Print some more information in "show conns" ...................................................................... VTY: Print some more information in "show conns" We now print information such as * SCCP connection ID * MSC number * handover decision2 fail count * channel mode (SIGN/SPEECH) * MGW endpoint * secondary lchan (if any, e.g. during assignment) * don't crash if conn->lchan == NULL Change-Id: I2f8000844afc9da93ca39976399e5f76a45530de --- M src/libbsc/bsc_vty.c 1 file changed, 13 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libbsc/bsc_vty.c b/src/libbsc/bsc_vty.c index e53a14f..6c2257d 100644 --- a/src/libbsc/bsc_vty.c +++ b/src/libbsc/bsc_vty.c @@ -1515,6 +1515,18 @@ return lchan_summary(vty, argc, argv, lchan_dump_short_vty); } +static void dump_one_subscr_conn(struct vty *vty, const struct gsm_subscriber_connection *conn) +{ + vty_out(vty, "conn ID=%u, MSC=%u, hodec2_fail=%d, mode=%s, mgw_ep=%s%s", + conn->sccp.conn_id, conn->sccp.msc->nr, conn->hodec2.failures, + get_value_string(gsm48_chan_mode_names, conn->user_plane.chan_mode), + conn->user_plane.mgw_endpoint, VTY_NEWLINE); + if (conn->lchan) + lchan_dump_full_vty(vty, conn->lchan); + if (conn->secondary_lchan) + lchan_dump_full_vty(vty, conn->secondary_lchan); +} + DEFUN(show_subscr_conn, show_subscr_conn_cmd, "show conns", @@ -1528,8 +1540,7 @@ vty_out(vty, "Active subscriber connections: %s", VTY_NEWLINE); llist_for_each_entry(conn, &net->subscr_conns, entry) { - vty_out(vty, "conn nr #%u:%s", count, VTY_NEWLINE); - lchan_dump_full_vty(vty, conn->lchan); + dump_one_subscr_conn(vty, conn); no_conns = false; count++; } -- To view, visit https://gerrit.osmocom.org/9415 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2f8000844afc9da93ca39976399e5f76a45530de Gerrit-Change-Number: 9415 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:28:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:28:54 +0000 Subject: Change in osmo-bsc[master]: Add initial 3GPP LCLS support to OsmoBSC In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9416 ) Change subject: Add initial 3GPP LCLS support to OsmoBSC ...................................................................... Add initial 3GPP LCLS support to OsmoBSC This code contains the following code: * receive/parse/interpret LCLS specific BSSMAP IEs and PDUs * osmo_fsm handling the various states and their transitions * call leg correlation (finding the other subscr_conn with same GCR) * communication between the two call-leg LCLS FSMs * detection of supported / unsupported LCLS configurations * display of GCR / LCLS information in "show conns" * switch the media streams locally using MDCX to the MGW Closes: OS#1602 Change-Id: I614fade62834def5cafc94c4d2578cd747a3f9f7 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/osmo_bsc_lcls.h M src/libbsc/Makefile.am M src/libbsc/bsc_subscr_conn_fsm.c M src/libbsc/bsc_vty.c A src/libbsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_main.c 11 files changed, 981 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index bae13f0..0987be9 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -47,4 +47,5 @@ vty.h \ bsc_api.h \ penalty_timers.h \ + osmo_bsc_lcls.h \ $(NULL) diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h index 9498d9f..e8226f4 100644 --- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h +++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h @@ -48,6 +48,8 @@ GSCON_EV_MGW_MDCX_RESP_BTS, /* CRCX response received (MSC) */ GSCON_EV_MGW_CRCX_RESP_MSC, + /* MDCX response received (MSC) - triggered by LCLS */ + GSCON_EV_MGW_MDCX_RESP_MSC, /* Internal handover request (intra-BSC handover) */ GSCON_EV_HO_START, @@ -57,6 +59,9 @@ GSCON_EV_HO_FAIL, /* Handover completed successfully (handover_logic.c) */ GSCON_EV_HO_COMPL, + + /* LCLS child FSM has terminated due to hard failure */ + GSCON_EV_LCLS_FAIL, }; struct gsm_subscriber_connection; diff --git a/include/osmocom/bsc/debug.h b/include/osmocom/bsc/debug.h index 37f102c..006b918 100644 --- a/include/osmocom/bsc/debug.h +++ b/include/osmocom/bsc/debug.h @@ -25,5 +25,6 @@ DCTRL, DFILTER, DPCU, + DLCLS, Debug_LastEntry, }; diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 1cf79a5..b1fceb3 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -188,6 +188,18 @@ enum gsm48_chan_mode chan_mode; } user_plane; + + /* LCLS (local call, local switch) related state */ + struct { + uint8_t global_call_ref[15]; + uint8_t global_call_ref_len; /* length of global_call_ref */ + uint8_t config; /* TS 48.008 3.2.2.116 */ + uint8_t control;/* TS 48.008 3.2.2.117 */ + /* LCLS FSM */ + struct osmo_fsm_inst *fi; + /* pointer to "other" connection, if Call Leg Relocation was successful */ + struct gsm_subscriber_connection *other; + } lcls; }; diff --git a/include/osmocom/bsc/osmo_bsc_lcls.h b/include/osmocom/bsc/osmo_bsc_lcls.h new file mode 100644 index 0000000..2e60234 --- /dev/null +++ b/include/osmocom/bsc/osmo_bsc_lcls.h @@ -0,0 +1,40 @@ +#pragma once +#include + +enum lcls_fsm_state { + ST_NO_LCLS, + ST_NOT_YET_LS, + ST_NOT_POSSIBLE_LS, + ST_NO_LONGER_LS, + ST_REQ_LCLS_NOT_SUPP, + ST_LOCALLY_SWITCHED, + /* locally switched; received remote break; wait for "local" break */ + ST_LOCALLY_SWITCHED_WAIT_BREAK, + /* locally switched; received break; wait for "other" break */ + ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK, +}; + +enum lcls_event { + /* update LCLS config/control based on some BSSMAP signaling */ + LCLS_EV_UPDATE_CFG_CSC, + /* apply LCLS config/control */ + LCLS_EV_APPLY_CFG_CSC, + /* we have been identified as the correlation peer of another conn */ + LCLS_EV_CORRELATED, + /* "other" LCLS connection has enabled local switching */ + LCLS_EV_OTHER_ENABLED, + /* "other" LCLS connection is breaking local switch */ + LCLS_EV_OTHER_BREAK, + /* "other" LCLS connection is dying */ + LCLS_EV_OTHER_DEAD, +}; + +enum gsm0808_lcls_status lcls_get_status(struct gsm_subscriber_connection *conn); + +void lcls_update_config(struct gsm_subscriber_connection *conn, + const uint8_t *config, const uint8_t *control); + +void lcls_apply_config(struct gsm_subscriber_connection *conn); + +extern struct osmo_fsm lcls_fsm; + diff --git a/src/libbsc/Makefile.am b/src/libbsc/Makefile.am index d215e14..2e44729 100644 --- a/src/libbsc/Makefile.am +++ b/src/libbsc/Makefile.am @@ -65,5 +65,6 @@ handover_decision_2.c \ bsc_subscr_conn_fsm.c \ meas_feed.c \ + osmo_bsc_lcls.c \ $(NULL) diff --git a/src/libbsc/bsc_subscr_conn_fsm.c b/src/libbsc/bsc_subscr_conn_fsm.c index 89ac482..bafe145 100644 --- a/src/libbsc/bsc_subscr_conn_fsm.c +++ b/src/libbsc/bsc_subscr_conn_fsm.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -111,6 +112,7 @@ {GSCON_EV_MGW_CRCX_RESP_BTS, "MGW_CRCX_RESPONSE_BTS"}, {GSCON_EV_MGW_MDCX_RESP_BTS, "MGW_MDCX_RESPONSE_BTS"}, {GSCON_EV_MGW_CRCX_RESP_MSC, "MGW_CRCX_RESPONSE_MSC"}, + {GSCON_EV_MGW_MDCX_RESP_MSC, "MGW_MDCX_RESPONSE_MSC"}, {GSCON_EV_HO_START, "HO_START"}, {GSCON_EV_HO_TIMEOUT, "HO_TIMEOUT"}, @@ -223,6 +225,37 @@ return channel_mode << 4 | channel; } +/* Add the LCLS BSS Status IE to a BSSMAP message. We assume this is + * called on a msgb that was returned by gsm0808_create_ass_compl() */ +static void bssmap_add_lcls_status(struct msgb *msg, enum gsm0808_lcls_status status) +{ + OSMO_ASSERT(msg->l3h[0] == BSSAP_MSG_BSS_MANAGEMENT); + OSMO_ASSERT(msg->l3h[2] == BSS_MAP_MSG_ASSIGMENT_COMPLETE || + msg->l3h[2] == BSS_MAP_MSG_HANDOVER_RQST_ACKNOWLEDGE || + msg->l3h[2] == BSS_MAP_MSG_HANDOVER_COMPLETE || + msg->l3h[2] == BSS_MAP_MSG_HANDOVER_PERFORMED); + OSMO_ASSERT(msgb_tailroom(msg) >= 2); + + /* append IE to end of message */ + msgb_tv_put(msg, GSM0808_IE_LCLS_BSS_STATUS, status); + /* increment the "length" byte in the BSSAP header */ + msg->l3h[1] += 2; +} + +/* Add (append) the LCLS BSS Status IE to a BSSMAP message, if there is any LCLS + * active on the given \a conn */ +static void bssmap_add_lcls_status_if_needed(struct gsm_subscriber_connection *conn, + struct msgb *msg) +{ + enum gsm0808_lcls_status status = lcls_get_status(conn); + if (status != 0xff) { + LOGPFSM(conn->fi, "Adding LCLS BSS-Status (%s) to %s\n", + gsm0808_lcls_status_name(status), + gsm0808_bssmap_name(msg->l3h[2])); + bssmap_add_lcls_status(msg, status); + } +} + /* Generate and send assignment complete message */ static void send_ass_compl(struct gsm_lchan *lchan, struct osmo_fsm_inst *fi, bool voice) { @@ -236,6 +269,9 @@ conn = lchan->conn; OSMO_ASSERT(conn); + /* apply LCLS configuration (if any) */ + lcls_apply_config(conn); + LOGPFSML(fi, LOGL_DEBUG, "Sending assignment complete message... (id=%i)\n", conn->sccp.conn_id); /* Generate voice related fields */ @@ -268,6 +304,9 @@ conn->sccp.conn_id); } + /* Add LCLS BSS-Status IE in case there is any LCLS status for this connection */ + bssmap_add_lcls_status_if_needed(conn, resp); + sigtran_send(conn, resp, fi); } @@ -997,6 +1036,11 @@ resp = gsm0808_create_clear_rqst(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE); sigtran_send(conn, resp, fi); break; + case GSCON_EV_MGW_MDCX_RESP_MSC: + LOGPFSML(fi, LOGL_DEBUG, "Rx MDCX of MSC side (LCLS?)\n"); + break; + case GSCON_EV_LCLS_FAIL: + break; default: OSMO_ASSERT(false); break; @@ -1056,6 +1100,12 @@ /* Make sure all possibly still open MGCP connections get closed */ toss_mgcp_conn(conn, fi); + + if (conn->lcls.fi) { + /* request termination of LCLS FSM */ + osmo_fsm_inst_term(conn->lcls.fi, cause, NULL); + conn->lcls.fi = NULL; + } } static int gscon_timer_cb(struct osmo_fsm_inst *fi) @@ -1100,7 +1150,8 @@ .states = gscon_fsm_states, .num_states = ARRAY_SIZE(gscon_fsm_states), .allstate_event_mask = S(GSCON_EV_A_DISC_IND) | S(GSCON_EV_A_CLEAR_CMD) | S(GSCON_EV_RSL_CONN_FAIL) | - S(GSCON_EV_RLL_REL_IND) | S(GSCON_EV_MGW_FAIL_BTS) | S(GSCON_EV_MGW_FAIL_MSC), + S(GSCON_EV_RLL_REL_IND) | S(GSCON_EV_MGW_FAIL_BTS) | S(GSCON_EV_MGW_FAIL_MSC) | + S(GSCON_EV_MGW_MDCX_RESP_MSC) | S(GSCON_EV_LCLS_FAIL), .allstate_action = gscon_fsm_allstate, .cleanup = gscon_cleanup, .pre_term = gscon_pre_term, @@ -1117,6 +1168,7 @@ if (!g_initialized) { osmo_fsm_register(&gscon_fsm); + osmo_fsm_register(&lcls_fsm); g_initialized = true; } @@ -1137,6 +1189,16 @@ return NULL; } + /* initialize to some magic values that indicate "IE not [yet] received" */ + conn->lcls.config = 0xff; + conn->lcls.control = 0xff; + conn->lcls.fi = osmo_fsm_inst_alloc_child(&lcls_fsm, conn->fi, GSCON_EV_LCLS_FAIL); + if (!conn->lcls.fi) { + osmo_fsm_inst_term(conn->fi, OSMO_FSM_TERM_ERROR, NULL); + return NULL; + } + conn->lcls.fi->priv = conn; + llist_add_tail(&conn->entry, &net->subscr_conns); return conn; } diff --git a/src/libbsc/bsc_vty.c b/src/libbsc/bsc_vty.c index 6c2257d..757a8a1 100644 --- a/src/libbsc/bsc_vty.c +++ b/src/libbsc/bsc_vty.c @@ -1521,6 +1521,14 @@ conn->sccp.conn_id, conn->sccp.msc->nr, conn->hodec2.failures, get_value_string(gsm48_chan_mode_names, conn->user_plane.chan_mode), conn->user_plane.mgw_endpoint, VTY_NEWLINE); + if (conn->lcls.global_call_ref_len) { + vty_out(vty, " LCLS GCR: %s%s", + osmo_hexdump_nospc(conn->lcls.global_call_ref, conn->lcls.global_call_ref_len), + VTY_NEWLINE); + vty_out(vty, " LCLS Config: 0x%02x, LCLS Control: 0x%02x, LCLS BSS Status: %s%s", + conn->lcls.config, conn->lcls.control, osmo_fsm_inst_state_name(conn->lcls.fi), + VTY_NEWLINE); + } if (conn->lchan) lchan_dump_full_vty(vty, conn->lchan); if (conn->secondary_lchan) diff --git a/src/libbsc/osmo_bsc_lcls.c b/src/libbsc/osmo_bsc_lcls.c new file mode 100644 index 0000000..e32376d --- /dev/null +++ b/src/libbsc/osmo_bsc_lcls.c @@ -0,0 +1,760 @@ +/* (C) 2018 by Harald Welte + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct value_string lcls_event_names[] = { + { LCLS_EV_UPDATE_CFG_CSC, "UPDATE_CFG_CSC" }, + { LCLS_EV_APPLY_CFG_CSC, "APPLY_CFG_CSC" }, + { LCLS_EV_CORRELATED, "CORRELATED" }, + { LCLS_EV_OTHER_ENABLED, "OTHER_ENABLED" }, + { LCLS_EV_OTHER_BREAK, "OTHER_BREAK" }, + { LCLS_EV_OTHER_DEAD, "OTHER_DEAD" }, + { 0, NULL } +}; + + +/*********************************************************************** + * Utility functions + ***********************************************************************/ + +enum gsm0808_lcls_status lcls_get_status(struct gsm_subscriber_connection *conn) +{ + if (!conn->lcls.fi) + return 0xff; + + switch (conn->lcls.fi->state) { + case ST_NO_LCLS: + return 0xff; + case ST_NOT_YET_LS: + return GSM0808_LCLS_STS_NOT_YET_LS; + case ST_NOT_POSSIBLE_LS: + return GSM0808_LCLS_STS_NOT_POSSIBLE_LS; + case ST_NO_LONGER_LS: + return GSM0808_LCLS_STS_NO_LONGER_LS; + case ST_REQ_LCLS_NOT_SUPP: + return GSM0808_LCLS_STS_REQ_LCLS_NOT_SUPP; + case ST_LOCALLY_SWITCHED: + case ST_LOCALLY_SWITCHED_WAIT_BREAK: + case ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK: + return GSM0808_LCLS_STS_LOCALLY_SWITCHED; + } + OSMO_ASSERT(0); +} + +static void lcls_send_notify(struct gsm_subscriber_connection *conn) +{ + enum gsm0808_lcls_status status = lcls_get_status(conn); + struct msgb *msg; + + if (status == 0xff) + return; + + LOGPFSM(conn->lcls.fi, "Sending BSSMAP LCLS NOTIFICATION (%s)\n", + gsm0808_lcls_status_name(status)); + msg = gsm0808_create_lcls_notification(status, false); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_TX_SCCP, msg); +} + +static struct gsm_subscriber_connection * +find_conn_with_same_gcr(struct gsm_subscriber_connection *conn_local) +{ + struct gsm_network *net = conn_local->network; + struct gsm_subscriber_connection *conn_other; + + llist_for_each_entry(conn_other, &net->subscr_conns, entry) { + /* don't report back the same connection */ + if (conn_other == conn_local) + continue; + /* don't consider any conn where GCR length is not the same as before */ + if (conn_other->lcls.global_call_ref_len != conn_local->lcls.global_call_ref_len) + continue; + if (!memcmp(conn_other->lcls.global_call_ref, conn_local->lcls.global_call_ref, + conn_local->lcls.global_call_ref_len)) + return conn_other; + } + return NULL; +} + +static bool lcls_is_supported_config(enum gsm0808_lcls_config cfg) +{ + /* this is the only configuration that we support for now */ + if (cfg == GSM0808_LCLS_CFG_BOTH_WAY) + return true; + else + return false; +} + +/* LCLS Call Leg Correlation as per 23.284 4.3 / 48.008 3.1.33.2.1 */ +static int lcls_perform_correlation(struct gsm_subscriber_connection *conn_local) +{ + struct gsm_subscriber_connection *conn_other; + + /* We can only correlate if a GCR is present */ + OSMO_ASSERT(conn_local->lcls.global_call_ref_len); + /* We can only correlate if we're not in active LS */ + OSMO_ASSERT(conn_local->lcls.fi->state != ST_LOCALLY_SWITCHED && + conn_local->lcls.fi->state != ST_LOCALLY_SWITCHED_WAIT_BREAK && + conn_local->lcls.fi->state != ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK); + + conn_other = conn_local->lcls.other; + if (conn_other) { + LOGPFSM(conn_local->lcls.fi, "Breaking previous correlation with %s\n", + osmo_fsm_inst_name(conn_other->lcls.fi)); + OSMO_ASSERT(conn_other->lcls.fi->state != ST_LOCALLY_SWITCHED && + conn_other->lcls.fi->state != ST_LOCALLY_SWITCHED_WAIT_BREAK && + conn_other->lcls.fi->state != ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK); + conn_local->lcls.other->lcls.other = NULL; + conn_local->lcls.other = NULL; + } + + conn_other = find_conn_with_same_gcr(conn_local); + if (!conn_other) { + /* we found no other call with same GCR: not possible */ + LOGPFSM(conn_local->lcls.fi, "Unsuccessful correlation\n"); + return -ENODEV; + } + + /* store pointer to "other" in "local" */ + conn_local->lcls.other = conn_other; + + LOGPFSM(conn_local->lcls.fi, "Successfully correlated with %s\n", + osmo_fsm_inst_name(conn_other->lcls.fi)); + + /* notify other conn about our correlation */ + osmo_fsm_inst_dispatch(conn_other->lcls.fi, LCLS_EV_CORRELATED, conn_local); + + return 0; +} + + +struct lcls_cfg_csc { + enum gsm0808_lcls_config config; + enum gsm0808_lcls_control control; +}; + +/* Update the connections LCLS configuration and return old/previous configuration. + * \returns (staticallly allocated) old configuration; NULL if new config not supported */ +static struct lcls_cfg_csc *update_lcls_cfg_csc(struct gsm_subscriber_connection *conn, + struct lcls_cfg_csc *new_cfg_csc) +{ + static struct lcls_cfg_csc old_cfg_csc; + old_cfg_csc.config = conn->lcls.config; + old_cfg_csc.control = conn->lcls.control; + + if (new_cfg_csc->config != 0xff) { + if (!lcls_is_supported_config(new_cfg_csc->config)) + return NULL; + if (conn->lcls.config != new_cfg_csc->config) { + /* TODO: logging */ + conn->lcls.config = new_cfg_csc->config; + } + } + if (new_cfg_csc->control != 0xff) { + if (conn->lcls.control != new_cfg_csc->control) { + /* TODO: logging */ + conn->lcls.control = new_cfg_csc->control; + } + } + + return &old_cfg_csc; +} + +/* Attempt to update conn->lcls with the new config/csc provided. If new config is + * unsupported, change into LCLS NOT SUPPORTED state and return -EINVAL. */ +static int lcls_handle_cfg_update(struct gsm_subscriber_connection *conn, void *data) +{ + struct lcls_cfg_csc *new_cfg_csc, *old_cfg_csc; + + new_cfg_csc = (struct lcls_cfg_csc *) data; + old_cfg_csc = update_lcls_cfg_csc(conn, new_cfg_csc); + if (!old_cfg_csc) { + osmo_fsm_inst_state_chg(conn->lcls.fi, ST_REQ_LCLS_NOT_SUPP, 0, 0); + return -EINVAL; + } + return 0; +} + +/* notify the LCLS FSM about new LCLS Config and/or CSC */ +void lcls_update_config(struct gsm_subscriber_connection *conn, + const uint8_t *config, const uint8_t *control) +{ + struct lcls_cfg_csc new_cfg = { + .config = 0xff, + .control = 0xff, + }; + /* nothing to update, skip it */ + if (!config && !control) + return; + if (config) + new_cfg.config = *config; + if (control) + new_cfg.control = *control; + osmo_fsm_inst_dispatch(conn->lcls.fi, LCLS_EV_UPDATE_CFG_CSC, &new_cfg); +} + +/* apply the configuration, may be changed before by lcls_update_config */ +void lcls_apply_config(struct gsm_subscriber_connection *conn) +{ + osmo_fsm_inst_dispatch(conn->lcls.fi, LCLS_EV_APPLY_CFG_CSC, NULL); +} + +static void lcls_break_local_switching(struct gsm_subscriber_connection *conn) +{ + struct mgcp_conn_peer peer; + struct sockaddr_in *sin; + + LOGPFSM(conn->lcls.fi, "=== HERE IS WHERE WE DISABLE LCLS\n"); + if (!conn->user_plane.fi_msc) { + /* the MGCP FSM has died, e.g. due to some MGCP/SDP parsing error */ + LOGPFSML(conn->lcls.fi, LOGL_NOTICE, "Cannot disable LCLS without MSC-side MGCP FSM\n"); + return; + } + + sin = (struct sockaddr_in *)&conn->user_plane.aoip_rtp_addr_remote; + OSMO_ASSERT(sin->sin_family == AF_INET); + + memset(&peer, 0, sizeof(peer)); + peer.port = htons(sin->sin_port); + osmo_strlcpy(peer.addr, inet_ntoa(sin->sin_addr), sizeof(peer.addr)); + mgcp_conn_modify(conn->user_plane.fi_msc, 0, &peer); +} + +static bool lcls_enable_possible(struct gsm_subscriber_connection *conn) +{ + struct gsm_subscriber_connection *other_conn = conn->lcls.other; + OSMO_ASSERT(other_conn); + + if (!lcls_is_supported_config(conn->lcls.config)) { + LOGPFSM(conn->lcls.fi, "Not enabling LS due to unsupported local config\n"); + return false; + } + + if (!lcls_is_supported_config(other_conn->lcls.config)) { + LOGPFSM(conn->lcls.fi, "Not enabling LS due to unsupported other config\n"); + return false; + } + + if (conn->lcls.control != GSM0808_LCLS_CSC_CONNECT) { + LOGPFSM(conn->lcls.fi, "Not enabling LS due to insufficient local control\n"); + return false; + } + + if (other_conn->lcls.control != GSM0808_LCLS_CSC_CONNECT) { + LOGPFSM(conn->lcls.fi, "Not enabling LS due to insufficient other control\n"); + return false; + } + + return true; +} + +/*********************************************************************** + * State callback functions + ***********************************************************************/ + +static void lcls_no_lcls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + /* we're just starting and cannot yet have a correlated call */ + OSMO_ASSERT(conn->lcls.other == NULL); + + /* If there's no GCR set, we can never leave this state */ + if (conn->lcls.global_call_ref_len == 0) { + LOGPFSML(fi, LOGL_NOTICE, "No GCR set, ignoring %s\n", + osmo_fsm_event_name(fi->fsm, event)); + return; + } + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + return; + case LCLS_EV_APPLY_CFG_CSC: + if (conn->lcls.config == 0xff) + return; + if (lcls_perform_correlation(conn) != 0) { + /* Correlation leads to no result: Not Possible to LS */ + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + return; + } + /* we now have two correlated calls */ + OSMO_ASSERT(conn->lcls.other); + if (lcls_enable_possible(conn)) { + /* Local Switching now active */ + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } else { + /* Couldn't be enabled: Not yet LS */ + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + } + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_not_yet_ls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + /* not yet locally switched means that we have correlation but no instruction + * to actually connect them yet */ + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + return; + case LCLS_EV_APPLY_CFG_CSC: + if (lcls_enable_possible(conn)) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } + break; + case LCLS_EV_OTHER_ENABLED: + OSMO_ASSERT(conn->lcls.other == data); + if (lcls_enable_possible(conn)) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + } else { + /* we couldn't enable our side, so ask other side to break */ + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + } + break; + case LCLS_EV_CORRELATED: + /* other call informs us that he correlated with us */ + conn->lcls.other = data; + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_not_possible_ls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other == NULL); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + return; + case LCLS_EV_APPLY_CFG_CSC: + if (lcls_perform_correlation(conn) != 0) { + /* no correlation result: Remain in NOT_POSSIBLE_LS */ + return; + } + /* we now have two correlated calls */ + OSMO_ASSERT(conn->lcls.other); + if (lcls_enable_possible(conn)) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } else { + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + } + break; + case LCLS_EV_CORRELATED: + /* other call informs us that he correlated with us */ + conn->lcls.other = data; + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + /* Send NOTIFY about the fact that correlation happened */ + lcls_send_notify(conn); + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_no_longer_ls_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + if (lcls_enable_possible(conn)) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_ENABLED, conn); + } + break; + case LCLS_EV_OTHER_ENABLED: + OSMO_ASSERT(conn->lcls.other == data); + if (lcls_enable_possible(conn)) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + } else { + /* we couldn't enable our side, so ask other side to break */ + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + } + break; + case LCLS_EV_CORRELATED: + /* other call informs us that he correlated with us */ + conn->lcls.other = data; + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void lcls_req_lcls_not_supp_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + /* we could have a correlated other call or not */ + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) + return; + //FIXME osmo_fsm_inst_state_chg(fi, + return; + case LCLS_EV_APPLY_CFG_CSC: + if (lcls_perform_correlation(conn) != 0) { + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + return; + } + /* we now have two correlated calls */ + OSMO_ASSERT(conn->lcls.other); + if (!lcls_is_supported_config(conn->lcls.config)) + return; + if (lcls_enable_possible(conn)) + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED, 0, 0); + else + osmo_fsm_inst_state_chg(fi, ST_NOT_YET_LS, 0, 0); + break; + case LCLS_EV_CORRELATED: + /* other call informs us that he correlated with us */ + conn->lcls.other = data; + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + break; + default: + OSMO_ASSERT(0); + break; + } + +} + +static void lcls_locally_switched_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) { + lcls_break_local_switching(conn); + return; + } + break; + case LCLS_EV_APPLY_CFG_CSC: + if (conn->lcls.control == GSM0808_LCLS_CSC_RELEASE_LCLS) { + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + /* FIXME: what if there's a new config included? */ + return; + } + /* TODO: Handle any changes of "config" once we support bi-casting etc. */ + break; + case LCLS_EV_OTHER_BREAK: + OSMO_ASSERT(conn->lcls.other == data); + osmo_fsm_inst_state_chg(fi, ST_LOCALLY_SWITCHED_WAIT_BREAK, 0, 0); + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + osmo_fsm_inst_state_chg(fi, ST_NOT_POSSIBLE_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + default: + OSMO_ASSERT(0); + break; + } +} + + +static void lcls_locally_switched_onenter(struct osmo_fsm_inst *fi, uint32_t prev_state) +{ + struct gsm_subscriber_connection *conn = fi->priv; + struct gsm_subscriber_connection *conn_other = conn->lcls.other; + struct mgcp_conn_peer peer; + struct sockaddr_in *sin; + + OSMO_ASSERT(conn_other); + + LOGPFSM(fi, "=== HERE IS WHERE WE ENABLE LCLS\n"); + if (!conn->user_plane.fi_msc) { + LOGPFSML(fi, LOGL_ERROR, "Cannot enable LCLS without MSC-side MGCP FSM. FIXME\n"); + return; + } + + sin = (struct sockaddr_in *)&conn_other->user_plane.aoip_rtp_addr_local; + OSMO_ASSERT(sin->sin_family == AF_INET); + + memset(&peer, 0, sizeof(peer)); + peer.port = htons(sin->sin_port); + osmo_strlcpy(peer.addr, inet_ntoa(sin->sin_addr), sizeof(peer.addr)); + mgcp_conn_modify(conn->user_plane.fi_msc, 0, &peer); + +} + +static void lcls_locally_switched_wait_break_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) { + lcls_break_local_switching(conn); + return; + } + break; + case LCLS_EV_APPLY_CFG_CSC: + if (conn->lcls.control == GSM0808_LCLS_CSC_RELEASE_LCLS) { + lcls_break_local_switching(conn); + osmo_fsm_inst_state_chg(fi, ST_NO_LONGER_LS, 0, 0); + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_BREAK, conn); + /* no NOTIFY here, as the caller will be returning status in LCLS-CTRL-ACK */ + /* FIXME: what if there's a new config included? */ + return; + } + /* TODO: Handle any changes of "config" once we support bi-casting etc. */ + break; + case LCLS_EV_OTHER_BREAK: + /* we simply ignore it, must be a re-transmission */ + break; + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + conn->lcls.other = NULL; + break; + default: + lcls_locally_switched_fn(fi, event, data); + break; + } +} + +static void lcls_locally_switched_wait_other_break_fn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + OSMO_ASSERT(conn->lcls.other); + + switch (event) { + case LCLS_EV_UPDATE_CFG_CSC: + if (lcls_handle_cfg_update(conn, data) != 0) { + lcls_break_local_switching(conn); + return; + } + /* TODO: Handle any changes of "config" once we support bi-casting etc. */ + break; + case LCLS_EV_OTHER_BREAK: + case LCLS_EV_OTHER_DEAD: + OSMO_ASSERT(conn->lcls.other == data); + lcls_break_local_switching(conn); + osmo_fsm_inst_state_chg(fi, ST_NO_LONGER_LS, 0, 0); + /* Send LCLS-NOTIFY to inform MSC */ + lcls_send_notify(conn); + break; + default: + lcls_locally_switched_fn(fi, event, data); + break; + } +} + +static void lcls_fsm_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) +{ + struct gsm_subscriber_connection *conn = fi->priv; + + if (conn->lcls.other) { + /* inform the "other" side that we're dead, so it can disabe LS and send NOTIFY */ + if (conn->lcls.other->fi) + osmo_fsm_inst_dispatch(conn->lcls.other->lcls.fi, LCLS_EV_OTHER_DEAD, conn); + conn->lcls.other = NULL; + } +} + + +/*********************************************************************** + * FSM Definition + ***********************************************************************/ + +#define S(x) (1 << (x)) + +static const struct osmo_fsm_state lcls_fsm_states[] = { + [ST_NO_LCLS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_APPLY_CFG_CSC), + .out_state_mask = S(ST_NO_LCLS) | + S(ST_NOT_YET_LS) | + S(ST_NOT_POSSIBLE_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NO_LCLS", + .action = lcls_no_lcls_fn, + }, + [ST_NOT_YET_LS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_APPLY_CFG_CSC) | + S(LCLS_EV_CORRELATED) | + S(LCLS_EV_OTHER_ENABLED) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NOT_YET_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NOT_YET_LS", + .action = lcls_not_yet_ls_fn, + }, + [ST_NOT_POSSIBLE_LS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_APPLY_CFG_CSC) | + S(LCLS_EV_CORRELATED), + .out_state_mask = S(ST_NOT_YET_LS) | + S(ST_NOT_POSSIBLE_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NOT_POSSIBLE_LS", + .action = lcls_not_possible_ls_fn, + }, + [ST_NO_LONGER_LS] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_APPLY_CFG_CSC) | + S(LCLS_EV_CORRELATED) | + S(LCLS_EV_OTHER_ENABLED) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "NO_LONGER_LS", + .action = lcls_no_longer_ls_fn, + }, + [ST_REQ_LCLS_NOT_SUPP] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_APPLY_CFG_CSC) | + S(LCLS_EV_CORRELATED) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NOT_YET_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED), + .name = "REQ_LCLS_NOT_SUPP", + .action = lcls_req_lcls_not_supp_fn, + }, + [ST_LOCALLY_SWITCHED] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_APPLY_CFG_CSC) | + S(LCLS_EV_OTHER_BREAK) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_NOT_POSSIBLE_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED_WAIT_BREAK) | + S(ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK) | + S(ST_LOCALLY_SWITCHED), + .name = "LOCALLY_SWITCHED", + .action = lcls_locally_switched_fn, + .onenter = lcls_locally_switched_onenter, + }, + /* received an "other" break, waiting for the local break */ + [ST_LOCALLY_SWITCHED_WAIT_BREAK] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_APPLY_CFG_CSC) | + S(LCLS_EV_OTHER_BREAK) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED) | + S(ST_LOCALLY_SWITCHED_WAIT_BREAK), + .name = "LOCALLY_SWITCHED_WAIT_BREAK", + .action = lcls_locally_switched_wait_break_fn, + }, + /* received a local break, waiting for the "other" break */ + [ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK] = { + .in_event_mask = S(LCLS_EV_UPDATE_CFG_CSC) | + S(LCLS_EV_OTHER_BREAK) | + S(LCLS_EV_OTHER_DEAD), + .out_state_mask = S(ST_NO_LONGER_LS) | + S(ST_REQ_LCLS_NOT_SUPP) | + S(ST_LOCALLY_SWITCHED) | + S(ST_LOCALLY_SWITCHED_WAIT_OTHER_BREAK), + .name = "LOCALLY_SWITCHED_WAIT_OTHER_BREAK", + .action = lcls_locally_switched_wait_other_break_fn, + }, + + +}; + +struct osmo_fsm lcls_fsm = { + .name = "LCLS", + .states = lcls_fsm_states, + .num_states = ARRAY_SIZE(lcls_fsm_states), + .allstate_event_mask = 0, + .allstate_action = NULL, + .cleanup = lcls_fsm_cleanup, + .timer_cb = NULL, + .log_subsys = DLCLS, + .event_names = lcls_event_names, +}; diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index f7f99fa..24a5e3a 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -34,8 +34,10 @@ #include #include #include +#include #include #include +#include #define IP_V4_ADDR_LEN 4 @@ -634,6 +636,83 @@ return -1; } +/* handle LCLS specific IES in BSSMAP ASS REQ */ +static void bssmap_handle_ass_req_lcls(struct gsm_subscriber_connection *conn, + const struct tlv_parsed *tp) +{ + const struct tlv_p_entry *tlv; + const uint8_t *config, *control; + + tlv = TLVP_GET(tp, GSM0808_IE_GLOBAL_CALL_REF); + if (tlv) { + if (tlv->len > sizeof(conn->lcls.global_call_ref)) + LOGPFSML(conn->fi, LOGL_ERROR, "Global Call Ref IE of %u bytes is too long\n", + tlv->len); + else { + LOGPFSM(conn->fi, "Setting GCR to %s\n", osmo_hexdump_nospc(tlv->val, tlv->len)); + memcpy(&conn->lcls.global_call_ref, tlv->val, tlv->len); + conn->lcls.global_call_ref_len = tlv->len; + } + } + + config = TLVP_VAL_MINLEN(tp, GSM0808_IE_LCLS_CONFIG, 1); + control = TLVP_VAL_MINLEN(tp, GSM0808_IE_LCLS_CONN_STATUS_CTRL, 1); + + if (config || control) { + LOGPFSM(conn->fi, "BSSMAP ASS REQ contains LCLS (%s / %s)\n", + config ? gsm0808_lcls_config_name(*config) : "NULL", + control ? gsm0808_lcls_control_name(*control) : "NULL"); + } + + /* Update the LCLS state with Config + CSC (if any) */ + lcls_update_config(conn, config, control); + + /* Do not attempt to perform correlation yet, as during processing of the ASS REQ + * we don't have the MGCP/MGW connections yet, and hence couldn't enable LS. */ +} + +/* TS 48.008 3.2.1.91 */ +static int bssmap_handle_lcls_connect_ctrl(struct gsm_subscriber_connection *conn, + struct msgb *msg, unsigned int length) +{ + struct msgb *resp; + struct tlv_parsed tp; + const uint8_t *config, *control; + int rc; + + OSMO_ASSERT(conn); + + rc = tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); + if (rc < 0) { + LOGPFSML(conn->fi, LOGL_ERROR, "Error parsing TLVs of LCLS CONNT CTRL: %s\n", + msgb_hexdump(msg)); + return rc; + } + config = TLVP_VAL_MINLEN(&tp, GSM0808_IE_LCLS_CONFIG, 1); + control = TLVP_VAL_MINLEN(&tp, GSM0808_IE_LCLS_CONN_STATUS_CTRL, 1); + + LOGPFSM(conn->fi, "Rx LCLS CONNECT CTRL (%s / %s)\n", + config ? gsm0808_lcls_config_name(*config) : "NULL", + control ? gsm0808_lcls_control_name(*control) : "NULL"); + + if (conn->lcls.global_call_ref_len == 0) { + LOGPFSML(conn->fi, LOGL_ERROR, "Ignoring LCLS as no GCR was set before\n"); + return 0; + } + /* Update the LCLS state with Config + CSC (if any) */ + lcls_update_config(conn, TLVP_VAL_MINLEN(&tp, GSM0808_IE_LCLS_CONFIG, 1), + TLVP_VAL_MINLEN(&tp, GSM0808_IE_LCLS_CONN_STATUS_CTRL, 1)); + lcls_apply_config(conn); + + LOGPFSM(conn->fi, "Tx LCLS CONNECT CTRL ACK (%s)\n", + gsm0808_lcls_status_name(lcls_get_status(conn))); + resp = gsm0808_create_lcls_conn_ctrl_ack(lcls_get_status(conn)); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_TX_SCCP, resp); + + return 0; +} + + /* * Handle the assignment request message. * @@ -682,6 +761,8 @@ goto reject; } + bssmap_handle_ass_req_lcls(conn, &tp); + /* Currently we only support a limited subset of all * possible channel types, such as multi-slot or CSD */ switch (ct.ch_indctr) { @@ -852,6 +933,9 @@ case BSS_MAP_MSG_ASSIGMENT_RQST: ret = bssmap_handle_assignm_req(conn, msg, length); break; + case BSS_MAP_MSG_LCLS_CONNECT_CTRL: + ret = bssmap_handle_lcls_connect_ctrl(conn, msg, length); + break; default: LOGP(DMSC, LOGL_NOTICE, "Unimplemented msg type: %s\n", gsm0808_bssmap_name(msg->l4h[0])); diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 095a07a..fefc041 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -369,6 +369,12 @@ .description = "PCU Interface", .enabled = 1, .loglevel = LOGL_DEBUG, }, + [DLCLS] = { + .name = "DLCLS", + .description = "Local Call, Local Switch", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, + }; static int filter_fn(const struct log_context *ctx, struct log_target *tar) -- To view, visit https://gerrit.osmocom.org/9416 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I614fade62834def5cafc94c4d2578cd747a3f9f7 Gerrit-Change-Number: 9416 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:31:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:31:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Disable verbose logging of MGCP encoder/decoder In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9424 ) Change subject: bsc: Disable verbose logging of MGCP encoder/decoder ...................................................................... bsc: Disable verbose logging of MGCP encoder/decoder Change-Id: I8147029a20828e762819be35ffebd801b22d2b6b --- M bsc/BSC_Tests.default 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.default b/bsc/BSC_Tests.default index 19c0c8c..6ba9ea2 100644 --- a/bsc/BSC_Tests.default +++ b/bsc/BSC_Tests.default @@ -2,6 +2,7 @@ BSSAP.FileMask := LOG_NOTHING; "VirtMSC-M3UA".FileMask := ERROR | WARNING; "VirtMSC-SCCP".FileMask := ERROR | WARNING; +"VirtMSC-MGCP".FileMask := ERROR | WARNING; "IPA0-RSL-IPA".FileMask := ERROR | WARNING; "IPA0-CTRL-IPA".FileMask := ERROR | WARNING; mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; -- To view, visit https://gerrit.osmocom.org/9424 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8147029a20828e762819be35ffebd801b22d2b6b Gerrit-Change-Number: 9424 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:31:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:31:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add LCLS related test cases In-Reply-To: References: Message-ID: Harald Welte has removed a vote on this change. Change subject: bsc: Add LCLS related test cases ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/9412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: deleteVote Gerrit-Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 Gerrit-Change-Number: 9412 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:33:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:33:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Enable LCLS in osmo-bsc.cfg Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9427 Change subject: bsc: Enable LCLS in osmo-bsc.cfg ...................................................................... bsc: Enable LCLS in osmo-bsc.cfg Change-Id: I39b0812423dd22f677334ad0ac406a23a1214fa9 --- M bsc/osmo-bsc.cfg 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/9427/1 diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index aa3edf1..1ccef09 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -354,6 +354,7 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 + lcls-mode mgw-loop bsc mid-call-timeout 0 no missing-msc-text -- To view, visit https://gerrit.osmocom.org/9427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I39b0812423dd22f677334ad0ac406a23a1214fa9 Gerrit-Change-Number: 9427 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:33:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:33:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add LCLS related test cases In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9412 ) Change subject: bsc: Add LCLS related test cases ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 Gerrit-Change-Number: 9412 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 03 Jun 2018 10:33:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:34:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:34:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add LCLS related test cases In-Reply-To: References: Message-ID: Harald Welte has removed a vote on this change. Change subject: bsc: Add LCLS related test cases ...................................................................... Removed Verified-1 by Jenkins Builder (1000002) -- To view, visit https://gerrit.osmocom.org/9412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: deleteVote Gerrit-Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 Gerrit-Change-Number: 9412 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:34:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:34:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add LCLS related test cases In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9412 ) Change subject: bsc: Add LCLS related test cases ...................................................................... bsc: Add LCLS related test cases This is an early WIP, we actually will need to establish two calls/legs before the BSC is able to locally correlate them. Related: OS#1602 Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 --- M bsc/BSC_Tests.ttcn A bsc/BSC_Tests_LCLS.ttcn M bsc/MSC_ConnectionHandler.ttcn M library/BSSMAP_Templates.ttcn 4 files changed, 634 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 80fb8c3..3830e7d 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1830,8 +1830,6 @@ vc_conn.done; } - - /* test if L3 RR CLASSMARK CHANGE is translated to BSSMAP CLASSMARK UPDATE */ private function f_tc_classmark(charstring id) runs on MSC_ConnHdlr { g_pars := valueof(t_def_TestHdlrPars); diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn new file mode 100644 index 0000000..42feb57 --- /dev/null +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -0,0 +1,579 @@ +module BSC_Tests_LCLS { + +/* Integration Tests for OsmoBSC + * (C) 2018 by Harald Welte + * All rights reserved. + * + * Released under the terms of GNU General Public License, Version 2 or + * (at your option) any later version. + * + * This test suite tests OsmoBSC while emulating both multiple BTS + MS as + * well as the MSC. See README for more details. + * + * There are test cases that run in so-called 'handler mode' and test cases + * that run directly on top of the BSSAP and RSL CodecPorts. The "handler mode" + * tests abstract the multiplexing/demultiplexing of multiple SCCP connections + * and/or RSL channels and are hence suitable for higher-level test cases, while + * the "raw" tests directly on top of the CodecPorts are more suitable for lower- + * level testing. + */ + +import from General_Types all; +import from Osmocom_Types all; +import from GSM_Types all; +import from IPL4asp_Types all; + +import from BSSAP_Types all; +import from BSSAP_Adapter all; +import from BSSAP_CodecPort all; +import from BSSMAP_Templates all; +import from IPA_Emulation all; +import from IPA_CodecPort all; +import from IPA_Types all; +import from RSL_Types all; +import from RSL_Emulation all; +import from MGCP_Types all; +import from MGCP_Emulation all; +import from MGCP_Templates all; +import from SDP_Types all; + +import from Osmocom_CTRL_Functions all; +import from Osmocom_CTRL_Types all; +import from Osmocom_CTRL_Adapter all; + +import from Osmocom_VTY_Functions all; +import from TELNETasp_PortType all; + +import from MobileL3_CommonIE_Types all; +import from MobileL3_Types all; +import from L3_Templates all; +import from GSM_RR_Types all; + +import from BSSMAP_Templates all; +import from BSSMAP_Emulation all; + +import from MSC_ConnectionHandler all; +import from BSC_Tests all; + +/* The philosophy of this testsuite is to re-use as much as possible the existing components + * and functions that we have in BSC_Tests and its dependencies. However, as opposed to those + * normal BSC tests, we here have to run *two* ConnHdlr and synchronize activity between them. + * + * We do this by adding some special-purpose ports between the main test component running the + * test case [lcls_]test_CT and the per-connection [LCLS_]MSC_ConnHdlr. + */ + + +/* take test_CT from BSC_Tests and extend it with LCLS specific bits */ +type component lcls_test_CT extends test_CT { + /* Component references */ + var LCLS_MSC_ConnHdlr vc_CONN_A; + var LCLS_MSC_ConnHdlr vc_CONN_B; + /* Ports to the two call legs */ + port LCLS_InterComp_PT CONN_A; + port LCLS_InterComp_PT CONN_B; +} + +/* take MSC_ConnHdlr and extend it with LCLS specific bits */ +type component LCLS_MSC_ConnHdlr extends MSC_ConnHdlr { + /* Port back to the controlling lcls_test_CT */ + port LCLS_InterComp_PT MASTER; +} + +/* port type between lcls_test_CT and LCLS_MSC_ConnHdlr */ +type port LCLS_InterComp_PT message { + /* BSSAP from BSSA_ConnHdlr */ + inout PDU_BSSAP, BSSAP_Conn_Prim, PDU_DTAP_MO, PDU_DTAP_MT, + /* RSL from RSL_DchanHdlr */ + RSLDC_ChanRqd, RSL_Message, + /* MGCP from MGCP_ConnHdlr */ + MgcpCommand, MgcpResponse, + LclsCompSync; +} with { extension "internal" }; + +type enumerated LclsCompSync { + /* ConnHdlr signals to master component that assignment has completed */ + LCLS_COMP_SYNC_ASS_COMPL +} + + +/* forward messages between the RSL/MGCP/BSSAP Emulation and the master component */ +private altstep as_lcls_conn_hdlr_proxy() runs on LCLS_MSC_ConnHdlr { + var PDU_BSSAP bssap; + var BSSAP_Conn_Prim bssap_p; + var PDU_DTAP_MO dtap_mo; + var PDU_DTAP_MT dtap_mt; + var MgcpCommand mgcp_cmd; + var MgcpResponse mgcp_rsp; + var RSL_Message rsl_msg; + /* from ConnHdlr to master process */ + [] BSSAP.receive(PDU_BSSAP:?) -> value bssap { MASTER.send(bssap); } + [] BSSAP.receive(BSSAP_Conn_Prim:?) -> value bssap_p { MASTER.send(bssap_p); } + [] BSSAP.receive(PDU_DTAP_MO:?) -> value dtap_mo { MASTER.send(dtap_mo); } + [] BSSAP.receive(PDU_DTAP_MT:?) -> value dtap_mt { MASTER.send(dtap_mt); } + [] MGCP.receive(MgcpCommand:?) -> value mgcp_cmd { MASTER.send(mgcp_cmd); } + [] MGCP.receive(MgcpResponse:?) -> value mgcp_rsp { MASTER.send(mgcp_rsp); } + [] RSL.receive(RSL_Message:?) -> value rsl_msg { MASTER.send(rsl_msg); } + /* from master process to ConnHdlr */ + [] MASTER.receive(PDU_BSSAP:?) -> value bssap { BSSAP.send(bssap); } + [] MASTER.receive(PDU_DTAP_MO:?) -> value dtap_mo { BSSAP.send(dtap_mo); } + [] MASTER.receive(PDU_DTAP_MT:?) -> value dtap_mt { BSSAP.send(dtap_mt); } + [] MASTER.receive(MgcpCommand:?) -> value mgcp_cmd { MGCP.send(mgcp_cmd); } + [] MASTER.receive(MgcpResponse:?) -> value mgcp_rsp { MGCP.send(mgcp_rsp); } + [] MASTER.receive(RSL_Message:?) -> value rsl_msg { RSL.send(rsl_msg); } +} + + +private function f_lcls_connhdlr_main(charstring id) runs on LCLS_MSC_ConnHdlr { + /* 1) establish the connection between RSL and BSSAP side */ + var PDU_BSSAP ass_req := f_gen_ass_req(); + var template PDU_BSSAP ass_compl := f_gen_exp_compl(); + ass_req.pdu.bssmap.assignmentRequest.codecList := g_pars.ass_codec_list; + f_establish_fully(ass_req, ass_compl); + + /* 2) notify master that assignment has completed */ + MASTER.send(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + + /* 3) proxy packets between master component and various ports */ + while (true) { + as_lcls_conn_hdlr_proxy(); + } +} + +type function lcls_void_fn(charstring id) runs on LCLS_MSC_ConnHdlr; + +/* first function inside ConnHdlr component; sets g_pars + starts function */ +private function f_handler_init(lcls_void_fn fn, charstring id, template (omit) TestHdlrParams pars := omit) +runs on LCLS_MSC_ConnHdlr { + if (isvalue(pars)) { + g_pars := valueof(pars); + } + fn.apply(id); +} + +/* function creating the two ConnHdlrs, connecting them + starting them */ +private function f_lcls_test_init(TestHdlrParams pars_a, TestHdlrParams pars_b) runs on lcls_test_CT { + var charstring id_a := testcasename() & "-A"; + var charstring id_b := testcasename() & "-B"; + + pars_b.imsi := '002029876543210'H; + pars_b.media_nr := 2; + + /* create and connect the two ConnHandlers */ + vc_CONN_A := LCLS_MSC_ConnHdlr.create(id_a); + f_connect_handler(vc_CONN_A); + connect(vc_CONN_A:MASTER, self:CONN_A); + + vc_CONN_B := LCLS_MSC_ConnHdlr.create(id_b); + f_connect_handler(vc_CONN_B); + connect(vc_CONN_B:MASTER, self:CONN_B); + + /* start the two components */ + vc_CONN_A.start(f_handler_init(refers(f_lcls_connhdlr_main), id_a, pars_a)); + f_sleep(3.0); + vc_CONN_B.start(f_handler_init(refers(f_lcls_connhdlr_main), id_b, pars_b)); +} + +private function f_lcls_test_fini() runs on lcls_test_CT { + vc_CONN_A.stop; + vc_CONN_B.stop; +} + +/* ignore some messages which we're not interested in evaluating (yet) */ +private altstep as_ignore() runs on lcls_test_CT { + [] CONN_A.receive(tr_DLCX) { repeat; } + [] CONN_B.receive(tr_DLCX) { repeat; } +} + +/* fail if any notify is being received */ +private altstep as_fail_on_lcls_notify() runs on lcls_test_CT +{ + [] CONN_A.receive(tr_BSSMAP_LclsNotification(?, *)) { + setverdict(fail, "Unexpected BSSMAP LCLS Notification"); + } + [] CONN_B.receive(tr_BSSMAP_LclsNotification(?, *)) { + setverdict(fail, "Unexpected BSSMAP LCLS Notification"); + } +} + +private function f_wait_fail_notify() runs on lcls_test_CT +{ + timer T := 3.0; + T.start; + alt { + [] as_fail_on_lcls_notify(); + [] T.timeout { } + } +} + +private function f_lcls_init(integer nr_bts := 1) runs on lcls_test_CT +{ + var default d; + + d := activate(as_ignore()); + f_init(nr_bts, true); + f_sleep(1.0); +} + + +/* Send an ASSIGNMENT REQ with LCLS GCR only, without LCLS CFG or CSC */ +testcase TC_lcls_gcr_only() runs on lcls_test_CT { + var TestHdlrParams pars := valueof(t_def_TestHdlrPars); + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + /* Expect LCLS status to be not reported, as no LCLS config was signalled */ + pars.lcls.exp_sts := omit; + + f_lcls_test_init(pars, pars); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect connect both-way */ +testcase TC_lcls_gcr_bway_connect() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + var MgcpCommand mgcp_cmd; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* second call should then reuslt in LS */ + pars_b.lcls.exp_sts := LCLS_STS_locally_switched; + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + interleave { + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + [] CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + [] CONN_A.receive(tr_MDCX) -> value mgcp_cmd { + CONN_A.send(f_build_mdcx_rsp(mgcp_cmd)); + } + } + + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS CFG+CSC enabling LCLS but GCR doesn't match! */ +testcase TC_lcls_gcr_nomatch_bway_connect() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + var MgcpCommand mgcp_cmd; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_b.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090b'O)); + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */ +testcase TC_lcls_gcr_bway_dont_connect() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_do_not_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* Expect LCLS is *NOT* established */ + pars_b.lcls.exp_sts := LCLS_STS_not_yet_ls; + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */ +testcase TC_lcls_gcr_unsuppported_cfg() runs on lcls_test_CT { + var TestHdlrParams pars := valueof(t_def_TestHdlrPars); + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars.lcls.cfg := LCLS_CFG_both_way_and_send_DL; + pars.lcls.csc := LCLS_CSC_connect; + /* Expect LCLS is *NOT* established with "LCLS_STS_req_lcls_not_supp" */ + pars.lcls.exp_sts := LCLS_STS_req_lcls_not_supp; + + f_lcls_test_init(pars, pars); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with LCLS GCR+CFG+CSC; expect no connect */ +testcase TC_lcls_gcr_unsuppported_csc() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_bicast_UL_and_recv_DL_at_handover; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* Expect LCLS is *NOT* established */ + pars_b.lcls.exp_sts := LCLS_STS_not_yet_ls; + + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + f_lcls_test_fini(); +} + +/* Send an ASSIGNMENT REQ with "do not connect" and enable later using LCLS CTRL */ +testcase TC_lcls_gcr_bway_dont_connect_csc() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + var MgcpCommand mgcp_cmd; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_do_not_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* Expect LCLS is *NOT* established */ + pars_b.lcls.exp_sts := LCLS_STS_not_yet_ls; + + /* start call and expect it to be "not yet" LS */ + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + f_sleep(2.0); + + /* send "connect" on A side, expect call to remain in "not yet" */ + CONN_A.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_connect))); + CONN_A.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_not_yet_ls))); + f_sleep(2.0); + + /* send "connect" on B side, expect call to go LS, with notify to A side */ + CONN_B.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_connect))); + interleave { + [] CONN_B.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_locally_switched))); + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + [] CONN_A.receive(tr_MDCX) -> value mgcp_cmd { + CONN_A.send(f_build_mdcx_rsp(mgcp_cmd)); + } + [] CONN_B.receive(tr_MDCX) -> value mgcp_cmd { + CONN_B.send(f_build_mdcx_rsp(mgcp_cmd)); + } + } + f_wait_fail_notify(); + f_lcls_test_fini(); +} + +private function f_build_mdcx_rsp(MgcpCommand mdcx) return MgcpResponse +{ + var MgcpConnectionId conn_id := f_MgcpCmd_extract_conn_id(mdcx); + var SDP_Message sdp_in := mdcx.sdp; + var MgcpResponse resp; + var SDP_Message sdp_out; + var integer rtp_pt := str2int(sdp_in.media_list[0].media_field.fmts[0]); + + sdp_out := valueof(ts_SDP(sdp_in.connection.conn_addr.addr, sdp_in.connection.conn_addr.addr, + "foo", "21", sdp_in.media_list[0].media_field.ports.port_number, + { int2str(rtp_pt) }, + { valueof(ts_SDP_rtpmap(rtp_pt, "AMR/8000")), + valueof(ts_SDP_ptime(20)) } )); + return valueof(ts_MDCX_ACK(mdcx.line.trans_id, conn_id, sdp_out)); +} + +/* Establish LCLS "connect" followed by a MSC-initiated break */ +testcase TC_lcls_connect_break() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + var MgcpCommand mgcp_cmd; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* second call should then reuslt in LS */ + pars_b.lcls.exp_sts := LCLS_STS_locally_switched; + + /* Expect LS to be established successfully */ + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + interleave { + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + [] CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + [] CONN_A.receive(tr_MDCX) -> value mgcp_cmd { + CONN_A.send(f_build_mdcx_rsp(mgcp_cmd)); + } +/* not needed, as this MDCX is still handled within MSC_ConnectionHandler + [] CONN_B.receive(tr_MDCX) -> value mgcp_cmd { + CONN_B.send(f_build_mdcx_rsp(mgcp_cmd)); + } +*/ + } + + /* request LS release on "A" side; call continues to be locally switched */ + CONN_A.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_release_lcls))); + CONN_A.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_locally_switched))); + f_sleep(2.0); + + /* request LS release on "B" side; call LS is released */ + CONN_B.send(ts_BSSMAP_LclsConnCtrl(omit, ts_BSSMAP_IE_LclsCsc(LCLS_CSC_release_lcls))); + interleave { + [] CONN_A.receive(tr_MDCX) -> value mgcp_cmd { + CONN_A.send(f_build_mdcx_rsp(mgcp_cmd)); + } + [] CONN_B.receive(tr_MDCX) -> value mgcp_cmd { + CONN_B.send(f_build_mdcx_rsp(mgcp_cmd)); + } + [] CONN_B.receive(tr_BSSMAP_LclsConnCtrlAck(tr_BSSMAP_IE_LclsSts(LCLS_STS_no_longer_ls))); + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_no_longer_ls)); + } + + f_lcls_test_fini(); +} + +/* Establish LCLS "connect" followed by a SCCP-level release of one leg */ +testcase TC_lcls_connect_clear() runs on lcls_test_CT { + var TestHdlrParams pars_a := valueof(t_def_TestHdlrPars); + var TestHdlrParams pars_b; + var MSC_ConnHdlr vc_conn; + var MgcpCommand mgcp_cmd; + var RSL_Message rsl; + + f_lcls_init(); + + pars_a.ass_codec_list := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + pars_a.lcls.gcr := valueof(ts_GCR('010203'O, '0405'O, '060708090a'O)); + pars_a.lcls.cfg := LCLS_CFG_both_way; + pars_a.lcls.csc := LCLS_CSC_connect; + pars_b := pars_a; + + /* first call is not possible to be LS (no second leg yet) */ + pars_a.lcls.exp_sts := LCLS_STS_not_possible_ls; + /* second call should then reuslt in LS */ + pars_b.lcls.exp_sts := LCLS_STS_locally_switched; + + /* Expect LS to be established successfully */ + f_lcls_test_init(pars_a, pars_b); + CONN_A.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + interleave { + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_yet_ls)); + [] CONN_A.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_locally_switched)); + [] CONN_B.receive(LclsCompSync:LCLS_COMP_SYNC_ASS_COMPL); + [] CONN_A.receive(tr_MDCX) -> value mgcp_cmd { + CONN_A.send(f_build_mdcx_rsp(mgcp_cmd)); + } + } + + /* Perform hard BSSMAP Clear on "A" side, expect no LS on "B" side */ + var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; + var octetstring l3_rr_chan_rel := '060D00'O; + CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val))); + interleave { + [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), l3_rr_chan_rel)); + [] CONN_A.receive(tr_RSL_DEACT_SACCH(?)); + [] CONN_A.receive(tr_RSL_RF_CHAN_REL(?)) -> value rsl { + var RSL_IE_Body ieb; + f_rsl_find_ie(rsl, RSL_IE_CHAN_NR, ieb); + CONN_A.send(ts_RSL_RF_CHAN_REL_ACK(ieb.chan_nr)); + } + [] CONN_A.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND); + [] CONN_A.receive(tr_BSSMAP_ClearComplete); + [] CONN_B.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_possible_ls)); + } + f_sleep(2.0); + + f_lcls_test_fini(); +} + + + + +/* TODO: + * verify IP/Port information in LCLS-triggered MDCX + * establish with one side connect, then enable using LCLS CTRL + * LCLS CTRL for call that doesn't have LCLS enabled + * LCLS IEs without GCR in ASS CMD + * GCR updates? + * Handover related LCLS bits (after we have inter-BSC HO in OsmoBSC) +*/ + + +control { + + execute( TC_lcls_gcr_only() ); + execute( TC_lcls_gcr_bway_connect() ); + execute( TC_lcls_gcr_nomatch_bway_connect() ); + execute( TC_lcls_gcr_bway_dont_connect() ); + execute( TC_lcls_gcr_unsuppported_cfg() ); + execute( TC_lcls_gcr_unsuppported_csc() ); + execute( TC_lcls_gcr_bway_dont_connect_csc() ); + execute( TC_lcls_connect_break() ); + execute( TC_lcls_connect_clear() ); + + +} + + +} diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 16a0547..225e86b 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -356,6 +356,15 @@ enc_key := key } +type record TestHdlrParamsLcls { + GlobalCallReferenceValue gcr optional, + /* LCLS Configuration */ + BIT4 cfg optional, + /* LCLS Connection Status Control */ + BIT4 csc optional, + BIT4 exp_sts optional +} + type record TestHdlrParams { OCT1 ra, GsmFrameNumber fn, @@ -363,7 +372,8 @@ RslLinkId link_id, integer media_nr, /* determins MGCP EP, port numbers */ BSSMAP_IE_SpeechCodecList ass_codec_list optional, - TestHdlrEncrParams encr optional + TestHdlrEncrParams encr optional, + TestHdlrParamsLcls lcls }; template (value) TestHdlrParams t_def_TestHdlrPars := { @@ -373,7 +383,13 @@ link_id := valueof(ts_RslLinkID_DCCH(0)), media_nr := 1, ass_codec_list := omit, - encr := omit + encr := omit, + lcls := { + gcr := omit, + cfg := omit, + csc := omit, + exp_sts := omit + } } function f_create_chan_and_exp() runs on MSC_ConnHdlr { @@ -711,11 +727,36 @@ } } +/* patch an BSSMAP ASS REQ with LCLS related IEs, depending on g_params */ +function f_ass_patch_lcls(inout template (omit) PDU_BSSAP ass_tpl, + inout template PDU_BSSAP ass_cpl) runs on MSC_ConnHdlr { + if (istemplatekind(ass_tpl, "omit")) { + return; + } + if (ispresent(g_pars.lcls.gcr)) { + ass_tpl.pdu.bssmap.assignmentRequest.globalCallReference := ts_BSSMAP_IE_GCR(g_pars.lcls.gcr); + } + if (ispresent(g_pars.lcls.cfg)) { + ass_tpl.pdu.bssmap.assignmentRequest.lCLS_Configuration := ts_BSSMAP_IE_LclsCfg(g_pars.lcls.cfg); + } + if (ispresent(g_pars.lcls.csc)) { + ass_tpl.pdu.bssmap.assignmentRequest.lCLS_ConnectionStatusControl := ts_BSSMAP_IE_LclsCsc(g_pars.lcls.csc); + } + if (ispresent(g_pars.lcls.exp_sts)) { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(g_pars.lcls.exp_sts); + } else { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := omit; + } +} + /* establish a channel fully, expecting an assignment matching 'exp' */ function f_establish_fully(template (omit) PDU_BSSAP ass_tpl, template PDU_BSSAP exp_ass_cpl) runs on MSC_ConnHdlr { f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3"); + /* patch in the LCLS related items, as needed */ + f_ass_patch_lcls(ass_tpl, exp_ass_cpl); + f_create_chan_and_exp(); /* we should now have a COMPL_L3 at the MSC */ BSSAP.receive(tr_BSSMAP_ComplL3); diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index ad90d66..d92ea61 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -1136,6 +1136,18 @@ } } +template PDU_BSSAP tr_BSSMAP_LclsNotificationSts(BIT4 sts) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + lCLS_Notification := { + messageType := '76'O, + lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(sts), + lCLS_BreakRequest := omit + } + } + } +} -- To view, visit https://gerrit.osmocom.org/9412 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie6d0b9c38027abf65c7c564fc79b889d013fa6a7 Gerrit-Change-Number: 9412 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:34:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:34:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: LCLS: Introduce a copy+pasted f_connect_handler() function In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9413 ) Change subject: LCLS: Introduce a copy+pasted f_connect_handler() function ...................................................................... LCLS: Introduce a copy+pasted f_connect_handler() function ... using the original one is hitting a ttcn3_compiler bug in TITAN 6.3.1, see https://www.eclipse.org/forums/index.php/m/1789918/ Change-Id: I7c2dfd3c6e63b54c019fba0c07a1bb777d68f6b5 --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn 2 files changed, 16 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 3830e7d..f99d46b 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1432,7 +1432,7 @@ type function void_fn(charstring id) runs on MSC_ConnHdlr; /* helper function to create and connect a MSC_ConnHdlr component */ -function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { +private function f_connect_handler(inout MSC_ConnHdlr vc_conn) runs on test_CT { connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC); connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 42feb57..fd37b4b 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -151,6 +151,21 @@ fn.apply(id); } +/* helper function to create and connect a MSC_ConnHdlr component */ +/* FIXME: Why can't we use BSC_Tests.f_connect_andler() ?!? */ +private function f_connect_handler(inout LCLS_MSC_ConnHdlr vc_conn) runs on lcls_test_CT { + connect(vc_conn:BSSMAPEM, g_bssap.vc_BSSMAP:PROC); + connect(vc_conn:MGCP_PROC, vc_MGCP:MGCP_PROC); + connect(vc_conn:RSL, bts[0].rsl.vc_RSL:CLIENT_PT); + connect(vc_conn:RSL_PROC, bts[0].rsl.vc_RSL:RSL_PROC); + if (isvalue(bts[1])) { + connect(vc_conn:RSL1, bts[1].rsl.vc_RSL:CLIENT_PT); + connect(vc_conn:RSL1_PROC, bts[1].rsl.vc_RSL:RSL_PROC); + } + connect(vc_conn:BSSAP, g_bssap.vc_BSSMAP:CLIENT); + connect(vc_conn:MGCP, vc_MGCP:MGCP_CLIENT); +} + /* function creating the two ConnHdlrs, connecting them + starting them */ private function f_lcls_test_init(TestHdlrParams pars_a, TestHdlrParams pars_b) runs on lcls_test_CT { var charstring id_a := testcasename() & "-A"; -- To view, visit https://gerrit.osmocom.org/9413 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7c2dfd3c6e63b54c019fba0c07a1bb777d68f6b5 Gerrit-Change-Number: 9413 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:34:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:34:38 +0000 Subject: Change in osmo-bsc[master]: LCLS: add VTY config to enable/disable LCLS on per-MSC basis In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9426 ) Change subject: LCLS: add VTY config to enable/disable LCLS on per-MSC basis ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ied7985056c8cd182bf16119007a08cc5be14459b Gerrit-Change-Number: 9426 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 03 Jun 2018 10:34:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:34:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:34:39 +0000 Subject: Change in osmo-bsc[master]: LCLS: add VTY config to enable/disable LCLS on per-MSC basis In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9426 ) Change subject: LCLS: add VTY config to enable/disable LCLS on per-MSC basis ...................................................................... LCLS: add VTY config to enable/disable LCLS on per-MSC basis The user might not want to enable LCLS support for administrative reasons. So let's keep it disabled by default, until somebody explicitly enables it with "lcls-mode mgw-loop". In the future, we may want to introduce a "lcls-mode bts-loop" where we don't loop at the BSC-colocated MGW, but where we instruct the BTSs to feed the RTP directly to each other. This would require a falt/transparent IP routing between the BTSs in the RAN. Change-Id: Ied7985056c8cd182bf16119007a08cc5be14459b Related: OS#1602 --- M include/osmocom/bsc/bsc_msc_data.h M src/libbsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_vty.c 3 files changed, 34 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index baa58e7..7235fba 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -58,6 +58,12 @@ MSC_CON_TYPE_LOCAL, }; +enum bsc_lcls_mode { + BSC_LCLS_MODE_DISABLED, + BSC_LCLS_MODE_MGW_LOOP, + /* we may later introduce BTS_LOOP here: direct RTP between BTSs */ +}; + /*! /brief Information on a remote MSC for libbsc. */ struct bsc_msc_data { @@ -85,6 +91,7 @@ struct gsm48_multi_rate_conf amr_conf; struct gsm_audio_support **audio_support; int audio_length; + enum bsc_lcls_mode lcls_mode; /* ussd welcome text */ char *ussd_welcome_txt; diff --git a/src/libbsc/osmo_bsc_lcls.c b/src/libbsc/osmo_bsc_lcls.c index e32376d..c2b0760 100644 --- a/src/libbsc/osmo_bsc_lcls.c +++ b/src/libbsc/osmo_bsc_lcls.c @@ -286,6 +286,12 @@ /* we're just starting and cannot yet have a correlated call */ OSMO_ASSERT(conn->lcls.other == NULL); + if (conn->sccp.msc->lcls_mode == BSC_LCLS_MODE_DISABLED) { + LOGPFSML(fi, LOGL_DEBUG, "LCLS disabled for this MSC, ignoring %s\n", + osmo_fsm_event_name(fi->fsm, event)); + return; + } + /* If there's no GCR set, we can never leave this state */ if (conn->lcls.global_call_ref_len == 0) { LOGPFSML(fi, LOGL_NOTICE, "No GCR set, ignoring %s\n", diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 34080c0..e6df7b3 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -38,6 +38,12 @@ #define IPA_STR "IP.ACCESS specific\n" +static const struct value_string bsc_lcls_mode_names[] = { + { BSC_LCLS_MODE_DISABLED, "disabled" }, + { BSC_LCLS_MODE_MGW_LOOP, "mgw-loop" }, + { 0, NULL } +}; + static struct osmo_bsc_data *osmo_bsc_data(struct vty *vty) { return bsc_gsmnet->bsc_data; @@ -175,6 +181,8 @@ msc->a.msc_addr_name, VTY_NEWLINE); } vty_out(vty, " asp-protocol %s%s", osmo_ss7_asp_protocol_name(msc->a.asp_proto), VTY_NEWLINE); + vty_out(vty, " lcls-mode %s%s", get_value_string(bsc_lcls_mode_names, msc->lcls_mode), + VTY_NEWLINE); /* write MGW configuration */ mgcp_client_config_write(vty, " "); @@ -628,6 +636,18 @@ return CMD_SUCCESS; } +DEFUN(cfg_net_msc_lcls_mode, + cfg_net_msc_lcls_mode_cmd, + "lcls-mode (disabled|mgw-loop)", + "Configure 3GPP LCLS (Local Call, Local Switch)\n" + "Disable LCLS for all calls of this MSC\n" + "Enable LCLS with loopping traffic in MGW\n") +{ + struct bsc_msc_data *data = bsc_msc_data(vty); + data->lcls_mode = get_string_value(bsc_lcls_mode_names, argv[0]); + return CMD_SUCCESS; +} + DEFUN(cfg_net_bsc_mid_call_text, cfg_net_bsc_mid_call_text_cmd, "mid-call-text .TEXT", @@ -903,6 +923,7 @@ install_element(MSC_NODE, &cfg_net_msc_amr_5_90_cmd); install_element(MSC_NODE, &cfg_net_msc_amr_5_15_cmd); install_element(MSC_NODE, &cfg_net_msc_amr_4_75_cmd); + install_element(MSC_NODE, &cfg_net_msc_lcls_mode_cmd); install_element(MSC_NODE, &cfg_msc_acc_lst_name_cmd); install_element(MSC_NODE, &cfg_msc_no_acc_lst_name_cmd); install_element(MSC_NODE, &cfg_msc_cs7_bsc_addr_cmd); -- To view, visit https://gerrit.osmocom.org/9426 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ied7985056c8cd182bf16119007a08cc5be14459b Gerrit-Change-Number: 9426 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:48:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:48:41 +0000 Subject: Change in libosmocore[master]: ctrl: Make 'struct ctrl_connection' non-public In-Reply-To: References: Message-ID: Harald Welte has abandoned this change. ( https://gerrit.osmocom.org/9377 ) Change subject: ctrl: Make 'struct ctrl_connection' non-public ...................................................................... Abandoned doesn't work -- To view, visit https://gerrit.osmocom.org/9377 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I3fb9fb19eb057a40fcda139066f04f1096944755 Gerrit-Change-Number: 9377 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 10:54:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 10:54:49 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 2: > Would it be a solution for the split to use something like > setup-lib.py and setup-scripts.py [...] @neels, @pespin: Would that be something you'd want? I think it may not be such a good idea, given that "python ./setup.py" is such a common notion that everyone understands it. Also, our ansible and other scripts might rely on the existing naming? I'm not the python guy here, sorry. -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Sun, 03 Jun 2018 10:54:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Jun 3 11:26:45 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 3 Jun 2018 11:26:45 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-rtl-sdr_=C2=BB_a1=3Dd?= =?UTF-8?Q?efault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#56?= In-Reply-To: <546852190.296.1527979280499.JavaMail.jenkins@jenkins.osmocom.org> References: <546852190.296.1527979280499.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <187733748.310.1528025205467.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sun Jun 3 11:29:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 11:29:29 +0000 Subject: Change in osmo-ci[master]: add script to create virtual machine with kernel gtp ggsn for qemu-kvm Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9428 Change subject: add script to create virtual machine with kernel gtp ggsn for qemu-kvm ...................................................................... add script to create virtual machine with kernel gtp ggsn for qemu-kvm Change-Id: Id9f1aee5d4158024517bc8e3884929b9efd1343e --- A qemu-kvm/ggsn-kernel-gtp/.gitignore A qemu-kvm/ggsn-kernel-gtp/create-vm.sh A qemu-kvm/ggsn-kernel-gtp/postinst.sh A qemu-kvm/ggsn-kernel-gtp/postinst/Release.key A qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys A qemu-kvm/ggsn-kernel-gtp/preseed.cfg 6 files changed, 187 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/28/9428/1 diff --git a/qemu-kvm/ggsn-kernel-gtp/.gitignore b/qemu-kvm/ggsn-kernel-gtp/.gitignore new file mode 100644 index 0000000..caa7b5c --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/.gitignore @@ -0,0 +1,2 @@ +postinst.tar.gz +*.qcow2 diff --git a/qemu-kvm/ggsn-kernel-gtp/create-vm.sh b/qemu-kvm/ggsn-kernel-gtp/create-vm.sh new file mode 100755 index 0000000..f6757ce --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/create-vm.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e -x + +tar czvf postinst.tar.gz postinst + +virt-install \ + --connect qemu:///system \ + --virt-type kvm \ + --name debian9 \ + --memory 1024 \ + --disk path=./debian9.qcow2,size=8 \ + --vcpus 1 \ + --os-type linux \ + --os-variant debian9 \ + --network bridge=lxcbr0 \ + --graphics none \ + --console pty,target_type=serial \ + --location 'http://ftp.de.debian.org/debian/dists/stretch/main/installer-amd64/' \ + --initrd-inject ./preseed.cfg \ + --initrd-inject ./postinst.sh \ + --initrd-inject ./postinst.tar.gz \ + --extra-args 'auto=true hostname=ggsn domain="" console=ttyS0,115200n8 serial' diff --git a/qemu-kvm/ggsn-kernel-gtp/postinst.sh b/qemu-kvm/ggsn-kernel-gtp/postinst.sh new file mode 100755 index 0000000..4cbe64c --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/postinst.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +# This script is run by debian installer using preseed/late_command +# directive, see preseed.cfg + +# Setup console, remove timeout on boot. +sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"/g; s/TIMEOUT=5/TIMEOUT=0/g' /etc/default/grub +update-grub + +# Members of `sudo` group are not asked for password. +sed -i 's/%sudo\tALL=(ALL:ALL) ALL/%sudo\tALL=(ALL:ALL) NOPASSWD:ALL/g' /etc/sudoers + +# Empty message of the day. +echo -n > /etc/motd + +# Unpack postinst tarball. +tar -x -v -z -C/tmp -f /tmp/postinst.tar.gz + +# Install SSH key for ggsn. +mkdir -m700 /home/ggsn/.ssh +cat /tmp/postinst/authorized_keys > /home/ggsn/.ssh/authorized_keys +chown -R ggsn:ggsn /home/ggsn/.ssh + +# Install SSH key for root. +mkdir -m700 /root/.ssh +cat /tmp/postinst/authorized_keys > /root/.ssh/authorized_keys +chown -R root:root /root/.ssh + +# Install misc packages required for building osmocom code +apt-get install -y --no-install-recommends \ + autoconf \ + autoconf-archive \ + autogen \ + automake \ + build-essential \ + gcc \ + git \ + libc-ares-dev \ + libgnutls28-dev \ + libncurses5-dev \ + libtalloc-dev \ + libreadline-dev \ + libsctp-dev \ + libtool \ + make \ + pkg-config +apt-get clean + +# add osmocom:nightly feed + install libosmocore-dev +apt-key add /tmp/postinst/Release.key +echo "deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/ ./" > /etc/apt/sources.list.d/osmocom-nightly.list +apt-get update +apt-get install -y --no-install-recommends \ + libosmocore-dev +apt-get clean + +# Remove some non-essential packages. +DEBIAN_FRONTEND=noninteractive apt-get purge -y nano laptop-detect tasksel dictionaries-common emacsen-common iamerican ibritish ienglish-common ispell + +# Set domain name in hosts file +#sed -i 's/127.0.1.1\t\([a-z]*\).*/127.0.1.1\t\1\.dp\-net\.com\t\1/' /etc/hosts + +# Avoid using DHCP-server provided domain name. +#sed -i 's/#supersede.*/supersede domain-name "dp-net.com";/' /etc/dhcp/dhclient.conf + +# check out sources we need from their respective repositories +cd /usr/local/src +git clone git://git.netfilter.org/libmnl +(cd libmnl && autoreconf -fi && ./configure && make && make install) +git clone git://git.osmocom.org/libgtpnl +(cd libgtpnl && autoreconf -fi && ./configure && make && make install) +git clone git://git.osmocom.org/osmo-ggsn +(cd osmo-ggsn && autoreconf -fi && ./configure --enable-gtp-linux && make && make install) +ldconfig diff --git a/qemu-kvm/ggsn-kernel-gtp/postinst/Release.key b/qemu-kvm/ggsn-kernel-gtp/postinst/Release.key new file mode 100644 index 0000000..e656238 --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/postinst/Release.key @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc +a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl +CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4 +5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee +S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y +CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy +b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCWmMc +aQIbAwUJDEAUbQYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3fjsoI +ALSXmXzFCpTxg8a6tvXkqddY/qAmeBMNUf7hslI9wN3leNmCrnuHS8TbHWYJZgtw +8M5fKL3aRQYaIiqqm1XOUF0OqwYNDj5V3y38mM68NYOkzgSP7foMwZp9Y0TlGhtI +L8weA+2RUjB4hwwGMAYMqkRZyKW3NhPqdlGGoXac1ilwEyGXFHdOLbkhtyS+P2yb +/EvaKIN5cMLzRZKeYgdp9WuAirV+yV/SDbgvabW098lrWhGLltlRRDQgMV883p8I +ERMI1wlLFZGnHL3mfBWGeQ24M/DaBOdXQDtfBLCJ9nGztmDBUb8i6GFWU7nD2TGi +8mYUsED1ZDwO/0jdvJ4gSluIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v +d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4= +=Gvly +-----END PGP PUBLIC KEY BLOCK----- diff --git a/qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys b/qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys new file mode 100644 index 0000000..817a537 --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys @@ -0,0 +1,2 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCmaAZWIdZZjFZHq7Xm5OCUz/Cm46haad+pm2iZ2uSQCIXubjN8HGz1XujBMH1DHhSDK+L0JOBEtxHaY4JR7F177V5R8o50VNwmtTrTaNBPS8WPyVBDuHjjDVSZA+d6QT3Y+3X/FhfoFKmGc2a8MZRmE8yDGW484y7MTZ4XBHqy5vWnnywxWCZm7kVqNccM4oQ4tPWlMTxk6+tgWC4wvk3axsUVUm0ak/WKuZLoX+jBWlsWXR4uwaOEqblpNMv98CxjLgpjEBTvZxgrgY35eAm11S9lmvxFSjLIZA1V/2huAA/9MSNvI4dX4ZQPHfLCsMqFjhkIY0hvFK2uX8hlxHhOR6GkOq3n3MdcKCMI+JAISCP6g++DdQO5wzfOLeSdpTETNpIxeFkjQLS+HnuAcgjRK6O7czI+xYfCiBcaoslsTIYi33Pg7gPuDjwAyVdKqQPVdYPluR8W5+FT1lFtf1jwIB3jgt+v9q+r6d4LfkOCAU17yxG6b40P+FqK9O7X+iUkva/lbghdAw7DimczDIuEMpVVVL3/WhmCIMrfJPG/RtMdoczcAw4q4FxBretZR1Ke4AomUvUklFwfMtLqijxBJN2Owpy7jtqggs+v6cUX54fKh7/SeVrgyIgeUtgJp6lqaxlMao8SoR59YoqLqZueYOp9QxYujA70AGoMMwxsEw== laforge at nataraja +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAX61B6rs76JfKmtqqFoR6o9KAP1/WVz9/COtjNrBDc6IfqDy46ZTlKwud4Nm3O3QF5cbdxx/hnOvep4SsLTArYuD8EcBtMoKhh8+c6Y30wR9l3kUWen4JEUJjFOCX/jr2SG4tikF/0S2zUJmILyFMw53pc1KSOmEewiWI8Z6U15ntLWEljWg+BWPs25kgQ5qeA3TO9ygNPFUrEQDGJlzLVubENwZOweTMll89bFaD+6jbjBG4ViPsSlzSvan9CThrTCrVCSmTObfOz3cEci0Wvgh1mBuOyfo5GyXQ7V8tHTF9AU5lGLybeyiXOki3f+bf9da8rnHuswR6ap8VsXrra2QFr40ro7ACCc7TC5Sa62c2Y8pC2Buuv3WcZ1x5PG7gRbU3iZqR0r7HeQGP/lVD0Z9uSV+9dSvg4uhsSS59XzRoI4gElHBiSGdxm0EKB+WI/0y+G9z10qyZggDPHqD67BY1Qpi5uQxQrFiOc5eadC0ucjjA2o4KqEid2cHI4qu8YLBns5X+GE1BB9o/ix5eSYFTBju0FlgzLaYEmo6zIURpKKvKfPEgpU/ZYWRX1SaUlohXaJxB60k87eyHNDCFwyIFDklZ8LB0WBvTJGqJaDmRcR9Idz4dP8UWCHD0hiShSLKW5sOFzkJflFRmaTWmBV8W/mwc9lVJrYuaSd7S4w== laforge at sunbeam.rsa diff --git a/qemu-kvm/ggsn-kernel-gtp/preseed.cfg b/qemu-kvm/ggsn-kernel-gtp/preseed.cfg new file mode 100644 index 0000000..3e70010 --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/preseed.cfg @@ -0,0 +1,66 @@ +# Preconfiguration file for jessie. +# For more details see https://www.debian.org/releases/jessie/example-preseed.txt +d-i debian-installer/locale string en_US +d-i keyboard-configuration/xkb-keymap select us + +# Choose an network interface that has link if possible. +d-i netcfg/choose_interface select auto + +# Disable that annoying WEP key dialog. +d-i netcfg/wireless_wep string + +# Mirror settings. +d-i mirror/country string manual +d-i mirror/http/hostname string ftp.de.debian.org +d-i mirror/http/directory string /debian +d-i mirror/http/proxy string + +# Root account setup. You can set password in plain-text or pre-encrypted. +d-i passwd/root-login boolean true +d-i passwd/root-password password ggsn +d-i passwd/root-password-again password ggsn +#d-i passwd/root-password-crypted password $6$1LCVFshS/kbYVg$M1QS1ZJ3.E7NkAD8sqkqhqExA2HWQ5/iDE.l23Xbr89Z7hTg/jUuBMyrYzANLmRybYcH8Smcy.yGDKMAX3okd0 + +# User account setup. +#d-i passwd/make-user boolean false +d-i passwd/user-fullname string Osmo GGSN +d-i passwd/username string ggsn +d-i passwd/user-password password ggsn +d-i passwd/user-password-again password ggsn +#d-i passwd/user-password-crypted password $6$dU9we2Mm$Btq1Tk1WkFx3/8YsXWbZr13m56uv0PabJKxk5teKAImLLQhtniOURXuOVLmbiBl0O3iS6xQBctNIc9Dn5b3vR. +# Password login is disabled. +#d-i passwd/user-password-crypted password ! + +# Controls whether or not the hardware clock is set to UTC. +d-i clock-setup/utc boolean true +# See the contents of /usr/share/zoneinfo/ for valid values. +d-i time/zone string Europe/Berlin +# Controls whether to use NTP to set the clock during the install. +d-i clock-setup/ntp boolean true + +# Simple non-LVM, all files in one partition. +# For more examples see https://www.debian.org/releases/jessie/example-preseed.txt +d-i partman-auto/method string regular +d-i partman-auto/choose_recipe select atomic +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + +# Do not install recommended packages by default. +d-i base-installer/install-recommends boolean false +tasksel tasksel/first multiselect +# Individual additional packages to install. acpid and acpi-support-base are required to make virsh shutdown to work. +# ACPI packages are needed for `virsh shutdown ` to work. +d-i pkgsel/include string openssh-server ca-certificates acpid acpi-support-base +popularity-contest popularity-contest/participate boolean false + +# Boot loader installation. +d-i grub-installer/only_debian boolean true +d-i grub-installer/bootdev string /dev/vda + +# Run postinst.sh in /target just before the install finishes. +d-i preseed/late_command string cp postinst.sh postinst.tar.gz /target/tmp/ && chmod 755 /target/tmp/postinst.sh && in-target /tmp/postinst.sh + +# Avoid that last message about the install being complete. +d-i finish-install/reboot_in_progress note -- To view, visit https://gerrit.osmocom.org/9428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id9f1aee5d4158024517bc8e3884929b9efd1343e Gerrit-Change-Number: 9428 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 11:54:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 11:54:00 +0000 Subject: Change in osmo-ci[master]: master-builds.yml: More fine-grained e-mail notifications Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9429 Change subject: master-builds.yml: More fine-grained e-mail notifications ...................................................................... master-builds.yml: More fine-grained e-mail notifications Some projects should alert certain inidividuals/maintainers Change-Id: I8aca77d557b2471aa23aa3418d72e7a62734524d --- M jobs/master-builds.yml 1 file changed, 13 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/29/9429/1 diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index d2cd6fa..cb61a82 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -19,6 +19,7 @@ cmd: ./contrib/jenkins.sh wrappers: [] trigger: + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org # in alphabetical order repos: @@ -61,6 +62,7 @@ $MAKE $PARALLEL_MAKE $MAKE distcheck trigger: master-osmo-gmr + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org 246tnt at gmail.com - libosmo-netif: # Full triggers would be: @@ -203,7 +205,8 @@ cmd: GTP="$GTP" ./contrib/jenkins.sh trigger: master-osmo-sgsn - - osmo-gmr + - osmo-gmr: + email: gerrit-log at lists.osmocom.org 246tnt at gmail.com - osmo-gsm-manuals: # publishing once is plenty @@ -306,8 +309,11 @@ -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ osmocom:amd64 /build/contrib/jenkins.sh - - osmo-sip-connector - - osmo-tetra + - osmo-sip-connector: + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org holger at freyther.de + + - osmo-tetra: + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org 246tnt at gmail.com - osmo-trx: a1_name: INSTR @@ -317,7 +323,9 @@ concurrent: true - osmocom-bb - - rtl-sdr + + - rtl-sdr: + email: laforge at gnumonks.org steve at steve-m.de jobs: - 'master-{repos}' @@ -389,7 +397,7 @@ - trigger: project: '{obj:trigger}' - email: - recipients: gerrit-log at lists.osmocom.org, laforge at gnumonks.org + recipients: '{obj:email}' send-to-individuals: true wrappers: '{obj:wrappers}' -- To view, visit https://gerrit.osmocom.org/9429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8aca77d557b2471aa23aa3418d72e7a62734524d Gerrit-Change-Number: 9429 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 14:27:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 14:27:40 +0000 Subject: Change in osmo-ci[master]: osmocom latest+nightly packages: Add rtl-sdr Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9430 Change subject: osmocom latest+nightly packages: Add rtl-sdr ...................................................................... osmocom latest+nightly packages: Add rtl-sdr Now that rtl-sdr has debian packaging information included, we can easily build it as part of the "latest" and "nightly" feeds. Change-Id: Idc6afb523e71ed977401d707895844bad6247f8b --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/30/9430/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 7073b07..0bc93f8 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -79,6 +79,7 @@ osmo-mgw osmo-msc osmo-bsc + rtl-sdr " [ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index a200f36..82a1fc6 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -160,6 +160,7 @@ checkout osmo-mgw checkout osmo-msc checkout osmo-bsc + checkout rtl-sdr checkout_limesuite build libosmocore @@ -183,6 +184,7 @@ build osmo-mgw build osmo-msc build osmo-bsc + build rtl-sdr download_bumpversion build limesuite no_commit --git-upstream-tree=v17.12.0 -- To view, visit https://gerrit.osmocom.org/9430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idc6afb523e71ed977401d707895844bad6247f8b Gerrit-Change-Number: 9430 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 14:27:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 14:27:41 +0000 Subject: Change in osmo-ci[master]: osmocom latest+nightly packages: Add osmo-fl2k Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9431 Change subject: osmocom latest+nightly packages: Add osmo-fl2k ...................................................................... osmocom latest+nightly packages: Add osmo-fl2k Now that osmo-fl2k has debian packaging information included, we can easily build it as part of the "latest" and "nightly" feeds. Change-Id: Ie2429df14ad51aadb55b4a7d8f6cfcb45c5c6e70 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/31/9431/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 0bc93f8..e37c2e0 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -80,6 +80,7 @@ osmo-msc osmo-bsc rtl-sdr + osmo-fl2k " [ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 82a1fc6..2898d8b 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -161,6 +161,7 @@ checkout osmo-msc checkout osmo-bsc checkout rtl-sdr + checkout osmo-fl2k checkout_limesuite build libosmocore @@ -185,6 +186,7 @@ build osmo-msc build osmo-bsc build rtl-sdr + build osmo-fl2k download_bumpversion build limesuite no_commit --git-upstream-tree=v17.12.0 -- To view, visit https://gerrit.osmocom.org/9431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie2429df14ad51aadb55b4a7d8f6cfcb45c5c6e70 Gerrit-Change-Number: 9431 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 3 14:44:08 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:44:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b13fec07f5b_1a87aca6847187db@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 47s] SIOCSIFADDR: File exists [ 48s] dpkg-source: warning: extracting unsigned source package (/usr/src/packages/SOURCES/osmo-fl2k_0.1.1.8.b6e8.dsc) [ 48s] dpkg-source: info: extracting osmo-fl2k in /usr/src/packages/BUILD [ 48s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.b6e8.tar.xz [ 48s] ----------------------------------------------------------------- [ 48s] ----- building osmo-fl2k_0.1.1.8.b6e8.dsc (user abuild) [ 48s] ----------------------------------------------------------------- [ 48s] ----------------------------------------------------------------- [ 48s] dpkg-buildpackage: source package osmo-fl2k [ 48s] dpkg-buildpackage: source version 0.1.1.8.b6e8 [ 48s] dpkg-buildpackage: source distribution UNRELEASED [ 48s] dpkg-buildpackage: source changed by Harald Welte [ 48s] dpkg-source --before-build BUILD [ 48s] dpkg-buildpackage: host architecture amd64 [ 48s] fakeroot debian/rules clean [ 48s] dh clean --with autoreconf [ 48s] dh: Sorry, but 10 is the highest compatibility level supported by this debhelper. [ 48s] debian/rules:7: recipe for target 'clean' failed [ 48s] make: *** [clean] Error 25 [ 48s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 48s] [ 48s] build75 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:44:02 UTC 2018. [ 48s] [ 48s] ### VM INTERACTION START ### [ 51s] [ 46.078436] reboot: Power down [ 51s] ### VM INTERACTION END ### [ 51s] [ 51s] build75 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:44:05 UTC 2018. [ 51s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 14:46:42 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:46:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b13ff54cbc25_1a87aca6847190e5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 56s] dpkg-source: warning: extracting unsigned source package (/usr/src/packages/SOURCES/osmo-fl2k_0.1.1.8.b6e8.dsc) [ 56s] dpkg-source: info: extracting osmo-fl2k in /usr/src/packages/BUILD [ 56s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.b6e8.tar.xz [ 56s] ----------------------------------------------------------------- [ 56s] ----- building osmo-fl2k_0.1.1.8.b6e8.dsc (user abuild) [ 56s] ----------------------------------------------------------------- [ 56s] ----------------------------------------------------------------- [ 56s] dpkg-buildpackage: source package osmo-fl2k [ 56s] dpkg-buildpackage: source version 0.1.1.8.b6e8 [ 56s] dpkg-buildpackage: source distribution UNRELEASED [ 56s] dpkg-buildpackage: source changed by Harald Welte [ 56s] dpkg-source --before-build BUILD [ 56s] dpkg-buildpackage: host architecture amd64 [ 57s] fakeroot debian/rules clean [ 57s] dh clean --with autoreconf [ 57s] dh: Sorry, but 10 is the highest compatibility level supported by this debhelper. [ 57s] debian/rules:7: recipe for target 'clean' failed [ 57s] make: *** [clean] Error 25 [ 57s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 57s] [ 57s] lamb62 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:46:25 UTC 2018. [ 57s] [ 57s] ### VM INTERACTION START ### [ 58s] Powering off. [ 58s] [ 51.241239] reboot: Power down [ 58s] ### VM INTERACTION END ### [ 58s] [ 58s] lamb62 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:46:27 UTC 2018. [ 58s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 14:47:50 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:47:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b13ffad714ce_1a87aca68471914e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_8.0/i586 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 57s] dpkg-source: warning: extracting unsigned source package (/usr/src/packages/SOURCES/osmo-fl2k_0.1.1.8.b6e8.dsc) [ 57s] dpkg-source: info: extracting osmo-fl2k in /usr/src/packages/BUILD [ 57s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.b6e8.tar.xz [ 57s] ----------------------------------------------------------------- [ 57s] ----- building osmo-fl2k_0.1.1.8.b6e8.dsc (user abuild) [ 57s] ----------------------------------------------------------------- [ 57s] ----------------------------------------------------------------- [ 57s] dpkg-buildpackage: source package osmo-fl2k [ 57s] dpkg-buildpackage: source version 0.1.1.8.b6e8 [ 57s] dpkg-buildpackage: source distribution UNRELEASED [ 57s] dpkg-buildpackage: source changed by Harald Welte [ 57s] dpkg-source --before-build BUILD [ 57s] dpkg-buildpackage: host architecture i386 [ 57s] fakeroot debian/rules clean [ 57s] dh clean --with autoreconf [ 57s] dh: Sorry, but 10 is the highest compatibility level supported by this debhelper. [ 57s] debian/rules:7: recipe for target 'clean' failed [ 57s] make: *** [clean] Error 25 [ 57s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 58s] [ 58s] lamb11 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:47:37 UTC 2018. [ 58s] [ 58s] ### VM INTERACTION START ### [ 59s] Powering off. [ 59s] [ 51.162528] reboot: Power down [ 59s] ### VM INTERACTION END ### [ 59s] [ 59s] lamb11 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:47:39 UTC 2018. [ 59s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 14:48:07 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:48:07 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b13ffae52ee4_1a87aca684719248@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-fl2k failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 122s] SIOCSIFADDR: File exists [ 123s] dpkg-source: warning: extracting unsigned source package (/usr/src/packages/SOURCES/osmo-fl2k_0.1.1.8.b6e8.dsc) [ 123s] dpkg-source: info: extracting osmo-fl2k in /usr/src/packages/BUILD [ 123s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.b6e8.tar.xz [ 123s] ----------------------------------------------------------------- [ 123s] ----- building osmo-fl2k_0.1.1.8.b6e8.dsc (user abuild) [ 123s] ----------------------------------------------------------------- [ 123s] ----------------------------------------------------------------- [ 123s] dpkg-buildpackage: source package osmo-fl2k [ 123s] dpkg-buildpackage: source version 0.1.1.8.b6e8 [ 123s] dpkg-buildpackage: source distribution UNRELEASED [ 123s] dpkg-buildpackage: source changed by Harald Welte [ 123s] dpkg-source --before-build BUILD [ 123s] dpkg-buildpackage: host architecture i386 [ 123s] fakeroot debian/rules clean [ 123s] dh clean --with autoreconf [ 123s] dh: Sorry, but 10 is the highest compatibility level supported by this debhelper. [ 123s] debian/rules:7: recipe for target 'clean' failed [ 123s] make: *** [clean] Error 25 [ 123s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 123s] [ 123s] cloud116 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:47:51 UTC 2018. [ 123s] [ 123s] ### VM INTERACTION START ### [ 127s] [ 105.250704] reboot: Power down [ 131s] ### VM INTERACTION END ### [ 131s] [ 131s] cloud116 failed "build osmo-fl2k_0.1.1.8.b6e8.dsc" at Sun Jun 3 14:47:59 UTC 2018. [ 131s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 14:55:01 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:55:01 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b14015277af1_1a87aca6847198ad@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-fl2k failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 65s] dpkg-source: info: extracting osmo-fl2k in /usr/src/packages/BUILD [ 65s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.7e71.tar.xz [ 65s] ----------------------------------------------------------------- [ 65s] ----- building osmo-fl2k_0.1.1.8.7e71.dsc (user abuild) [ 65s] ----------------------------------------------------------------- [ 65s] ----------------------------------------------------------------- [ 65s] dpkg-buildpackage: source package osmo-fl2k [ 65s] dpkg-buildpackage: source version 0.1.1.8.7e71 [ 65s] dpkg-buildpackage: source distribution UNRELEASED [ 65s] dpkg-buildpackage: source changed by Harald Welte [ 65s] dpkg-source --before-build BUILD [ 65s] dpkg-buildpackage: host architecture i386 [ 65s] fakeroot debian/rules clean [ 65s] dh clean --with autoreconf [ 65s] dh: unable to load addon autoreconf: Can't locate Debian/Debhelper/Sequence/autoreconf.pm in @INC (you may need to install the Debian::Debhelper::Sequence::autoreconf module) (@INC contains: /etc/perl /usr/local/lib/i386-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/i386-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/i386-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/i386-linux-gnu/perl-base .) at (eval 13) line 2. [ 65s] BEGIN failed--compilation aborted at (eval 13) line 2. [ 65s] [ 65s] debian/rules:7: recipe for target 'clean' failed [ 65s] make: *** [clean] Error 2 [ 65s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 65s] [ 65s] lamb20 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:54:53 UTC 2018. [ 65s] [ 65s] ### VM INTERACTION START ### [ 69s] [ 61.067715] reboot: Power down [ 69s] ### VM INTERACTION END ### [ 69s] [ 69s] lamb20 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:54:57 UTC 2018. [ 69s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 14:55:01 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:55:01 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b1401517af46_1a87aca684719642@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_8.0/i586 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 54s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.7e71.tar.xz [ 54s] ----------------------------------------------------------------- [ 54s] ----- building osmo-fl2k_0.1.1.8.7e71.dsc (user abuild) [ 54s] ----------------------------------------------------------------- [ 54s] ----------------------------------------------------------------- [ 55s] dpkg-buildpackage: source package osmo-fl2k [ 55s] dpkg-buildpackage: source version 0.1.1.8.7e71 [ 55s] dpkg-buildpackage: source distribution UNRELEASED [ 55s] dpkg-buildpackage: source changed by Harald Welte [ 55s] dpkg-source --before-build BUILD [ 55s] dpkg-buildpackage: host architecture i386 [ 55s] fakeroot debian/rules clean [ 55s] dh clean --with autoreconf [ 55s] dh: unable to load addon autoreconf: Can't locate Debian/Debhelper/Sequence/autoreconf.pm in @INC (you may need to install the Debian::Debhelper::Sequence::autoreconf module) (@INC contains: /etc/perl /usr/local/lib/i386-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/i386-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/i386-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at (eval 11) line 2. [ 55s] BEGIN failed--compilation aborted at (eval 11) line 2. [ 55s] [ 55s] debian/rules:7: recipe for target 'clean' failed [ 55s] make: *** [clean] Error 2 [ 55s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 55s] [ 55s] lamb08 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:54:43 UTC 2018. [ 55s] [ 55s] ### VM INTERACTION START ### [ 56s] Powering off. [ 56s] [ 49.020598] reboot: Power down [ 56s] ### VM INTERACTION END ### [ 56s] [ 56s] lamb08 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:54:44 UTC 2018. [ 56s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 14:55:52 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:55:52 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b140191610ba_1a87aca6847200f5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 95s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.7e71.tar.xz [ 95s] ----------------------------------------------------------------- [ 95s] ----- building osmo-fl2k_0.1.1.8.7e71.dsc (user abuild) [ 95s] ----------------------------------------------------------------- [ 95s] ----------------------------------------------------------------- [ 96s] dpkg-buildpackage: source package osmo-fl2k [ 96s] dpkg-buildpackage: source version 0.1.1.8.7e71 [ 96s] dpkg-buildpackage: source distribution UNRELEASED [ 96s] dpkg-buildpackage: source changed by Harald Welte [ 96s] dpkg-source --before-build BUILD [ 96s] dpkg-buildpackage: host architecture amd64 [ 96s] fakeroot debian/rules clean [ 96s] dh clean --with autoreconf [ 96s] dh: unable to load addon autoreconf: Can't locate Debian/Debhelper/Sequence/autoreconf.pm in @INC (you may need to install the Debian::Debhelper::Sequence::autoreconf module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at (eval 11) line 2. [ 96s] BEGIN failed--compilation aborted at (eval 11) line 2. [ 96s] [ 96s] debian/rules:7: recipe for target 'clean' failed [ 96s] make: *** [clean] Error 2 [ 96s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 96s] [ 96s] cloud115 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:55:40 UTC 2018. [ 96s] [ 96s] ### VM INTERACTION START ### [ 97s] Powering off. [ 97s] [ 81.629258] reboot: Power down [ 98s] ### VM INTERACTION END ### [ 99s] [ 99s] cloud115 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:55:43 UTC 2018. [ 99s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 14:56:09 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 14:56:09 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b140192a88ca_1a87aca6847202b3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 100s] dpkg-source: info: extracting osmo-fl2k in /usr/src/packages/BUILD [ 100s] dpkg-source: info: unpacking osmo-fl2k_0.1.1.8.7e71.tar.xz [ 100s] ----------------------------------------------------------------- [ 100s] ----- building osmo-fl2k_0.1.1.8.7e71.dsc (user abuild) [ 100s] ----------------------------------------------------------------- [ 100s] ----------------------------------------------------------------- [ 100s] dpkg-buildpackage: source package osmo-fl2k [ 100s] dpkg-buildpackage: source version 0.1.1.8.7e71 [ 100s] dpkg-buildpackage: source distribution UNRELEASED [ 100s] dpkg-buildpackage: source changed by Harald Welte [ 100s] dpkg-source --before-build BUILD [ 100s] dpkg-buildpackage: host architecture amd64 [ 101s] fakeroot debian/rules clean [ 101s] dh clean --with autoreconf [ 101s] dh: unable to load addon autoreconf: Can't locate Debian/Debhelper/Sequence/autoreconf.pm in @INC (you may need to install the Debian::Debhelper::Sequence::autoreconf module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at (eval 13) line 2. [ 101s] BEGIN failed--compilation aborted at (eval 13) line 2. [ 101s] [ 101s] debian/rules:7: recipe for target 'clean' failed [ 101s] make: *** [clean] Error 2 [ 101s] dpkg-buildpackage: error: fakeroot debian/rules clean gave error exit status 2 [ 101s] [ 101s] cloud121 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:55:52 UTC 2018. [ 101s] [ 101s] ### VM INTERACTION START ### [ 104s] [ 85.718726] reboot: Power down [ 109s] ### VM INTERACTION END ### [ 109s] [ 109s] cloud121 failed "build osmo-fl2k_0.1.1.8.7e71.dsc" at Sun Jun 3 14:56:00 UTC 2018. [ 109s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 15:10:46 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 15:10:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b140514a714f_1a87aca6847215a6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_8.0/i586 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 58s] fakeroot debian/rules clean [ 58s] dh clean --with autoreconf [ 58s] dh_testdir [ 58s] dh_auto_clean [ 58s] dh_autoreconf_clean [ 58s] dh_clean [ 58s] dpkg-source -b BUILD [ 58s] dpkg-source: info: using source format `3.0 (native)' [ 58s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.tar.xz [ 59s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.dsc [ 59s] debian/rules build [ 59s] dh build --with autoreconf [ 59s] dh_testdir [ 59s] dh_autoreconf [ 59s] autoreconf: 'configure.ac' or 'configure.in' is required [ 59s] dh_autoreconf: autoreconf -f -i returned exit code 1 [ 59s] debian/rules:7: recipe for target 'build' failed [ 59s] make: *** [build] Error 2 [ 59s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 59s] [ 59s] lamb28 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:29 UTC 2018. [ 59s] [ 59s] ### VM INTERACTION START ### [ 60s] Powering off. [ 60s] [ 53.351289] reboot: Power down [ 60s] ### VM INTERACTION END ### [ 60s] [ 60s] lamb28 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:31 UTC 2018. [ 60s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 15:10:46 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 15:10:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b14051589b3c_1a87aca684721649@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-fl2k failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 66s] fakeroot debian/rules clean [ 66s] dh clean --with autoreconf [ 66s] dh_testdir [ 66s] dh_auto_clean [ 66s] dh_autoreconf_clean [ 66s] dh_clean [ 67s] dpkg-source -b BUILD [ 67s] dpkg-source: info: using source format '3.0 (native)' [ 67s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.tar.xz [ 67s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.dsc [ 67s] debian/rules build [ 67s] dh build --with autoreconf [ 67s] dh_testdir [ 67s] dh_update_autotools_config [ 67s] dh_autoreconf [ 67s] autoreconf: 'configure.ac' or 'configure.in' is required [ 67s] dh_autoreconf: autoreconf -f -i returned exit code 1 [ 67s] debian/rules:7: recipe for target 'build' failed [ 67s] make: *** [build] Error 2 [ 67s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 67s] [ 67s] lamb19 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:35 UTC 2018. [ 67s] [ 67s] ### VM INTERACTION START ### [ 71s] [ 62.575233] reboot: Power down [ 71s] ### VM INTERACTION END ### [ 71s] [ 71s] lamb19 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:39 UTC 2018. [ 71s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 15:11:03 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 15:11:03 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b140516a15e2_1a87aca6847218dd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 67s] fakeroot debian/rules clean [ 67s] dh clean --with autoreconf [ 67s] dh_testdir [ 67s] dh_auto_clean [ 67s] dh_autoreconf_clean [ 67s] dh_clean [ 67s] dpkg-source -b BUILD [ 67s] dpkg-source: info: using source format '3.0 (native)' [ 67s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.tar.xz [ 68s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.dsc [ 68s] debian/rules build [ 68s] dh build --with autoreconf [ 68s] dh_testdir [ 68s] dh_update_autotools_config [ 68s] dh_autoreconf [ 68s] autoreconf: 'configure.ac' or 'configure.in' is required [ 68s] dh_autoreconf: autoreconf -f -i returned exit code 1 [ 68s] debian/rules:7: recipe for target 'build' failed [ 68s] make: *** [build] Error 2 [ 68s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 68s] [ 68s] lamb71 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:45 UTC 2018. [ 68s] [ 68s] ### VM INTERACTION START ### [ 71s] [ 64.164886] reboot: Power down [ 71s] ### VM INTERACTION END ### [ 71s] [ 71s] lamb71 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:49 UTC 2018. [ 71s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 15:11:03 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 15:11:03 +0000 Subject: Build failure of network:osmocom:nightly/osmo-fl2k in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b14051643584_1a87aca684721746@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-fl2k/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-fl2k failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-fl2k Last lines of build log: [ 72s] fakeroot debian/rules clean [ 72s] dh clean --with autoreconf [ 72s] dh_testdir [ 72s] dh_auto_clean [ 73s] dh_autoreconf_clean [ 73s] dh_clean [ 73s] dpkg-source -b BUILD [ 73s] dpkg-source: info: using source format `3.0 (native)' [ 73s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.tar.xz [ 73s] dpkg-source: info: building osmo-fl2k in osmo-fl2k_0.1.1.9.b745.dsc [ 73s] debian/rules build [ 73s] dh build --with autoreconf [ 73s] dh_testdir [ 73s] dh_autoreconf [ 74s] autoreconf: 'configure.ac' or 'configure.in' is required [ 74s] dh_autoreconf: autoreconf -f -i returned exit code 1 [ 74s] debian/rules:7: recipe for target 'build' failed [ 74s] make: *** [build] Error 2 [ 74s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 74s] [ 74s] build31 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:46 UTC 2018. [ 74s] [ 74s] ### VM INTERACTION START ### [ 75s] Powering off. [ 75s] [ 67.441040] reboot: Power down [ 75s] ### VM INTERACTION END ### [ 75s] [ 75s] build31 failed "build osmo-fl2k_0.1.1.9.b745.dsc" at Sun Jun 3 15:10:48 UTC 2018. [ 75s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:14:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:14:57 +0000 Subject: Change in osmo-ci[master]: add script to create virtual machine with kernel gtp ggsn for qemu-kvm In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9428 ) Change subject: add script to create virtual machine with kernel gtp ggsn for qemu-kvm ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id9f1aee5d4158024517bc8e3884929b9efd1343e Gerrit-Change-Number: 9428 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 15:14:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:02 +0000 Subject: Change in osmo-ci[master]: master-builds.yml: More fine-grained e-mail notifications In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9429 ) Change subject: master-builds.yml: More fine-grained e-mail notifications ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8aca77d557b2471aa23aa3418d72e7a62734524d Gerrit-Change-Number: 9429 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 15:15:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:06 +0000 Subject: Change in osmo-ci[master]: osmocom latest+nightly packages: Add rtl-sdr In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9430 ) Change subject: osmocom latest+nightly packages: Add rtl-sdr ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idc6afb523e71ed977401d707895844bad6247f8b Gerrit-Change-Number: 9430 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 15:15:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:11 +0000 Subject: Change in osmo-ci[master]: osmocom latest+nightly packages: Add osmo-fl2k In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9431 ) Change subject: osmocom latest+nightly packages: Add osmo-fl2k ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie2429df14ad51aadb55b4a7d8f6cfcb45c5c6e70 Gerrit-Change-Number: 9431 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 15:15:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:12 +0000 Subject: Change in osmo-ci[master]: add script to create virtual machine with kernel gtp ggsn for qemu-kvm In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9428 ) Change subject: add script to create virtual machine with kernel gtp ggsn for qemu-kvm ...................................................................... add script to create virtual machine with kernel gtp ggsn for qemu-kvm Change-Id: Id9f1aee5d4158024517bc8e3884929b9efd1343e --- A qemu-kvm/ggsn-kernel-gtp/.gitignore A qemu-kvm/ggsn-kernel-gtp/create-vm.sh A qemu-kvm/ggsn-kernel-gtp/postinst.sh A qemu-kvm/ggsn-kernel-gtp/postinst/Release.key A qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys A qemu-kvm/ggsn-kernel-gtp/preseed.cfg 6 files changed, 187 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/qemu-kvm/ggsn-kernel-gtp/.gitignore b/qemu-kvm/ggsn-kernel-gtp/.gitignore new file mode 100644 index 0000000..caa7b5c --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/.gitignore @@ -0,0 +1,2 @@ +postinst.tar.gz +*.qcow2 diff --git a/qemu-kvm/ggsn-kernel-gtp/create-vm.sh b/qemu-kvm/ggsn-kernel-gtp/create-vm.sh new file mode 100755 index 0000000..f6757ce --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/create-vm.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e -x + +tar czvf postinst.tar.gz postinst + +virt-install \ + --connect qemu:///system \ + --virt-type kvm \ + --name debian9 \ + --memory 1024 \ + --disk path=./debian9.qcow2,size=8 \ + --vcpus 1 \ + --os-type linux \ + --os-variant debian9 \ + --network bridge=lxcbr0 \ + --graphics none \ + --console pty,target_type=serial \ + --location 'http://ftp.de.debian.org/debian/dists/stretch/main/installer-amd64/' \ + --initrd-inject ./preseed.cfg \ + --initrd-inject ./postinst.sh \ + --initrd-inject ./postinst.tar.gz \ + --extra-args 'auto=true hostname=ggsn domain="" console=ttyS0,115200n8 serial' diff --git a/qemu-kvm/ggsn-kernel-gtp/postinst.sh b/qemu-kvm/ggsn-kernel-gtp/postinst.sh new file mode 100755 index 0000000..4cbe64c --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/postinst.sh @@ -0,0 +1,74 @@ +#!/bin/sh + +# This script is run by debian installer using preseed/late_command +# directive, see preseed.cfg + +# Setup console, remove timeout on boot. +sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"/g; s/TIMEOUT=5/TIMEOUT=0/g' /etc/default/grub +update-grub + +# Members of `sudo` group are not asked for password. +sed -i 's/%sudo\tALL=(ALL:ALL) ALL/%sudo\tALL=(ALL:ALL) NOPASSWD:ALL/g' /etc/sudoers + +# Empty message of the day. +echo -n > /etc/motd + +# Unpack postinst tarball. +tar -x -v -z -C/tmp -f /tmp/postinst.tar.gz + +# Install SSH key for ggsn. +mkdir -m700 /home/ggsn/.ssh +cat /tmp/postinst/authorized_keys > /home/ggsn/.ssh/authorized_keys +chown -R ggsn:ggsn /home/ggsn/.ssh + +# Install SSH key for root. +mkdir -m700 /root/.ssh +cat /tmp/postinst/authorized_keys > /root/.ssh/authorized_keys +chown -R root:root /root/.ssh + +# Install misc packages required for building osmocom code +apt-get install -y --no-install-recommends \ + autoconf \ + autoconf-archive \ + autogen \ + automake \ + build-essential \ + gcc \ + git \ + libc-ares-dev \ + libgnutls28-dev \ + libncurses5-dev \ + libtalloc-dev \ + libreadline-dev \ + libsctp-dev \ + libtool \ + make \ + pkg-config +apt-get clean + +# add osmocom:nightly feed + install libosmocore-dev +apt-key add /tmp/postinst/Release.key +echo "deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_9.0/ ./" > /etc/apt/sources.list.d/osmocom-nightly.list +apt-get update +apt-get install -y --no-install-recommends \ + libosmocore-dev +apt-get clean + +# Remove some non-essential packages. +DEBIAN_FRONTEND=noninteractive apt-get purge -y nano laptop-detect tasksel dictionaries-common emacsen-common iamerican ibritish ienglish-common ispell + +# Set domain name in hosts file +#sed -i 's/127.0.1.1\t\([a-z]*\).*/127.0.1.1\t\1\.dp\-net\.com\t\1/' /etc/hosts + +# Avoid using DHCP-server provided domain name. +#sed -i 's/#supersede.*/supersede domain-name "dp-net.com";/' /etc/dhcp/dhclient.conf + +# check out sources we need from their respective repositories +cd /usr/local/src +git clone git://git.netfilter.org/libmnl +(cd libmnl && autoreconf -fi && ./configure && make && make install) +git clone git://git.osmocom.org/libgtpnl +(cd libgtpnl && autoreconf -fi && ./configure && make && make install) +git clone git://git.osmocom.org/osmo-ggsn +(cd osmo-ggsn && autoreconf -fi && ./configure --enable-gtp-linux && make && make install) +ldconfig diff --git a/qemu-kvm/ggsn-kernel-gtp/postinst/Release.key b/qemu-kvm/ggsn-kernel-gtp/postinst/Release.key new file mode 100644 index 0000000..e656238 --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/postinst/Release.key @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc +a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl +CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4 +5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee +S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y +CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy +b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCWmMc +aQIbAwUJDEAUbQYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3fjsoI +ALSXmXzFCpTxg8a6tvXkqddY/qAmeBMNUf7hslI9wN3leNmCrnuHS8TbHWYJZgtw +8M5fKL3aRQYaIiqqm1XOUF0OqwYNDj5V3y38mM68NYOkzgSP7foMwZp9Y0TlGhtI +L8weA+2RUjB4hwwGMAYMqkRZyKW3NhPqdlGGoXac1ilwEyGXFHdOLbkhtyS+P2yb +/EvaKIN5cMLzRZKeYgdp9WuAirV+yV/SDbgvabW098lrWhGLltlRRDQgMV883p8I +ERMI1wlLFZGnHL3mfBWGeQ24M/DaBOdXQDtfBLCJ9nGztmDBUb8i6GFWU7nD2TGi +8mYUsED1ZDwO/0jdvJ4gSluIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v +d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4= +=Gvly +-----END PGP PUBLIC KEY BLOCK----- diff --git a/qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys b/qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys new file mode 100644 index 0000000..817a537 --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/postinst/authorized_keys @@ -0,0 +1,2 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCmaAZWIdZZjFZHq7Xm5OCUz/Cm46haad+pm2iZ2uSQCIXubjN8HGz1XujBMH1DHhSDK+L0JOBEtxHaY4JR7F177V5R8o50VNwmtTrTaNBPS8WPyVBDuHjjDVSZA+d6QT3Y+3X/FhfoFKmGc2a8MZRmE8yDGW484y7MTZ4XBHqy5vWnnywxWCZm7kVqNccM4oQ4tPWlMTxk6+tgWC4wvk3axsUVUm0ak/WKuZLoX+jBWlsWXR4uwaOEqblpNMv98CxjLgpjEBTvZxgrgY35eAm11S9lmvxFSjLIZA1V/2huAA/9MSNvI4dX4ZQPHfLCsMqFjhkIY0hvFK2uX8hlxHhOR6GkOq3n3MdcKCMI+JAISCP6g++DdQO5wzfOLeSdpTETNpIxeFkjQLS+HnuAcgjRK6O7czI+xYfCiBcaoslsTIYi33Pg7gPuDjwAyVdKqQPVdYPluR8W5+FT1lFtf1jwIB3jgt+v9q+r6d4LfkOCAU17yxG6b40P+FqK9O7X+iUkva/lbghdAw7DimczDIuEMpVVVL3/WhmCIMrfJPG/RtMdoczcAw4q4FxBretZR1Ke4AomUvUklFwfMtLqijxBJN2Owpy7jtqggs+v6cUX54fKh7/SeVrgyIgeUtgJp6lqaxlMao8SoR59YoqLqZueYOp9QxYujA70AGoMMwxsEw== laforge at nataraja +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAX61B6rs76JfKmtqqFoR6o9KAP1/WVz9/COtjNrBDc6IfqDy46ZTlKwud4Nm3O3QF5cbdxx/hnOvep4SsLTArYuD8EcBtMoKhh8+c6Y30wR9l3kUWen4JEUJjFOCX/jr2SG4tikF/0S2zUJmILyFMw53pc1KSOmEewiWI8Z6U15ntLWEljWg+BWPs25kgQ5qeA3TO9ygNPFUrEQDGJlzLVubENwZOweTMll89bFaD+6jbjBG4ViPsSlzSvan9CThrTCrVCSmTObfOz3cEci0Wvgh1mBuOyfo5GyXQ7V8tHTF9AU5lGLybeyiXOki3f+bf9da8rnHuswR6ap8VsXrra2QFr40ro7ACCc7TC5Sa62c2Y8pC2Buuv3WcZ1x5PG7gRbU3iZqR0r7HeQGP/lVD0Z9uSV+9dSvg4uhsSS59XzRoI4gElHBiSGdxm0EKB+WI/0y+G9z10qyZggDPHqD67BY1Qpi5uQxQrFiOc5eadC0ucjjA2o4KqEid2cHI4qu8YLBns5X+GE1BB9o/ix5eSYFTBju0FlgzLaYEmo6zIURpKKvKfPEgpU/ZYWRX1SaUlohXaJxB60k87eyHNDCFwyIFDklZ8LB0WBvTJGqJaDmRcR9Idz4dP8UWCHD0hiShSLKW5sOFzkJflFRmaTWmBV8W/mwc9lVJrYuaSd7S4w== laforge at sunbeam.rsa diff --git a/qemu-kvm/ggsn-kernel-gtp/preseed.cfg b/qemu-kvm/ggsn-kernel-gtp/preseed.cfg new file mode 100644 index 0000000..3e70010 --- /dev/null +++ b/qemu-kvm/ggsn-kernel-gtp/preseed.cfg @@ -0,0 +1,66 @@ +# Preconfiguration file for jessie. +# For more details see https://www.debian.org/releases/jessie/example-preseed.txt +d-i debian-installer/locale string en_US +d-i keyboard-configuration/xkb-keymap select us + +# Choose an network interface that has link if possible. +d-i netcfg/choose_interface select auto + +# Disable that annoying WEP key dialog. +d-i netcfg/wireless_wep string + +# Mirror settings. +d-i mirror/country string manual +d-i mirror/http/hostname string ftp.de.debian.org +d-i mirror/http/directory string /debian +d-i mirror/http/proxy string + +# Root account setup. You can set password in plain-text or pre-encrypted. +d-i passwd/root-login boolean true +d-i passwd/root-password password ggsn +d-i passwd/root-password-again password ggsn +#d-i passwd/root-password-crypted password $6$1LCVFshS/kbYVg$M1QS1ZJ3.E7NkAD8sqkqhqExA2HWQ5/iDE.l23Xbr89Z7hTg/jUuBMyrYzANLmRybYcH8Smcy.yGDKMAX3okd0 + +# User account setup. +#d-i passwd/make-user boolean false +d-i passwd/user-fullname string Osmo GGSN +d-i passwd/username string ggsn +d-i passwd/user-password password ggsn +d-i passwd/user-password-again password ggsn +#d-i passwd/user-password-crypted password $6$dU9we2Mm$Btq1Tk1WkFx3/8YsXWbZr13m56uv0PabJKxk5teKAImLLQhtniOURXuOVLmbiBl0O3iS6xQBctNIc9Dn5b3vR. +# Password login is disabled. +#d-i passwd/user-password-crypted password ! + +# Controls whether or not the hardware clock is set to UTC. +d-i clock-setup/utc boolean true +# See the contents of /usr/share/zoneinfo/ for valid values. +d-i time/zone string Europe/Berlin +# Controls whether to use NTP to set the clock during the install. +d-i clock-setup/ntp boolean true + +# Simple non-LVM, all files in one partition. +# For more examples see https://www.debian.org/releases/jessie/example-preseed.txt +d-i partman-auto/method string regular +d-i partman-auto/choose_recipe select atomic +d-i partman-partitioning/confirm_write_new_label boolean true +d-i partman/choose_partition select finish +d-i partman/confirm boolean true +d-i partman/confirm_nooverwrite boolean true + +# Do not install recommended packages by default. +d-i base-installer/install-recommends boolean false +tasksel tasksel/first multiselect +# Individual additional packages to install. acpid and acpi-support-base are required to make virsh shutdown to work. +# ACPI packages are needed for `virsh shutdown ` to work. +d-i pkgsel/include string openssh-server ca-certificates acpid acpi-support-base +popularity-contest popularity-contest/participate boolean false + +# Boot loader installation. +d-i grub-installer/only_debian boolean true +d-i grub-installer/bootdev string /dev/vda + +# Run postinst.sh in /target just before the install finishes. +d-i preseed/late_command string cp postinst.sh postinst.tar.gz /target/tmp/ && chmod 755 /target/tmp/postinst.sh && in-target /tmp/postinst.sh + +# Avoid that last message about the install being complete. +d-i finish-install/reboot_in_progress note -- To view, visit https://gerrit.osmocom.org/9428 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id9f1aee5d4158024517bc8e3884929b9efd1343e Gerrit-Change-Number: 9428 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:12 +0000 Subject: Change in osmo-ci[master]: master-builds.yml: More fine-grained e-mail notifications In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9429 ) Change subject: master-builds.yml: More fine-grained e-mail notifications ...................................................................... master-builds.yml: More fine-grained e-mail notifications Some projects should alert certain inidividuals/maintainers Change-Id: I8aca77d557b2471aa23aa3418d72e7a62734524d --- M jobs/master-builds.yml 1 file changed, 13 insertions(+), 5 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index d2cd6fa..cb61a82 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -19,6 +19,7 @@ cmd: ./contrib/jenkins.sh wrappers: [] trigger: + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org # in alphabetical order repos: @@ -61,6 +62,7 @@ $MAKE $PARALLEL_MAKE $MAKE distcheck trigger: master-osmo-gmr + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org 246tnt at gmail.com - libosmo-netif: # Full triggers would be: @@ -203,7 +205,8 @@ cmd: GTP="$GTP" ./contrib/jenkins.sh trigger: master-osmo-sgsn - - osmo-gmr + - osmo-gmr: + email: gerrit-log at lists.osmocom.org 246tnt at gmail.com - osmo-gsm-manuals: # publishing once is plenty @@ -306,8 +309,11 @@ -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ osmocom:amd64 /build/contrib/jenkins.sh - - osmo-sip-connector - - osmo-tetra + - osmo-sip-connector: + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org holger at freyther.de + + - osmo-tetra: + email: gerrit-log at lists.osmocom.org laforge at gnumonks.org 246tnt at gmail.com - osmo-trx: a1_name: INSTR @@ -317,7 +323,9 @@ concurrent: true - osmocom-bb - - rtl-sdr + + - rtl-sdr: + email: laforge at gnumonks.org steve at steve-m.de jobs: - 'master-{repos}' @@ -389,7 +397,7 @@ - trigger: project: '{obj:trigger}' - email: - recipients: gerrit-log at lists.osmocom.org, laforge at gnumonks.org + recipients: '{obj:email}' send-to-individuals: true wrappers: '{obj:wrappers}' -- To view, visit https://gerrit.osmocom.org/9429 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8aca77d557b2471aa23aa3418d72e7a62734524d Gerrit-Change-Number: 9429 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:12 +0000 Subject: Change in osmo-ci[master]: osmocom latest+nightly packages: Add rtl-sdr In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9430 ) Change subject: osmocom latest+nightly packages: Add rtl-sdr ...................................................................... osmocom latest+nightly packages: Add rtl-sdr Now that rtl-sdr has debian packaging information included, we can easily build it as part of the "latest" and "nightly" feeds. Change-Id: Idc6afb523e71ed977401d707895844bad6247f8b --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 3 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 7073b07..0bc93f8 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -79,6 +79,7 @@ osmo-mgw osmo-msc osmo-bsc + rtl-sdr " [ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index a200f36..82a1fc6 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -160,6 +160,7 @@ checkout osmo-mgw checkout osmo-msc checkout osmo-bsc + checkout rtl-sdr checkout_limesuite build libosmocore @@ -183,6 +184,7 @@ build osmo-mgw build osmo-msc build osmo-bsc + build rtl-sdr download_bumpversion build limesuite no_commit --git-upstream-tree=v17.12.0 -- To view, visit https://gerrit.osmocom.org/9430 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idc6afb523e71ed977401d707895844bad6247f8b Gerrit-Change-Number: 9430 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:13 +0000 Subject: Change in osmo-ci[master]: osmocom latest+nightly packages: Add osmo-fl2k In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9431 ) Change subject: osmocom latest+nightly packages: Add osmo-fl2k ...................................................................... osmocom latest+nightly packages: Add osmo-fl2k Now that osmo-fl2k has debian packaging information included, we can easily build it as part of the "latest" and "nightly" feeds. Change-Id: Ie2429df14ad51aadb55b4a7d8f6cfcb45c5c6e70 --- M scripts/osmocom-latest-packages.sh M scripts/osmocom-nightly-packages.sh 2 files changed, 3 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 0bc93f8..e37c2e0 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -80,6 +80,7 @@ osmo-msc osmo-bsc rtl-sdr + osmo-fl2k " [ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc" diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 82a1fc6..2898d8b 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -161,6 +161,7 @@ checkout osmo-msc checkout osmo-bsc checkout rtl-sdr + checkout osmo-fl2k checkout_limesuite build libosmocore @@ -185,6 +186,7 @@ build osmo-msc build osmo-bsc build rtl-sdr + build osmo-fl2k download_bumpversion build limesuite no_commit --git-upstream-tree=v17.12.0 -- To view, visit https://gerrit.osmocom.org/9431 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie2429df14ad51aadb55b4a7d8f6cfcb45c5c6e70 Gerrit-Change-Number: 9431 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Enable LCLS in osmo-bsc.cfg In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9427 ) Change subject: bsc: Enable LCLS in osmo-bsc.cfg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I39b0812423dd22f677334ad0ac406a23a1214fa9 Gerrit-Change-Number: 9427 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 03 Jun 2018 15:15:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:15:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:15:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Enable LCLS in osmo-bsc.cfg In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9427 ) Change subject: bsc: Enable LCLS in osmo-bsc.cfg ...................................................................... bsc: Enable LCLS in osmo-bsc.cfg Change-Id: I39b0812423dd22f677334ad0ac406a23a1214fa9 --- M bsc/osmo-bsc.cfg 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index aa3edf1..1ccef09 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -354,6 +354,7 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 + lcls-mode mgw-loop bsc mid-call-timeout 0 no missing-msc-text -- To view, visit https://gerrit.osmocom.org/9427 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I39b0812423dd22f677334ad0ac406a23a1214fa9 Gerrit-Change-Number: 9427 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:17:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:17:35 +0000 Subject: Change in docker-playground[master]: bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9432 Change subject: bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module ...................................................................... bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module Change-Id: I0439c61cc49e088efef3b91c1dbf293ee9a44939 --- M osmo-bsc-master/osmo-bsc.cfg M ttcn3-bsc-test/BSC_Tests.cfg M ttcn3-bsc-test/osmo-bsc.cfg 3 files changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/32/9432/1 diff --git a/osmo-bsc-master/osmo-bsc.cfg b/osmo-bsc-master/osmo-bsc.cfg index 4176cae..66e8923 100644 --- a/osmo-bsc-master/osmo-bsc.cfg +++ b/osmo-bsc-master/osmo-bsc.cfg @@ -354,6 +354,7 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 + lcls-mode mgw-loop bsc mid-call-timeout 0 no missing-msc-text diff --git a/ttcn3-bsc-test/BSC_Tests.cfg b/ttcn3-bsc-test/BSC_Tests.cfg index 5f29a27..24e8a61 100644 --- a/ttcn3-bsc-test/BSC_Tests.cfg +++ b/ttcn3-bsc-test/BSC_Tests.cfg @@ -27,3 +27,4 @@ [EXECUTE] BSC_Tests.control +BSC_Tests_LCLS.control diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg index 81afbb4..5255127 100644 --- a/ttcn3-bsc-test/osmo-bsc.cfg +++ b/ttcn3-bsc-test/osmo-bsc.cfg @@ -359,6 +359,7 @@ amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 mgw remote-ip 172.18.2.203 + lcls-mode mgw-loop bsc mid-call-timeout 0 no missing-msc-text -- To view, visit https://gerrit.osmocom.org/9432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0439c61cc49e088efef3b91c1dbf293ee9a44939 Gerrit-Change-Number: 9432 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:18:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:18:02 +0000 Subject: Change in docker-playground[master]: bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9432 ) Change subject: bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0439c61cc49e088efef3b91c1dbf293ee9a44939 Gerrit-Change-Number: 9432 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 15:18:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 15:18:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 15:18:04 +0000 Subject: Change in docker-playground[master]: bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9432 ) Change subject: bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module ...................................................................... bsc: Enable LCLS tests from BSC_Tests_LCLS TTCN-3 module Change-Id: I0439c61cc49e088efef3b91c1dbf293ee9a44939 --- M osmo-bsc-master/osmo-bsc.cfg M ttcn3-bsc-test/BSC_Tests.cfg M ttcn3-bsc-test/osmo-bsc.cfg 3 files changed, 3 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/osmo-bsc-master/osmo-bsc.cfg b/osmo-bsc-master/osmo-bsc.cfg index 4176cae..66e8923 100644 --- a/osmo-bsc-master/osmo-bsc.cfg +++ b/osmo-bsc-master/osmo-bsc.cfg @@ -354,6 +354,7 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 + lcls-mode mgw-loop bsc mid-call-timeout 0 no missing-msc-text diff --git a/ttcn3-bsc-test/BSC_Tests.cfg b/ttcn3-bsc-test/BSC_Tests.cfg index 5f29a27..24e8a61 100644 --- a/ttcn3-bsc-test/BSC_Tests.cfg +++ b/ttcn3-bsc-test/BSC_Tests.cfg @@ -27,3 +27,4 @@ [EXECUTE] BSC_Tests.control +BSC_Tests_LCLS.control diff --git a/ttcn3-bsc-test/osmo-bsc.cfg b/ttcn3-bsc-test/osmo-bsc.cfg index 81afbb4..5255127 100644 --- a/ttcn3-bsc-test/osmo-bsc.cfg +++ b/ttcn3-bsc-test/osmo-bsc.cfg @@ -359,6 +359,7 @@ amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 mgw remote-ip 172.18.2.203 + lcls-mode mgw-loop bsc mid-call-timeout 0 no missing-msc-text -- To view, visit https://gerrit.osmocom.org/9432 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0439c61cc49e088efef3b91c1dbf293ee9a44939 Gerrit-Change-Number: 9432 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:17:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:17:43 +0000 Subject: Change in osmo-bsc[master]: Ignore "dest" command in MSC node Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9433 Change subject: Ignore "dest" command in MSC node ...................................................................... Ignore "dest" command in MSC node In Change-Id I6b7354f3b23a26bb4eab12213ca3d3b614c8154f we removed the "dest" vty command, but we should simply ignore it and print a related warning during start. Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/9433/1 diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index e6df7b3..d8953f0 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -881,6 +881,16 @@ ALIAS_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_pong_time_cmd, "timeout-pong ARG", LEGACY_STR "-\n"); +DEFUN_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_dest_cmd, + "dest A.B.C.D <1-65000> <0-255>", LEGACY_STR "-\n") +{ + vty_out(vty, "%% dest config is deprecated and has no effect%s", VTY_NEWLINE); + return CMD_WARNING; +} + +ALIAS_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_no_dest_cmd, + "no dest A.B.C.D <1-65000> <0-255>", LEGACY_STR "-\n"); + int bsc_vty_init_extra(void) { struct gsm_network *net = bsc_gsmnet; @@ -906,6 +916,8 @@ install_element(MSC_NODE, &cfg_net_bsc_ci_cmd); install_element(MSC_NODE, &cfg_net_bsc_rtp_base_cmd); install_element(MSC_NODE, &cfg_net_bsc_codec_list_cmd); + install_element(MSC_NODE, &cfg_net_msc_dest_cmd); + install_element(MSC_NODE, &cfg_net_msc_no_dest_cmd); install_element(MSC_NODE, &cfg_net_msc_welcome_ussd_cmd); install_element(MSC_NODE, &cfg_net_msc_no_welcome_ussd_cmd); install_element(MSC_NODE, &cfg_net_msc_lost_ussd_cmd); -- To view, visit https://gerrit.osmocom.org/9433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 Gerrit-Change-Number: 9433 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:18:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:18:47 +0000 Subject: Change in docker-playground[master]: remove deprecated "dest" config option from config files Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9434 Change subject: remove deprecated "dest" config option from config files ...................................................................... remove deprecated "dest" config option from config files Change-Id: I1073846c04a8466f2ccf501e27cf152df09042c5 --- M osmo-bsc-latest/osmo-bsc.cfg M osmo-bsc-master/osmo-bsc.cfg M ttcn3-bts-test/osmo-bsc.cfg 3 files changed, 0 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/34/9434/1 diff --git a/osmo-bsc-latest/osmo-bsc.cfg b/osmo-bsc-latest/osmo-bsc.cfg index 4176cae..6b79592 100644 --- a/osmo-bsc-latest/osmo-bsc.cfg +++ b/osmo-bsc-latest/osmo-bsc.cfg @@ -342,7 +342,6 @@ no bsc-welcome-text no bsc-msc-lost-text no bsc-grace-text - dest 192.168.100.11 6666 0 type normal allow-emergency allow amr-config 12_2k forbidden diff --git a/osmo-bsc-master/osmo-bsc.cfg b/osmo-bsc-master/osmo-bsc.cfg index 66e8923..5b8093c 100644 --- a/osmo-bsc-master/osmo-bsc.cfg +++ b/osmo-bsc-master/osmo-bsc.cfg @@ -342,7 +342,6 @@ no bsc-welcome-text no bsc-msc-lost-text no bsc-grace-text - dest 192.168.100.11 6666 0 type normal allow-emergency allow amr-config 12_2k forbidden diff --git a/ttcn3-bts-test/osmo-bsc.cfg b/ttcn3-bts-test/osmo-bsc.cfg index b66d776..12ee409 100644 --- a/ttcn3-bts-test/osmo-bsc.cfg +++ b/ttcn3-bts-test/osmo-bsc.cfg @@ -179,7 +179,6 @@ no bsc-msc-lost-text no bsc-grace-text codec-list fr1 fr2 fr3 - dest 192.168.100.11 6666 0 type normal allow-emergency allow amr-config 12_2k forbidden -- To view, visit https://gerrit.osmocom.org/9434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1073846c04a8466f2ccf501e27cf152df09042c5 Gerrit-Change-Number: 9434 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:18:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:18:47 +0000 Subject: Change in docker-playground[master]: Makefile: Fix default naming of images Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9435 Change subject: Makefile: Fix default naming of images ...................................................................... Makefile: Fix default naming of images This got broken in Change-Id If2e3cc7693ce5e7c1c95d2f81e302c72bb4230be Change-Id: I97f9eb3f203301ebc2315ff38216d5b4502eb3d2 --- M make/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/35/9435/1 diff --git a/make/Makefile b/make/Makefile index 231b685..5bbdbb7 100644 --- a/make/Makefile +++ b/make/Makefile @@ -18,7 +18,7 @@ NAME?=$(shell basename $(CURDIR)) RELEASE_SUPPORT := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))/.make-release-support -IMAGE?=$(REGISTRY_HOST)/$(NAME) +IMAGE?=$(REGISTRY_HOST)/$(USER)/$(NAME) VERSION?=$(shell . $(RELEASE_SUPPORT) ; getRelease) -- To view, visit https://gerrit.osmocom.org/9435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I97f9eb3f203301ebc2315ff38216d5b4502eb3d2 Gerrit-Change-Number: 9435 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9436 Change subject: BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP ...................................................................... BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP Change-Id: I5150660319896fe7f597ca333395923f128c8d87 --- M bts/BTS_Tests.ttcn 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/36/9436/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index bc3f186..36b1f9d 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -283,6 +283,7 @@ /* global init function */ function f_init(charstring id := "BTS-Test") runs on test_CT { + timer T := 10.0; g_AllChannels := { /* TS 1..4: TCH/F */ valueof(ts_RslChanNr_Bm(1)), valueof(ts_RslChanNr_Bm(2)), @@ -310,7 +311,14 @@ }; f_init_rsl(id); - RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}); + T.start; + alt { + [] RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}); + [] T.timeout { + setverdict(fail, "Timeout waiting for ASP_IPA_EVENT_UP"); + self.stop; + } + } f_sleep(0.5); /* workaround for OS#3000 */ f_init_vty(id); f_ipa_ctrl_start(mp_ctrl_ip, mp_ctrl_port); -- To view, visit https://gerrit.osmocom.org/9436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5150660319896fe7f597ca333395923f128c8d87 Gerrit-Change-Number: 9436 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9436 ) Change subject: BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5150660319896fe7f597ca333395923f128c8d87 Gerrit-Change-Number: 9436 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 03 Jun 2018 17:19:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:26 +0000 Subject: Change in docker-playground[master]: remove deprecated "dest" config option from config files In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9434 ) Change subject: remove deprecated "dest" config option from config files ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1073846c04a8466f2ccf501e27cf152df09042c5 Gerrit-Change-Number: 9434 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 17:19:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:31 +0000 Subject: Change in docker-playground[master]: Makefile: Fix default naming of images In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9435 ) Change subject: Makefile: Fix default naming of images ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I97f9eb3f203301ebc2315ff38216d5b4502eb3d2 Gerrit-Change-Number: 9435 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 17:19:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:32 +0000 Subject: Change in docker-playground[master]: remove deprecated "dest" config option from config files In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9434 ) Change subject: remove deprecated "dest" config option from config files ...................................................................... remove deprecated "dest" config option from config files Change-Id: I1073846c04a8466f2ccf501e27cf152df09042c5 --- M osmo-bsc-latest/osmo-bsc.cfg M osmo-bsc-master/osmo-bsc.cfg M ttcn3-bts-test/osmo-bsc.cfg 3 files changed, 0 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/osmo-bsc-latest/osmo-bsc.cfg b/osmo-bsc-latest/osmo-bsc.cfg index 4176cae..6b79592 100644 --- a/osmo-bsc-latest/osmo-bsc.cfg +++ b/osmo-bsc-latest/osmo-bsc.cfg @@ -342,7 +342,6 @@ no bsc-welcome-text no bsc-msc-lost-text no bsc-grace-text - dest 192.168.100.11 6666 0 type normal allow-emergency allow amr-config 12_2k forbidden diff --git a/osmo-bsc-master/osmo-bsc.cfg b/osmo-bsc-master/osmo-bsc.cfg index 66e8923..5b8093c 100644 --- a/osmo-bsc-master/osmo-bsc.cfg +++ b/osmo-bsc-master/osmo-bsc.cfg @@ -342,7 +342,6 @@ no bsc-welcome-text no bsc-msc-lost-text no bsc-grace-text - dest 192.168.100.11 6666 0 type normal allow-emergency allow amr-config 12_2k forbidden diff --git a/ttcn3-bts-test/osmo-bsc.cfg b/ttcn3-bts-test/osmo-bsc.cfg index b66d776..12ee409 100644 --- a/ttcn3-bts-test/osmo-bsc.cfg +++ b/ttcn3-bts-test/osmo-bsc.cfg @@ -179,7 +179,6 @@ no bsc-msc-lost-text no bsc-grace-text codec-list fr1 fr2 fr3 - dest 192.168.100.11 6666 0 type normal allow-emergency allow amr-config 12_2k forbidden -- To view, visit https://gerrit.osmocom.org/9434 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1073846c04a8466f2ccf501e27cf152df09042c5 Gerrit-Change-Number: 9434 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:32 +0000 Subject: Change in docker-playground[master]: Makefile: Fix default naming of images In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9435 ) Change subject: Makefile: Fix default naming of images ...................................................................... Makefile: Fix default naming of images This got broken in Change-Id If2e3cc7693ce5e7c1c95d2f81e302c72bb4230be Change-Id: I97f9eb3f203301ebc2315ff38216d5b4502eb3d2 --- M make/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/make/Makefile b/make/Makefile index 231b685..5bbdbb7 100644 --- a/make/Makefile +++ b/make/Makefile @@ -18,7 +18,7 @@ NAME?=$(shell basename $(CURDIR)) RELEASE_SUPPORT := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))/.make-release-support -IMAGE?=$(REGISTRY_HOST)/$(NAME) +IMAGE?=$(REGISTRY_HOST)/$(USER)/$(NAME) VERSION?=$(shell . $(RELEASE_SUPPORT) ; getRelease) -- To view, visit https://gerrit.osmocom.org/9435 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I97f9eb3f203301ebc2315ff38216d5b4502eb3d2 Gerrit-Change-Number: 9435 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9436 ) Change subject: BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP ...................................................................... BTS_Tests: Don't wait indefinitely for ASP_IPA_EVENT_UP Change-Id: I5150660319896fe7f597ca333395923f128c8d87 --- M bts/BTS_Tests.ttcn 1 file changed, 9 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index bc3f186..36b1f9d 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -283,6 +283,7 @@ /* global init function */ function f_init(charstring id := "BTS-Test") runs on test_CT { + timer T := 10.0; g_AllChannels := { /* TS 1..4: TCH/F */ valueof(ts_RslChanNr_Bm(1)), valueof(ts_RslChanNr_Bm(2)), @@ -310,7 +311,14 @@ }; f_init_rsl(id); - RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}); + T.start; + alt { + [] RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}); + [] T.timeout { + setverdict(fail, "Timeout waiting for ASP_IPA_EVENT_UP"); + self.stop; + } + } f_sleep(0.5); /* workaround for OS#3000 */ f_init_vty(id); f_ipa_ctrl_start(mp_ctrl_ip, mp_ctrl_port); -- To view, visit https://gerrit.osmocom.org/9436 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5150660319896fe7f597ca333395923f128c8d87 Gerrit-Change-Number: 9436 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:19:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:19:43 +0000 Subject: Change in osmo-bsc[master]: Ignore "dest" command in MSC node In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9433 ) Change subject: Ignore "dest" command in MSC node ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 Gerrit-Change-Number: 9433 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sun, 03 Jun 2018 17:19:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 17:30:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 17:30:06 +0000 Subject: Change in osmo-bsc[master]: Ignore "dest" command in MSC node In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9433 to look at the new patch set (#2). Change subject: Ignore "dest" command in MSC node ...................................................................... Ignore "dest" command in MSC node In Change-Id I6b7354f3b23a26bb4eab12213ca3d3b614c8154f we removed the "dest" vty command, but we should simply ignore it and print a related warning during start. Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/9433/2 -- To view, visit https://gerrit.osmocom.org/9433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 Gerrit-Change-Number: 9433 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 18:09:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 18:09:28 +0000 Subject: Change in osmo-ci[master]: osmocom-latest-packages: Also accept "v" in front of version tags Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9437 Change subject: osmocom-latest-packages: Also accept "v" in front of version tags ...................................................................... osmocom-latest-packages: Also accept "v" in front of version tags Some projects (notably rtl-sdr) use "v" in front of their version tags in the git history. Let's make sure we also recognize those. Change-Id: I20f9896cc7844a6ddec7ba63bc9a77f548082e2a --- M scripts/osmocom-latest-packages.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/37/9437/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index e37c2e0..15fbc6c 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -32,7 +32,7 @@ [ -d "$1" ] || git clone "git://git.osmocom.org/$1" cd "$1" git fetch - VER=$(git tag -l --sort=v:refname | grep "^[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) + VER=$(git tag -l --sort=v:refname | grep "^v\?[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) git checkout -f -B "$VER" "refs/tags/$VER" gbp buildpackage -d -S -uc -us "--git-export-dir=$output" "--git-debian-branch=$VER" -- To view, visit https://gerrit.osmocom.org/9437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I20f9896cc7844a6ddec7ba63bc9a77f548082e2a Gerrit-Change-Number: 9437 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 18:09:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 18:09:29 +0000 Subject: Change in osmo-ci[master]: osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9438 Change subject: osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again ...................................................................... osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again we cannot yet build "latest" for them, as they don't have any tagged versions yet which include the /debian directory. Change-Id: Ia5708508d918fd71eb05393e39b93859b943d623 --- M scripts/osmocom-latest-packages.sh 1 file changed, 3 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/38/9438/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 15fbc6c..6f60ef8 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -79,9 +79,10 @@ osmo-mgw osmo-msc osmo-bsc - rtl-sdr - osmo-fl2k " +# add those two once they have tagged any versions that include the 'debian' sub-dir + #rtl-sdr + #osmo-fl2k [ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc" mkdir "$TOP/debsrc" -- To view, visit https://gerrit.osmocom.org/9438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia5708508d918fd71eb05393e39b93859b943d623 Gerrit-Change-Number: 9438 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 18:10:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 18:10:57 +0000 Subject: Change in osmo-ci[master]: osmocom-latest-packages: Also accept "v" in front of version tags In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9437 ) Change subject: osmocom-latest-packages: Also accept "v" in front of version tags ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I20f9896cc7844a6ddec7ba63bc9a77f548082e2a Gerrit-Change-Number: 9437 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 18:10:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 18:10:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 18:10:58 +0000 Subject: Change in osmo-ci[master]: osmocom-latest-packages: Also accept "v" in front of version tags In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9437 ) Change subject: osmocom-latest-packages: Also accept "v" in front of version tags ...................................................................... osmocom-latest-packages: Also accept "v" in front of version tags Some projects (notably rtl-sdr) use "v" in front of their version tags in the git history. Let's make sure we also recognize those. Change-Id: I20f9896cc7844a6ddec7ba63bc9a77f548082e2a --- M scripts/osmocom-latest-packages.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index e37c2e0..15fbc6c 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -32,7 +32,7 @@ [ -d "$1" ] || git clone "git://git.osmocom.org/$1" cd "$1" git fetch - VER=$(git tag -l --sort=v:refname | grep "^[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) + VER=$(git tag -l --sort=v:refname | grep "^v\?[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) git checkout -f -B "$VER" "refs/tags/$VER" gbp buildpackage -d -S -uc -us "--git-export-dir=$output" "--git-debian-branch=$VER" -- To view, visit https://gerrit.osmocom.org/9437 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I20f9896cc7844a6ddec7ba63bc9a77f548082e2a Gerrit-Change-Number: 9437 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 18:11:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 18:11:04 +0000 Subject: Change in osmo-ci[master]: osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9438 ) Change subject: osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia5708508d918fd71eb05393e39b93859b943d623 Gerrit-Change-Number: 9438 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 18:11:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 18:11:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 18:11:16 +0000 Subject: Change in osmo-ci[master]: osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9438 ) Change subject: osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again ...................................................................... osmocom-latest-packages: diable rtl-sdr and osmo-fl2k again we cannot yet build "latest" for them, as they don't have any tagged versions yet which include the /debian directory. Change-Id: Ia5708508d918fd71eb05393e39b93859b943d623 --- M scripts/osmocom-latest-packages.sh 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 15fbc6c..6f60ef8 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -79,9 +79,10 @@ osmo-mgw osmo-msc osmo-bsc - rtl-sdr - osmo-fl2k " +# add those two once they have tagged any versions that include the 'debian' sub-dir + #rtl-sdr + #osmo-fl2k [ -d "$TOP/debsrc" ] && rm -rf "$TOP/debsrc" mkdir "$TOP/debsrc" -- To view, visit https://gerrit.osmocom.org/9438 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia5708508d918fd71eb05393e39b93859b943d623 Gerrit-Change-Number: 9438 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 18:21:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 18:21:00 +0000 Subject: Change in meta-telephony[201705]: osmo-ggsn: Update 1.2.1 -> 1.2.2 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9399 ) Change subject: osmo-ggsn: Update 1.2.1 -> 1.2.2 ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-MessageType: comment Gerrit-Change-Id: I48f607b380b798f416cb6c05c6bf06e458b75836 Gerrit-Change-Number: 9399 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 03 Jun 2018 18:21:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 3 20:01:43 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 20:01:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b14492c2e37_1a87aca68475756d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 135s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0 [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 135s] @@ -5785,6 +5807,7 @@ [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. [ 135s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0 [ 135s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 135s] 4. testsuite.at:25: 4. tbf (testsuite.at:25): FAILED (testsuite.at:29) [ 135s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 135s] make[1]: *** [override_dh_auto_test] Error 1 [ 135s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 135s] debian/rules:12: recipe for target 'build' failed [ 135s] make: *** [build] Error 2 [ 135s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 135s] [ 135s] lamb56 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sun Jun 3 20:01:37 UTC 2018. [ 135s] [ 135s] ### VM INTERACTION START ### [ 136s] Powering off. [ 136s] [ 128.594605] reboot: Power down [ 136s] ### VM INTERACTION END ### [ 136s] [ 136s] lamb56 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sun Jun 3 20:01:39 UTC 2018. [ 136s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 3 20:32:51 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 20:32:51 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b14508db757b_1a87aca68476054b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 126s] @@ -6090,8 +6103,9 @@ [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) ack: (BSN=1176)"RRRRRRRRRRIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIRRRIRRRRRRRRRRRRRRRRRRRRRRRRRRI"(BSN=1287) R=ACK I=NACK [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) DL analysis, range=1176:1288, lost=73, recv=39, skipped=0, bsn=1944, info='RRRRRRRRRRRRRRRRRRRRRRRRRRLRRRLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRRRRRRRR................................................................................................................................................................................................................................................................................................................................................................................' [ 126s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 65% [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1186)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAANAAAAAAAAAAAAAAAAAAAAAAAAAA"(V(S)-1=1287) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid [ 126s] -DL packet loss of IMSI= / TLLI=0xffeeddcc: 78% [ 126s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 100% [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to RELEASING [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free [ 126s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! [ 126s] 4. testsuite.at:25: 4. tbf (testsuite.at:25): FAILED (testsuite.at:29) [ 126s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 126s] make[1]: *** [override_dh_auto_test] Error 1 [ 126s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 126s] debian/rules:12: recipe for target 'build' failed [ 126s] make: *** [build] Error 2 [ 126s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 126s] [ 126s] lamb20 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sun Jun 3 20:32:36 UTC 2018. [ 126s] [ 126s] ### VM INTERACTION START ### [ 127s] Powering off. [ 127s] [ 119.603260] reboot: Power down [ 127s] ### VM INTERACTION END ### [ 127s] [ 127s] lamb20 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sun Jun 3 20:32:38 UTC 2018. [ 127s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sun Jun 3 20:41:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 20:41:43 +0000 Subject: Change in libosmo-sccp[master]: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9439 Change subject: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID ...................................................................... Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID Applications may be interested in handling data for those SCTP PPID or IPA StreamID which libosmo-sigtran doesn't implement natively/internally. Let's add a weak symbol osmo_ss7_asp_rx_unknown() which applications can override to implement whatever behaviour they'd want for those PPID/StreamIDs. Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 --- M include/osmocom/sigtran/osmo_ss7.h M src/ipa.c M src/osmo_ss7.c 3 files changed, 30 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/39/9439/1 diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h index fd3f103..89bf437 100644 --- a/include/osmocom/sigtran/osmo_ss7.h +++ b/include/osmocom/sigtran/osmo_ss7.h @@ -408,6 +408,8 @@ int osmo_ss7_asp_restart(struct osmo_ss7_asp *asp); int osmo_ss7_asp_use_default_lm(struct osmo_ss7_asp *asp, int log_level); +int osmo_ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg); + #define LOGPASP(asp, subsys, level, fmt, args ...) \ LOGP(subsys, level, "asp-%s: " fmt, (asp)->cfg.name, ## args) diff --git a/src/ipa.c b/src/ipa.c index 9f04746..d81f56d 100644 --- a/src/ipa.c +++ b/src/ipa.c @@ -288,9 +288,7 @@ rc = ipa_rx_msg_sccp(asp, msg); break; default: - LOGPASP(asp, DLSS7, LOGL_DEBUG, "Unknown Stream ID 0x%02x: %s\n", - hh->proto, msgb_hexdump(msg)); - rc = -1; + rc = osmo_ss7_asp_rx_unknown(asp, hh->proto, msg); } return rc; diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 275469e..1a554a8 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1450,11 +1450,8 @@ rc = sua_rx_msg(asp, msg); else if (ppid == M3UA_PPID && asp->cfg.proto == OSMO_SS7_ASP_PROT_M3UA) rc = m3ua_rx_msg(asp, msg); - else { - LOGPASP(asp, DLSS7, LOGL_NOTICE, "SCTP chunk for unknown PPID %u " - "received\n", ppid); - rc = 0; - } + else + rc = osmo_ss7_asp_rx_unknown(asp, ppid, msg); out: msgb_free(msg); @@ -1591,11 +1588,8 @@ rc = sua_rx_msg(asp, msg); else if (ppid == M3UA_PPID && asp->cfg.proto == OSMO_SS7_ASP_PROT_M3UA) rc = m3ua_rx_msg(asp, msg); - else { - LOGPASP(asp, DLSS7, LOGL_NOTICE, "SCTP chunk for unknown PPID %u " - "received\n", ppid); - rc = 0; - } + else + rc = osmo_ss7_asp_rx_unknown(asp, ppid, msg); out: msgb_free(msg); @@ -1918,3 +1912,26 @@ return OSMO_SS7_AS_TMOD_BCAST; } } + +/*! Weak function to handle payload for unknown/unsupported PPID or IPA StreamID. + * This function can be overridden by application code to implement whatever handling + * it wants for such additional payloads/streams. + * \param[in] asp Application Server Process through which data was received + * \param[in] ppid_sid SCTP PPID (in sigtran case) or IPA Stream ID + * \param[in] msg Message buffer containing received data. Continues to be owned by caller! + * \return 0 on success; negative on error */ +__attribute__((weak)) +int osmo_ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg) +{ + switch(asp->cfg.proto) { + case OSMO_SS7_ASP_PROT_IPA: + LOGPASP(asp, DLSS7, LOGL_NOTICE, "Rx IPA for unknown Stream ID 0x%02x: %s\n", + ppid_mux, msgb_hexdump(msg)); + break; + default: + LOGPASP(asp, DLSS7, LOGL_NOTICE, "Rx SCTP chunk for unknown PPID %u: %s\n", + ppid_mux, msgb_hexdump(msg)); + break; + } + return 0; +} -- To view, visit https://gerrit.osmocom.org/9439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 Gerrit-Change-Number: 9439 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 20:54:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 20:54:59 +0000 Subject: Change in docker-playground[master]: ttcn3-bsc-test: Fix sccplite configuration Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9440 Change subject: ttcn3-bsc-test: Fix sccplite configuration ...................................................................... ttcn3-bsc-test: Fix sccplite configuration Change-Id: I79ac95df2fe973d016706be407ec21853abd7875 --- M ttcn3-bsc-test/sccplite/BSC_Tests.cfg M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 2 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/40/9440/1 diff --git a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg index a862bea..b1e3ae7 100644 --- a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg +++ b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg @@ -6,11 +6,11 @@ *.JUnitLogger.testsuite_name := "BSC_Tests" [TESTPORT_PARAMETERS] -*.BSCVTY.CTRL_HOSTNAME := "172.18.2.20" +*.BSCVTY.CTRL_HOSTNAME := "172.18.11.20" [MODULE_PARAMETERS] -BSC_Tests.mp_bsc_ip := "172.18.2.20"; -BSC_Tests.mp_test_ip := "172.18.2.203"; +BSC_Tests.mp_bsc_ip := "172.18.11.20"; +BSC_Tests.mp_test_ip := "172.18.11.203"; BSC_Tests.mp_bssap_cfg := { transport := BSSAP_TRANSPORT_SCCPlite_SERVER, sccp_service_type := "mtp3_itu", diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index 688943f..5fb8710 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -56,11 +56,11 @@ cs7 instance 0 point-code 0.23.3 asp asp-clnt-msc-0 5000 0 ipa - remote-ip 172.18.2.200 + remote-ip 172.18.11.203 as as-clnt-msc-0 ipa asp asp-clnt-msc-0 routing-key 0 0.23.3 - point-code overried dpc 0.23.1 + point-code override dpc 0.23.1 network network country code 1 mobile network code 1 @@ -171,7 +171,7 @@ type sysmobts band DCS1800 cell_identity 1 - location_area_code 2 + location_area_code 1 dtx uplink force dtx downlink base_station_id_code 11 @@ -261,7 +261,7 @@ type sysmobts band DCS1800 cell_identity 1 - location_area_code 1 + location_area_code 2 dtx uplink force dtx downlink base_station_id_code 12 @@ -363,7 +363,7 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 - mgw remote-ip 172.18.2.203 + mgw remote-ip 172.18.11.203 asp-protocol ipa bsc mid-call-timeout 0 -- To view, visit https://gerrit.osmocom.org/9440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I79ac95df2fe973d016706be407ec21853abd7875 Gerrit-Change-Number: 9440 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 20:55:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 20:55:16 +0000 Subject: Change in docker-playground[master]: ttcn3-bsc-test: Fix sccplite configuration In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9440 ) Change subject: ttcn3-bsc-test: Fix sccplite configuration ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I79ac95df2fe973d016706be407ec21853abd7875 Gerrit-Change-Number: 9440 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 03 Jun 2018 20:55:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 3 20:55:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Jun 2018 20:55:17 +0000 Subject: Change in docker-playground[master]: ttcn3-bsc-test: Fix sccplite configuration In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9440 ) Change subject: ttcn3-bsc-test: Fix sccplite configuration ...................................................................... ttcn3-bsc-test: Fix sccplite configuration Change-Id: I79ac95df2fe973d016706be407ec21853abd7875 --- M ttcn3-bsc-test/sccplite/BSC_Tests.cfg M ttcn3-bsc-test/sccplite/osmo-bsc.cfg 2 files changed, 8 insertions(+), 8 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg index a862bea..b1e3ae7 100644 --- a/ttcn3-bsc-test/sccplite/BSC_Tests.cfg +++ b/ttcn3-bsc-test/sccplite/BSC_Tests.cfg @@ -6,11 +6,11 @@ *.JUnitLogger.testsuite_name := "BSC_Tests" [TESTPORT_PARAMETERS] -*.BSCVTY.CTRL_HOSTNAME := "172.18.2.20" +*.BSCVTY.CTRL_HOSTNAME := "172.18.11.20" [MODULE_PARAMETERS] -BSC_Tests.mp_bsc_ip := "172.18.2.20"; -BSC_Tests.mp_test_ip := "172.18.2.203"; +BSC_Tests.mp_bsc_ip := "172.18.11.20"; +BSC_Tests.mp_test_ip := "172.18.11.203"; BSC_Tests.mp_bssap_cfg := { transport := BSSAP_TRANSPORT_SCCPlite_SERVER, sccp_service_type := "mtp3_itu", diff --git a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg index 688943f..5fb8710 100644 --- a/ttcn3-bsc-test/sccplite/osmo-bsc.cfg +++ b/ttcn3-bsc-test/sccplite/osmo-bsc.cfg @@ -56,11 +56,11 @@ cs7 instance 0 point-code 0.23.3 asp asp-clnt-msc-0 5000 0 ipa - remote-ip 172.18.2.200 + remote-ip 172.18.11.203 as as-clnt-msc-0 ipa asp asp-clnt-msc-0 routing-key 0 0.23.3 - point-code overried dpc 0.23.1 + point-code override dpc 0.23.1 network network country code 1 mobile network code 1 @@ -171,7 +171,7 @@ type sysmobts band DCS1800 cell_identity 1 - location_area_code 2 + location_area_code 1 dtx uplink force dtx downlink base_station_id_code 11 @@ -261,7 +261,7 @@ type sysmobts band DCS1800 cell_identity 1 - location_area_code 1 + location_area_code 2 dtx uplink force dtx downlink base_station_id_code 12 @@ -363,7 +363,7 @@ amr-config 5_15k forbidden amr-config 4_75k forbidden codec-list fr1 fr2 fr3 hr1 hr3 - mgw remote-ip 172.18.2.203 + mgw remote-ip 172.18.11.203 asp-protocol ipa bsc mid-call-timeout 0 -- To view, visit https://gerrit.osmocom.org/9440 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I79ac95df2fe973d016706be407ec21853abd7875 Gerrit-Change-Number: 9440 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 3 22:20:57 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 03 Jun 2018 22:20:57 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b1469ddd39f3_1a87aca68477267b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-pcu failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 290s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0 [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 290s] @@ -5785,6 +5807,7 @@ [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) msg block (BSN 0, MCS-6): 07 00 00 10 40 80 c0 00 41 81 c1 01 42 82 c2 02 43 83 c3 03 44 84 c4 04 45 85 c5 05 46 86 c6 06 47 87 c7 07 48 88 c8 08 49 89 c9 09 4a 8a ca 0a 4b 8b cb 0b 4c 8c cc 0c 4d 8d cd 0d 4e 8e ce 0e 4f 8f cf 0f 50 90 d0 10 51 91 d1 11 52 12 [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) downlink acknowledge [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) Final ACK received. [ 290s] +DL packet loss of IMSI= / TLLI=0xffeeddcc: 0% [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to WAIT RELEASE [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) starting timer T3193 [release (DL-TBF)] with 0 sec. 0 microsec, cur_fn=0 [ 290s] TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=WAIT RELEASE EGPRS) changes DL ASS state from GPRS_RLCMAC_DL_ASS_SEND_ASS to GPRS_RLCMAC_DL_ASS_NONE [ 290s] 4. testsuite.at:25: 4. tbf (testsuite.at:25): FAILED (testsuite.at:29) [ 290s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 290s] make[1]: *** [override_dh_auto_test] Error 1 [ 290s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 290s] debian/rules:12: recipe for target 'build' failed [ 290s] make: *** [build] Error 2 [ 290s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 290s] [ 290s] armbuild02 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sun Jun 3 22:20:46 UTC 2018. [ 290s] [ 290s] ### VM INTERACTION START ### [ 292s] [ 271.083774] SysRq : Power Off [ 292s] [ 271.084667] reboot: Power down [ 292s] ### VM INTERACTION END ### [ 292s] [ 292s] armbuild02 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Sun Jun 3 22:20:49 UTC 2018. [ 292s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:08:14 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:08:14 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b1491017b8a0_1a87aca6847801b4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_9.0/x86_64 Package network:osmocom:latest/osmo-bts failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 66s] #define HAVE_STDLIB_H 1 [ 66s] #define HAVE_STRING_H 1 [ 66s] #define HAVE_MEMORY_H 1 [ 66s] #define HAVE_STRINGS_H 1 [ 66s] #define HAVE_INTTYPES_H 1 [ 66s] #define HAVE_STDINT_H 1 [ 66s] #defi[ 57.376257] serial8250: too much work for irq4 [ 66s] ne HAVE_UNISTD_H 1 [ 66s] #define HAVE_DLFCN_H 1 [ 66s] #define LT_OBJDIR ".libs/" [ 66s] #define STDC_HEADERS 1 [ 66s] [ 66s] configure: exit 1 [ 66s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 66s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 66s] make[1]: *** [override_dh_auto_configure] Error 2 [ 66s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 66s] debian/rules:12: recipe for target 'build' failed [ 66s] make: *** [build] Error 2 [ 66s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 66s] [ 66s] lamb67 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:08:06 UTC 2018. [ 66s] [ 66s] ### VM INTERACTION START ### [ 69s] [ 60.550484] reboot: Power down [ 69s] ### VM INTERACTION END ### [ 69s] [ 69s] lamb67 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:08:10 UTC 2018. [ 69s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:09:39 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:09:39 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b14915a4dbd9_1a87aca6847802b9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_9.0/i586 Package network:osmocom:latest/osmo-bts failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 74s] #define HAVE_STDLIB_H 1 [ 74s] #define HAVE_STRING_H 1 [ 74s] #define HAVE_MEMORY_H 1 [ 74s] #define HAVE_STRINGS_H 1 [ 74s] #define HAVE_INTTYPES_H 1 [ 74s] #define HAVE_STDINT_H 1 [ 74s] #define HAVE_UNISTD_H 1 [ 74s] #define HAVE_DLFCN_H 1 [ 74s] #define LT_OBJDIR ".libs/" [ 74s] #define STDC_HEADERS 1 [ 74s] [ 74s] configure: exit 1 [ 74s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstat[ 65.364148] serial8250: too much work for irq4 [ 74s] edir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 74s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 74s] make[1]: *** [override_dh_auto_configure] Error 2 [ 74s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 74s] debian/rules:12: recipe for target 'build' failed [ 74s] make: *** [build] Error 2 [ 74s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 74s] [ 74s] lamb01 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:09:20 UTC 2018. [ 74s] [ 74s] ### VM INTERACTION START ### [ 77s] [ 68.620615] reboot: Power down [ 77s] ### VM INTERACTION END ### [ 77s] [ 77s] lamb01 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:09:23 UTC 2018. [ 77s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:10:31 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:10:31 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b149197b2c09_1a87aca68478033f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_16.10/x86_64 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 42s] #define HAVE_SYS_STAT_H 1 [ 42s] #define HAVE_STDLIB_H 1 [ 42s] #define HAVE_STRING_H 1 [ 42s] #define HAVE_MEMORY_H 1 [ 42s] #define HAVE_STRINGS_H 1 [ 42s] #define HAVE_INTTYPES_H 1 [ 42s] #define HAVE_STDINT_H 1 [ 42s] #define HAVE_UNISTD_H 1 [ 42s] #define HAVE_DLFCN_H 1 [ 42s] #define LT_OBJDIR ".libs/" [ 42s] #define STDC_HEADERS 1 [ 42s] [ 42s] configure: exit 1 [ 42s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 42s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 42s] make[1]: *** [override_dh_auto_configure] Error 2 [ 42s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 42s] debian/rules:12: recipe for target 'build' failed [ 42s] make: *** [build] Error 2 [ 42s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 42s] [ 42s] build81 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:10:27 UTC 2018. [ 42s] [ 42s] ### VM INTERACTION START ### [ 45s] [ 40.036366] reboot: Power down [ 45s] ### VM INTERACTION END ### [ 45s] [ 45s] build81 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:10:30 UTC 2018. [ 45s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:15:21 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:15:21 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b1492c6b90f3_1a87aca684780551@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_16.04/x86_64 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 92s] #define HAVE_SYS_STAT_H 1 [ 92s] #define HAVE_STDLIB_H 1 [ 92s] #define HAVE_STRING_H 1 [ 92s] #define HAVE_MEMORY_H 1 [ 92s] #define HAVE_STRINGS_H 1 [ 92s] #define HAVE_INTTYPES_H 1 [ 92s] #define HAVE_STDINT_H 1 [ 92s] #define HAVE_UNISTD_H 1 [ 92s] #define HAVE_DLFCN_H 1 [ 92s] #define LT_OBJDIR ".libs/" [ 92s] #define STDC_HEADERS 1 [ 92s] [ 92s] configure: exit 1 [ 92s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 92s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 92s] make[1]: *** [override_dh_auto_configure] Error 255 [ 92s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 92s] debian/rules:12: recipe for target 'build' failed [ 92s] make: *** [build] Error 2 [ 92s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 92s] [ 92s] build36 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:15:04 UTC 2018. [ 92s] [ 92s] ### VM INTERACTION START ### [ 95s] [ 87.105337] reboot: Power down [ 95s] ### VM INTERACTION END ### [ 95s] [ 95s] build36 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:15:08 UTC 2018. [ 95s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:15:55 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:15:55 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b1492e363d63_1a87aca684780778@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/Debian_9.0/armv7l Package network:osmocom:latest/libosmo-netif failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 101s] #define HAVE_MEMORY_H 1 [ 101s] #define HAVE_STRINGS_H 1 [ 101s] #define HAVE_INTTYPES_H 1 [ 101s] #define HAVE_STDINT_H 1 [ 101s] #define HAVE_UNISTD_H 1 [ 101s] #define HAVE_DLFCN_H 1 [ 101s] #define LT_OBJDIR ".libs/" [ 101s] #define STDC_HEADERS 1 [ 101s] #define HAVE_EXECINFO_H 1 [ 101s] #define HAVE_SYS_SELECT_H 1 [ 101s] #define HAVE_SYS_SOCKET_H 1 [ 101s] #define HAVE_SYSLOG_H 1 [ 101s] #define HAVE_CTYPE_H 1 [ 101s] [ 101s] configure: exit 1 [ 101s] dh_auto_configure: ./configure --build=arm-linux-gnueabihf --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/arm-linux-gnueabihf --libexecdir=${prefix}/lib/arm-linux-gnueabihf --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 101s] debian/rules:13: recipe for target 'build' failed [ 101s] make: *** [build] Error 2 [ 101s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 101s] [ 101s] armbuild22 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:15:36 UTC 2018. [ 101s] [ 101s] ### VM INTERACTION START ### [ 104s] [ 93.266846] SysRq : Power Off [ 104s] [ 93.268635] reboot: Power down [ 104s] ### VM INTERACTION END ### [ 104s] [ 104s] armbuild22 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:15:39 UTC 2018. [ 104s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:20:48 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:20:48 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b14940ccd356_1a87aca684781058@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_16.04/x86_64 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 123s] #define HAVE_STRING_H 1 [ 123s] #define HAVE_MEMORY_H 1 [ 123s] #define HAVE_STRINGS_H 1 [ 123s] #define HAVE_INTTYPES_H 1 [ 123s] #define HAVE_STDINT_H 1 [ 123s] #define HAVE_UNISTD_H 1 [ 123s] #define HAVE_DLFCN_H 1 [ 123s] #define LT_OBJDIR ".libs/" [ 123s] #define STDC_HEADERS 1 [ 123s] #define HAVE_EXECINFO_H 1 [ 123s] #define HAVE_SYS_SELECT_H 1 [ 123s] #define HAVE_SYS_SOCKET_H 1 [ 123s] #define HAVE_SYSLOG_H 1 [ 123s] #define HAVE_CTYPE_H 1 [ 123s] [ 123s] configure: exit 1 [ 123s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 123s] debian/rules:13: recipe for target 'build' failed [ 123s] make: *** [build] Error 255 [ 123s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 124s] [ 124s] cloud134 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:20:41 UTC 2018. [ 124s] [ 124s] ### VM INTERACTION START ### [ 127s] [ 110.710365] reboot: Power down [ 128s] ### VM INTERACTION END ### [ 128s] [ 128s] cloud134 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:20:47 UTC 2018. [ 128s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:23:04 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:23:04 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b149487ad748_1a87aca6847811bc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_9.0/armv7l Package network:osmocom:latest/osmo-bts failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 188s] #define PACKAGE_BUGREPORT "openbsc at lists.osmocom.org" [ 188s] #define PACKAGE_URL "" [ 188s] #define PACKAGE "osmo-bts" [ 188s] #define VERSION "0.8.1" [ 188s] #define STDC_HEADERS 1 [ 188s] #define HAVE_SYS_TYPES_H 1 [ 188s] #define HAVE_SYS_STAT_H 1 [ 188s] #define HAVE_STDLIB_H 1 [ 188s] #define HAVE_STRING_H 1 [ 188s] #define HAVE_MEMORY_H 1 [ 188s] #define HAVE_STRINGS_H 1 [ 188s] #define HAVE_INTTYPES_H 1 [ 188s] #define HAVE_STDINT_H 1 [ 188s] #define HAVE_UNISTD_H 1 [ 188s] #define HAVE_DLFCN_H 1 [ 188s] #define LT_OBJDIR ".libs/" [ 188s] #define STDC_HEADERS 1 [ 188s] [ 188s] configure: exit 1 [ 188s] dh_auto_configure: ./configure --build=arm-linux-gnueabihf --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/arm-linux-gnueabihf --libexecdir=${prefix}/lib/arm-linux-gnueabihf --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 188s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 188s] make[1]: *** [override_dh_auto_configure] Error 2 [ 188s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 190s] debian/rules:12: recipe for target 'build' faile[ 151.766203] sysrq: SysRq : Power Off [ 190s] [ 151.768718] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] armbuild15 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:23:01 UTC 2018. [ 190s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:26:47 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:26:47 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b14957741e97_1a87aca68478132f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_16.04/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 107s] #define VERSION "UNKNOWN" [ 107s] #define STDC_HEADERS 1 [ 107s] #define HAVE_SYS_TYPES_H 1 [ 107s] #define HAVE_SYS_STAT_H 1 [ 107s] #define HAVE_STDLIB_H 1 [ 107s] #define HAVE_STRING_H 1 [ 107s] #define HAVE_MEMORY_H 1 [ 107s] #define HAVE_STRINGS_H 1 [ 107s] #define HAVE_INTTYPES_H 1 [ 107s] #define HAVE_STDINT_H 1 [ 107s] #define HAVE_UNISTD_H 1 [ 107s] #define HAVE_DLFCN_H 1 [ 107s] #define LT_OBJDIR ".libs/" [ 107s] [ 107s] configure: exit 1 [ 107s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tr[ 91.608092] serial8250: too much work for irq4 [ 107s] acking returned exit code 1 [ 107s] debian/rules:45: recipe for target 'build' failed [ 107s] make: *** [build] Error 255 [ 107s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 107s] [ 107s] cloud130 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:26:29 UTC 2018. [ 107s] [ 107s] ### VM INTERACTION START ### [ 111s] [ 94.819176] reboot: Power down [ 112s] ### VM INTERACTION END ### [ 112s] [ 112s] cloud130 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:26:34 UTC 2018. [ 112s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:29:38 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:29:38 +0000 Subject: Build failure of network:osmocom:latest/openbsc in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b14960ac6da8_1a87aca684781913@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/xUbuntu_16.04/x86_64 Package network:osmocom:latest/openbsc failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 122s] #define HAVE_SYS_TYPES_H 1 [ 122s] #define HAVE_SYS_STAT_H 1 [ 122s] #define HAVE_STDLIB_H 1 [ 122s] #define HAVE_STRING_H 1 [ 122s] #define HAVE_MEMORY_H 1 [ 122s] #define HAVE_STRINGS_H 1 [ 122s] #define HAVE_INTTYPES_H 1 [ 122s] #define HAVE_STDINT_H 1 [ 122s] #define HAVE_UNISTD_H 1 [ 122s] #define HAVE_DLFCN_H 1 [ 122s] #define LT_OBJDIR ".libs/" [ 122s] [ 122s] configure: exit 1 [ 122s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 77. [ 122s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 122s] make[1]: *** [override_dh_auto_configure] Error 255 [ 122s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 122s] debian/rules:13: recipe for target 'build' failed [ 122s] make: *** [build] Error 2 [ 122s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 122s] [ 122s] cloud134 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:29:18 UTC 2018. [ 122s] [ 122s] ### VM INTERACTION START ### [ 125s] [ 109.176595] reboot: Power down [ 126s] ### VM INTERACTION END ### [ 127s] [ 127s] cloud134 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:29:24 UTC 2018. [ 127s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:30:47 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:30:47 +0000 Subject: Build failure of network:osmocom:latest/openbsc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b149663b0f32_1a87aca6847820fd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/armv7l Package network:osmocom:latest/openbsc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 165s] #define HAVE_SYS_STAT_H 1 [ 165s] #define HAVE_STDLIB_H 1 [ 165s] #define HAVE_STRING_H 1 [ 165s] #define HAVE_MEMORY_H 1 [ 165s] #define HAVE_STRINGS_H 1 [ 165s] #define HAVE_INTTYPES_H 1 [ 165s] #define HAVE_STDINT_H 1 [ 165s] #define HAVE_UNISTD_H 1 [ 165s] #define HAVE_DLFCN_H 1 [ 165s] #define LT_OBJDIR ".libs/" [ 165s] [ 165s] configure: exit 1 [ 165s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 77. [ 165s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 165s] make[1]: *** [override_dh_auto_configure] Error 2 [ 165s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 165s] debian/rules:13: recipe for target 'build' failed [ 165s] make: *** [build] Error 2 [ 165s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 165s] [ 165s] armbuild18 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:30:28 UTC 2018. [ 165s] [ 165s] ### VM INTERACTION START ### [ 168s] [ 133.454073] SysRq : Power Off [ 168s] [ 133.455650] reboot: Power down [ 168s] ### VM INTERACTION END ### [ 168s] [ 168s] armbuild18 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:30:32 UTC 2018. [ 168s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:32:13 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:32:13 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b1496a2ab77f_1a87aca6847823f3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/Debian_9.0/x86_64 Package network:osmocom:latest/libosmo-netif failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 43s] #define HAVE_MEMORY_H 1 [ 43s] #define HAVE_STRINGS_H 1 [ 43s] #define HAVE_INTTYPES_H 1 [ 43s] #define HAVE_STDINT_H 1 [ 43s] #define HAVE_U[ 37.724014] serial8250: too much work for irq4 [ 43s] NISTD_H 1 [ 43s] #define HAVE_DLFCN_H 1 [ 43s] #define LT_OBJDIR ".libs/" [ 43s] #define STDC_HEADERS 1 [ 43s] #define HAVE_EXECINFO_H 1 [ 43s] #define HAVE_SYS_SELECT_H 1 [ 43s] #define HAVE_SYS_SOCKET_H 1 [ 43s] #define HAVE_SYSLOG_H 1 [ 43s] #define HAVE_CTYPE_H 1 [ 43s] [ 43s] configure: exit 1 [ 43s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 43s] debian/rules:13: recipe for target 'build' failed [ 43s] make: *** [build] Error 2 [ 43s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 43s] [ 43s] build81 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:32:09 UTC 2018. [ 43s] [ 43s] ### VM INTERACTION START ### [ 46s] [ 40.817126] reboot: Power down [ 46s] ### VM INTERACTION END ### [ 46s] [ 46s] build81 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:32:12 UTC 2018. [ 46s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:33:21 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:33:21 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b1496fb89620_1a87aca68478249@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/Debian_8.0/x86_64 Package network:osmocom:latest/libosmo-netif failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 93s] #define HAVE_MEMORY_H 1 [ 93s] #define HAVE_STRINGS_H 1 [ 93s] #define HAVE_INTTYPES_H 1 [ 93s] #define HAVE_STDINT_H 1 [ 93s] #define HAVE_UNISTD_H 1 [ 93s] #define HAVE_DLFCN_H 1 [ 93s] #define LT_OBJDIR ".libs/" [ 93s] #define STDC_HEADERS 1 [ 93s] #define HAVE_EXECINFO_H 1 [ 93s] #define HAVE_SYS_SELECT_H 1 [ 93s] #define HAVE_SYS_SOCKET_H 1 [ 93s] #define HAVE_SYSLOG_H 1 [ 93s] #define HAVE_CTYPE_H 1 [ 93s] [ 93s] configure: exit 1 [ 93s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 93s] debian/rules:13: recipe for target 'build' failed [ 93s] make: *** [build] Error 255 [ 93s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 93s] [ 93s] build33 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:33:09 UTC 2018. [ 93s] [ 93s] ### VM INTERACTION START ### [ 94s] Powering off. [ 94s] [ 83.211680] reboot: Power down [ 94s] ### VM INTERACTION END ### [ 94s] [ 94s] build33 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:33:11 UTC 2018. [ 94s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:33:21 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:33:21 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b1496fcd582_1a87aca684782552@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/Debian_8.0/i586 Package network:osmocom:latest/libosmo-netif failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 77s] #define HAVE_MEMORY_H 1 [ 77s] #define HAVE_STRINGS_H 1 [ 77s] #define HAVE_INTTYPES_H 1 [ 77s] #define HAVE_STDINT_H 1 [ 77s] #define HAVE_UNISTD_H 1 [ 77s] #define HAVE_DLFCN_H 1 [ 77s] #define LT_OBJDIR ".libs/" [ 77s] #define STDC_HEADERS 1 [ 77s] #define HAVE_EXECINFO_H 1 [ 77s] #define HAVE_SYS_SELECT_H 1 [ 77s] #define HAVE_SYS_SOCKET_H 1 [ 77s] #define HAVE_SYSLOG_H 1 [ 77s] #define HAVE_CTYPE_H 1 [ 77s] [ 77s] configure: exit 1 [ 77s] dh_auto_configure: ./configure --build=i586-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 77s] debian/rules:13: recipe for target 'build' failed [ 77s] make: *** [build] Error 255 [ 77s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 77s] [ 77s] lamb57 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:33:17 UTC 2018. [ 77s] [ 77s] ### VM INTERACTION START ### [ 78s] Powering off. [ 78s] [ 70.478135] reboot: Power down [ 78s] ### VM INTERACTION END ### [ 78s] [ 78s] lamb57 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:33:19 UTC 2018. [ 78s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:33:55 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:33:55 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b1497183fa16_1a87aca6847827bd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_9.0/armv7l Package network:osmocom:latest/osmo-hlr failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 102s] #define HAVE_SYS_TYPES_H 1 [ 102s] #define HAVE_SYS_STAT_H 1 [ 102s] #define HAVE_STDLIB_H 1 [ 102s] #define HAVE_STRING_H 1 [ 102s] #define HAVE_MEMORY_H 1 [ 102s] #define HAVE_STRINGS_H 1 [ 102s] #define HAVE_INTTYPES_H 1 [ 102s] #define HAVE_STDINT_H 1 [ 102s] #define HAVE_UNISTD_H 1 [ 102s] #define HAVE_DLFCN_H 1 [ 102s] #define LT_OBJDIR ".libs/" [ 102s] #define PACKAGE "osmo-hlr" [ 102s] #define VERSION "UNKNOWN" [ 102s] [ 102s] configure: exit 1 [ 102s] dh_auto_configure: ./configure --build=arm-linux-gnueabihf --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/arm-linux-gnueabihf --libexecdir=${prefix}/lib/arm-linux-gnueabihf --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 102s] debian/rules:7: recipe for target 'build' failed [ 102s] make: *** [build] Error 2 [ 102s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 102s] [ 102s] armbuild24 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:33:40 UTC 2018. [ 102s] [ 102s] ### VM INTERACTION START ### [ 105s] [ 92.802722] SysRq : Power Off [ 105s] [ 92.804405] reboot: Power down [ 105s] ### VM INTERACTION END ### [ 105s] [ 105s] armbuild24 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:33:44 UTC 2018. [ 105s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:35:39 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:35:39 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b149776b5901_1a87aca6847828f6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_16.10/x86_64 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 82s] #define HAVE_STRING_H 1 [ 82s] #define HAVE_MEMORY_H 1 [ 82s] #define HAVE_STRINGS_H 1 [ 82s] #define HAVE_INTTYPES_H 1 [ 82s] #define HAVE_STDINT_H 1 [ 82s] #define HAVE_UNISTD_H 1 [ 82s] #define HAVE_DLFCN_H 1 [ 82s] #define LT_OBJDIR ".libs/" [ 82s] #define STDC_HEADERS 1 [ 82s] #define HAVE_EXECINFO_H 1 [ 82s] #define HAVE_SYS_SELECT_H 1 [ 82s] #define HAVE_SYS_SOCKET_H 1 [ 82s] #define HAVE_SYSLOG_H 1 [ 82s] #define HAVE_CTYPE_H 1 [ 82s] [ 82s] configure: exit 1 [ 82s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 82s] debian/rules:13: recipe for target 'build' failed [ 82s] make: *** [build] Error 2 [ 82s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 82s] [ 82s] lamb26 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:35:28 UTC 2018. [ 82s] [ 82s] ### VM INTERACTION START ### [ 85s] [ 77.068466] reboot: Power down [ 85s] ### VM INTERACTION END ### [ 85s] [ 85s] lamb26 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:35:31 UTC 2018. [ 85s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:36:13 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:36:13 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b149792d99e9_1a87aca6847829b7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_16.10/i586 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 110s] #define HAVE_SYS_STAT_H 1 [ 110s] #define HAVE_STDLIB_H 1 [ 110s] #define HAVE_STRING_H 1 [ 110s] #define HAVE_MEMORY_H 1 [ 110s] #define HAVE_STRINGS_H 1 [ 110s] #define HAVE_INTTYPES_H 1 [ 110s] #define HAVE_STDINT_H 1 [ 110s] #define HAVE_UNISTD_H 1 [ 110s] #define HAVE_DLFCN_H 1 [ 110s] #define LT_OBJDIR ".libs/" [ 110s] #define STDC_HEADERS 1 [ 110s] [ 110s] configure: exit 1 [ 110s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 110s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 110s] make[1]: *** [override_dh_auto_configure] Error 2 [ 110s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 110s] debian/rules:12: recipe for target 'build' failed [ 110s] make: *** [build] Error 2 [ 110s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 110s] [ 110s] cloud111 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:35:53 UTC 2018. [ 110s] [ 110s] ### VM INTERACTION START ### [ 113s] [ 96.794258] reboot: Power down [ 114s] ### VM INTERACTION END ### [ 114s] [ 114s] cloud111 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:35:57 UTC 2018. [ 114s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:36:47 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:36:47 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b149866ca751_1a87aca6847830c0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_16.10/i586 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 122s] #define HAVE_STRING_H 1 [ 122s] #define HAVE_MEMORY_H 1 [ 122s] #define HAVE_STRINGS_H 1 [ 122s] #define HAVE_INTTYPES_H 1 [ 122s] #define HAVE_STDINT_H 1 [ 122s] #define HAVE_UNISTD_H 1 [ 122s] #define HAVE_DLFCN_H 1 [ 122s] #define LT_OBJDIR ".libs/" [ 122s] #define STDC_HEADERS 1 [ 122s] #define HAVE_EXECINFO_H 1 [ 122s] #define HAVE_SYS_SELECT_H 1 [ 122s] #define HAVE_SYS_SOCKET_H 1 [ 122s] #define HAVE_SYSLOG_H 1 [ 122s] #define HAVE_CTYPE_H 1 [ 122s] [ 122s] configure: exit 1 [ 122s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 122s] debian/rules:13: recipe for target 'build' failed [ 122s] make: *** [build] Error 2 [ 122s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 122s] [ 122s] cloud109 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:36:43 UTC 2018. [ 122s] [ 122s] ### VM INTERACTION START ### [ 125s] [ 104.357283] reboot: Power down [ 125s] ### VM INTERACTION END ### [ 125s] [ 125s] cloud109 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:36:46 UTC 2018. [ 125s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:36:47 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:36:47 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b149869517b1_1a87aca684783167@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_18.04/x86_64 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 101s] #define HAVE_SYS_STAT_H 1 [ 101s] #define HAVE_STDLIB_H 1 [ 101s] #define HAVE_STRING_H 1 [ 101s] #define HAVE_MEMORY_H 1 [ 101s] #define HAVE_STRINGS_H 1 [ 101s] #define HAVE_INTTYPES_H 1 [ 101s] #define HAVE_STDINT_H 1 [ 101s] #define HAVE_UNISTD_H 1 [ 101s] #define HAVE_DLFCN_H 1 [ 101s] #define LT_OBJDIR ".libs/" [ 101s] #define STDC_HEADERS 1 [ 101s] [ 101s] configure: exit 1 [ 101s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 101s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 101s] make[1]: *** [override_dh_auto_configure] Error 2 [ 101s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 101s] debian/rules:12: recipe for target 'build' failed [ 101s] make: *** [build] Error 2 [ 101s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 101s] [ 101s] lamb77 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:36:30 UTC 2018. [ 101s] [ 101s] ### VM INTERACTION START ### [ 104s] [ 96.484533] reboot: Power down [ 104s] ### VM INTERACTION END ### [ 104s] [ 104s] lamb77 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:36:33 UTC 2018. [ 104s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:39:51 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:39:51 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b14986dd6ec3_1a87aca6847833d6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_8.0/x86_64 Package network:osmocom:latest/osmo-msc failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 68s] #define HAVE_SYS_STAT_H 1 [ 68s] #define HAVE_STDLIB_H 1 [ 68s] #define HAVE_STRING_H 1 [ 68s] #define HAVE_MEMORY_H 1 [ 68s] #define HAVE_STRINGS_H 1 [ 68s] #define HAVE_INTTYPES_H 1 [ 68s] #define HAVE_STDINT_H 1 [ 68s] #define HAVE_UNISTD_H 1 [ 68s] #define HAVE_DLFCN_H 1 [ 68s] #define LT_OBJDIR ".libs/" [ 68s] [ 68s] configure: exit 1 [ 68s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 68s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 68s] make[1]: *** [override_dh_auto_configure] Error 255 [ 68s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 68s] debian/rules:45: recipe for target 'build' failed [ 68s] make: *** [build] Error 2 [ 68s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 68s] [ 68s] lamb71 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:37:15 UTC 2018. [ 68s] [ 68s] ### VM INTERACTION START ### [ 69s] Powering off. [ 69s] [ 61.777764] reboot: Power down [ 69s] ### VM INTERACTION END ### [ 69s] [ 69s] lamb71 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:37:16 UTC 2018. [ 69s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:08 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:08 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b14988f2d4c2_1a87aca68478347a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_16.04/i586 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 83s] #define HAVE_STRING_H 1 [ 83s] #define HAVE_MEMORY_H 1 [ 83s] #define HAVE_STRINGS_H 1 [ 83s] #define HAVE_INTTYPES_H 1 [ 83s] #define HAVE_STDINT_H 1 [ 83s] #define HAVE_UNISTD_H 1 [ 83s] #define HAVE_DLFCN_H 1 [ 83s] #define LT_OBJDIR ".libs/" [ 83s] #define STDC_HEADERS 1 [ 83s] #define HAVE_EXECINFO_H 1 [ 83s] #define HAVE_SYS_SELECT_H 1 [ 83s] #define HAVE_SYS_SOCKET_H 1 [ 83s] #define HAVE_SYSLOG_H 1 [ 83s] #define HAVE_CTYPE_H 1 [ 83s] [ 83s] configure: exit 1 [ 83s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 83s] debian/rules:13: recipe for target 'build' failed [ 83s] make: *** [build] Error 255 [ 83s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 83s] [ 83s] lamb15 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:37:35 UTC 2018. [ 83s] [ 83s] ### VM INTERACTION START ### [ 86s] [ 78.953910] reboot: Power down [ 86s] ### VM INTERACTION END ### [ 86s] [ 86s] lamb15 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:37:38 UTC 2018. [ 86s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:08 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:08 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b14988fc5fe8_1a87aca684783514@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_8.0/i586 Package network:osmocom:latest/osmo-hlr failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 42s] #define HAVE_SYS_TYPES_H 1 [ 42s] #define HAVE_SYS_STAT_H 1 [ 42s] #define HAVE_STDLIB_H 1 [ 42s] #define HAVE_STRING_H 1 [ 42s] #define HAVE_MEMORY_H 1 [ 42s] #define HAVE_STRINGS_H 1 [ 42s] #define HAVE_INTTYPES_H 1 [ 42s] #define HAVE_STDINT_H 1 [ 42s] #define HAVE_UNISTD_H 1 [ 42s] #define HAVE_DLFCN_H 1 [ 42s] #define LT_OBJDIR ".libs/" [ 42s] #define PACKAGE "osmo-hlr" [ 42s] #define VERSION "UNKNOWN" [ 42s] [ 42s] configure: exit 1 [ 42s] dh_auto_configure: ./configure --build=i586-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 42s] debian/rules:7: recipe for target 'build' failed [ 42s] make: *** [build] Error 255 [ 42s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 42s] [ 42s] build72 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:37:48 UTC 2018. [ 42s] [ 42s] ### VM INTERACTION START ### [ 43s] Powering off. [ 43s] [ 37.785734] reboot: Power down [ 43s] ### VM INTERACTION END ### [ 43s] [ 43s] build72 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:37:50 UTC 2018. [ 43s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:08 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:08 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b149891aaa62_1a87aca68478367c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/Debian_8.0/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 71s] #define VERSION "UNKNOWN" [ 71s] #define STDC_HEADERS 1 [ 71s] #define HAVE_SYS_TYPES_H 1 [ 71s] #define HAVE_SYS_STAT_H 1 [ 71s] #define HAVE_STDLIB_H 1 [ 71s] #define HAVE_STRING_H 1 [ 71s] #define HAVE_MEMORY_H 1 [ 71s] #define HAVE_STRINGS_H 1 [ 71s] #define HAVE_INTTYPES_H 1 [ 71s] #define HAVE_STDINT_H 1 [ 71s] #define HAVE_UNISTD_H 1 [ 71s] #define HAVE_DLFCN_H 1 [ 71s] #define LT_OBJDIR ".libs/" [ 71s] [ 71s] configure: exit 1 [ 71s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 71s] debian/rules:45: recipe for target 'build' failed [ 71s] make: *** [build] Error 255 [ 71s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 71s] [ 71s] lamb10 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:38:44 UTC 2018. [ 71s] [ 71s] ### VM INTERACTION START ### [ 72s] Powering off. [ 72s] [ 64.610921] reboot: Power down [ 72s] ### VM INTERACTION END ### [ 72s] [ 72s] lamb10 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:38:46 UTC 2018. [ 72s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:08 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:08 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b1498927674c_1a87aca68478389e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_16.10/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 71s] #define STDC_HEADERS 1 [ 71s] #define HAVE_SYS_TYPES_H 1 [ 71s] #define HAVE_SYS_STAT_H 1 [ 71s] #define HAVE_STDLIB_H 1 [ 71s] #define HAVE_STRING_H 1 [ 71s] #define HAVE_MEMORY_H 1 [ 71s] #define HAVE_STRINGS_H 1 [ 71s] #define HAVE_INTTYPES_H 1 [ 71s] #define HAVE_STDINT_H 1 [ 71s] #define HAVE_UNISTD_H 1 [ 71s] #define HAVE_DLFCN_H 1 [ 71s] #define LT_OBJDIR ".libs/" [ 71s] #define PACKAGE "osmo-hlr" [ 71s] #define VERSION "UNKNOWN" [ 71s] [ 71s] configure: exit 1 [ 71s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 71s] debian/rules:7: recipe for target 'build' failed [ 71s] make: *** [build] Error 2 [ 71s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 71s] [ 71s] lamb70 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:38:48 UTC 2018. [ 71s] [ 71s] ### VM INTERACTION START ### [ 74s] [ 65.410841] reboot: Power down [ 74s] ### VM INTERACTION END ### [ 74s] [ 74s] lamb70 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:38:52 UTC 2018. [ 74s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:08 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:08 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b149892df9a7_1a87aca6847839eb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_8.0/i586 Package network:osmocom:latest/osmo-msc failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 103s] #define HAVE_SYS_STAT_H 1 [ 103s] #define HAVE_STDLIB_H 1 [ 103s] #define HAVE_STRING_H 1 [ 103s] #define HAVE_MEMORY_H 1 [ 103s] #define HAVE_STRINGS_H 1 [ 103s] #define HAVE_INTTYPES_H 1 [ 103s] #define HAVE_STDINT_H 1 [ 103s] #define HAVE_UNISTD_H 1 [ 103s] #define HAVE_DLFCN_H 1 [ 103s] #define LT_OBJDIR ".libs/" [ 103s] [ 103s] configure: exit 1 [ 103s] dh_auto_configure: ./configure --build=i586-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 103s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 103s] make[1]: *** [override_dh_auto_configure] Error 255 [ 103s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 103s] debian/rules:45: recipe for target 'build' failed [ 103s] make: *** [build] Error 2 [ 103s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 103s] [ 103s] cloud112 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:38:56 UTC 2018. [ 103s] [ 103s] ### VM INTERACTION START ### [ 104s] Powering off. [ 104s] [ 86.921622] reboot: Power down [ 107s] ### VM INTERACTION END ### [ 107s] [ 107s] cloud112 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:39:00 UTC 2018. [ 107s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:08 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:08 +0000 Subject: Build failure of network:osmocom:latest/openbsc in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b149893deeb2_1a87aca68478407f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_8.0/x86_64 Package network:osmocom:latest/openbsc failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 76s] checking for LIBOSMOGB... yes [ 76s] checking for LIBOSMOABIS... no [ 76s] configure: error: Package requirements (libosmoabis >= 0.5.0) were not met: [ 76s] [ 76s] Requested 'libosmoabis >= 0.5.0' but version of A-bis Core Library is 0.3.1 [ 76s] [ 76s] Consider adjusting the PKG_CONFIG_PATH environment variable if you [ 76s] installed software in a non-standard prefix. [ 76s] [ 76s] Alternatively, you may set the environment variables LIBOSMOABIS_CFLAGS [ 76s] and LIBOSMOABIS_LIBS to avoid the need to call pkg-config. [ 76s] See the pkg-config man page for more details. [ 76s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-nat --enable-osmo-bsc --enable-smpp returned exit code 1 [ 76s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 76s] make[1]: *** [override_dh_auto_configure] Error 2 [ 76s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 76s] debian/rules:13: recipe for target 'build' failed [ 76s] make: *** [build] Error 2 [ 76s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 76s] [ 76s] lamb21 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:38:22 UTC 2018. [ 76s] [ 76s] ### VM INTERACTION START ### [ 77s] Powering off. [ 78s] [ 69.550080] reboot: Power down [ 78s] ### VM INTERACTION END ### [ 78s] [ 78s] lamb21 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:38:25 UTC 2018. [ 78s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:08 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:08 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b14989466e26_1a87aca6847841bf@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/Debian_9.0/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 70s] #define PACKAGE "osmo-sgsn" [ 70s] #define VERSION "UNKNOWN" [ 70s] #define STDC_HEADERS 1 [ 70s] #define HAVE_SYS_TYPES_H 1 [ 70s] #define HAVE_SYS_STAT_H 1 [ 70s] #define HAVE_STDLIB_H 1 [ 70s] #define HAVE_STRING_H 1 [ 70s] #define HAVE_MEMORY_H 1 [ 70s] #define HAVE_STRINGS_H 1 [ 70s] #define HAVE_INTTYPES_H 1 [ 70s] #define HAVE_STDINT_H 1 [ 70s] #define HAVE_UNISTD_H 1 [ 70s] #define HAVE_DLFCN_H 1 [ 70s] #define LT_OBJDIR ".libs/" [ 70s] [ 70s] configure: exit 1 [ 70s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 70s] debian/rules:45: recipe for target 'build' failed [ 70s] make: *** [build] Error 2 [ 70s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 70s] [ 70s] lamb27 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:37:26 UTC 2018. [ 70s] [ 70s] ### VM INTERACTION START ### [ 73s] [ 64.578694] reboot: Power down [ 73s] ### VM INTERACTION END ### [ 73s] [ 73s] lamb27 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:37:29 UTC 2018. [ 73s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:40:42 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:40:42 +0000 Subject: Build failure of network:osmocom:latest/openbsc in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b1498a872a32_1a87aca68478443f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/xUbuntu_16.10/i586 Package network:osmocom:latest/openbsc failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 79s] #define HAVE_SYS_TYPES_H 1 [ 79s] #define HAVE_SYS_STAT_H 1 [ 79s] #define HAVE_STDLIB_H 1 [ 79s] #define HAVE_STRING_H 1 [ 79s] #define HAVE_MEMORY_H 1 [ 79s] #define HAVE_STRINGS_H 1 [ 79s] #define HAVE_INTTYPES_H 1 [ 79s] #define HAVE_STDINT_H 1 [ 79s] #define HAVE_UNISTD_H 1 [ 79s] #define HAVE_DLFCN_H 1 [ 79s] #define LT_OBJDIR ".libs/" [ 79s] [ 79s] configure: exit 1 [ 79s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 81. [ 79s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 79s] make[1]: *** [override_dh_auto_configure] Error 2 [ 79s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 79s] debian/rules:13: recipe for target 'build' failed [ 79s] make: *** [build] Error 2 [ 79s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 79s] [ 79s] lamb61 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:40:24 UTC 2018. [ 79s] [ 79s] ### VM INTERACTION START ### [ 82s] [ 74.715223] reboot: Power down [ 82s] ### VM INTERACTION END ### [ 82s] [ 82s] lamb61 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:40:27 UTC 2018. [ 82s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:42:24 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:42:24 +0000 Subject: Build failure of network:osmocom:latest/openbsc in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b14992371633_1a87aca684784670@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/xUbuntu_16.10/x86_64 Package network:osmocom:latest/openbsc failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 80s] #define HAVE_SYS_TYPES_H 1 [ 80s] #define HAVE_SYS_STAT_H 1 [ 80s] #define HAVE_STDLIB_H 1 [ 80s] #define HAVE_STRING_H 1 [ 80s] #define HAVE_MEMORY_H 1 [ 80s] #define HAVE_STRINGS_H 1 [ 80s] #define HAVE_INTTYPES_H 1 [ 80s] #define HAVE_STDINT_H 1 [ 80s] #define HAVE_UNISTD_H 1 [ 80s] #define HAVE_DLFCN_H 1 [ 80s] #define LT_OBJDIR ".libs/" [ 80s] [ 80s] configure: exit 1 [ 80s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 81. [ 80s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 80s] make[1]: *** [override_dh_auto_configure] Error 2 [ 80s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 80s] debian/rules:13: recipe for target 'build' failed [ 80s] make: *** [build] Error 2 [ 80s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 80s] [ 80s] lamb60 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:42:18 UTC 2018. [ 80s] [ 80s] ### VM INTERACTION START ### [ 83s] [ 74.785757] reboot: Power down [ 83s] ### VM INTERACTION END ### [ 83s] [ 83s] lamb60 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 01:42:21 UTC 2018. [ 83s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:44:06 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:44:06 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b14997da3b7e_1a87aca6847848fa@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_16.10/i586 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 77s] #define HAVE_SYS_TYPES_H 1 [ 77s] #define HAVE_SYS_STAT_H 1 [ 77s] #define HAVE_STDLIB_H 1 [ 77s] #define HAVE_STRING_H 1 [ 77s] #define HAVE_MEMORY_H 1 [ 77s] #define HAVE_STRINGS_H 1 [ 77s] #define HAVE_INTTYPES_H 1 [ 77s] #define HAVE_STDINT_H 1 [ 77s] #define HAVE_UNISTD_H 1 [ 77s] #define HAVE_DLFCN_H 1 [ 77s] #define LT_OBJDIR ".libs/" [ 77s] [ 77s] configure: exit 1 [ 77s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 77s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 77s] make[1]: *** [override_dh_auto_configure] Error 2 [ 77s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 77s] debian/rules:45: recipe for target 'build' failed [ 77s] make: *** [build] Error 2 [ 77s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 77s] [ 77s] lamb21 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:43:56 UTC 2018. [ 77s] [ 77s] ### VM INTERACTION START ### [ 80s] [ 72.457043] reboot: Power down [ 80s] ### VM INTERACTION END ### [ 80s] [ 80s] lamb21 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:43:59 UTC 2018. [ 80s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:44:06 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:44:06 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b14997e131e5_1a87aca684784993@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_16.10/i586 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 77s] #define PACKAGE "osmo-sgsn" [ 77s] #define VERSION "UNKNOWN" [ 77s] #define STDC_HEADERS 1 [ 77s] #define HAVE_SYS_TYPES_H 1 [ 77s] #define HAVE_SYS_STAT_H 1 [ 77s] #define HAVE_STDLIB_H 1 [ 77s] #define HAVE_STRING_H 1 [ 77s] #define HAVE_MEMORY_H 1 [ 77s] #define HAVE_STRINGS_H 1 [ 77s] #define HAVE_INTTYPES_H 1 [ 77s] #define HAVE_STDINT_H 1 [ 77s] #define HAVE_UNISTD_H 1 [ 77s] #define HAVE_DLFCN_H 1 [ 77s] #define LT_OBJDIR ".libs/" [ 77s] [ 77s] configure: exit 1 [ 77s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 77s] debian/rules:45: recipe for target 'build' failed [ 77s] make: *** [build] Error 2 [ 77s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 77s] [ 77s] lamb27 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:43:56 UTC 2018. [ 77s] [ 77s] ### VM INTERACTION START ### [ 80s] [ 72.091534] reboot: Power down [ 80s] ### VM INTERACTION END ### [ 80s] [ 80s] lamb27 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 01:44:00 UTC 2018. [ 80s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:44:58 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:44:58 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b1499b665a79_1a87aca68478507e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_16.04/i586 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 79s] #define HAVE_SYS_STAT_H 1 [ 79s] #define HAVE_STDLIB_H 1 [ 79s] #define HAVE_STRING_H 1 [ 79s] #define HAVE_MEMORY_H 1 [ 79s] #define HAVE_STRINGS_H 1 [ 79s] #define HAVE_INTTYPES_H 1 [ 79s] #define HAVE_STDINT_H 1 [ 79s] #define HAVE_UNISTD_H 1 [ 79s] #define HAVE_DLFCN_H 1 [ 79s] #define LT_OBJDIR ".libs/" [ 79s] [ 79s] configure: exit 1 [ 79s] dh_a[ 70.992318] serial8250: too much work for irq4 [ 79s] uto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 79s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 79s] make[1]: *** [override_dh_auto_configure] Error 255 [ 79s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 79s] debian/rules:45: recipe for target 'build' failed [ 79s] make: *** [build] Error 2 [ 79s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 79s] [ 79s] lamb23 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:44:37 UTC 2018. [ 79s] [ 79s] ### VM INTERACTION START ### [ 82s] [ 74.175310] reboot: Power down [ 82s] ### VM INTERACTION END ### [ 82s] [ 82s] lamb23 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:44:41 UTC 2018. [ 82s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:51:50 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:51:50 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b149b40683d2_1a87aca68478555e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_16.04/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 78s] #define HAVE_SYS_TYPES_H 1 [ 78s] #define HAVE_SYS_STAT_H 1 [ 78s] #define HAVE_STDLIB_H 1 [ 78s] #define HAVE_STRING_H 1 [ 78s] #define HAVE_MEMORY_H 1 [ 78s] #define HAVE_STRINGS_H 1 [ 78s] #define HAVE_INTTYPES_H 1 [ 78s] #define HAVE_STDINT_H 1 [ 78s] #define HAVE_UNISTD_H 1 [ 78s] #define HAVE_DLF[ 70.300175] serial8250: too much work for irq4 [ 78s] CN_H 1 [ 78s] #define LT_OBJDIR ".libs/" [ 78s] #define PACKAGE "osmo-hlr" [ 78s] #define VERSION "UNKNOWN" [ 78s] [ 78s] configure: exit 1 [ 78s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 78s] debian/rules:7: recipe for target 'build' failed [ 78s] make: *** [build] Error 255 [ 78s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 78s] [ 78s] lamb03 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:51:34 UTC 2018. [ 78s] [ 78s] ### VM INTERACTION START ### [ 81s] [ 73.478791] reboot: Power down [ 81s] ### VM INTERACTION END ### [ 81s] [ 81s] lamb03 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 01:51:37 UTC 2018. [ 81s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:53:32 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:53:32 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b149bb788ba8_1a87aca6847857c2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_16.04/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 79s] #define HAVE_SYS_STAT_H 1 [ 79s] #define HAVE_[ 71.204301] serial8250: too much work for irq4 [ 79s] STDLIB_H 1 [ 79s] #define HAVE_STRING_H 1 [ 79s] #define HAVE_MEMORY_H 1 [ 79s] #define HAVE_STRINGS_H 1 [ 79s] #define HAVE_INTTYPES_H 1 [ 79s] #define HAVE_STDINT_H 1 [ 79s] #define HAVE_UNISTD_H 1 [ 79s] #define HAVE_DLFCN_H 1 [ 79s] #define LT_OBJDIR ".libs/" [ 79s] [ 79s] configure: exit 1 [ 79s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 79s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 79s] make[1]: *** [override_dh_auto_configure] Error 255 [ 79s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 79s] debian/rules:45: recipe for target 'build' failed [ 79s] make: *** [build] Error 2 [ 79s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 79s] [ 79s] lamb12 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:53:12 UTC 2018. [ 79s] [ 79s] ### VM INTERACTION START ### [ 82s] [ 74.380562] reboot: Power down [ 82s] ### VM INTERACTION END ### [ 82s] [ 82s] lamb12 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 01:53:15 UTC 2018. [ 82s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:54:40 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:54:40 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_17.04/i586 In-Reply-To: References: Message-ID: <5b149bf0ce35a_1a87aca68478599a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_17.04/i586 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 50s] #define HAVE_STRING_H 1 [ 50s] #define HAVE_MEMORY_H 1 [ 50s] #define HAVE_STRINGS_H 1 [ 50s] #define HAVE_INTTYPES_H 1 [ 50s] #define HAVE_STDINT_H 1 [ 50s] #define HAVE_UNISTD_H 1 [ 50s] #define HAVE_DLFCN_H 1 [ 50s] #define LT_OBJDIR ".libs/" [ 50s] #define STDC_HEADERS 1 [ 50s] #define HAVE_EXECINFO_H 1 [ 50s] #define HAVE_SYS_SELECT_H 1 [ 50s] #define HAVE_SYS_SOCKET_H 1 [ 50s] #define HAVE_SYSLOG_H 1 [ 50s] #define HAVE_CTYPE_H 1 [ 50s] [ 50s] configure: exit 1 [ 50s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 50s] debian/rules:13: recipe for target 'build' failed [ 50s] make: *** [build] Error 2 [ 50s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 50s] [ 50s] build78 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:54:34 UTC 2018. [ 50s] [ 50s] ### VM INTERACTION START ### [ 53s] [ 47.768735] reboot: Power down [ 53s] ### VM INTERACTION END ### [ 53s] [ 53s] build78 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:54:37 UTC 2018. [ 53s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:56:24 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:56:24 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b149c6f2dfb4_1a87aca6847860c2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_8.0/i586 Package network:osmocom:latest/osmo-bts failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 71s] #define HAVE_STDLIB_H 1 [ 71s] #define HAVE_STRING_H 1 [ 71s] #define HAVE_MEMORY_H 1 [ 71s] #define HAVE_STRINGS_H 1 [ 71s] #define HAVE_INTTYPES_H 1 [ 71s] #define HAVE_STDINT_H 1 [ 71s] #define HAVE_UNISTD_H 1 [ 71s] #define HAVE_DLFCN_H 1 [ 71s] #define LT_OBJDIR ".libs/" [ 71s] #define STDC_HEADERS 1 [ 71s] [ 71s] configure: exit 1 [ 71s] dh_auto_configure: ./configure --build=i586-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 71s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 71s] make[1]: *** [override_dh_auto_configure] Error 255 [ 71s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 71s] debian/rules:12: recipe for target 'build' failed [ 71s] make: *** [build] Error 2 [ 71s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 71s] [ 71s] lamb12 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:56:03 UTC 2018. [ 71s] [ 71s] ### VM INTERACTION START ### [ 72s] Powering off. [ 72s] [ 64.705914] reboot: Power down [ 72s] ### VM INTERACTION END ### [ 72s] [ 72s] lamb12 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:56:05 UTC 2018. [ 72s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:56:58 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:56:58 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b149c87a97d0_1a87aca6847861b0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/Debian_9.0/i586 Package network:osmocom:latest/libosmo-netif failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 78s] #define HAVE_STDINT_H 1 [ 78s] #define HAVE_UNISTD_H 1 [ 78s] #define HAVE_DLFCN_H 1 [ 78s] #define LT_OBJDIR ".libs/" [ 78s] #define STDC_HEADERS 1 [ 78s] #define HAVE_EXECINFO_H 1 [ 78s] #define HAVE_SYS_SELECT_H 1 [ 78s] #define HAVE_SYS_SOCKET_H 1 [ 78s] #define HAVE_SYSLOG_H 1 [ 78s] #define HAVE_CTYPE_H 1 [ 78s] [ 78s] configure: exit 1 [ 78s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 78s] debian/rules:13: recipe for target 'build' failed [ 78s] make: *** [build] Error 2 [ 78s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 78s] [ 78s] lamb69 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:56:40 UTC 2018. [ 78s] [ 78s] ### VM INTERACTION START ### [ 78s] [ 68.462580] serial8250: too much work for irq4 [ 78s] [ 68.604283] serial8250: too much work for irq4 [ 78s] [ 68.700319] serial8250: too much work for irq4 [ 78s] [ 68.800311] serial8250: too much work for irq4 [ 81s] [ 71.928453] reboot: Power down [ 81s] ### VM INTERACTION END ### [ 81s] [ 81s] lamb69 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 01:56:43 UTC 2018. [ 81s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:57:49 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:57:49 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b149ca654513_1a87aca684786299@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/Debian_8.0/x86_64 Package network:osmocom:latest/osmo-bts failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 69s] #define HAVE_STDLIB_H 1 [ 69s] #define HAVE_STRING_H 1 [ 69s] #define HAVE_MEMORY_H 1 [ 69s] #define HAVE_STRINGS_H 1 [ 69s] #define HAVE_INTTYPES_H 1 [ 69s] #define HAVE_STDINT_H 1 [ 69s] #define HAVE_UNISTD_H 1 [ 69s] #define HAVE_DLFCN_H 1 [ 69s] #define LT_OBJDIR ".libs/" [ 69s] #define STDC_HEADERS 1 [ 69s] [ 69s] configure: exit 1 [ 69s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 69s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 69s] make[1]: *** [override_dh_auto_configure] Error 255 [ 69s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 69s] debian/rules:12: recipe for target 'build' failed [ 69s] make: *** [build] Error 2 [ 69s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 69s] [ 69s] lamb73 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:57:33 UTC 2018. [ 69s] [ 69s] ### VM INTERACTION START ### [ 70s] Powering off. [ 70s] [ 62.516314] reboot: Power down [ 70s] ### VM INTERACTION END ### [ 70s] [ 70s] lamb73 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:57:35 UTC 2018. [ 70s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 01:58:58 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 01:58:58 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_17.04/i586 In-Reply-To: References: Message-ID: <5b149d0154901_1a87aca684786430@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_17.04/i586 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 75s] #define HAVE_SYS_STAT_H 1 [ 75s] #define HAVE_STDLIB_H 1 [ 75s] #define HAVE_STRING_H 1 [ 75s] #define HAVE_MEMORY_H 1 [ 75s] #define HAVE_STRINGS_H 1 [ 75s] #define HAVE_INTTYPES_H 1 [ 75s] #define HAVE_STDINT_H 1 [ 75s] #define HAVE_UNISTD_H 1 [ 75s] #define HAVE_DLFCN_H 1 [ 75s] #define LT_OBJDIR ".libs/" [ 75s] #define STDC_HEADERS 1 [ 75s] [ 75s] configure: exit 1 [ 75s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 75s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 75s] make[1]: *** [override_dh_auto_configure] Error 2 [ 75s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 75s] debian/rules:12: recipe for target 'build' failed [ 75s] make: *** [build] Error 2 [ 75s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 75s] [ 75s] lamb26 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:58:48 UTC 2018. [ 75s] [ 75s] ### VM INTERACTION START ### [ 78s] [ 69.976646] reboot: Power down [ 78s] ### VM INTERACTION END ### [ 78s] [ 78s] lamb26 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 01:58:52 UTC 2018. [ 78s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:02:38 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:02:38 +0000 Subject: Build failure of network:osmocom:latest/openbsc in xUbuntu_17.04/i586 In-Reply-To: References: Message-ID: <5b149dc4c8d4f_1a87aca684786740@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/xUbuntu_17.04/i586 Package network:osmocom:latest/openbsc failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 71s] #define HAVE_SYS_TYPES_H 1 [ 71s] #define HAVE_SYS_STAT_H 1 [ 71s] #define HAVE_STDLIB_H 1 [ 71s] #define HAVE_STRING_H 1 [ 71s] #define HAVE_MEMORY_H 1 [ 71s] #define HAVE_STRINGS_H 1 [ 71s] #define HAVE_INTTYPES_H 1 [ 71s] #define HAVE_STDINT_H 1 [ 71s] #define HAVE_UNISTD_H 1 [ 71s] #define HAVE_DLFCN_H 1 [ 71s] #define LT_OBJDIR ".libs/" [ 71s] [ 71s] configure: exit 1 [ 71s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 77. [ 71s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 71s] make[1]: *** [override_dh_auto_configure] Error 2 [ 71s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 71s] debian/rules:13: recipe for target 'build' failed [ 71s] make: *** [build] Error 2 [ 71s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 71s] [ 71s] wildcard3 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 02:01:15 UTC 2018. [ 71s] [ 71s] ### VM INTERACTION START ### [ 74s] [ 62.571489] reboot: Power down [ 80s] ### VM INTERACTION END ### [ 80s] [ 80s] wildcard3 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 02:01:25 UTC 2018. [ 80s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:02:38 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:02:38 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_17.04/i586 In-Reply-To: References: Message-ID: <5b149dc546718_1a87aca684786885@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_17.04/i586 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 75s] #define STDC_HEADERS 1 [ 75s] #define HAVE_SYS_TYPES_H 1 [ 75s] #define HAVE_SYS_STAT_H 1 [ 75s] #define HAVE_STDLIB_H 1 [ 75s] #define HAVE_STRING_H 1 [ 75s] #define HAVE_MEMORY_H 1 [ 75s] #define HAVE_STRINGS_H 1 [ 75s] #define HAVE_INTTYPES_H 1 [ 75s] #define HAVE_STDINT_H 1 [ 75s] #define HAVE_UNISTD_H 1 [ 75s] #define HAVE_DLFCN_H 1 [ 75s] #define LT_OBJDIR ".libs/" [ 75s] #define PACKAGE "osmo-hlr" [ 75s] #define VERSION "UNKNOWN" [ 75s] [ 75s] configure: exit 1 [ 75s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 75s] debian/rules:7: recipe for target 'build' failed [ 75s] make: *** [build] Error 2 [ 75s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 75s] [ 75s] lamb11 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:01:26 UTC 2018. [ 75s] [ 75s] ### VM INTERACTION START ### [ 78s] [ 70.009450] reboot: Power down [ 78s] ### VM INTERACTION END ### [ 78s] [ 78s] lamb11 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:01:30 UTC 2018. [ 78s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:02:38 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:02:38 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_17.04/i586 In-Reply-To: References: Message-ID: <5b149dc5c6b7f_1a87aca684786974@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_17.04/i586 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 77s] #define PACKAGE "osmo-sgsn" [ 77s] #define VERSION "UNKNOWN" [ 77s] #define STDC_HEADERS 1 [ 77s] #define HAVE_SYS_TYPES_H 1 [ 77s] #define HAVE_SYS_STAT_H 1 [ 77s] #define HAVE_STDLIB_H 1 [ 77s] #define HAVE_STRING_H 1 [ 77s] #define HAVE_MEMORY_H 1 [ 77s] #define HAVE_STRINGS_H 1 [ 77s] #define HAVE_INTTYPES_H 1 [ 77s] #define HAVE_STDINT_H 1 [ 77s] #define HAVE_UNISTD_H 1 [ 77s] #define HAVE_DLFCN_H 1 [ 77s] #define LT_OBJDIR ".libs/" [ 77s] [ 77s] configure: exit 1 [ 77s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 77s] debian/rules:45: recipe for target 'build' failed [ 77s] make: *** [build] Error 2 [ 77s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 77s] [ 77s] lamb52 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:01:33 UTC 2018. [ 77s] [ 77s] ### VM INTERACTION START ### [ 79s] [ 71.154454] reboot: Power down [ 79s] ### VM INTERACTION END ### [ 79s] [ 79s] lamb52 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:01:36 UTC 2018. [ 79s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:02:38 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:02:38 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b149dc67ccac_1a87aca684787025@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_16.04/i586 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 87s] #define HAVE_SYS_STAT_H 1 [ 87s] #define HAVE_STDLIB_H 1 [ 87s] #define HAVE_STRING_H 1 [ 87s] #define HAVE_MEMORY_H 1 [ 87s] #define HAVE_STRINGS_H 1 [ 87s] #define HAVE_INTTYPES_H 1 [ 87s] #define HAVE_STDINT_H 1 [ 87s] #define HAVE_UNISTD_H 1 [ 87s] #define HAVE_DLFCN_H 1 [ 87s] #define LT_OBJDIR ".libs/" [ 87s] #define STDC_HEADERS 1 [ 87s] [ 87s] configure: exit 1 [ 87s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 87s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 87s] make[1]: *** [override_dh_auto_configure] Error 255 [ 87s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 87s] debian/rules:12: recipe for target 'build' failed [ 87s] make: *** [build] Error 2 [ 87s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 87s] [ 87s] lamb64 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 02:00:57 UTC 2018. [ 87s] [ 87s] ### VM INTERACTION START ### [ 90s] [ 83.568809] reboot: Power down [ 90s] ### VM INTERACTION END ### [ 90s] [ 90s] lamb64 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 02:01:00 UTC 2018. [ 90s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:02:38 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:02:38 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b149dc6c6c6a_1a87aca68478711d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_9.0/i586 Package network:osmocom:latest/osmo-msc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 70s] #define HAVE_SYS_TYPES_H 1 [ 70s] #define HAVE_SYS_STAT_H 1 [ 70s] #define HAVE_STDLIB_H 1 [ 70s] #define HAVE_STRING_H 1 [ 70s] #define HAVE_MEMORY_H 1 [ 70s] #define HAVE_STRINGS_H 1 [ 70s] #define HAVE_INTTYPES_H 1 [ 70s] #define HAVE_STDINT_H 1 [ 70s] #define HAVE_UNISTD_H 1 [ 70s] #define HAVE_DLFCN_H 1 [ 70s] #define LT_OBJDIR ".libs/" [ 70s] [ 70s] configure: exit 1 [ 70s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 70s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 70s] make[1]: *** [override_dh_auto_configure] Error 2 [ 70s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 70s] debian/rules:45: recipe for target 'build' failed [ 70s] make: *** [build] Error 2 [ 70s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 70s] [ 70s] lamb69 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:01:43 UTC 2018. [ 70s] [ 70s] ### VM INTERACTION START ### [ 73s] [ 64.708883] reboot: Power down [ 73s] ### VM INTERACTION END ### [ 73s] [ 73s] lamb69 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:01:47 UTC 2018. [ 73s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:02:39 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:02:39 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b149dc822fe5_1a87aca68478736c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/Debian_8.0/i586 Package network:osmocom:latest/osmo-sgsn failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 70s] #define VERSION "UNKNOWN" [ 70s] #define STDC_HEADERS 1 [ 70s] #define HAVE_SYS_TYPES_H 1 [ 70s] #define HAVE_SYS_STAT_H 1 [ 70s] #define HAVE_STDLIB_H 1 [ 70s] #define HAVE_STRING_H 1 [ 70s] #define HAVE_MEMORY_H 1 [ 70s] #define HAVE_STRINGS_H 1 [ 70s] #define HAVE_INTTYPES_H 1 [ 70s] #define HAVE_STDINT_H 1 [ 70s] #define HAVE_UNISTD_H 1 [ 70s] #define HAVE_DLFCN_H 1 [ 70s] #define LT_OBJDIR ".libs/" [ 70s] [ 70s] configure: exit 1 [ 70s] dh_auto_configure: ./configure --build=i586-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 70s] debian/rules:45: recipe for target 'build' failed [ 70s] make: *** [build] Error 255 [ 70s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 70s] [ 70s] lamb17 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:02:29 UTC 2018. [ 70s] [ 70s] ### VM INTERACTION START ### [ 71s] Powering off. [ 71s] [ 63.667200] reboot: Power down [ 71s] ### VM INTERACTION END ### [ 71s] [ 71s] lamb17 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:02:31 UTC 2018. [ 71s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:02:39 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:02:39 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b149dc85cce8_1a87aca6847874b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_9.0/i586 Package network:osmocom:latest/osmo-hlr failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 111s] #define STDC_HEADERS 1 [ 111s] #define HAVE_SYS_TYPES_H 1 [ 111s] #define HAVE_SYS_STAT_H 1 [ 111s] #define HAVE_STDLIB_H 1 [ 111s] #define HAVE_STRING_H 1 [ 111s] #define HAVE_MEMORY_H 1 [ 111s] #define HAVE_STRINGS_H 1 [ 111s] #define HAVE_INTTYPES_H 1 [ 111s] #define HAVE_STDINT_H 1 [ 111s] #define HAVE_UNISTD_H 1 [ 111s] #define HAVE_DLFCN_H 1 [ 111s] #define LT_OBJDIR ".libs/" [ 111s] #define PACKAGE "osmo-hlr" [ 111s] #define VERSION "UNKNOWN" [ 111s] [ 111s] configure: exit 1 [ 111s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 111s] debian/rules:7: recipe for target 'build' failed [ 111s] make: *** [build] Error 2 [ 111s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 111s] [ 111s] cloud106 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:02:27 UTC 2018. [ 111s] [ 111s] ### VM INTERACTION START ### [ 114s] [ 87.951650] reboot: Power down [ 114s] ### VM INTERACTION END ### [ 114s] [ 114s] cloud106 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:02:32 UTC 2018. [ 114s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:03:12 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:03:12 +0000 Subject: Build failure of network:osmocom:latest/openbsc in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b149de5a390a_1a87aca6847876aa@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/i586 Package network:osmocom:latest/openbsc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 139s] #define HAVE_SYS_TYPES_H 1 [ 139s] #define HAVE_SYS_STAT_H 1 [ 139s] #define HAVE_STDLIB_H 1 [ 139s] #define HAVE_STRING_H 1 [ 139s] #define HAVE_MEMORY_H 1 [ 139s] #define HAVE_STRINGS_H 1 [ 139s] #define HAVE_INTTYPES_H 1 [ 139s] #define HAVE_STDINT_H 1 [ 139s] #define HAVE_UNISTD_H 1 [ 139s] #define HAVE_DLFCN_H 1 [ 139s] #define LT_OBJDIR ".libs/" [ 139s] [ 139s] configure: exit 1 [ 139s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 77. [ 139s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 139s] make[1]: *** [override_dh_auto_configure] Error 2 [ 139s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 139s] debian/rules:13: recipe for target 'build' failed [ 139s] make: *** [build] Error 2 [ 139s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 139s] [ 139s] cloud116 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 02:02:58 UTC 2018. [ 139s] [ 139s] ### VM INTERACTION START ### [ 142s] [ 124.773403] reboot: Power down [ 144s] ### VM INTERACTION END ### [ 144s] [ 144s] cloud116 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 02:03:03 UTC 2018. [ 144s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:03:12 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:03:12 +0000 Subject: Build failure of network:osmocom:latest/openbsc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b149de6656b5_1a87aca684787718@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/x86_64 Package network:osmocom:latest/openbsc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 74s] #define HAVE_SYS_TYPES_H 1 [ 74s] #define HAVE_SYS_STAT_H 1 [ 74s] #define HAVE_STDLIB_H 1 [ 74s] #define HAVE_STRING_H 1 [ 74s] #define HAVE_MEMORY_H 1 [ 74s] #define HAVE_STRINGS_H 1 [ 74s] #define HAVE_INTTYPES_H 1 [ 74s] #define HAVE_STDINT_H 1 [ 74s] #define HAVE_UNISTD_H 1 [ 74s] #define HAVE_DLFCN_H 1 [ 74s] #define LT_OBJDIR ".libs/" [ 74s] [ 74s] configure: exit 1 [ 74s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 77. [ 74s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 74s] make[1]: *** [override_dh_auto_configure] Error 2 [ 74s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 74s] debian/rules:13: recipe for target 'build' failed [ 74s] make: *** [build] Error 2 [ 74s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 74s] [ 74s] lamb57 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 02:03:01 UTC 2018. [ 74s] [ 74s] ### VM INTERACTION START ### [ 77s] [ 68.630657] reboot: Power down [ 77s] ### VM INTERACTION END ### [ 77s] [ 77s] lamb57 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 02:03:04 UTC 2018. [ 77s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:04:20 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:04:20 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b149e3f67fec_1a87aca68478781@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_9.0/x86_64 Package network:osmocom:latest/osmo-msc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 68s] #define HAVE_SYS_TYPES_H 1 [ 68s] #define HAVE_SYS_STAT_H 1 [ 68s] #define HAVE_STDLIB_H 1 [ 68s] #define HAVE_STRING_H 1 [ 68s] #define HAVE_MEMORY_H 1 [ 68s] #define HAVE_STRINGS_H 1 [ 68s] #define HAVE_INTTYPES_H 1 [ 68s] #define HAVE_STDINT_H 1 [ 68s] #define HAVE_UNISTD_H 1 [ 68s] #define HAVE_DLFCN_H 1 [ 68s] #define LT_OBJDIR ".libs/" [ 68s] [ 68s] configure: exit 1 [ 68s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 68s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 68s] make[1]: *** [override_dh_auto_configure] Error 2 [ 68s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 68s] debian/rules:45: recipe for target 'build' failed [ 68s] make: *** [build] Error 2 [ 68s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 68s] [ 68s] lamb68 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:04:02 UTC 2018. [ 68s] [ 68s] ### VM INTERACTION START ### [ 71s] [ 63.843063] reboot: Power down [ 71s] ### VM INTERACTION END ### [ 71s] [ 71s] lamb68 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:04:05 UTC 2018. [ 71s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:04:37 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:04:37 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b149e3fcb617_1a87aca6847879d6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_18.04/x86_64 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 110s] #define HAVE_STRING_H 1 [ 110s] #define HAVE_MEMORY_H 1 [ 110s] #define HAVE_STRINGS_H 1 [ 110s] #define HAVE_INTTYPES_H 1 [ 110s] #define HAVE_STDINT_H 1 [ 110s] #define HAVE_UNISTD_H 1 [ 110s] #define HAVE_DLFCN_H 1 [ 110s] #define LT_OBJDIR ".libs/" [ 110s] #define STDC_HEADERS 1 [ 110s] #define HAVE_EXECINFO_H 1 [ 110s] #define HAVE_SYS_SELECT_H 1 [ 110s] #define HAVE_SYS_SOCKET_H 1 [ 110s] #define HAVE_SYSLOG_H 1 [ 110s] #define HAVE_CTYPE_H 1 [ 110s] [ 110s] configure: exit 1 [ 110s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 110s] debian/rules:13: recipe for target 'build' failed [ 110s] make: *** [build] Error 2 [ 110s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 110s] [ 110s] lamb78 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 02:04:17 UTC 2018. [ 110s] [ 110s] ### VM INTERACTION START ### [ 113s] [ 103.635424] reboot: Power down [ 113s] ### VM INTERACTION END ### [ 113s] [ 113s] lamb78 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 02:04:22 UTC 2018. [ 113s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:09:27 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:09:27 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b149f69654f0_1a87aca684788240@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_16.10/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 72s] #define PACKAGE "osmo-sgsn" [ 72s] #define VERSION "UNKNOWN" [ 72s] #define STDC_HEADERS 1 [ 72s] #define HAVE_SYS_TYPES_H 1 [ 72s] #define HAVE_SYS_STAT_H 1 [ 72s] #define HAVE_STDLIB_H 1 [ 72s] #define HAVE_STRING_H 1 [ 72s] #define HAVE_MEMORY_H 1 [ 72s] #define HAVE_STRINGS_H 1 [ 72s] #define HAVE_INTTYPES_H 1 [ 72s] #define HAVE_STDINT_H 1 [ 72s] #define HAVE_UNISTD_H 1 [ 72s] #define HAVE_DLFCN_H 1 [ 72s] #define LT_OBJDIR ".libs/" [ 72s] [ 72s] configure: exit 1 [ 72s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 72s] debian/rules:45: recipe for target 'build' failed [ 72s] make: *** [build] Error 2 [ 72s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 72s] [ 72s] lamb62 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:09:17 UTC 2018. [ 72s] [ 72s] ### VM INTERACTION START ### [ 75s] [ 67.470984] reboot: Power down [ 75s] ### VM INTERACTION END ### [ 75s] [ 75s] lamb62 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:09:20 UTC 2018. [ 75s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:10:01 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:10:01 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b149f8593cd4_1a87aca6847883c5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_16.10/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 73s] #define HAVE_SYS_TYPES_H 1 [ 73s] #define HAVE_SYS_STAT_H 1 [ 73s] #define HAVE_STDLIB_H 1 [ 73s] #define HAVE_STRING_H 1 [ 73s] #define HAVE_MEMORY_H 1 [ 73s] #define HAVE_STRINGS_H 1 [ 73s] #define HAVE_INTTYPES_H 1 [ 73s] #define HAVE_STDINT_H 1 [ 73s] #define HAVE_UNISTD_H 1 [ 73s] #define HAVE_DLFCN_H 1 [ 73s] #define LT_OBJDIR ".libs/" [ 73s] [ 73s] configure: exit 1 [ 73s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 73s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 73s] make[1]: *** [override_dh_auto_configure] Error 2 [ 73s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 73s] debian/rules:45: recipe for target 'build' failed [ 73s] make: *** [build] Error 2 [ 73s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 73s] [ 73s] lamb04 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:09:45 UTC 2018. [ 73s] [ 73s] ### VM INTERACTION START ### [ 76s] [ 68.938980] reboot: Power down [ 76s] ### VM INTERACTION END ### [ 76s] [ 76s] lamb04 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:09:49 UTC 2018. [ 76s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:12:01 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:12:01 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b14a000b572a_1a87aca6847885c4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_18.04/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 99s] #define STDC_HEADERS 1 [ 99s] #define HAVE_SYS_TYPES_H 1 [ 99s] #define HAVE_SYS_STAT_H 1 [ 99s] #define HAVE_STDLIB_H 1 [ 99s] #define HAVE_STRING_H 1 [ 99s] #define HAVE_MEMORY_H 1 [ 99s] #define HAVE_STRINGS_H 1 [ 99s] #define HAVE_INTTYPES_H 1 [ 99s] #define HAVE_STDINT_H 1 [ 99s] #define HAVE_UNISTD_H 1 [ 99s] #define HAVE_DLFCN_H 1 [ 99s] #define LT_OBJDIR ".libs/" [ 99s] #define PACKAGE "osmo-hlr" [ 99s] #define VERSION "UNKNOWN" [ 99s] [ 99s] configure: exit 1 [ 99s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 99s] debian/rules:7: recipe for target 'build' failed [ 99s] make: *** [build] Error 2 [ 99s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 100s] [ 100s] lamb03 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:11:44 UTC 2018. [ 100s] [ 100s] ### VM INTERACTION START ### [ 103s] [ 93.422652] reboot: Power down [ 103s] ### VM INTERACTION END ### [ 103s] [ 103s] lamb03 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:11:47 UTC 2018. [ 103s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:12:18 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:12:18 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b14a02024625_1a87aca6847886b9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_18.04/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 92s] #define PACKAGE "osmo-sgsn" [ 92s] #define VERSION "UNKNOWN" [ 92s] #define STDC_HEADERS 1 [ 92s] #define HAVE_SYS_TYPES_H 1 [ 92s] #define HAVE_SYS_STAT_H 1 [ 92s] #define HAVE_STDLIB_H 1 [ 92s] #define HAVE_STRING_H 1 [ 92s] #define HAVE_MEMORY_H 1 [ 92s] #define HAVE_STRINGS_H 1 [ 92s] #define HAVE_INTTYPES_H 1 [ 92s] #define HAVE_STDINT_H 1 [ 92s] #define HAVE_UNISTD_H 1 [ 92s] #define HAVE_DLFCN_H 1 [ 92s] #define LT_OBJDIR ".libs/" [ 92s] [ 92s] configure: exit 1 [ 92s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 92s] debian/rules:45: recipe for target 'build' failed [ 92s] make: *** [build] Error 2 [ 92s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 92s] [ 92s] lamb67 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:12:09 UTC 2018. [ 92s] [ 92s] ### VM INTERACTION START ### [ 95s] [ 87.277979] reboot: Power down [ 95s] ### VM INTERACTION END ### [ 95s] [ 95s] lamb67 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:12:11 UTC 2018. [ 95s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:13:44 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:13:44 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b14a07620648_1a87aca68478887@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_16.04/i586 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 100s] #define PACKAGE "osmo-sgsn" [ 100s] #define VERSION "UNKNOWN" [ 100s] #define STDC_HEADERS 1 [ 100s] #define HAVE_SYS_TYPES_H 1 [ 100s] #define HAVE_SYS_STAT_H 1 [ 100s] #define HAVE_STDLIB_H 1 [ 100s] #define HAVE_STRING_H 1 [ 100s] #define HAVE_MEMORY_H 1 [ 100s] #define HAVE_STRINGS_H 1 [ 100s] #define HAVE_INTTYPES_H 1 [ 100s] #define HAVE_STDINT_H 1 [ 100s] #define HAVE_UNISTD_H 1 [ 100s] #define HAVE_DLFCN_H 1 [ 100s] #define LT_OBJDIR ".libs/" [ 100s] [ 100s] configure: exit 1 [ 100s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 100s] debian/rules:45: recipe for target 'build' failed [ 100s] make: *** [build] Error 255 [ 100s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 100s] [ 100s] cloud129 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:13:29 UTC 2018. [ 100s] [ 100s] ### VM INTERACTION START ### [ 103s] [ 89.157215] reboot: Power down [ 107s] ### VM INTERACTION END ### [ 107s] [ 107s] cloud129 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:13:36 UTC 2018. [ 107s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:14:01 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:14:01 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b14a077406ee_1a87aca68478898c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_16.04/i586 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 44s] #define STDC_HEADERS 1 [ 44s] #define HAVE_SYS_TYPES_H 1 [ 44s] #define HAVE_SYS_STAT_H 1 [ 44s] #define HAVE_STDLIB_H 1 [ 44s] #define HAVE_STRING_H 1 [ 44s] #define HAVE_MEMORY_H 1 [ 44s] #define HAVE_STRINGS_H 1 [ 44s] #define HAVE_INTTYPES_H 1 [ 44s] #define HAVE_STDINT_H 1 [ 44s] #define HAVE_UNISTD_H 1 [ 44s] #define HAVE_DLFCN_H 1 [ 44s] #define LT_OBJDIR ".libs/" [ 44s] #define PACKAGE "osmo-hlr" [ 44s] #define VERSION "UNKNOWN" [ 44s] [ 44s] configure: exit 1 [ 44s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 44s] debian/rules:7: recipe for target 'build' failed [ 44s] make: *** [build] Error 255 [ 44s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 44s] [ 44s] build72 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:13:54 UTC 2018. [ 44s] [ 44s] ### VM INTERACTION START ### [ 47s] [ 42.066704] reboot: Power down [ 47s] ### VM INTERACTION END ### [ 47s] [ 47s] build72 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:13:57 UTC 2018. [ 47s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:16:03 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:16:03 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b14a0ee9805_1a87aca68478914e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_9.0/armv7l Package network:osmocom:latest/osmo-msc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 161s] #define HAVE_SYS_STAT_H 1 [ 161s] #define HAVE_STDLIB_H 1 [ 161s] #define HAVE_STRING_H 1 [ 161s] #define HAVE_MEMORY_H 1 [ 161s] #define HAVE_STRINGS_H 1 [ 161s] #define HAVE_INTTYPES_H 1 [ 161s] #define HAVE_STDINT_H 1 [ 161s] #define HAVE_UNISTD_H 1 [ 161s] #define HAVE_DLFCN_H 1 [ 161s] #define LT_OBJDIR ".libs/" [ 161s] [ 161s] configure: exit 1 [ 161s] dh_auto_configure: ./configure --build=arm-linux-gnueabihf --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/arm-linux-gnueabihf --libexecdir=${prefix}/lib/arm-linux-gnueabihf --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 161s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 161s] make[1]: *** [override_dh_auto_configure] Error 2 [ 161s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 161s] debian/rules:45: recipe for target 'build' failed [ 161s] make: *** [build] Error 2 [ 161s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 161s] [ 161s] armbuild03 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:15:45 UTC 2018. [ 161s] [ 161s] ### VM INTERACTION START ### [ 164s] [ 134.676657] SysRq : Power Off [ 164s] [ 134.688583] reboot: Power down [ 164s] ### VM INTERACTION END ### [ 164s] [ 164s] armbuild03 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:15:49 UTC 2018. [ 164s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:25:44 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:25:44 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_17.04/x86_64 In-Reply-To: References: Message-ID: <5b14a34557cf1_1a87aca68478971@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_17.04/x86_64 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_17.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 74s] #define HAVE_SYS_STAT_H 1 [ 74s] #define HAVE_STDLIB_H 1 [ 74s] #define HAVE_STRING_H 1 [ 74s] #define HAVE_MEMORY_H 1 [ 74s] #define HAVE_STRINGS_H 1 [ 74s] #define HAVE_INTTYPES_H 1 [ 74s] #define HAVE_STDINT_H 1 [ 74s] #define HAVE_UNISTD_H 1 [ 74s] #define HAVE_DLFCN_H 1 [ 74s] #define LT_OBJDIR ".libs/" [ 74s] #define STDC_HEADERS 1 [ 74s] [ 74s] configure: exit 1 [ 74s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 74s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 74s] make[1]: *** [override_dh_auto_configure] Error 2 [ 74s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 74s] debian/rules:12: recipe for target 'build' failed [ 74s] make: *** [build] Error 2 [ 74s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 74s] [ 74s] lamb56 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 02:25:32 UTC 2018. [ 74s] [ 74s] ### VM INTERACTION START ### [ 77s] [ 69.041256] reboot: Power down [ 77s] ### VM INTERACTION END ### [ 77s] [ 77s] lamb56 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 02:25:36 UTC 2018. [ 77s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:30:19 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:30:19 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b14a4576875b_1a87aca684790039@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/Debian_9.0/i586 Package network:osmocom:latest/osmo-sgsn failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 71s] #define PACKAGE "osmo-sgsn" [ 71s] #define VERSION "UNKNOWN" [ 71s] #define STDC_HEADERS 1 [ 71s] #define HAVE_SYS_TYPES_H 1 [ 71s] #define HAVE_SYS_STAT_H 1 [ 71s] #define HAVE_STDLIB_H 1 [ 71s] #define HAVE_STRING_H 1 [ 71s] #define HAVE_MEMORY_H 1 [ 71s] #define HAVE_STRINGS_H 1 [ 71s] #define HAVE_INTTYPES_H 1 [ 71s] #define HAVE_STDINT_H 1 [ 71s] #define HAVE_UNISTD_H 1 [ 71s] #define HAVE_DLFCN_H 1 [ 71s] #define LT_OBJDIR ".libs/" [ 71s] [ 71s] configure: exit 1 [ 71s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 71s] debian/rules:45: recipe for target 'build' failed [ 71s] make: *** [build] Error 2 [ 71s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 71s] [ 71s] lamb76 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:30:12 UTC 2018. [ 71s] [ 71s] ### VM INTERACTION START ### [ 74s] [ 66.877287] reboot: Power down [ 74s] ### VM INTERACTION END ### [ 74s] [ 74s] lamb76 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 02:30:15 UTC 2018. [ 74s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:31:11 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:31:11 +0000 Subject: Build failure of network:osmocom:latest/osmo-bts in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b14a473edbdb_1a87aca684790126@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-bts/xUbuntu_17.10/x86_64 Package network:osmocom:latest/osmo-bts failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-bts Last lines of build log: [ 74s] #define HAVE_SYS_STAT_H 1 [ 74s] #define HAVE_STDLIB_H 1 [ 74s] #define HAVE_STRING_H 1 [ 74s] #define HAVE_MEMORY_H 1 [ 74s] #define HAVE_STRINGS_H 1 [ 74s] #define HAVE_INTTYPES_H 1 [ 74s] #define HAVE_STDINT_H 1 [ 74s] #define HAVE_UNISTD_H 1 [ 74s] #define HAVE_DLFCN_H 1 [ 74s] #define LT_OBJDIR ".libs/" [ 74s] #define STDC_HEADERS 1 [ 74s] [ 74s] configure: exit 1 [ 74s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-trx returned exit code 1 [ 74s] debian/rules:22: recipe for target 'override_dh_auto_configure' failed [ 74s] make[1]: *** [override_dh_auto_configure] Error 2 [ 74s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 74s] debian/rules:12: recipe for target 'build' failed [ 74s] make: *** [build] Error 2 [ 74s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 74s] [ 74s] lamb05 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 02:31:00 UTC 2018. [ 74s] [ 74s] ### VM INTERACTION START ### [ 77s] [ 69.127002] reboot: Power down [ 77s] ### VM INTERACTION END ### [ 77s] [ 77s] lamb05 failed "build osmo-bts_0.8.1.dsc" at Mon Jun 4 02:31:04 UTC 2018. [ 77s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:35:10 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:35:10 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b14a564b127b_1a87aca684790874@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_8.0/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 71s] #define HAVE_SYS_TYPES_H 1 [ 71s] #define HAVE_SYS_STAT_H 1 [ 71s] #define HAVE_STDLIB_H 1 [ 71s] #define HAVE_STRING_H 1 [ 71s] #define HAVE_MEMORY_H 1 [ 71s] #define HAVE_STRINGS_H 1 [ 71s] #define HAVE_INTTYPES_H 1 [ 71s] #define HAVE_STDINT_H 1 [ 71s] #define HAVE_UNISTD_H 1 [ 71s] #define HAVE_DLFCN_H 1 [ 71s] #define LT_OBJDIR ".libs/" [ 71s] #define PACKAGE "osmo-hlr" [ 71s] #define VERSION "UNKNOWN" [ 71s] [ 71s] configure: exit 1 [ 71s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 71s] debian/rules:7: recipe for target 'build' failed [ 71s] make: *** [build] Error 255 [ 71s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 71s] [ 71s] lamb52 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:35:04 UTC 2018. [ 71s] [ 71s] ### VM INTERACTION START ### [ 72s] Powering off. [ 72s] [ 64.214788] reboot: Power down [ 72s] ### VM INTERACTION END ### [ 72s] [ 72s] lamb52 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:35:06 UTC 2018. [ 72s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:39:44 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:39:44 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b14a69181312_1a87aca684791077@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_18.04/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 96s] #define HAVE_SYS_TYPES_H 1 [ 96s] #define HAVE_SYS_STAT_H 1 [ 96s] #define HAVE_STDLIB_H 1 [ 96s] #define HAVE_STRING_H 1 [ 96s] #define HAVE_MEMORY_H 1 [ 96s] #define HAVE_STRINGS_H 1 [ 96s] #define HAVE_INTTYPES_H 1 [ 96s] #define HAVE_STDINT_H 1 [ 96s] #define HAVE_UNISTD_H 1 [ 96s] #define HAVE_DLFCN_H 1 [ 96s] #define LT_OBJDIR ".libs/" [ 96s] [ 96s] configure: exit 1 [ 96s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 96s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 96s] make[1]: *** [override_dh_auto_configure] Error 2 [ 96s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 96s] debian/rules:45: recipe for target 'build' failed [ 96s] make: *** [build] Error 2 [ 96s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 96s] [ 96s] lamb65 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:39:37 UTC 2018. [ 96s] [ 96s] ### VM INTERACTION START ### [ 99s] [ 89.760166] reboot: Power down [ 99s] ### VM INTERACTION END ### [ 99s] [ 99s] lamb65 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 02:39:40 UTC 2018. [ 99s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:39:44 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:39:44 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b14a692c116_1a87aca6847911e1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_9.0/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 72s] #define STDC_HEADERS 1 [ 72s] #define HAVE_SYS_TYPES_H 1 [ 72s] #define HAVE_SYS_STAT_H 1 [ 72s] #define HAVE_STDLIB_H 1 [ 72s] #define HAVE_STRING_H 1 [ 72s] #define HAVE_MEMORY_H 1 [ 72s] #define HAVE_STRINGS_H 1 [ 72s] #define HAVE_INTTYPES_H 1 [ 72s] #define HAVE_STDINT_H 1 [ 72s] #define HAVE_UNISTD_H 1 [ 72s] #define HAVE_DLFCN_H 1 [ 72s] #define LT_OBJDIR ".libs/" [ 72s] #define PACKAGE "osmo-hlr" [ 72s] #define VERSION "UNKNOWN" [ 72s] [ 72s] configure: exit 1 [ 72s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 72s] debian/rules:7: recipe for target 'build' failed [ 72s] make: *** [build] Error 2 [ 72s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 72s] [ 72s] lamb59 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:39:23 UTC 2018. [ 72s] [ 72s] ### VM INTERACTION START ### [ 75s] [ 67.140595] reboot: Power down [ 75s] ### VM INTERACTION END ### [ 75s] [ 75s] lamb59 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:39:27 UTC 2018. [ 75s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:40:01 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:40:01 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b14a694c327e_1a87aca68479139e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_16.10/i586 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 75s] #define STDC_HEADERS 1 [ 75s] #define HAVE_SYS_TYPES_H 1 [ 75s] #define HAVE_SYS_STAT_H 1 [ 75s] #define HAVE_STDLIB_H 1 [ 75s] #define HAVE_STRING_H 1 [ 75s] #define HAVE_MEMORY_H 1 [ 75s] #define HAVE_STRINGS_H 1 [ 75s] #define HAVE_INTTYPES_H 1 [ 75s] #define HAVE_STDINT_H 1 [ 75s] #define HAVE_UNISTD_H 1 [ 75s] #define HAVE_DLFCN_H 1 [ 75s] #define LT_OBJDIR ".libs/" [ 75s] #define PACKAGE "osmo-hlr" [ 75s] #define VERSION "UNKNOWN" [ 75s] [ 75s] configure: exit 1 [ 75s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 75s] debian/rules:7: recipe for target 'build' failed [ 75s] make: *** [build] Error 2 [ 75s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 75s] [ 75s] lamb13 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:39:56 UTC 2018. [ 75s] [ 75s] ### VM INTERACTION START ### [ 78s] [ 70.212290] reboot: Power down [ 78s] ### VM INTERACTION END ### [ 78s] [ 78s] lamb13 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 02:40:00 UTC 2018. [ 78s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:57:27 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:57:27 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b14aaabcf412_1a87aca684792498@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_17.10/x86_64 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 82s] #define HAVE_STRING_H 1 [ 82s] #define HAVE_MEMORY_H 1 [ 82s] #define HAVE_STRINGS_H 1 [ 82s] #define HAVE_INTTYPES_H 1 [ 82s] #define HAVE_STDINT_H 1 [ 82s] #define HAVE_UNISTD_H 1 [ 82s] #define HAVE_DLFCN_H 1 [ 82s] #define LT_OBJDIR ".libs/" [ 82s] #define STDC_HEADERS 1 [ 82s] #define HAVE_EXECINFO_H 1 [ 82s] #define HAVE_SYS_SELECT_H 1 [ 82s] #define HAVE_SYS_SOCKET_H 1 [ 82s] #define HAVE_SYSLOG_H 1 [ 82s] #define HAVE_CTYPE_H 1 [ 82s] [ 82s] configure: exit 1 [ 82s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 82s] debian/rules:13: recipe for target 'build' failed [ 82s] make: *** [build] Error 2 [ 82s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 82s] [ 82s] lamb60 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 02:57:18 UTC 2018. [ 82s] [ 82s] ### VM INTERACTION START ### [ 85s] [ 77.123311] reboot: Power down [ 85s] ### VM INTERACTION END ### [ 85s] [ 85s] lamb60 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 02:57:21 UTC 2018. [ 85s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 02:58:18 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 02:58:18 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in xUbuntu_17.04/x86_64 In-Reply-To: References: Message-ID: <5b14aae437c3f_1a87aca6847925e1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/xUbuntu_17.04/x86_64 Package network:osmocom:latest/libosmo-netif failed to build in xUbuntu_17.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 82s] #define HAVE_STRING_H 1 [ 82s] #define HAVE_MEMORY_H 1 [ 82s] #define HAVE_STRINGS_H 1 [ 82s] #define HAVE_INTTYPES_H 1 [ 82s] #define HAVE_STDINT_H 1 [ 82s] #define HAVE_UNISTD_H 1 [ 82s] #define HAVE_DLFCN_H 1 [ 82s] #define LT_OBJDIR ".libs/" [ 82s] #define STDC_HEADERS 1 [ 82s] #define HAVE_EXECINFO_H 1 [ 82s] #define HAVE_SYS_SELECT_H 1 [ 82s] #define HAVE_SYS_SOCKET_H 1 [ 82s] #define HAVE_SYSLOG_H 1 [ 82s] #define HAVE_CTYPE_H 1 [ 82s] [ 82s] configure: exit 1 [ 82s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 82s] debian/rules:13: recipe for target 'build' failed [ 82s] make: *** [build] Error 2 [ 82s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 82s] [ 82s] lamb07 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 02:58:06 UTC 2018. [ 82s] [ 82s] ### VM INTERACTION START ### [ 85s] [ 76.815023] reboot: Power down [ 85s] ### VM INTERACTION END ### [ 85s] [ 85s] lamb07 failed "build libosmo-netif_0.2.0.dsc" at Mon Jun 4 02:58:09 UTC 2018. [ 85s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:03:44 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:03:44 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_17.04/x86_64 In-Reply-To: References: Message-ID: <5b14ac31469e1_1a87aca6847928d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_17.04/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_17.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 78s] #define PACKAGE "osmo-sgsn" [ 78s] #define VERSION "UNKNOWN" [ 78s] #define STDC_HEADERS 1 [ 78s] #define HAVE_SYS_TYPES_H 1 [ 78s] #define HAVE_SYS_STAT_H 1 [ 78s] #define HAVE_STDLIB_H 1 [ 78s] #define HAVE_STRING_H 1 [ 78s] #define HAVE_MEMORY_H 1 [ 78s] #define HAVE_STRINGS_H 1 [ 78s] #define HAVE_INTTYPES_H 1 [ 78s] #define HAVE_STDINT_H 1 [ 78s] #define HAVE_UNISTD_H 1 [ 78s] #define HAVE_DLFCN_H 1 [ 78s] #define LT_OBJDIR ".libs/" [ 78s] [ 78s] configure: exit 1 [ 78s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 78s] debian/rules:45: recipe for target 'build' failed [ 78s] make: *** [build] Error 2 [ 78s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 78s] [ 78s] lamb07 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 03:03:38 UTC 2018. [ 78s] [ 78s] ### VM INTERACTION START ### [ 81s] [ 72.453378] reboot: Power down [ 81s] ### VM INTERACTION END ### [ 81s] [ 81s] lamb07 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 03:03:41 UTC 2018. [ 81s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:04:52 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:04:52 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b14ac692ee63_1a87aca68479295d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_17.10/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 84s] #define HAVE_SYS_TYPES_H 1 [ 84s] #define HAVE_SYS_STAT_H 1 [ 84s] #define HAVE_STDLIB_H 1 [ 84s] #define HAVE_STRING_H 1 [ 84s] #define HAVE_MEMORY_H 1 [ 84s] #define HAVE_STRINGS_H 1 [ 84s] #define HAVE_INTTYPES_H 1 [ 84s] #define HAVE_STDINT_H 1 [ 84s] #define HAVE_UNISTD_H 1 [ 84s] #define HAVE_DLFCN_H 1 [ 84s] #define LT_OBJDIR ".libs/" [ 84s] [ 84s] configure: exit 1 [ 84s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 84s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 84s] make[1]: *** [override_dh_auto_configure] Error 2 [ 84s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 84s] debian/rules:45: recipe for target 'build' failed [ 84s] make: *** [build] Error 2 [ 84s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 84s] [ 84s] build32 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 03:04:40 UTC 2018. [ 84s] [ 84s] ### VM INTERACTION START ### [ 87s] [ 78.478110] reboot: Power down [ 87s] ### VM INTERACTION END ### [ 87s] [ 87s] build32 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 03:04:43 UTC 2018. [ 87s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:05:10 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:05:10 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_17.04/x86_64 In-Reply-To: References: Message-ID: <5b14ac69d7238_1a87aca68479304f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_17.04/x86_64 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_17.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 76s] #define HAVE_SYS_TYPES_H 1 [ 76s] #define HAVE_SYS_STAT_H 1 [ 76s] #define HAVE_STDLIB_H 1 [ 76s] #define HAVE_STRING_H 1 [ 76s] #define HAVE_MEMORY_H 1 [ 76s] #define HAVE_STRINGS_H 1 [ 76s] #define HAVE_INTTYPES_H 1 [ 76s] #define HAVE_STDINT_H 1 [ 76s] #define HAVE_UNISTD_H 1 [ 76s] #define HAVE_DLFCN_H 1 [ 76s] #define LT_OBJDIR ".libs/" [ 76s] [ 76s] configure: exit 1 [ 76s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 76s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 76s] make[1]: *** [override_dh_auto_configure] Error 2 [ 76s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 76s] debian/rules:45: recipe for target 'build' failed [ 76s] make: *** [build] Error 2 [ 76s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 76s] [ 76s] lamb02 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 03:04:58 UTC 2018. [ 76s] [ 76s] ### VM INTERACTION START ### [ 79s] [ 71.507100] reboot: Power down [ 79s] ### VM INTERACTION END ### [ 79s] [ 79s] lamb02 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 03:05:02 UTC 2018. [ 79s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:06:18 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:06:18 +0000 Subject: Build failure of network:osmocom:latest/openbsc in xUbuntu_17.04/x86_64 In-Reply-To: References: Message-ID: <5b14acc7f3641_1a87aca684793143@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/xUbuntu_17.04/x86_64 Package network:osmocom:latest/openbsc failed to build in xUbuntu_17.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 111s] #define HAVE_SYS_TYPES_H 1 [ 111s] #define HAVE_SYS_STAT_H 1 [ 111s] #define HAVE_STDLIB_H 1 [ 111s] #define HAVE_STRING_H 1 [ 111s] #define HAVE_MEMORY_H 1 [ 111s] #define HAVE_STRINGS_H 1 [ 111s] #define HAVE_INTTYPES_H 1 [ 111s] #define HAVE_STDINT_H 1 [ 111s] #define HAVE_UNISTD_H 1 [ 111s] #define HAVE_DLFCN_H 1 [ 111s] #define LT_OBJDIR ".libs/" [ 111s] [ 111s] configure: exit 1 [ 111s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 77. [ 111s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 111s] make[1]: *** [override_dh_auto_configure] Error 2 [ 111s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 111s] debian/rules:13: recipe for target 'build' failed [ 111s] make: *** [build] Error 2 [ 111s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 111s] [ 111s] cloud135 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 03:06:09 UTC 2018. [ 111s] [ 111s] ### VM INTERACTION START ### [ 114s] [ 98.915429] reboot: Power down [ 114s] ### VM INTERACTION END ### [ 114s] [ 114s] cloud135 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 03:06:13 UTC 2018. [ 114s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:09:44 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:09:44 +0000 Subject: Build failure of network:osmocom:latest/libosmo-abis in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5b14ad7b8e776_1a87aca684793742@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-abis/Debian_9.0/aarch64 Package network:osmocom:latest/libosmo-abis failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-abis Last lines of build log: [ 276s] [ 249.065877] dracut-initqueue[456]: Warning: dracut-initqueue timeout - starting timeout scripts [ 277s] [ 249.706722] dracut-initqueue[456]: Warning: dracut-initqueue timeout - starting timeout scripts [ 278s] [ 250.335907] dracut-initqueue[456]: Warning: dracut-initqueue timeout - starting timeout scripts [ 278s] [ 251.027405] dracut-initqueue[456]: Warning: dracut-initqueue timeout - starting timeout scripts [ 279s] [ 251.665932] dracut-initqueue[456]: Warning: dracut-initqueue timeout - starting timeout scripts [ 279s] [ 251.673447] dracut-initqueue[456]: Warning: Could not boot. [ 279s] Starting Setup Virtual Console... [ 279s] [ OK ] Started Setup Virtual Console. [ 279s] Starting Dracut Emergency Shell... [ 279s] Warning: /dev/disk/by-uuid/00750419-b769-40be-aa7a-a81dca13c577 does not exist [ 279s] [ 279s] Generating "/run/initramfs/rdsosreport.txt" [ 279s] [ 279s] [ 279s] Entering emergency mode. Exit the shell to continue. [ 279s] Type "journalctl" to view system logs. [ 279s] You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot [ 279s] after mounting them and attach it to a bug report. [ 279s] [ 279s] [ 331s] dracut:/# ### WATCHDOG TRIGGERED, KILLING VM ### [ 331s] /var/cache/obs/worker/root_17/root: 28608 [ 331s] qemu-system-aarch64: terminating on signal 15 from pid 44908 (fuser) [ 331s] ### VM INTERACTION END ### [ 331s] /var/run/obs/worker/17/build/build-vm: line 458: kill: (28601) - No such process [ 331s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 331s] or the build host has a kernel or hardware problem... gave up after 11 failed build attempts... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:19:43 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:19:43 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b14afdf27626_1a87aca684794330@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/Debian_9.0/armv7l Package network:osmocom:latest/osmo-sgsn failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 130s] #define VERSION "UNKNOWN" [ 130s] #define STDC_HEADERS 1 [ 130s] #define HAVE_SYS_TYPES_H 1 [ 130s] #define HAVE_SYS_STAT_H 1 [ 130s] #define HAVE_STDLIB_H 1 [ 130s] #define HAVE_STRING_H 1 [ 130s] #define HAVE_MEMORY_H 1 [ 130s] #define HAVE_STRINGS_H 1 [ 130s] #define HAVE_INTTYPES_H 1 [ 130s] #define HAVE_STDINT_H 1 [ 130s] #define HAVE_UNISTD_H 1 [ 130s] #define HAVE_DLFCN_H 1 [ 130s] #define LT_OBJDIR ".libs/" [ 130s] [ 130s] configure: exit 1 [ 130s] dh_auto_configure: ./configure --build=arm-linux-gnueabihf --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/arm-linux-gnueabihf --libexecdir=${prefix}/lib/arm-linux-gnueabihf --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 130s] debian/rules:45: recipe for target 'build' failed [ 130s] make: *** [build] Error 2 [ 130s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 130s] [ 130s] armbuild21 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 03:19:23 UTC 2018. [ 130s] [ 130s] ### VM INTERACTION START ### [ 133s] [ 109.805845] SysRq : Power Off [ 133s] [ 109.829378] reboot: Power down [ 133s] ### VM INTERACTION END ### [ 133s] [ 133s] armbuild21 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 03:19:27 UTC 2018. [ 133s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:43:26 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:43:26 +0000 Subject: Build failure of network:osmocom:latest/osmo-sgsn in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b14b55feb9c7_1a87aca6847969fe@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-sgsn/xUbuntu_17.10/x86_64 Package network:osmocom:latest/osmo-sgsn failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-sgsn Last lines of build log: [ 69s] #define PACKAGE "osmo-sgsn" [ 69s] #define VERSION "UNKNOWN" [ 69s] #define STDC_HEADERS 1 [ 69s] #define HAVE_SYS_TYPES_H 1 [ 69s] #define HAVE_SYS_STAT_H 1 [ 69s] #define HAVE_STDLIB_H 1 [ 69s] #define HAVE_STRING_H 1 [ 69s] #define HAVE_MEMORY_H 1 [ 69s] #define HAVE_STRINGS_H 1 [ 69s] #define HAVE_INTTYPES_H 1 [ 69s] #define HAVE_STDINT_H 1 [ 69s] #define HAVE_UNISTD_H 1 [ 69s] #define HAVE_DLFCN_H 1 [ 69s] #define LT_OBJDIR ".libs/" [ 69s] [ 69s] configure: exit 1 [ 69s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 69s] debian/rules:45: recipe for target 'build' failed [ 69s] make: *** [build] Error 2 [ 69s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 69s] [ 69s] lamb71 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 03:43:11 UTC 2018. [ 69s] [ 69s] ### VM INTERACTION START ### [ 73s] [ 65.495025] reboot: Power down [ 73s] ### VM INTERACTION END ### [ 73s] [ 73s] lamb71 failed "build osmo-sgsn_1.3.0.dsc" at Mon Jun 4 03:43:14 UTC 2018. [ 73s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:28:50 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:28:50 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in xUbuntu_17.04/i586 In-Reply-To: References: Message-ID: <5b14b1fb8d3e_1a87aca684795972@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/xUbuntu_17.04/i586 Package network:osmocom:latest/osmo-msc failed to build in xUbuntu_17.04/i586 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 121s] #define HAVE_SYS_TYPES_H 1 [ 121s] #define HAVE_SYS_STAT_H 1 [ 121s] #define HAVE_STDLIB_H 1 [ 121s] #define HAVE_STRING_H 1 [ 121s] #define HAVE_MEMORY_H 1 [ 121s] #define HAVE_STRINGS_H 1 [ 121s] #define HAVE_INTTYPES_H 1 [ 121s] #define HAVE_STDINT_H 1 [ 121s] #define HAVE_UNISTD_H 1 [ 121s] #define HAVE_DLFCN_H 1 [ 121s] #define LT_OBJDIR ".libs/" [ 121s] [ 121s] configure: exit 1 [ 121s] dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/i386-linux-gnu --libexecdir=${prefix}/lib/i386-linux-gnu --disable-maintainer-mode --disable-dependency-tracking --enable-iu --enable-smpp returned exit code 1 [ 121s] debian/rules:51: recipe for target 'override_dh_auto_configure' failed [ 121s] make[1]: *** [override_dh_auto_configure] Error 2 [ 121s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 121s] debian/rules:45: recipe for target 'build' failed [ 121s] make: *** [build] Error 2 [ 121s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 121s] [ 121s] cloud134 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 03:28:37 UTC 2018. [ 121s] [ 121s] ### VM INTERACTION START ### [ 124s] [ 103.297912] reboot: Power down [ 127s] ### VM INTERACTION END ### [ 127s] [ 127s] cloud134 failed "build osmo-msc_1.2.0.dsc" at Mon Jun 4 03:28:43 UTC 2018. [ 127s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 04:07:25 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 04:07:25 +0000 Subject: Build failure of network:osmocom:latest/openbsc in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b14bb1b3401b_1a87aca684798593@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/xUbuntu_17.10/x86_64 Package network:osmocom:latest/openbsc failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 80s] #define HAVE_SYS_TYPES_H 1 [ 80s] #define HAVE_SYS_STAT_H 1 [ 80s] #define HAVE_STDLIB_H 1 [ 80s] #define HAVE_STRING_H 1 [ 80s] #define HAVE_MEMORY_H 1 [ 80s] #define HAVE_STRINGS_H 1 [ 80s] #define HAVE_INTTYPES_H 1 [ 80s] #define HAVE_STDINT_H 1 [ 80s] #define HAVE_UNISTD_H 1 [ 80s] #define HAVE_DLFCN_H 1 [ 80s] #define LT_OBJDIR ".libs/" [ 80s] [ 80s] configure: exit 1 [ 80s] Died at /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm line 78. [ 80s] debian/rules:27: recipe for target 'override_dh_auto_configure' failed [ 80s] make[1]: *** [override_dh_auto_configure] Error 2 [ 80s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 80s] debian/rules:13: recipe for target 'build' failed [ 80s] make: *** [build] Error 2 [ 80s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 80s] [ 80s] lamb55 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 04:07:10 UTC 2018. [ 80s] [ 80s] ### VM INTERACTION START ### [ 83s] [ 75.221981] reboot: Power down [ 83s] ### VM INTERACTION END ### [ 83s] [ 83s] lamb55 failed "build openbsc_1.1.0.dsc" at Mon Jun 4 04:07:14 UTC 2018. [ 83s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:32:33 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:32:33 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b14b2e743a7_1a87aca68479629@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_17.10/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 42s] #define STDC_HEADERS 1 [ 42s] #define HAVE_SYS_TYPES_H 1 [ 42s] #define HAVE_SYS_STAT_H 1 [ 42s] #define HAVE_STDLIB_H 1 [ 42s] #define HAVE_STRING_H 1 [ 42s] #define HAVE_MEMORY_H 1 [ 42s] #define HAVE_STRINGS_H 1 [ 42s] #define HAVE_INTTYPES_H 1 [ 42s] #define HAVE_STDINT_H 1 [ 42s] #define HAVE_UNISTD_H 1 [ 42s] #define HAVE_DLFCN_H 1 [ 42s] #define LT_OBJDIR ".libs/" [ 42s] #define PACKAGE "osmo-hlr" [ 42s] #define VERSION "UNKNOWN" [ 42s] [ 42s] configure: exit 1 [ 42s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 42s] debian/rules:7: recipe for target 'build' failed [ 42s] make: *** [build] Error 2 [ 42s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 42s] [ 42s] build72 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 03:32:24 UTC 2018. [ 42s] [ 42s] ### VM INTERACTION START ### [ 45s] [ 40.249607] reboot: Power down [ 45s] ### VM INTERACTION END ### [ 45s] [ 45s] build72 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 03:32:27 UTC 2018. [ 45s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 03:37:06 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 03:37:06 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in xUbuntu_17.04/x86_64 In-Reply-To: References: Message-ID: <5b14b3f6dcffc_1a87aca6847965af@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/xUbuntu_17.04/x86_64 Package network:osmocom:latest/osmo-hlr failed to build in xUbuntu_17.04/x86_64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 74s] #define STDC_HEADERS 1 [ 74s] #define HAVE_SYS_TYPES_H 1 [ 74s] #define HAVE_SYS_STAT_H 1 [ 74s] #define HAVE_STDLIB_H 1 [ 74s] #define HAVE_STRING_H 1 [ 74s] #define HAVE_MEMORY_H 1 [ 74s] #define HAVE_STRINGS_H 1 [ 74s] #define HAVE_INTTYPES_H 1 [ 74s] #define HAVE_STDINT_H 1 [ 74s] #define HAVE_UNISTD_H 1 [ 74s] #define HAVE_DLFCN_H 1 [ 74s] #define LT_OBJDIR ".libs/" [ 74s] #define PACKAGE "osmo-hlr" [ 74s] #define VERSION "UNKNOWN" [ 74s] [ 74s] configure: exit 1 [ 74s] dh_auto_configure: ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=${prefix}/include --mandir=${prefix}/share/man --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=${prefix}/lib/x86_64-linux-gnu --libexecdir=${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking returned exit code 1 [ 74s] debian/rules:7: recipe for target 'build' failed [ 74s] make: *** [build] Error 2 [ 74s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 74s] [ 74s] lamb13 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 03:36:52 UTC 2018. [ 74s] [ 74s] ### VM INTERACTION START ### [ 77s] [ 68.945991] reboot: Power down [ 77s] ### VM INTERACTION END ### [ 77s] [ 77s] lamb13 failed "build osmo-hlr_0.2.1.dsc" at Mon Jun 4 03:36:56 UTC 2018. [ 77s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jun 4 07:46:49 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 4 Jun 2018 07:46:49 +0000 Subject: Change in osmo-mgw[master]: conn: call talloc_free before setting the pointer to NULL Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9441 Change subject: conn: call talloc_free before setting the pointer to NULL ...................................................................... conn: call talloc_free before setting the pointer to NULL in mgcp_rtp_codec_init() tallo_free is called after codec->subtype_name and codec->audio_name are set to NULL. So talloc_free() always sees NULL-pointers and never frees anything. This may cause a memory leak. - call talloc_free() first, then set pointers to NULL Change-Id: I7373819c3689d34811846f6f48f27568297b26e4 --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/41/9441/1 diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index a7cd6cf..4926768 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -91,6 +91,10 @@ /* Reset codec state and free memory */ static void mgcp_rtp_codec_init(struct mgcp_rtp_codec *codec) { + /* see also mgcp_sdp.c, mgcp_set_audio_info() */ + talloc_free(codec->subtype_name); + talloc_free(codec->audio_name); + codec->payload_type = -1; codec->subtype_name = NULL; codec->audio_name = NULL; @@ -98,10 +102,6 @@ codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; codec->rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; codec->channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; - - /* see also mgcp_sdp.c, mgcp_set_audio_info() */ - talloc_free(codec->subtype_name); - talloc_free(codec->audio_name); } /* Initialize rtp connection struct with default values */ -- To view, visit https://gerrit.osmocom.org/9441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7373819c3689d34811846f6f48f27568297b26e4 Gerrit-Change-Number: 9441 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 4 08:02:03 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 4 Jun 2018 08:02:03 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix log output Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9442 Change subject: cosmetic: fix log output ...................................................................... cosmetic: fix log output "unable to create connection resource error" sounds a bit strange. Lets just output "unable to create connection". Change-Id: Ibef16b455f2e122c8e5ff95240c4d7a654c56a39 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/42/9442/1 diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index c391fec..b403be0 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -721,7 +721,7 @@ error2: mgcp_endp_release(endp); LOGP(DLMGCP, LOGL_NOTICE, - "CRCX: endpoint:0x%x unable to create connection resource error\n", + "CRCX: endpoint:0x%x unable to create connection\n", ENDPOINT_NUMBER(endp)); return create_err_response(endp, error_code, "CRCX", p->trans); } -- To view, visit https://gerrit.osmocom.org/9442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibef16b455f2e122c8e5ff95240c4d7a654c56a39 Gerrit-Change-Number: 9442 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Jun 4 11:19:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 4 Jun 2018 11:19:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-cellmgr-ng_=C2=BB_a1=3Ddefa?= =?UTF-8?Q?ult,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#52?= In-Reply-To: <435648734.134.1522495143851.JavaMail.jenkins@jenkins.osmocom.org> References: <435648734.134.1522495143851.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1887923511.331.1528111146368.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 617.81 KB...] + cd ../../ + autoreconf --install --force configure.ac:14: installing './compile' configure.ac:6: installing './install-sh' configure.ac:6: installing './missing' src/Makefile.am:14: warning: source file 'input/ipaccess.c' is in a subdirectory, src/Makefile.am:14: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. src/Makefile.am:8: warning: source file 'mgcp/mgcp_protocol.c' is in a subdirectory, src/Makefile.am:8: but option 'subdir-objects' is disabled src/Makefile.am:8: warning: source file 'mgcp/mgcp_network.c' is in a subdirectory, src/Makefile.am:8: but option 'subdir-objects' is disabled src/Makefile.am:8: warning: source file 'mgcp/mgcp_vty.c' is in a subdirectory, src/Makefile.am:8: but option 'subdir-objects' is disabled src/Makefile.am:24: warning: source file 'input/ipaccess.c' is in a subdirectory, src/Makefile.am:24: but option 'subdir-objects' is disabled src/Makefile.am: installing './depcomp' tests/dtmf/Makefile.am:7: warning: source file '$(top_srcdir)/src/dtmf_scheduler.c' is in a subdirectory, tests/dtmf/Makefile.am:7: but option 'subdir-objects' is disabled tests/isup/Makefile.am:7: warning: source file '$(top_srcdir)/src/isup.c' is in a subdirectory, tests/isup/Makefile.am:7: but option 'subdir-objects' is disabled tests/mgcp/Makefile.am:7: warning: source file '$(top_srcdir)/src/mgcp_patch.c' is in a subdirectory, tests/mgcp/Makefile.am:7: but option 'subdir-objects' is disabled tests/mgcp/Makefile.am:7: warning: source file '$(top_srcdir)/src/mgcp/mgcp_protocol.c' is in a subdirectory, tests/mgcp/Makefile.am:7: but option 'subdir-objects' is disabled tests/mgcp/Makefile.am:7: warning: source file '$(top_srcdir)/src/mgcp/mgcp_network.c' is in a subdirectory, tests/mgcp/Makefile.am:7: but option 'subdir-objects' is disabled tests/mgcp/Makefile.am:7: warning: source file '$(top_srcdir)/src/debug.c' is in a subdirectory, tests/mgcp/Makefile.am:7: but option 'subdir-objects' is disabled tests/mtp/Makefile.am:6: warning: source file '$(top_srcdir)/src/sctp_m3ua_misc.c' is in a subdirectory, tests/mtp/Makefile.am:6: but option 'subdir-objects' is disabled tests/patching/Makefile.am:6: warning: source file '$(top_srcdir)/src/bss_patch.c' is in a subdirectory, tests/patching/Makefile.am:6: but option 'subdir-objects' is disabled tests/patching/Makefile.am:6: warning: source file '$(top_srcdir)/src/debug.c' is in a subdirectory, tests/patching/Makefile.am:6: but option 'subdir-objects' is disabled + PKG_CONFIG_PATH=/build/deps/install/lib/pkgconfig + ./configure --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for ranlib... ranlib checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking net-snmp/net-snmp-config.h usability... yes checking net-snmp/net-snmp-config.h presence... yes checking for net-snmp/net-snmp-config.h... yes checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOSCCP... yes checking for LIBOSMOVTY... yes checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/dist-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages checking for osmotestvty.py... yes checking whether to enable VTY tests... yes checking for sctp_sendmsg in -lsctp... yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating include/Makefile config.status: creating include/mgcp/Makefile config.status: creating src/Makefile config.status: creating tests/Makefile config.status: creating tests/mtp/Makefile config.status: creating tests/patching/Makefile config.status: creating tests/isup/Makefile config.status: creating tests/mgcp/Makefile config.status: creating tests/dtmf/Makefile config.status: creating Makefile config.status: creating cellmgr_config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands + PKG_CONFIG_PATH=/build/deps/install/lib/pkgconfig + make -j 8 echo 1.3.0.80-6501 > .version-t && mv .version-t .version (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /build/missing autoheader) rm -f stamp-h1 touch cellmgr_config.h.in cd . && /bin/bash ./config.status cellmgr_config.h config.status: creating cellmgr_config.h config.status: cellmgr_config.h is unchanged make all-recursive make[1]: Entering directory '/build' Making all in include make[2]: Entering directory '/build/include' Making all in mgcp make[3]: Entering directory '/build/include/mgcp' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/include/mgcp' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' CC main.o CC mtp_layer3.o CC thread.o CC pcap.o CC ipaccess.o CC bssap_sccp.o CC bss_patch.o CC bsc_sccp.o CC bsc_ussd.o main.c: In function 'main': main.c:68:2: warning: 'osmo_init_logging' is deprecated (declared at /build/deps/libosmocore/../install/include/osmocom/core/application.h:20): use osmo_init_logging2() instead to avoid a NULL talloc ctx [-Wdeprecated-declarations] osmo_init_logging(&log_info); ^ CC links.o CC msc_conn.o CC link_udp.o CC snmp_mtp.o CC debug.o CC isup.o CC mtp_link.o snmp_mtp.c: In function 'link_up_cb': snmp_mtp.c:49:19: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] int link_index = (int) data; ^ snmp_mtp.c: In function 'link_down_cb': snmp_mtp.c:65:19: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] int link_index = (int) data; ^ snmp_mtp.c: In function 'send_pdu': snmp_mtp.c:84:40: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] status = snmp_async_send(ss, pdu, cb, (void *) link_id); ^ CC counter.o CC sccp_state.o CC bsc.o CC ss7_application.o CC vty_interface_legacy.o CC vty_interface_cmds.o CC mgcp_patch.o CC mgcp_callagent.o CC isup_filter.o CC main_stp.o CC sctp_m2ua.o CC vty_interface.o CC sctp_m3ua_client.o sctp_m2ua.c: In function 'm2ua_conn_destroy': sctp_m2ua.c:91:3: warning: #warning "Notify any other AS(P) for failover scenario" [-Wcpp] #warning "Notify any other AS(P) for failover scenario" ^ CC sctp_m3ua_misc.o CC mgcp_ss7.o main_stp.c: In function 'main': main_stp.c:212:2: warning: 'osmo_init_logging' is deprecated (declared at /build/deps/libosmocore/../install/include/osmocom/core/application.h:20): use osmo_init_logging2() instead to avoid a NULL talloc ctx [-Wdeprecated-declarations] osmo_init_logging(&log_info); ^ main_stp.c:223:2: warning: implicit declaration of function 'xua_set_log_area' [-Wimplicit-function-declaration] xua_set_log_area(DM2UA); ^ sctp_m3ua_client.c:25:40: fatal error: osmocom/sigtran/m3ua_types.h: No such file or directory #include ^ compilation terminated. CC mgcp_ss7_vty.o CC mgcp_hw.o CC mgcp_protocol.o mgcp_ss7.c: In function 'main': mgcp_ss7.c:1014:2: warning: 'osmo_init_logging' is deprecated (declared at /build/deps/libosmocore/../install/include/osmocom/core/application.h:20): use osmo_init_logging2() instead to avoid a NULL talloc ctx [-Wdeprecated-declarations] osmo_init_logging(&log_info); ^ vty_interface.c: In function 'install_defaults': vty_interface.c:1319:2: warning: 'install_default' is deprecated (declared at /build/deps/libosmocore/../install/include/osmocom/vty/command.h:363): Now happens implicitly with install_node() [-Wdeprecated-declarations] install_default(node); ^ mgcp_hw.c: In function 'mgcp_hw_connect': mgcp_hw.c:68:2: warning: #warning "NO Uniporte" [-Wcpp] #warning "NO Uniporte" ^ CC mgcp_network.o CC mgcp_vty.o mgcp/mgcp_protocol.c: In function 'find_e1_endpoint': mgcp/mgcp_protocol.c:291:2: warning: #warning "One should check if the endpoint is blocked!" [-Wcpp] #warning "One should check if the endpoint is blocked!" ^ mgcp/mgcp_network.c:38:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ Makefile:471: recipe for target 'sctp_m3ua_client.o' failed make[2]: *** [sctp_m3ua_client.o] Error 1 make[2]: *** Waiting for unfinished jobs.... mgcp/mgcp_network.c: In function 'patch_and_count': mgcp/mgcp_network.c:173:2: warning: #warning "Always allow to patch the SSRC" [-Wcpp] #warning "Always allow to patch the SSRC" ^ mgcp/mgcp_network.c: In function 'receive_from': mgcp/mgcp_network.c:328:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ mgcp/mgcp_vty.c: In function 'mgcp_vty_init': mgcp/mgcp_vty.c:861:2: warning: 'install_default' is deprecated (declared at /build/deps/libosmocore/../install/include/osmocom/vty/command.h:363): Now happens implicitly with install_node() [-Wdeprecated-declarations] install_default(MGCP_NODE); ^ mgcp/mgcp_vty.c:886:2: warning: 'install_default' is deprecated (declared at /build/deps/libosmocore/../install/include/osmocom/vty/command.h:363): Now happens implicitly with install_node() [-Wdeprecated-declarations] install_default(VTRUNK_NODE); ^ mgcp/mgcp_vty.c:900:2: warning: 'install_default' is deprecated (declared at /build/deps/libosmocore/../install/include/osmocom/vty/command.h:363): Now happens implicitly with install_node() [-Wdeprecated-declarations] install_default(TRUNK_NODE); ^ make[2]: Leaving directory '/build/src' make[1]: *** [all-recursive] Error 1 Makefile:370: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' Makefile:310: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Jun 4 12:09:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Jun 2018 12:09:26 +0000 Subject: Change in osmo-ci[master]: Revert "osmocom-latest-packages: Also accept "v" in front of version ... Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9443 Change subject: Revert "osmocom-latest-packages: Also accept "v" in front of version tags" ...................................................................... Revert "osmocom-latest-packages: Also accept "v" in front of version tags" This reverts commit 5b2bb86e8ada837732f06bb4a77779cdbca73496. While it was intended to enable automatic "latest" builds from rtl-sdr, it breaks builds e.g. of libosmo-abis, where we have both (new) tags without 'v' and old tags with 'v', and now the older 'v' tags win due to lexicographical sorting :( Change-Id: I1c8d2ab18e389a8c2c41082d997f101d72c3acc0 --- M scripts/osmocom-latest-packages.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/43/9443/1 diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 6f60ef8..e8d61a3 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -32,7 +32,7 @@ [ -d "$1" ] || git clone "git://git.osmocom.org/$1" cd "$1" git fetch - VER=$(git tag -l --sort=v:refname | grep "^v\?[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) + VER=$(git tag -l --sort=v:refname | grep "^[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) git checkout -f -B "$VER" "refs/tags/$VER" gbp buildpackage -d -S -uc -us "--git-export-dir=$output" "--git-debian-branch=$VER" -- To view, visit https://gerrit.osmocom.org/9443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1c8d2ab18e389a8c2c41082d997f101d72c3acc0 Gerrit-Change-Number: 9443 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 4 12:09:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Jun 2018 12:09:40 +0000 Subject: Change in osmo-ci[master]: Revert "osmocom-latest-packages: Also accept "v" in front of version ... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9443 ) Change subject: Revert "osmocom-latest-packages: Also accept "v" in front of version tags" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1c8d2ab18e389a8c2c41082d997f101d72c3acc0 Gerrit-Change-Number: 9443 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Jun 2018 12:09:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 4 12:09:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Jun 2018 12:09:42 +0000 Subject: Change in osmo-ci[master]: Revert "osmocom-latest-packages: Also accept "v" in front of version ... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9443 ) Change subject: Revert "osmocom-latest-packages: Also accept "v" in front of version tags" ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1c8d2ab18e389a8c2c41082d997f101d72c3acc0 Gerrit-Change-Number: 9443 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Jun 2018 12:09:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 4 12:09:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Jun 2018 12:09:53 +0000 Subject: Change in osmo-ci[master]: Revert "osmocom-latest-packages: Also accept "v" in front of version ... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9443 ) Change subject: Revert "osmocom-latest-packages: Also accept "v" in front of version tags" ...................................................................... Revert "osmocom-latest-packages: Also accept "v" in front of version tags" This reverts commit 5b2bb86e8ada837732f06bb4a77779cdbca73496. While it was intended to enable automatic "latest" builds from rtl-sdr, it breaks builds e.g. of libosmo-abis, where we have both (new) tags without 'v' and old tags with 'v', and now the older 'v' tags win due to lexicographical sorting :( Change-Id: I1c8d2ab18e389a8c2c41082d997f101d72c3acc0 --- M scripts/osmocom-latest-packages.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/scripts/osmocom-latest-packages.sh b/scripts/osmocom-latest-packages.sh index 6f60ef8..e8d61a3 100755 --- a/scripts/osmocom-latest-packages.sh +++ b/scripts/osmocom-latest-packages.sh @@ -32,7 +32,7 @@ [ -d "$1" ] || git clone "git://git.osmocom.org/$1" cd "$1" git fetch - VER=$(git tag -l --sort=v:refname | grep "^v\?[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) + VER=$(git tag -l --sort=v:refname | grep "^[0-9]*.[0-9]*.[0-9]*$" | tail -n 1) git checkout -f -B "$VER" "refs/tags/$VER" gbp buildpackage -d -S -uc -us "--git-export-dir=$output" "--git-debian-branch=$VER" -- To view, visit https://gerrit.osmocom.org/9443 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1c8d2ab18e389a8c2c41082d997f101d72c3acc0 Gerrit-Change-Number: 9443 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Jun 4 13:41:47 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 13:41:47 +0000 Subject: Build failure of network:osmocom:latest/libosmo-abis in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5b1541b843e86_1c0261867c148815@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-abis/Debian_9.0/aarch64 Package network:osmocom:latest/libosmo-abis failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-abis Last lines of build log: [ 13s] [68/71] preinstalling sysvinit-utils... [ 14s] [69/71] preinstalling e2fsprogs... [ 14s] [70/71] preinstalling sysv-rc... [ 14s] [71/71] preinstalling initscripts... [ 14s] [ 14s] [1/1] preinstalling libdevmapper1.02.1... [ 15s] copying packages... [ 18s] reordering...cycle: libc6 -> libgcc1 [ 18s] breaking dependency libgcc1 -> libc6 [ 18s] cycle: debhelper -> dh-autoreconf [ 18s] breaking dependency debhelper -> dh-autoreconf [ 18s] cycle: dh-strip-nondeterminism -> debhelper [ 18s] breaking dependency debhelper -> dh-strip-nondeterminism [ 18s] done [ 18s] objdump: /boot/Image.guest: File format not recognized [ 21s] booting kvm... [ 21s] ### VM INTERACTION START ### [ 21s] /usr/bin/qemu-system-aarch64 -nodefaults -no-reboot -nographic -vga none -enable-kvm -cpu host -M virt,gic-version=host -object rng-random,filename=/dev/hwrng,id=rng0 -device virtio-rng-device,rng=rng0 -runas qemu -net none -kernel /boot/Image.guest -initrd /boot/initrd.guest -append root=/dev/disk/by-id/virtio-0 rootfstype=ext4 rootflags=noatime panic=1 quiet no-kvmclock nmi_watchdog=0 rw rd.driver.pre=binfmt_misc elevator=noop console=ttyAMA0 init=/.build/build -m 2048 -drive file=/var/cache/obs/worker/root_3/root,format=raw,if=none,id=disk,serial=0,cache=unsafe -device virtio-blk-device,drive=disk -drive file=/var/cache/obs/worker/root_3/swap,format=raw,if=none,id=swap,serial=1,cache=unsafe -device virtio-blk-device,drive=swap -serial stdio -chardev socket,id=monitor,server,nowait,path=/var/cache/obs/worker/root_3/root.qemu/monitor -mon chardev=monitor,mode=readline -smp 4 [ 21s] qemu-system-aarch64: -drive file=/var/cache/obs/worker/root_3/root,format=raw,if=none,id=disk,serial=0,cache=unsafe: 'serial' is deprecated, please use the corresponding option of '-device' instead [ 21s] qemu-system-aarch64: -drive file=/var/cache/obs/worker/root_3/swap,format=raw,if=none,id=swap,serial=1,cache=unsafe: 'serial' is deprecated, please use the corresponding option of '-device' instead [ 327s] ### WATCHDOG TRIGGERED, KILLING VM ### [ 327s] /var/cache/obs/worker/root_3/root: 11880 [ 327s] qemu-system-aarch64: terminating on signal 15 from pid 14798 () [ 327s] ### VM INTERACTION END ### [ 327s] /var/run/obs/worker/3/build/build-vm: line 458: kill: (11873) - No such process [ 327s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 327s] or the build host has a kernel or hardware problem... gave up after 11 failed build attempts... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 16:20:59 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 16:20:59 +0000 Subject: Build failure of network:osmocom:latest/libosmo-netif in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5b1566fa3f933_1c0261867c17186c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/libosmo-netif/Debian_9.0/aarch64 Package network:osmocom:latest/libosmo-netif failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest libosmo-netif Last lines of build log: [ 276s] [ 248.615875] dracut-initqueue[470]: Warning: dracut-initqueue timeout - starting timeout scripts [ 276s] [ 249.256582] dracut-initqueue[470]: Warning: dracut-initqueue timeout - starting timeout scripts [ 277s] [ 249.906223] dracut-initqueue[470]: Warning: dracut-initqueue timeout - starting timeout scripts [ 277s] [ 250.586270] dracut-initqueue[470]: Warning: dracut-initqueue timeout - starting timeout scripts [ 278s] [ 251.249726] dracut-initqueue[470]: Warning: dracut-initqueue timeout - starting timeout scripts [ 278s] [ 251.256224] dracut-initqueue[470]: Warning: Could not boot. [ 278s] Starting Setup Virtual Console... [ 278s] [ OK ] Started Setup Virtual Console. [ 278s] Starting Dracut Emergency Shell... [ 278s] Warning: /dev/disk/by-uuid/00750419-b769-40be-aa7a-a81dca13c577 does not exist [ 278s] [ 278s] Generating "/run/initramfs/rdsosreport.txt" [ 279s] [ 279s] [ 279s] Entering emergency mode. Exit the shell to continue. [ 279s] Type "journalctl" to view system logs. [ 279s] You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot [ 279s] after mounting them and attach it to a bug report. [ 279s] [ 279s] [ 332s] dracut:/# ### WATCHDOG TRIGGERED, KILLING VM ### [ 333s] /var/cache/obs/worker/root_16/root: 28123 [ 333s] qemu-system-aarch64: terminating on signal 15 from pid 40925 () [ 333s] ### VM INTERACTION END ### [ 333s] /var/run/obs/worker/16/build/build-vm: line 458: kill: (28112) - No such process [ 333s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 333s] or the build host has a kernel or hardware problem... gave up after 11 failed build attempts... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 18:35:16 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 18:35:16 +0000 Subject: Build failure of network:osmocom:latest/openbsc in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5b15868151e9c_1c0261867c1828ce@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/openbsc/Debian_9.0/aarch64 Package network:osmocom:latest/openbsc failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest openbsc Last lines of build log: [ 280s] [ 249.927540] dracut-initqueue[460]: Warning: dracut-initqueue timeout - starting timeout scripts [ 280s] [ 250.566193] dracut-initqueue[460]: Warning: dracut-initqueue timeout - starting timeout scripts [ 281s] [ 251.235561] dracut-initqueue[460]: Warning: dracut-initqueue timeout - starting timeout scripts [ 282s] [ 251.886694] dracut-initqueue[460]: Warning: dracut-initqueue timeout - starting timeout scripts [ 282s] [ 252.525468] dracut-initqueue[460]: Warning: dracut-initqueue timeout - starting timeout scripts [ 282s] [ 252.532830] dracut-initqueue[460]: Warning: Could not boot. [ 282s] Starting Setup Virtual Console... [ 282s] [ OK ] Started Setup Virtual Console. [ 282s] Starting Dracut Emergency Shell... [ 282s] Warning: /dev/disk/by-uuid/00750419-b769-40be-aa7a-a81dca13c577 does not exist [ 282s] [ 282s] Generating "/run/initramfs/rdsosreport.txt" [ 283s] [ 283s] [ 283s] Entering emergency mode. Exit the shell to continue. [ 283s] Type "journalctl" to view system logs. [ 283s] You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot [ 283s] after mounting them and attach it to a bug report. [ 283s] [ 283s] [ 336s] dracut:/# ### WATCHDOG TRIGGERED, KILLING VM ### [ 337s] /var/cache/obs/worker/root_11/root: 20425 [ 337s] qemu-system-aarch64: terminating on signal 15 from pid 44921 () [ 337s] ### VM INTERACTION END ### [ 337s] /var/run/obs/worker/11/build/build-vm: line 458: kill: (20417) - No such process [ 337s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 337s] or the build host has a kernel or hardware problem... gave up after 11 failed build attempts... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 18:44:24 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 18:44:24 +0000 Subject: Build failure of network:osmocom:latest/osmo-msc in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5b15889e26de7_1c0261867c1843d3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-msc/Debian_9.0/aarch64 Package network:osmocom:latest/osmo-msc failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest osmo-msc Last lines of build log: [ 276s] [ 246.781658] dracut-initqueue[463]: Warning: dracut-initqueue timeout - starting timeout scripts [ 277s] [ 247.425924] dracut-initqueue[463]: Warning: dracut-initqueue timeout - starting timeout scripts [ 277s] [ 248.095851] dracut-initqueue[463]: Warning: dracut-initqueue timeout - starting timeout scripts [ 278s] [ 248.725892] dracut-initqueue[463]: Warning: dracut-initqueue timeout - starting timeout scripts [ 279s] [ 249.395415] dracut-initqueue[463]: Warning: dracut-initqueue timeout - starting timeout scripts [ 279s] [ 249.403087] dracut-initqueue[463]: Warning: Could not boot. [ 279s] Starting Setup Virtual Console... [ 279s] [ OK ] Started Setup Virtual Console. [ 279s] Starting Dracut Emergency Shell... [ 279s] Warning: /dev/disk/by-uuid/00750419-b769-40be-aa7a-a81dca13c577 does not exist [ 279s] [ 279s] Generating "/run/initramfs/rdsosreport.txt" [ 279s] [ 279s] [ 279s] Entering emergency mode. Exit the shell to continue. [ 279s] Type "journalctl" to view system logs. [ 279s] You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot [ 279s] after mounting them and attach it to a bug report. [ 279s] [ 279s] [ 334s] dracut:/# ### WATCHDOG TRIGGERED, KILLING VM ### [ 335s] /var/cache/obs/worker/root_11/root: 6417 [ 335s] qemu-system-aarch64: terminating on signal 15 from pid 33851 () [ 335s] ### VM INTERACTION END ### [ 335s] /var/run/obs/worker/11/build/build-vm: line 458: kill: (6409) - No such process [ 335s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 335s] or the build host has a kernel or hardware problem... gave up after 12 failed build attempts... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 18:47:50 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 18:47:50 +0000 Subject: Build failure of network:osmocom:latest/osmo-hlr in Debian_9.0/aarch64 In-Reply-To: References: Message-ID: <5b15896d5f904_1c0261867c1852c9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:latest/osmo-hlr/Debian_9.0/aarch64 Package network:osmocom:latest/osmo-hlr failed to build in Debian_9.0/aarch64 Check out the package for editing: osc checkout network:osmocom:latest osmo-hlr Last lines of build log: [ 272s] [ 246.735584] dracut-initqueue[465]: Warning: dracut-initqueue timeout - starting timeout scripts [ 273s] [ 247.392236] dracut-initqueue[465]: Warning: dracut-initqueue timeout - starting timeout scripts [ 274s] [ 248.050630] dracut-initqueue[465]: Warning: dracut-initqueue timeout - starting timeout scripts [ 274s] [ 248.725996] dracut-initqueue[465]: Warning: dracut-initqueue timeout - starting timeout scripts [ 275s] [ 249.375477] dracut-initqueue[465]: Warning: dracut-initqueue timeout - starting timeout scripts [ 275s] [ 249.382858] dracut-initqueue[465]: Warning: Could not boot. [ 275s] Starting Setup Virtual Console... [ 275s] [ OK ] Started Setup Virtual Console. [ 275s] Starting Dracut Emergency Shell... [ 275s] Warning: /dev/disk/by-uuid/00750419-b769-40be-aa7a-a81dca13c577 does not exist [ 275s] [ 275s] Generating "/run/initramfs/rdsosreport.txt" [ 275s] [ 275s] [ 275s] Entering emergency mode. Exit the shell to continue. [ 275s] Type "journalctl" to view system logs. [ 275s] You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot [ 275s] after mounting them and attach it to a bug report. [ 275s] [ 275s] [ 331s] dracut:/# ### WATCHDOG TRIGGERED, KILLING VM ### [ 331s] /var/cache/obs/worker/root_3/root: 26470 [ 331s] qemu-system-aarch64: terminating on signal 15 from pid 701 () [ 331s] ### VM INTERACTION END ### [ 331s] /var/run/obs/worker/3/build/build-vm: line 458: kill: (26463) - No such process [ 331s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 331s] or the build host has a kernel or hardware problem... gave up after 12 failed build attempts... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 19:52:50 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 19:52:50 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b1598ad9866d_1c0261867c19256f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_9.0/armv7l Package network:osmocom:nightly/libosmocore failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 61s] [91/217] installing kmod-23-2 [ 61s] [92/217] installing less-481-2.1 [ 62s] Processing triggers for mime-support (3.60) ... [ 62s] [93/217] installing libaudit1-1:2.6.7-2 [ 62s] Processing triggers for libc-bin (2.24-11+deb9u3) ... [ 62s] [94/217] installing libc6-dev-2.24-11+deb9u3 [ 64s] [95/217] installing libhogweed4-3.3-1+b2 [ 64s] Processing triggers for libc-bin (2.24-11+deb9u3) ... [ 64s] [96/217] installing libicu57-57.1-6+deb9u1 [ 67s] Processing triggers for libc-bin (2.24-11+deb9u3) ... [ 67s] [97/217] installing libmagic1-1:5.30-1+deb9u1 [ 67s] Processing triggers for libc-bin (2.24-11+deb9u3) ... [ 67s] [98/217] installing python2.7-minimal-2.7.13-2+deb9u2 [ 68s] Illegal instruction [ 68s] dpkg: error processing package python2.7-minimal (--install): [ 68s] subprocess installed post-installation script returned error exit status 132 [ 68s] Errors were encountered while processing: [ 68s] python2.7-minimal [ 68s] exit ... [ 68s] [ 68s] armbuild03 failed "build libosmocore_0.11.0.40.1fbe.dsc" at Mon Jun 4 19:52:46 UTC 2018. [ 68s] [ 68s] ### VM INTERACTION START ### [ 71s] [ 37.165965] SysRq : Power Off [ 71s] [ 37.184061] reboot: Power down [ 71s] ### VM INTERACTION END ### [ 71s] [ 71s] armbuild03 failed "build libosmocore_0.11.0.40.1fbe.dsc" at Mon Jun 4 19:52:49 UTC 2018. [ 71s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 20:09:25 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 20:09:25 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5b159c8a5cc16_1c0261867c193767@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/i586 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 140s] | #define HAVE_STRING_H 1 [ 140s] | #define HAVE_MEMORY_H 1 [ 140s] | #define HAVE_STRINGS_H 1 [ 140s] | #define HAVE_INTTYPES_H 1 [ 140s] | #define HAVE_STDINT_H 1 [ 140s] | #define HAVE_UNISTD_H 1 [ 140s] | #define HAVE_DLFCN_H 1 [ 140s] | #define LT_OBJDIR ".libs/" [ 140s] | #define STDC_HEADERS 1 [ 140s] | [ 140s] | configure: exit 0 [ 140s] [ 140s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 140s] make[1]: *** [override_dh_auto_test] Error 1 [ 140s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 140s] debian/rules:12: [ 132.524219] serial8250: too much work for irq4 [ 140s] recipe for target 'build' failed [ 140s] make: *** [build] Error 2 [ 140s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 140s] [ 140s] lamb54 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Mon Jun 4 20:09:13 UTC 2018. [ 140s] [ 140s] ### VM INTERACTION START ### [ 141s] Powering off. [ 141s] [ 133.727765] reboot: Power down [ 141s] ### VM INTERACTION END ### [ 141s] [ 141s] lamb54 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Mon Jun 4 20:09:15 UTC 2018. [ 141s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 4 20:16:17 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Jun 2018 20:16:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-pcu in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5b159e2b32e7d_1c0261867c1942d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-pcu/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-pcu failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-pcu Last lines of build log: [ 127s] | #define HAVE_STDLIB_H 1 [ 127s] | #define HAVE_STRING_H 1 [ 127s] | #define HAVE_MEMORY_H 1 [ 127s] | #define HAVE_STRINGS_H 1 [ 127s] | #define HAVE_INTTYPES_H 1 [ 127s] | #define HAVE_STDINT_H 1 [ 127s] | #define HAVE_UNISTD_H 1 [ 127s] | #define HAVE_DLFCN_H 1 [ 127s] | #define LT_OBJDIR ".libs/" [ 127s] | #define STDC_HEADERS 1 [ 127s] | [ 128s] | configure: exit 0 [ 128s] [ 128s] debian/rules:28: recipe for target 'override_dh_auto_test' failed [ 128s] make[1]: *** [override_dh_auto_test] Error 1 [ 128s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 128s] debian/rules:12: recipe for target 'build' failed [ 128s] make: *** [build] Error 2 [ 128s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 128s] [ 128s] lamb60 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Mon Jun 4 20:15:58 UTC 2018. [ 128s] [ 128s] ### VM INTERACTION START ### [ 129s] Powering off. [ 129s] [ 121.391798] reboot: Power down [ 129s] ### VM INTERACTION END ### [ 129s] [ 129s] lamb60 failed "build osmo-pcu_0.5.0.6.78ab.dsc" at Mon Jun 4 20:16:00 UTC 2018. [ 129s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jun 4 20:53:57 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 4 Jun 2018 20:53:57 +0000 Subject: Change in libosmocore[master]: Doxygen: gitignore generated files for libosmoctrl Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9444 Change subject: Doxygen: gitignore generated files for libosmoctrl ...................................................................... Doxygen: gitignore generated files for libosmoctrl Change-Id: Ia888d14c6e1f76374addd9b1ee66523f82fc06c9 --- M .gitignore 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/44/9444/1 diff --git a/.gitignore b/.gitignore index db17535..369277c 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ *-libtool Doxyfile.core +Doxyfile.ctrl Doxyfile.gsm Doxyfile.vty Doxyfile.codec @@ -71,6 +72,7 @@ doc/codec doc/coding doc/core +doc/ctrl doc/vty/latex doc/vty/html doc/vty/doxygen_sqlite3.db -- To view, visit https://gerrit.osmocom.org/9444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia888d14c6e1f76374addd9b1ee66523f82fc06c9 Gerrit-Change-Number: 9444 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:22:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:22:21 +0000 Subject: Change in libosmocore[master]: Doxygen: gitignore generated files for libosmoctrl In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9444 ) Change subject: Doxygen: gitignore generated files for libosmoctrl ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia888d14c6e1f76374addd9b1ee66523f82fc06c9 Gerrit-Change-Number: 9444 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 07:22:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:22:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:22:23 +0000 Subject: Change in libosmocore[master]: Doxygen: gitignore generated files for libosmoctrl In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9444 ) Change subject: Doxygen: gitignore generated files for libosmoctrl ...................................................................... Doxygen: gitignore generated files for libosmoctrl Change-Id: Ia888d14c6e1f76374addd9b1ee66523f82fc06c9 --- M .gitignore 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/.gitignore b/.gitignore index db17535..369277c 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ *-libtool Doxyfile.core +Doxyfile.ctrl Doxyfile.gsm Doxyfile.vty Doxyfile.codec @@ -71,6 +72,7 @@ doc/codec doc/coding doc/core +doc/ctrl doc/vty/latex doc/vty/html doc/vty/doxygen_sqlite3.db -- To view, visit https://gerrit.osmocom.org/9444 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia888d14c6e1f76374addd9b1ee66523f82fc06c9 Gerrit-Change-Number: 9444 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:22:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:22:43 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix log output In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9442 ) Change subject: cosmetic: fix log output ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibef16b455f2e122c8e5ff95240c4d7a654c56a39 Gerrit-Change-Number: 9442 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 07:22:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:22:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:22:45 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix log output In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9442 ) Change subject: cosmetic: fix log output ...................................................................... cosmetic: fix log output "unable to create connection resource error" sounds a bit strange. Lets just output "unable to create connection". Change-Id: Ibef16b455f2e122c8e5ff95240c4d7a654c56a39 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index c391fec..b403be0 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -721,7 +721,7 @@ error2: mgcp_endp_release(endp); LOGP(DLMGCP, LOGL_NOTICE, - "CRCX: endpoint:0x%x unable to create connection resource error\n", + "CRCX: endpoint:0x%x unable to create connection\n", ENDPOINT_NUMBER(endp)); return create_err_response(endp, error_code, "CRCX", p->trans); } -- To view, visit https://gerrit.osmocom.org/9442 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibef16b455f2e122c8e5ff95240c4d7a654c56a39 Gerrit-Change-Number: 9442 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:23:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:23:25 +0000 Subject: Change in osmo-mgw[master]: conn: call talloc_free before setting the pointer to NULL In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9441 ) Change subject: conn: call talloc_free before setting the pointer to NULL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7373819c3689d34811846f6f48f27568297b26e4 Gerrit-Change-Number: 9441 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 07:23:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:23:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:23:27 +0000 Subject: Change in osmo-mgw[master]: conn: call talloc_free before setting the pointer to NULL In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9441 ) Change subject: conn: call talloc_free before setting the pointer to NULL ...................................................................... conn: call talloc_free before setting the pointer to NULL in mgcp_rtp_codec_init() tallo_free is called after codec->subtype_name and codec->audio_name are set to NULL. So talloc_free() always sees NULL-pointers and never frees anything. This may cause a memory leak. - call talloc_free() first, then set pointers to NULL Change-Id: I7373819c3689d34811846f6f48f27568297b26e4 --- M src/libosmo-mgcp/mgcp_conn.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index a7cd6cf..4926768 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -91,6 +91,10 @@ /* Reset codec state and free memory */ static void mgcp_rtp_codec_init(struct mgcp_rtp_codec *codec) { + /* see also mgcp_sdp.c, mgcp_set_audio_info() */ + talloc_free(codec->subtype_name); + talloc_free(codec->audio_name); + codec->payload_type = -1; codec->subtype_name = NULL; codec->audio_name = NULL; @@ -98,10 +102,6 @@ codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; codec->rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; codec->channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; - - /* see also mgcp_sdp.c, mgcp_set_audio_info() */ - talloc_free(codec->subtype_name); - talloc_free(codec->audio_name); } /* Initialize rtp connection struct with default values */ -- To view, visit https://gerrit.osmocom.org/9441 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7373819c3689d34811846f6f48f27568297b26e4 Gerrit-Change-Number: 9441 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:25:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:25:14 +0000 Subject: Change in libosmo-sccp[master]: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9439 ) Change subject: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9439/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/#/c/9439/1/src/osmo_ss7.c at 1923 PS1, Line 1923: __attribute__((weak)) the introduction of a weak symbol for overloading is of course a bit controversial. I'm not sure what others think about this. We could of course also have a function pointer that can be overridden, or even have a function to register a function pointer (callback). What do you think? -- To view, visit https://gerrit.osmocom.org/9439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 Gerrit-Change-Number: 9439 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 05 Jun 2018 07:25:14 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 07:32:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 07:32:29 +0000 Subject: Change in osmo-bsc[master]: Ignore "dest" command in MSC node In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9433 to look at the new patch set (#3). Change subject: Ignore "dest" command in MSC node ...................................................................... Ignore "dest" command in MSC node In Change-Id I6b7354f3b23a26bb4eab12213ca3d3b614c8154f we removed the "dest" vty command, but we should simply ignore it and print a related warning during start. Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/9433/3 -- To view, visit https://gerrit.osmocom.org/9433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 Gerrit-Change-Number: 9433 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 09:39:41 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 09:39:41 +0000 Subject: Change in osmo-iuh[master]: asn1tostruct: allow to override build date In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9387 ) Change subject: asn1tostruct: allow to override build date ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5cfa465cc82f009f28dd7f12ced0e72a05fda842 Gerrit-Change-Number: 9387 Gerrit-PatchSet: 1 Gerrit-Owner: Bernhard M. Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jun 2018 09:39:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 09:42:39 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Tue, 5 Jun 2018 09:42:39 +0000 Subject: Change in osmo-pcu[master]: change log level of "DL packet loss" log messages Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9445 Change subject: change log level of "DL packet loss" log messages ...................................................................... change log level of "DL packet loss" log messages The TBF tests are failing on some machines due to unexpected log output: "DL packet loss of IMSI= / TLLI=0xffeeddcc: 0%" These messages are printed if >= 1 second has passed between loss reports. This timing is machine-dependent so the test is unstable as a result. Only print these messages at log level debug to (hopefully) make TBF tests pass consistently. Update expected test output accordingly. Change-Id: Ie43f0e3a8740f0fc132809a09a153886c51fadf9 --- M src/gprs_rlcmac_meas.cpp M tests/tbf/TbfTest.err 2 files changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/45/9445/1 diff --git a/src/gprs_rlcmac_meas.cpp b/src/gprs_rlcmac_meas.cpp index cffdbc6..f6448d5 100644 --- a/src/gprs_rlcmac_meas.cpp +++ b/src/gprs_rlcmac_meas.cpp @@ -154,7 +154,7 @@ if (!sum) return -EINVAL; - LOGP(DRLCMACMEAS, LOGL_INFO, "DL packet loss of IMSI=%s / TLLI=0x%08x: " + LOGP(DRLCMACMEAS, LOGL_DEBUG, "DL packet loss of IMSI=%s / TLLI=0x%08x: " "%d%%\n", tbf->imsi(), tbf->tlli(), tbf->m_bw.dl_loss_lost * 100 / sum); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 42b3b1c..e788ccc 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -6091,7 +6091,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) ack: (BSN=1176)"RRRRRRRRRRIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIRRRIRRRRRRRRRRRRRRRRRRRRRRRRRRI"(BSN=1287) R=ACK I=NACK TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) DL analysis, range=1176:1288, lost=73, recv=39, skipped=0, bsn=1944, info='RRRRRRRRRRRRRRRRRRRRRRRRRRLRRRLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRRRRRRRR................................................................................................................................................................................................................................................................................................................................................................................' TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1186)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAANAAAAAAAAAAAAAAAAAAAAAAAAAA"(V(S)-1=1287) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid -DL packet loss of IMSI= / TLLI=0xffeeddcc: 78% TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to RELEASING TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! -- To view, visit https://gerrit.osmocom.org/9445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie43f0e3a8740f0fc132809a09a153886c51fadf9 Gerrit-Change-Number: 9445 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 09:45:01 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 09:45:01 +0000 Subject: Change in osmo-pcu[master]: change log level of "DL packet loss" log messages In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9445 ) Change subject: change log level of "DL packet loss" log messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie43f0e3a8740f0fc132809a09a153886c51fadf9 Gerrit-Change-Number: 9445 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 09:45:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 09:46:39 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 09:46:39 +0000 Subject: Change in osmo-pcu[master]: change log level of "DL packet loss" log messages In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9445 ) Change subject: change log level of "DL packet loss" log messages ...................................................................... Patch Set 1: The LOG_LEVEL change is ok, as this messages seems not such important. -- To view, visit https://gerrit.osmocom.org/9445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie43f0e3a8740f0fc132809a09a153886c51fadf9 Gerrit-Change-Number: 9445 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: lynxis lazus Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 09:46:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 10:21:20 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 10:21:20 +0000 Subject: Change in osmo-ci[master]: README.md: mark the version bold Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9446 Change subject: README.md: mark the version bold ...................................................................... README.md: mark the version bold Some parts will fail if used with earlier version. Change-Id: Iab002a51afc2cc60875696eff0cd538ff9a49eca --- M ansible/README.md 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/46/9446/1 diff --git a/ansible/README.md b/ansible/README.md index 21763f4..15c6164 100644 --- a/ansible/README.md +++ b/ansible/README.md @@ -4,7 +4,7 @@ # How to use it? -- you need ansible installed (version 2.4, other might work as well) +- you need ansible installed (**version 2.4**, other might work as well) # How to setup the gsm-tester? -- To view, visit https://gerrit.osmocom.org/9446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iab002a51afc2cc60875696eff0cd538ff9a49eca Gerrit-Change-Number: 9446 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 10:21:21 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 10:21:21 +0000 Subject: Change in osmo-ci[master]: ansible: udhcpd: add systemd service file Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9447 Change subject: ansible: udhcpd: add systemd service file ...................................................................... ansible: udhcpd: add systemd service file The udhcpd /etc/init.d/ script is racy and fails often. Change-Id: Ie373119a902a001f093599e289cadb8b2d290668 Fixes: OS#3311 --- A ansible/roles/udhcpd/files/udhcpd.service M ansible/roles/udhcpd/tasks/main.yml 2 files changed, 30 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/47/9447/1 diff --git a/ansible/roles/udhcpd/files/udhcpd.service b/ansible/roles/udhcpd/files/udhcpd.service new file mode 100644 index 0000000..03c34c1 --- /dev/null +++ b/ansible/roles/udhcpd/files/udhcpd.service @@ -0,0 +1,13 @@ +[Unit] +Description=udhcpcd DHCP server +After=network-online.target +Wants=network-online.target + +[Service] +ExecStart=/usr/sbin/udhcpd -f +RestartSec=5 +Restart=always + +[Install] +WantedBy=multi-user.target + diff --git a/ansible/roles/udhcpd/tasks/main.yml b/ansible/roles/udhcpd/tasks/main.yml index 280a5ef..e444684 100644 --- a/ansible/roles/udhcpd/tasks/main.yml +++ b/ansible/roles/udhcpd/tasks/main.yml @@ -12,3 +12,20 @@ template: src: etc/udhcpd.conf dest: /etc/udhcpd.conf + +- name: copy systemd unit file + copy: + src: udhcpd.service + dest: /lib/systemd/system/udhcpd.service + register: udhcpdservice + +- name: systemctl daemon-reload + systemd: + daemon_reload: yes + when: udhcpdservice | changed + +- name: ensure the systemd service is installed + systemd: + name: udhcpd.service + state: started + enabled: yes -- To view, visit https://gerrit.osmocom.org/9447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie373119a902a001f093599e289cadb8b2d290668 Gerrit-Change-Number: 9447 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 11:42:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 11:42:29 +0000 Subject: Change in osmo-iuh[master]: asn1tostruct: allow to override build date In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9387 ) Change subject: asn1tostruct: allow to override build date ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5cfa465cc82f009f28dd7f12ced0e72a05fda842 Gerrit-Change-Number: 9387 Gerrit-PatchSet: 1 Gerrit-Owner: Bernhard M. Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jun 2018 11:42:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 11:42:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 11:42:31 +0000 Subject: Change in osmo-iuh[master]: asn1tostruct: allow to override build date In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9387 ) Change subject: asn1tostruct: allow to override build date ...................................................................... asn1tostruct: allow to override build date in order to make builds reproducible. See https://reproducible-builds.org/ for why this is good and https://reproducible-builds.org/specs/source-date-epoch/ for the definition of this variable. Also do not record build user name to not have it vary. Change-Id: I5cfa465cc82f009f28dd7f12ced0e72a05fda842 --- M asn1/utils/asn1tostruct.py 1 file changed, 3 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/asn1/utils/asn1tostruct.py b/asn1/utils/asn1tostruct.py index 0bba9dd..3c33980 100755 --- a/asn1/utils/asn1tostruct.py +++ b/asn1/utils/asn1tostruct.py @@ -4,6 +4,7 @@ import datetime import getopt import getpass +import time version = "0.5osmo1" @@ -33,11 +34,11 @@ print string def outputHeaderToFile(f, filename): - now = datetime.datetime.now() + now = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))) f.write("/*******************************************************************************\n") f.write(" * This file had been created by asn1tostruct.py script v%s\n" % (version)) f.write(" * Please do not modify this file but regenerate it via script.\n") - f.write(" * Created on: %s by %s\n * from %s\n" % (str(now), getpass.getuser(), filenames)) + f.write(" * Created on: %s\n * from %s\n" % (str(now), filenames)) f.write(" ******************************************************************************/\n") def lowerFirstCamelWord(word): -- To view, visit https://gerrit.osmocom.org/9387 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-iuh Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5cfa465cc82f009f28dd7f12ced0e72a05fda842 Gerrit-Change-Number: 9387 Gerrit-PatchSet: 1 Gerrit-Owner: Bernhard M. Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 11:43:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 11:43:00 +0000 Subject: Change in osmo-ci[master]: ansible: udhcpd: add systemd service file In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9447 ) Change subject: ansible: udhcpd: add systemd service file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie373119a902a001f093599e289cadb8b2d290668 Gerrit-Change-Number: 9447 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 11:43:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 11:43:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 11:43:13 +0000 Subject: Change in osmo-ci[master]: README.md: mark the version bold In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9446 ) Change subject: README.md: mark the version bold ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iab002a51afc2cc60875696eff0cd538ff9a49eca Gerrit-Change-Number: 9446 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 11:43:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 11:43:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 11:43:14 +0000 Subject: Change in osmo-ci[master]: README.md: mark the version bold In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9446 ) Change subject: README.md: mark the version bold ...................................................................... README.md: mark the version bold Some parts will fail if used with earlier version. Change-Id: Iab002a51afc2cc60875696eff0cd538ff9a49eca --- M ansible/README.md 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/README.md b/ansible/README.md index 21763f4..15c6164 100644 --- a/ansible/README.md +++ b/ansible/README.md @@ -4,7 +4,7 @@ # How to use it? -- you need ansible installed (version 2.4, other might work as well) +- you need ansible installed (**version 2.4**, other might work as well) # How to setup the gsm-tester? -- To view, visit https://gerrit.osmocom.org/9446 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iab002a51afc2cc60875696eff0cd538ff9a49eca Gerrit-Change-Number: 9446 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 11:43:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 11:43:39 +0000 Subject: Change in osmo-pcu[master]: change log level of "DL packet loss" log messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9445 ) Change subject: change log level of "DL packet loss" log messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie43f0e3a8740f0fc132809a09a153886c51fadf9 Gerrit-Change-Number: 9445 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jun 2018 11:43:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 11:43:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 11:43:40 +0000 Subject: Change in osmo-pcu[master]: change log level of "DL packet loss" log messages In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9445 ) Change subject: change log level of "DL packet loss" log messages ...................................................................... change log level of "DL packet loss" log messages The TBF tests are failing on some machines due to unexpected log output: "DL packet loss of IMSI= / TLLI=0xffeeddcc: 0%" These messages are printed if >= 1 second has passed between loss reports. This timing is machine-dependent so the test is unstable as a result. Only print these messages at log level debug to (hopefully) make TBF tests pass consistently. Update expected test output accordingly. Change-Id: Ie43f0e3a8740f0fc132809a09a153886c51fadf9 --- M src/gprs_rlcmac_meas.cpp M tests/tbf/TbfTest.err 2 files changed, 1 insertion(+), 2 deletions(-) Approvals: lynxis lazus: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_rlcmac_meas.cpp b/src/gprs_rlcmac_meas.cpp index cffdbc6..f6448d5 100644 --- a/src/gprs_rlcmac_meas.cpp +++ b/src/gprs_rlcmac_meas.cpp @@ -154,7 +154,7 @@ if (!sum) return -EINVAL; - LOGP(DRLCMACMEAS, LOGL_INFO, "DL packet loss of IMSI=%s / TLLI=0x%08x: " + LOGP(DRLCMACMEAS, LOGL_DEBUG, "DL packet loss of IMSI=%s / TLLI=0x%08x: " "%d%%\n", tbf->imsi(), tbf->tlli(), tbf->m_bw.dl_loss_lost * 100 / sum); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 42b3b1c..e788ccc 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -6091,7 +6091,6 @@ TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) ack: (BSN=1176)"RRRRRRRRRRIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIRRRIRRRRRRRRRRRRRRRRRRRRRRRRRRI"(BSN=1287) R=ACK I=NACK TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) DL analysis, range=1176:1288, lost=73, recv=39, skipped=0, bsn=1944, info='RRRRRRRRRRRRRRRRRRRRRRRRRRLRRRLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLRRRRRRRRRR................................................................................................................................................................................................................................................................................................................................................................................' TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) V(B): (V(A)=1186)"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNAAANAAAAAAAAAAAAAAAAAAAAAAAAAA"(V(S)-1=1287) A=Acked N=Nacked U=Unacked X=Resend-Unacked I=Invalid -DL packet loss of IMSI= / TLLI=0xffeeddcc: 78% TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=FLOW EGPRS) changes state from FLOW to RELEASING TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) free TBF(TFI=0 TLLI=0xffeeddcc DIR=DL STATE=RELEASING EGPRS) FIXME: Software error: Pending downlink assignment in state GPRS_RLCMAC_DL_ASS_SEND_ASS. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX! -- To view, visit https://gerrit.osmocom.org/9445 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie43f0e3a8740f0fc132809a09a153886c51fadf9 Gerrit-Change-Number: 9445 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 13:01:14 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 13:01:14 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9402 to look at the new patch set (#2). Change subject: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands ...................................................................... gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands This patch adds a control interface to osmo-gbproxy as well as the first two commands to query the state of each NSVC and gbproxy peer. The "ns-state" command replies with nsei, nsvci, local state, role, remote state of all NSVCs. The "gbproxy-state" command replies with nsei, bvci, mcc, mnc, lac, rac, and state of each peer. If there are no entries an error is returned. $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g ns-state Got message: b'GET_REPLY 23 gb-status 101,101,DEAD,BLOCKED,SGSN,DEAD,UNBLOCKED;' $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g gbproxy-state Got message: b'ERROR 23 No peers found' Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Ticket: OS#3281, SYS#4235 Sponsored-by: On-Waves ehf --- M include/osmocom/sgsn/gb_proxy.h M src/gprs/Makefile.am A src/gprs/gb_proxy_ctrl.c M src/gprs/gb_proxy_main.c 4 files changed, 132 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/02/9402/2 -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 13:02:27 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 13:02:27 +0000 Subject: Change in osmo-msc[master]: libmsc: Close connection after sending a service reject In-Reply-To: References: Message-ID: daniel has abandoned this change. ( https://gerrit.osmocom.org/6503 ) Change subject: libmsc: Close connection after sending a service reject ...................................................................... Abandoned I think this was fixed by the fsm changes from Neels -- To view, visit https://gerrit.osmocom.org/6503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Idfa39fdbe5bb764f8ea2bbf8c5442e15e01cadbb Gerrit-Change-Number: 6503 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 13:04:41 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 13:04:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: L3_Templates: tr_GMM_DET_REQ_MT: use * instead of omit for `cause` In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9362 ) Change subject: L3_Templates: tr_GMM_DET_REQ_MT: use * instead of omit for `cause` ...................................................................... L3_Templates: tr_GMM_DET_REQ_MT: use * instead of omit for `cause` The omit force this field to be not present, while a * allows to be present or not. As user of this tr I would expect to ignore this field rather than an explicit omit. Change-Id: Iae91f752789273934a6382bdd474594c3c50bbe9 --- M library/L3_Templates.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index b346da6..d0f1406 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -2191,7 +2191,7 @@ template PDU_L3_SGSN_MS tr_GMM_DET_REQ_MT( template BIT3 dtt := *, template BIT3 forceToStandby := ?, - template OCT1 cause := omit) := { + template OCT1 cause := *) := { discriminator := '1000'B, tiOrSkip := { skipIndicator := '0000'B -- To view, visit https://gerrit.osmocom.org/9362 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iae91f752789273934a6382bdd474594c3c50bbe9 Gerrit-Change-Number: 9362 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 13:06:15 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 13:06:15 +0000 Subject: Change in osmo-sgsn[master]: gprs_gmm: Cancel Location: use detach type IMSI In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9254 ) Change subject: gprs_gmm: Cancel Location: use detach type IMSI ...................................................................... gprs_gmm: Cancel Location: use detach type IMSI The detach type network side is defined as - Reattach required - Reattach not required - IMSI detach (after VLR failure) IMSI detach seems to be more close. Howeever the standard isn't clear about this. Change-Id: I27da6dc5165819cccd1ae0a98b132b45a01f38bb --- M src/gprs/gprs_gmm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs/gprs_gmm.c b/src/gprs/gprs_gmm.c index 57d3883..6a5c5d9 100644 --- a/src/gprs/gprs_gmm.c +++ b/src/gprs/gprs_gmm.c @@ -1150,7 +1150,7 @@ get_value_string(gsm48_gmm_cause_names, gmm_cause), gmm_cause); gsm48_tx_gmm_detach_req( - ctx, GPRS_DET_T_MT_REATT_NOTREQ, gmm_cause); + ctx, GPRS_DET_T_MT_IMSI, gmm_cause); mm_ctx_cleanup_free(ctx, "auth lost"); break; -- To view, visit https://gerrit.osmocom.org/9254 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I27da6dc5165819cccd1ae0a98b132b45a01f38bb Gerrit-Change-Number: 9254 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 13:29:00 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 13:29:00 +0000 Subject: Change in osmo-sysmon[master]: Remove unused function Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9448 Change subject: Remove unused function ...................................................................... Remove unused function Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 --- M osysmon_main.c 1 file changed, 0 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/48/9448/1 diff --git a/osysmon_main.c b/osysmon_main.c index d50fd00..eaed1a9 100644 --- a/osysmon_main.c +++ b/osysmon_main.c @@ -110,15 +110,6 @@ } } -static void exit_help(void) -{ - printf("Usage:\n"); - printf("\tosmo-ctrl-client HOST PORT get VARIABLE\n"); - printf("\tosmo-ctrl-client HOST PORT set VARIABLE VALUE\n"); - printf("\tosmo-ctrl-client HOST PORT monitor\n"); - exit(2); -} - int main(int argc, char **argv) { int rc; -- To view, visit https://gerrit.osmocom.org/9448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 Gerrit-Change-Number: 9448 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 13:29:00 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 13:29:00 +0000 Subject: Change in osmo-sysmon[master]: Fix compilation issue on my machine, remove unused include Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9449 Change subject: Fix compilation issue on my machine, remove unused include ...................................................................... Fix compilation issue on my machine, remove unused include Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 --- M osysmon.h 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/49/9449/1 diff --git a/osysmon.h b/osysmon.h index 45647b1..735b11e 100644 --- a/osysmon.h +++ b/osysmon.h @@ -5,7 +5,6 @@ #include #include -#include #include "value_node.h" -- To view, visit https://gerrit.osmocom.org/9449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 Gerrit-Change-Number: 9449 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:21:57 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 5 Jun 2018 14:21:57 +0000 Subject: Change in libosmo-abis[master]: Revert "ortp: make sure the ortp scheduler is started" Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9450 Change subject: Revert "ortp: make sure the ortp scheduler is started" ...................................................................... Revert "ortp: make sure the ortp scheduler is started" We discovered that enabling the scheduler caused a segfault on the ARM build of osmo-bts. So we have to revert the following two changes: Change-Id I3a63c23f5ede47773b6a249a48ecebd5d3b45ace Change-Id I4b8f0349d5503bbe53745cc8903beb26f149f219 This reverts commit 7632278ea36c25eaa0d8e35fa0ee102ec05dc802. Change-Id: Ie375b9eb0dc8ec4f8d4ca12940a7bc5dfc1f6235 Related: OS#3299 --- M src/trau/osmo_ortp.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/50/9450/1 diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index 13e2478..cc8e473 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -291,7 +291,6 @@ ortp_set_log_handler(my_ortp_logfn); create_payload_types(); - ortp_scheduler_init(); } /*! \brief Set Osmocom RTP socket parameters -- To view, visit https://gerrit.osmocom.org/9450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie375b9eb0dc8ec4f8d4ca12940a7bc5dfc1f6235 Gerrit-Change-Number: 9450 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:21:58 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 5 Jun 2018 14:21:58 +0000 Subject: Change in libosmo-abis[master]: Revert "ortp: enable scheduled mode on rtp socket creation" Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9451 Change subject: Revert "ortp: enable scheduled mode on rtp socket creation" ...................................................................... Revert "ortp: enable scheduled mode on rtp socket creation" We discovered that enabling the scheduler caused a segfault on the ARM build of osmo-bts. So we have to revert the following two changes: Change-Id I3a63c23f5ede47773b6a249a48ecebd5d3b45ace Change-Id I4b8f0349d5503bbe53745cc8903beb26f149f219 This reverts commit 5a236ce1d414625476d0c0f652ecbe0eb2bbeaf1. Change-Id: Ic81062d79a304038a50658b955f7d05edb3fa28e Related: OS#3299 --- M src/trau/osmo_ortp.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/51/9451/1 diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index cc8e473..d8f4abf 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -350,7 +350,6 @@ rtp_session_set_data(rs->sess, rs); rtp_session_set_profile(rs->sess, osmo_pt_profile); rtp_session_set_jitter_compensation(rs->sess, 100); - rtp_session_set_scheduling_mode(rs->sess, TRUE); rtp_session_signal_connect(rs->sess, "ssrc_changed", (RtpCallback) ortp_sig_cb_ssrc, -- To view, visit https://gerrit.osmocom.org/9451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic81062d79a304038a50658b955f7d05edb3fa28e Gerrit-Change-Number: 9451 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:51:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 14:51:50 +0000 Subject: Change in libosmo-abis[master]: Revert "ortp: make sure the ortp scheduler is started" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9450 ) Change subject: Revert "ortp: make sure the ortp scheduler is started" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie375b9eb0dc8ec4f8d4ca12940a7bc5dfc1f6235 Gerrit-Change-Number: 9450 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jun 2018 14:51:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:51:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 14:51:51 +0000 Subject: Change in libosmo-abis[master]: Revert "ortp: enable scheduled mode on rtp socket creation" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9451 ) Change subject: Revert "ortp: enable scheduled mode on rtp socket creation" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic81062d79a304038a50658b955f7d05edb3fa28e Gerrit-Change-Number: 9451 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 05 Jun 2018 14:51:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:51:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 14:51:52 +0000 Subject: Change in libosmo-abis[master]: Revert "ortp: make sure the ortp scheduler is started" In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9450 ) Change subject: Revert "ortp: make sure the ortp scheduler is started" ...................................................................... Revert "ortp: make sure the ortp scheduler is started" We discovered that enabling the scheduler caused a segfault on the ARM build of osmo-bts. So we have to revert the following two changes: Change-Id I3a63c23f5ede47773b6a249a48ecebd5d3b45ace Change-Id I4b8f0349d5503bbe53745cc8903beb26f149f219 This reverts commit 7632278ea36c25eaa0d8e35fa0ee102ec05dc802. Change-Id: Ie375b9eb0dc8ec4f8d4ca12940a7bc5dfc1f6235 Related: OS#3299 --- M src/trau/osmo_ortp.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index 13e2478..cc8e473 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -291,7 +291,6 @@ ortp_set_log_handler(my_ortp_logfn); create_payload_types(); - ortp_scheduler_init(); } /*! \brief Set Osmocom RTP socket parameters -- To view, visit https://gerrit.osmocom.org/9450 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie375b9eb0dc8ec4f8d4ca12940a7bc5dfc1f6235 Gerrit-Change-Number: 9450 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:51:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 14:51:53 +0000 Subject: Change in libosmo-abis[master]: Revert "ortp: enable scheduled mode on rtp socket creation" In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9451 ) Change subject: Revert "ortp: enable scheduled mode on rtp socket creation" ...................................................................... Revert "ortp: enable scheduled mode on rtp socket creation" We discovered that enabling the scheduler caused a segfault on the ARM build of osmo-bts. So we have to revert the following two changes: Change-Id I3a63c23f5ede47773b6a249a48ecebd5d3b45ace Change-Id I4b8f0349d5503bbe53745cc8903beb26f149f219 This reverts commit 5a236ce1d414625476d0c0f652ecbe0eb2bbeaf1. Change-Id: Ic81062d79a304038a50658b955f7d05edb3fa28e Related: OS#3299 --- M src/trau/osmo_ortp.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index cc8e473..d8f4abf 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -350,7 +350,6 @@ rtp_session_set_data(rs->sess, rs); rtp_session_set_profile(rs->sess, osmo_pt_profile); rtp_session_set_jitter_compensation(rs->sess, 100); - rtp_session_set_scheduling_mode(rs->sess, TRUE); rtp_session_signal_connect(rs->sess, "ssrc_changed", (RtpCallback) ortp_sig_cb_ssrc, -- To view, visit https://gerrit.osmocom.org/9451 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic81062d79a304038a50658b955f7d05edb3fa28e Gerrit-Change-Number: 9451 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:52:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 14:52:22 +0000 Subject: Change in osmo-sysmon[master]: Remove unused function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9448 ) Change subject: Remove unused function ...................................................................... Patch Set 1: well, it serves as a reminder that we still need a help output ;) -- To view, visit https://gerrit.osmocom.org/9448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 Gerrit-Change-Number: 9448 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 14:52:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 14:52:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 14:52:36 +0000 Subject: Change in osmo-sysmon[master]: Fix compilation issue on my machine, remove unused include In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9449 ) Change subject: Fix compilation issue on my machine, remove unused include ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 Gerrit-Change-Number: 9449 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 14:52:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 15:52:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 15:52:31 +0000 Subject: Change in osmo-sysmon[master]: Fix compilation issue on my machine, remove unused include In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9449 ) Change subject: Fix compilation issue on my machine, remove unused include ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 Gerrit-Change-Number: 9449 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 15:52:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 5 16:10:42 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 5 Jun 2018 16:10:42 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-iuh_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1310?= Message-ID: <18783009.350.1528215042872.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 715.24 KB...] ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberC { ^~~~~~~~~~~~~ CC RANAP_SourceRNC-ID.lo CC RANAP_SourceRNC-ToTargetRNC-TransparentContainer.lo CC RANAP_IRAT-Measurement-Configuration.lo CC RANAP_IRATmeasurementParameters.lo CC RANAP_RSRQ-Type.lo CC RANAP_RSRQ-Extension.lo CC RANAP_EUTRANFrequencies.lo CC RANAP_MeasBand.lo CC RANAP_SubscriberProfileIDforRFP.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from ../../include/osmocom/ranap/RANAP_IRATmeasurementParameters.h:15, from RANAP_IRATmeasurementParameters.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: ?struct MemberJ? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberJ { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberJ { ^~~~~~~~~~~~~ In file included from :8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from ../../include/osmocom/ranap/RANAP_IRATmeasurementParameters.h:15, from ../../include/osmocom/ranap/RANAP_IRAT-Measurement-Configuration.h:15, from RANAP_IRAT-Measurement-Configuration.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: ?struct MemberJ? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberJ { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberJ { ^~~~~~~~~~~~~ CC RANAP_SourceStatisticsDescriptor.lo CC RANAP_SupportedRAB-ParameterBitrateList.lo CC RANAP_SupportedBitrate.lo CC RANAP_SourceUTRANCellID.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from RANAP_EUTRANFrequencies.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: ?struct MemberJ? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberJ { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberJ { ^~~~~~~~~~~~~ CC RANAP_SRB-ID.lo CC RANAP_SRB-TrCH-Mapping.lo CC RANAP_SRB-TrCH-MappingItem.lo CC RANAP_SRVCC-HO-Indication.lo CC RANAP_SRVCC-Information.lo CC RANAP_SRVCC-Operation-Possible.lo CC RANAP_SubflowSDU-Size.lo CC RANAP_TAC.lo CC RANAP_TAI.lo CC RANAP_Target-ToSource-TransparentContainer.lo CC RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.lo CC RANAP_TargetBSS-ToSourceBSS-TransparentContainer.lo CC RANAP_TargetCellId.lo CC RANAP_TargetID.lo CC RANAP_TargetENB-ID.lo CC RANAP_TargetRNC-ID.lo CC RANAP_TargetRNC-ToSourceRNC-TransparentContainer.lo CC RANAP_TBCD-STRING.lo CC RANAP_TemporaryUE-ID.lo CC RANAP_Time-UE-StayedInCell.lo CC RANAP_Time-UE-StayedInCell-EnhancedGranularity.lo CC RANAP_TimeToMBMSDataTransfer.lo CC RANAP_TimingDifferenceULDL.lo CC RANAP_TMGI.lo CC RANAP_TMSI.lo CC RANAP_TraceDepth.lo CC RANAP_TraceInformation.lo CC RANAP_TracePropagationParameters.lo CC RANAP_TraceRecordingSessionInformation.lo CC RANAP_TraceRecordingSessionReference.lo CC RANAP_TraceReference.lo CC RANAP_TraceType.lo CC RANAP_TrafficClass.lo CC RANAP_TrafficHandlingPriority.lo CC RANAP_TransferDelay.lo CC RANAP_UnsuccessfullyTransmittedDataVolume.lo CC RANAP_TransportLayerAddress.lo CC RANAP_TrCH-ID.lo CC RANAP_TrCH-ID-List.lo CC RANAP_TriggerID.lo CC RANAP_TunnelInformation.lo CC RANAP_TypeOfError.lo CC RANAP_UE-AggregateMaximumBitRate.lo CC RANAP_UE-AggregateMaximumBitRateDownlink.lo CC RANAP_UE-AggregateMaximumBitRateUplink.lo CC RANAP_UE-History-Information.lo CC RANAP_UE-ID.lo CC RANAP_UESBI-Iu.lo CC RANAP_UESBI-IuA.lo CC RANAP_UESBI-IuB.lo CC RANAP_UL-GTP-PDU-SequenceNumber.lo CC RANAP_UL-N-PDU-SequenceNumber.lo CC RANAP_UPInformation.lo CC RANAP_UPInitialisationFrame.lo CC RANAP_UP-ModeVersions.lo CC RANAP_USCH-ID.lo CC RANAP_UserPlaneMode.lo CC RANAP_UTRAN-CellID.lo CC RANAP_VelocityEstimate.lo CC RANAP_HorizontalVelocity.lo CC RANAP_HorizontalWithVerticalVelocity.lo CC RANAP_HorizontalVelocityWithUncertainty.lo CC RANAP_HorizontalWithVerticalVelocityAndUncertainty.lo CC RANAP_HorizontalSpeedAndBearing.lo CC RANAP_VerticalVelocity.lo CC RANAP_VerticalSpeedDirection.lo CC RANAP_VerticalAccuracyCode.lo CC RANAP_VoiceSupportMatchIndicator.lo CC RANAP_RANAP-PDU.lo CC RANAP_InitiatingMessage.lo CC RANAP_SuccessfulOutcome.lo CC RANAP_UnsuccessfulOutcome.lo CC RANAP_Outcome.lo CC RANAP_Iu-ReleaseCommand.lo CC RANAP_Iu-ReleaseComplete.lo CC RANAP_RelocationRequired.lo CC RANAP_RelocationCommand.lo CC RANAP_RelocationPreparationFailure.lo CC RANAP_RelocationRequest.lo CC RANAP_RelocationRequestAcknowledge.lo CC RANAP_RelocationFailure.lo CC RANAP_RelocationCancel.lo CC RANAP_RelocationCancelAcknowledge.lo CC RANAP_SRNS-ContextRequest.lo CC RANAP_RAB-DataForwardingList-SRNS-CtxReq.lo CC RANAP_DataVolumeReportRequest.lo CC RANAP_SRNS-ContextResponse.lo CC RANAP_SecurityModeCommand.lo CC RANAP_SecurityModeComplete.lo CC RANAP_SecurityModeReject.lo CC RANAP_DataVolumeReport.lo CC RANAP_Reset.lo CC RANAP_ResetAcknowledge.lo CC RANAP_RAB-ReleaseRequest.lo CC RANAP_RedirectionIndication.lo CC RANAP_RAB-ReleaseList.lo CC RANAP_Iu-ReleaseRequest.lo CC RANAP_RelocationDetect.lo CC RANAP_RelocationComplete.lo CC RANAP_Paging.lo CC RANAP_CommonID.lo CC RANAP_CN-InvokeTrace.lo CC RANAP_CN-DeactivateTrace.lo CC RANAP_LocationReportingControl.lo CC RANAP_LocationReport.lo CC RANAP_InitialUE-Message.lo CC RANAP_DirectTransfer.lo CC RANAP_Overload.lo CC RANAP_ErrorIndication.lo CC RANAP_SRNS-DataForwardCommand.lo CC RANAP_ForwardSRNS-Context.lo CC RANAP_RAB-AssignmentRequest.lo CC RANAP_RAB-SetupOrModifyList.lo CC RANAP_RAB-AssignmentResponse.lo CC RANAP_PrivateMessage.lo CC RANAP_ResetResource.lo CC RANAP_ResetResourceAcknowledge.lo CC RANAP_RANAP-RelocationInformation.lo CC RANAP_RAB-ModifyRequest.lo CC RANAP_LocationRelatedDataRequest.lo CC RANAP_LocationRelatedDataResponse.lo CC RANAP_LocationRelatedDataFailure.lo CC RANAP_InformationTransferIndication.lo CC RANAP_InformationTransferConfirmation.lo CC RANAP_InformationTransferFailure.lo CC RANAP_UESpecificInformationIndication.lo CC RANAP_DirectInformationTransfer.lo CC RANAP_UplinkInformationExchangeRequest.lo CC RANAP_UplinkInformationExchangeResponse.lo CC RANAP_UplinkInformationExchangeFailure.lo CC RANAP_MBMSSessionStart.lo CC RANAP_MBMSSessionStartResponse.lo CC RANAP_MBMSSessionUpdate.lo CC RANAP_MBMSSessionStartFailure.lo CC RANAP_MBMSSessionUpdateResponse.lo CC RANAP_MBMSSessionUpdateFailure.lo CC RANAP_MBMSSessionStop.lo CC RANAP_MBMSSessionStopResponse.lo CC RANAP_MBMSUELinkingRequest.lo CC RANAP_MBMSUELinkingResponse.lo CC RANAP_MBMSRegistrationRequest.lo CC RANAP_MBMSRegistrationResponse.lo CC RANAP_MBMSRegistrationFailure.lo CC RANAP_MBMSCNDe-RegistrationRequest.lo CC RANAP_MBMSCNDe-RegistrationResponse.lo CC RANAP_MBMSRABEstablishmentIndication.lo CC RANAP_MBMSRABReleaseRequest.lo CC RANAP_MBMSRABRelease.lo CC RANAP_MBMSRABReleaseFailure.lo CC RANAP_EnhancedRelocationCompleteRequest.lo CC RANAP_EnhancedRelocationCompleteResponse.lo CC RANAP_EnhancedRelocationCompleteFailure.lo CC RANAP_EnhancedRelocationCompleteConfirm.lo CC RANAP_RANAP-EnhancedRelocationInformationRequest.lo CC RANAP_RANAP-EnhancedRelocationInformationResponse.lo CC RANAP_SRVCC-CSKeysRequest.lo CC RANAP_SRVCC-CSKeysResponse.lo CC RANAP_UeRadioCapabilityMatchRequest.lo CC RANAP_UeRadioCapabilityMatchResponse.lo CC RANAP_ProtocolExtensionContainer.lo CC RANAP_IE.lo CC RANAP_ProtocolExtensionField.lo CC RANAP_ProtocolIE-Container.lo CC RANAP_ProtocolIE-FieldPair.lo CC RANAP_RAB-IE-ContainerList.lo CC RANAP_ProtocolIE-ContainerPair.lo CC RANAP_RAB-IE-ContainerPairList.lo CC RANAP_ProtocolError-IE-ContainerList.lo CC RANAP_IuSigConId-IE-ContainerList.lo CC RANAP_DirectTransfer-IE-ContainerList.lo CC RANAP_DataVolumeReportList.lo CC RANAP_RAB-ReleasedList-IuRelComp.lo CC RANAP_RAB-RelocationReleaseList.lo CC RANAP_RAB-DataForwardingList.lo CC RANAP_RAB-SetupList-RelocReq.lo CC RANAP_RAB-SetupList-RelocReqAck.lo /bin/bash: line 1: 25684 Illegal instruction /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.3.0.1-7a97f\" -DPACKAGE_STRING=\"osmo-iuh\ 0.3.0.1-7a97f\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-iuh\" -DVERSION=\"0.3.0.1-7a97f\" -DSTDC_HEADERS=1 -I. -fsanitize=address -fsanitize=undefined -Wall -I../../include -I -I -I -g -O2 -fsanitize=address -fsanitize=undefined -Wall -MT RANAP_RAB-ReleasedList-IuRelComp.lo -MD -MP -MF .deps/RANAP_RAB-ReleasedList-IuRelComp.Tpo -c -o RANAP_RAB-ReleasedList-IuRelComp.lo RANAP_RAB-ReleasedList-IuRelComp.c Makefile:2505: recipe for target 'RANAP_RAB-ReleasedList-IuRelComp.lo' failed make[4]: *** [RANAP_RAB-ReleasedList-IuRelComp.lo] Error 132 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory ' Makefile:641: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory ' Makefile:453: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory ' Makefile:454: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:378: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:50:32 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 16:50:32 +0000 Subject: Change in osmo-sysmon[master]: Fix compilation issue on my machine, remove unused include In-Reply-To: References: Message-ID: Hello Harald Welte, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9449 to look at the new patch set (#3). Change subject: Fix compilation issue on my machine, remove unused include ...................................................................... Fix compilation issue on my machine, remove unused include Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 --- M osysmon.h 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/49/9449/3 -- To view, visit https://gerrit.osmocom.org/9449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 Gerrit-Change-Number: 9449 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:50:32 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 16:50:32 +0000 Subject: Change in osmo-sysmon[master]: Remove unused last_value handling code Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9452 Change subject: Remove unused last_value handling code ...................................................................... Remove unused last_value handling code Change-Id: I14cc5883af8ae73bc462ed714ef38c8ee1444cc6 --- M osysmon_ctrl.c 1 file changed, 1 insertion(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/52/9452/1 diff --git a/osysmon_ctrl.c b/osysmon_ctrl.c index b13b13b..15521aa 100644 --- a/osysmon_ctrl.c +++ b/osysmon_ctrl.c @@ -63,8 +63,6 @@ /* display name, if any */ const char *display_name; } cfg; - /* most recent value we received for this */ - char *last_value; }; static struct ctrl_client *ctrl_client_find(struct osysmon_state *os, const char *name) @@ -275,27 +273,14 @@ cc->sch = simple_ctrl_open(cc, cc->cfg.remote_host, cc->cfg.remote_port, 1000); /* abort, if that failed */ if (!cc->sch) { - llist_for_each_entry(ccgv, &cc->get_vars, list) { - if (ccgv->last_value) { - talloc_free(ccgv->last_value); - ccgv->last_value = talloc_strdup(ccgv, ""); - } - } return -1; } llist_for_each_entry(ccgv, &cc->get_vars, list) { char *value = simple_ctrl_get(cc->sch, ccgv->cfg.name); -#if 0 - if (ccgv->last_value) { - talloc_free(ccgv->last_value); - ccgv->last_value = NULL; - } - ccgv->last_value = value; -#else + value_node_add(vn_clnt, vn_clnt, ccgv->cfg.name, value); free(value); /* no talloc, this is from sscanf() */ -#endif } return 0; } -- To view, visit https://gerrit.osmocom.org/9452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I14cc5883af8ae73bc462ed714ef38c8ee1444cc6 Gerrit-Change-Number: 9452 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:50:33 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 16:50:33 +0000 Subject: Change in osmo-sysmon[master]: Add zero termination char to received ctrl cmd message Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9453 Change subject: Add zero termination char to received ctrl cmd message ...................................................................... Add zero termination char to received ctrl cmd message The terminating NULL byte is not part of the ctrl message, so add it afterwards. Change-Id: Ieaa9b3e2516d301ba45b6f3ec61870e928ed0cc6 --- M simple_ctrl.c 1 file changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/53/9453/1 diff --git a/simple_ctrl.c b/simple_ctrl.c index e585fac..5c339b4 100644 --- a/simple_ctrl.c +++ b/simple_ctrl.c @@ -173,7 +173,7 @@ } len = ntohs(hh.len); - resp = msgb_alloc(len+sizeof(hh), "CTRL Rx"); + resp = msgb_alloc(len+sizeof(hh)+1, "CTRL Rx"); if (!resp) return NULL; resp->l1h = msgb_put(resp, sizeof(hh)); @@ -196,6 +196,7 @@ struct msgb *resp; struct ipaccess_head *ih; struct ipaccess_head_ext *ihe; + unsigned char *tmp; /* loop until we've received a CTRL message */ while (true) { @@ -207,9 +208,12 @@ if (ih->proto == IPAC_PROTO_OSMO) resp->l2h = resp->l2h+1; ihe = (struct ipaccess_head_ext*) (resp->l1h + sizeof(*ih)); - if (ih->proto == IPAC_PROTO_OSMO && ihe->proto == IPAC_PROTO_EXT_CTRL) + if (ih->proto == IPAC_PROTO_OSMO && ihe->proto == IPAC_PROTO_EXT_CTRL) { + /* Ensure data is NULL terminated */ + tmp = msgb_put(resp, 1); + *tmp = '\0'; return resp; - else { + } else { fprintf(stderr, "unknown IPA message %s\n", msgb_hexdump(resp)); msgb_free(resp); } @@ -246,7 +250,6 @@ return NULL; /* FIXME: ignore any TRAP */ - /* FIXME: check string is zero-terminated */ return simple_ctrl_receive(sch); } -- To view, visit https://gerrit.osmocom.org/9453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ieaa9b3e2516d301ba45b6f3ec61870e928ed0cc6 Gerrit-Change-Number: 9453 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:50:33 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 16:50:33 +0000 Subject: Change in osmo-sysmon[master]: Disconnect properly on errors so we can reconnect Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9454 Change subject: Disconnect properly on errors so we can reconnect ...................................................................... Disconnect properly on errors so we can reconnect Change-Id: Id134be34a24e91a4c0b8a8d11cf4df9593dae687 --- M osysmon_ctrl.c 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/54/9454/1 diff --git a/osysmon_ctrl.c b/osysmon_ctrl.c index 15521aa..25c2b4c 100644 --- a/osysmon_ctrl.c +++ b/osysmon_ctrl.c @@ -279,6 +279,15 @@ llist_for_each_entry(ccgv, &cc->get_vars, list) { char *value = simple_ctrl_get(cc->sch, ccgv->cfg.name); + /* FIXME: Distinguish between ERROR reply and + * connection issues */ + /* Close connection on error */ + if (!value) { + simple_ctrl_close(cc->sch); + cc->sch = NULL; + return 0; + } + value_node_add(vn_clnt, vn_clnt, ccgv->cfg.name, value); free(value); /* no talloc, this is from sscanf() */ } -- To view, visit https://gerrit.osmocom.org/9454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id134be34a24e91a4c0b8a8d11cf4df9593dae687 Gerrit-Change-Number: 9454 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:51:14 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 16:51:14 +0000 Subject: Change in osmo-sysmon[master]: Remove unused function In-Reply-To: References: Message-ID: daniel has abandoned this change. ( https://gerrit.osmocom.org/9448 ) Change subject: Remove unused function ...................................................................... Abandoned Fair enough :-) -- To view, visit https://gerrit.osmocom.org/9448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 Gerrit-Change-Number: 9448 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:51:39 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 16:51:39 +0000 Subject: Change in osmo-sysmon[master]: Fix compilation issue on my machine, remove unused include In-Reply-To: References: Message-ID: daniel has submitted this change and it was merged. ( https://gerrit.osmocom.org/9449 ) Change subject: Fix compilation issue on my machine, remove unused include ...................................................................... Fix compilation issue on my machine, remove unused include Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 --- M osysmon.h 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/osysmon.h b/osysmon.h index 45647b1..735b11e 100644 --- a/osysmon.h +++ b/osysmon.h @@ -5,7 +5,6 @@ #include #include -#include #include "value_node.h" -- To view, visit https://gerrit.osmocom.org/9449 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id4042804e3c490daa61bf6ec06c13838d68d2f68 Gerrit-Change-Number: 9449 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:32 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:32 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: only check once the apt freshness Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9455 Change subject: ansible: gsm-tester: only check once the apt freshness ...................................................................... ansible: gsm-tester: only check once the apt freshness Change-Id: I40462fed216b1c0844a41172001dd2aaf8a8d04c --- M ansible/roles/gsm-tester/tasks/main.yml 1 file changed, 6 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/55/9455/1 diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 2b00270..73eca40 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -1,11 +1,15 @@ --- # gsm tester would only need the libraries, not the dev packages. # But the name of the -dev packages are more stable over multiple release. + +- name: update apt + apt: + cache_valid_time: 3600 + update_cache: yes + - name: install osmocom runtime dependencies apt: name: "{{ item }}" - cache_valid_time: 3600 - update_cache: yes with_items: - build-essential - git @@ -35,20 +39,14 @@ apt: name: ofono state: build-dep - cache_valid_time: 3600 - update_cache: yes - name: install libqmi-glib a dependency of sysmocom ofono apt: name: libqmi-glib-dev - cache_valid_time: 3600 - update_cache: yes - name: install uhub dependencies apt: name: "{{ item }}" - cache_valid_time: 3600 - update_cache: yes with_items: - libusb-1.0-0-dev @@ -111,8 +109,6 @@ - name: install gsm tester dependencies apt: name: "{{ item }}" - cache_valid_time: 3600 - update_cache: yes with_items: - dbus - tcpdump -- To view, visit https://gerrit.osmocom.org/9455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I40462fed216b1c0844a41172001dd2aaf8a8d04c Gerrit-Change-Number: 9455 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:32 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:32 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add missing python dependencies Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9456 Change subject: ansible: gsm-tester: add missing python dependencies ...................................................................... ansible: gsm-tester: add missing python dependencies Change-Id: I0871df95a968f8f9e9318882c5397a16cba1814a --- M ansible/roles/gsm-tester/tasks/main.yml 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/56/9456/1 diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 73eca40..1840769 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -131,6 +131,8 @@ with_items: - "git+https://github.com/podshumok/python-smpplib.git at master#egg=smpplib" - pydbus + - pyusb + - pysispm tags: [pip] - name: create group osmo-gsm-tester -- To view, visit https://gerrit.osmocom.org/9456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0871df95a968f8f9e9318882c5397a16cba1814a Gerrit-Change-Number: 9456 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:33 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:33 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-network: start all network interfaces after addin... Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9457 Change subject: ansible: gsm-tester-network: start all network interfaces after adding new ones ...................................................................... ansible: gsm-tester-network: start all network interfaces after adding new ones Change-Id: I197dadb68cffeba4c451d2fbfe40075039a67cb8 --- M ansible/roles/gsm-tester-network/tasks/main.yml 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/57/9457/1 diff --git a/ansible/roles/gsm-tester-network/tasks/main.yml b/ansible/roles/gsm-tester-network/tasks/main.yml index c331b71..0a023a7 100644 --- a/ansible/roles/gsm-tester-network/tasks/main.yml +++ b/ansible/roles/gsm-tester-network/tasks/main.yml @@ -4,3 +4,8 @@ template: src: interface.j2 dest: /etc/network/interfaces.d/gsm-tester + register: gsm_tester_network_interface + +- name: start all network interface + command: ifup -a + when: gsm_tester_network_interface | changed -- To view, visit https://gerrit.osmocom.org/9457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I197dadb68cffeba4c451d2fbfe40075039a67cb8 Gerrit-Change-Number: 9457 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:34 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:34 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9458 Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... ansible: gsm-tester: remove ofono from the dependencies we install our own ofono and don't need the system's ofono Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 --- M ansible/roles/gsm-tester/tasks/main.yml 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/58/9458/1 diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 1840769..eafb81b 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -117,7 +117,6 @@ - python3-yaml - python3-mako - python3-gi - - ofono - patchelf - sudo - libcap2-bin -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:34 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:34 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add udev rule to allow jenkins to access sispm d... Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9459 Change subject: ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices ...................................................................... ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 --- A ansible/roles/gsm-tester/files/60-sispmctl.rules A ansible/roles/gsm-tester/handlers/main.yml M ansible/roles/gsm-tester/tasks/main.yml 3 files changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/59/9459/1 diff --git a/ansible/roles/gsm-tester/files/60-sispmctl.rules b/ansible/roles/gsm-tester/files/60-sispmctl.rules new file mode 100644 index 0000000..4c1f562 --- /dev/null +++ b/ansible/roles/gsm-tester/files/60-sispmctl.rules @@ -0,0 +1,4 @@ +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd10", GROUP="osmo-gsm-tester", MODE="660" +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd11", GROUP="osmo-gsm-tester", MODE="660" +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd12", GROUP="osmo-gsm-tester", MODE="660" +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd13", GROUP="osmo-gsm-tester", MODE="660" diff --git a/ansible/roles/gsm-tester/handlers/main.yml b/ansible/roles/gsm-tester/handlers/main.yml new file mode 100644 index 0000000..fb1b9ca --- /dev/null +++ b/ansible/roles/gsm-tester/handlers/main.yml @@ -0,0 +1,6 @@ +--- + +- name: restart udev + service: + name: udev + state: restarted diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index eafb81b..d0d3b08 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -244,3 +244,9 @@ - name: install sispmctl (usb power socket) apt: name: sispmctl + +- name: allow group osmo-gsm-tester to access sispm devices + copy: + src: 60-sispmctl.rules + dest: /etc/udev/rules.d/ + notify: restart udev -- To view, visit https://gerrit.osmocom.org/9459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 Gerrit-Change-Number: 9459 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:34 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:34 +0000 Subject: Change in osmo-ci[master]: ansible: setup-gsm-tester.yml: use role gsm-tester-bts Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9460 Change subject: ansible: setup-gsm-tester.yml: use role gsm-tester-bts ...................................................................... ansible: setup-gsm-tester.yml: use role gsm-tester-bts Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 --- M ansible/setup-gsm-tester.yml 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/60/9460/1 diff --git a/ansible/setup-gsm-tester.yml b/ansible/setup-gsm-tester.yml index 36c8287..02ebe0f 100644 --- a/ansible/setup-gsm-tester.yml +++ b/ansible/setup-gsm-tester.yml @@ -27,6 +27,11 @@ - gsm-tester - gsm-tester-modems + - name: gsm-tester-bts + tags: + - gsm-tester + - gsm-tester-bts + - name: gsm-tester-network bts_interface: enp2s0 tags: -- To view, visit https://gerrit.osmocom.org/9460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 Gerrit-Change-Number: 9460 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:34 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:34 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-bts: remove role prefix in names Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9461 Change subject: ansible: gsm-tester-bts: remove role prefix in names ...................................................................... ansible: gsm-tester-bts: remove role prefix in names The role is prefixed anyway by newer ansible's. No need to manual add it Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 --- M ansible/roles/gsm-tester-bts/tasks/main.yml 1 file changed, 9 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/61/9461/1 diff --git a/ansible/roles/gsm-tester-bts/tasks/main.yml b/ansible/roles/gsm-tester-bts/tasks/main.yml index a08670a..37d3139 100644 --- a/ansible/roles/gsm-tester-bts/tasks/main.yml +++ b/ansible/roles/gsm-tester-bts/tasks/main.yml @@ -1,19 +1,19 @@ --- -- name: gsm-tester-bts | update apt-cache +- name: update apt-cache apt: cache_valid_time: 3600 update_cache: yes -- name: gsm-tester-bts | ip.access install apt dependencies +- name: ip.access install apt dependencies apt: name: python3-usb -- name: gsm-tester-bts | ip.access install pip3 dependencies +- name: ip.access install pip3 dependencies pip: name: pysispm executable: pip3 -- name: gsm-tester-bts | usrp install apt dependecies +- name: usrp install apt dependecies apt: name: "{{ item }}" cache_valid_time: 3600 @@ -23,30 +23,30 @@ - uhd-host register: uhd_installed -- name: gsm-tester-bts | usrp download firmware +- name: usrp download firmware command: uhd_images_downloader args: creates: /usr/share/uhd/images when: uhd_installed | changed -- name: gsm-tester-bts | usrp allow jenkins to access +- name: usrp allow jenkins to access user: name: jenkins groups: usrp append: yes -- name: gsm-tester-bts | add apt-key of OBS network:osmocom:nightly +- name: add apt-key of OBS network:osmocom:nightly apt_key: data: "{{ lookup('file', 'Release.key') }}" state: present -- name: gsm-tester-bts | add apt-repo of OBS network:osmocom:nightly +- name: add apt-repo of OBS network:osmocom:nightly apt_repo: name: obs_network_osmocom_latest repo: "deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_{{ ansible_distribution_major_version }}.0/ ./" update_cache: yes -- name: gsm-tester-bts | install osmocom utilities +- name: install osmocom utilities apt: name: "{{ item }}" with_items: -- To view, visit https://gerrit.osmocom.org/9461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 Gerrit-Change-Number: 9461 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 16:59:35 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 16:59:35 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: fix apt_repository tasks Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9462 Change subject: ansible: gsm-tester: fix apt_repository tasks ...................................................................... ansible: gsm-tester: fix apt_repository tasks Mistyped filename and apt_repostory Change-Id: Icc97d9d2355f8922853d6b21cb8a95f532347031 --- M ansible/roles/gsm-tester-bts/tasks/main.yml 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/62/9462/1 diff --git a/ansible/roles/gsm-tester-bts/tasks/main.yml b/ansible/roles/gsm-tester-bts/tasks/main.yml index 37d3139..fa4bccd 100644 --- a/ansible/roles/gsm-tester-bts/tasks/main.yml +++ b/ansible/roles/gsm-tester-bts/tasks/main.yml @@ -41,8 +41,8 @@ state: present - name: add apt-repo of OBS network:osmocom:nightly - apt_repo: - name: obs_network_osmocom_latest + apt_repository: + filename: obs_network_osmocom_latest repo: "deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_{{ ansible_distribution_major_version }}.0/ ./" update_cache: yes -- To view, visit https://gerrit.osmocom.org/9462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icc97d9d2355f8922853d6b21cb8a95f532347031 Gerrit-Change-Number: 9462 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:05:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:05:15 +0000 Subject: Change in osmo-sysmon[master]: Remove unused function In-Reply-To: References: Message-ID: Harald Welte has restored this change. ( https://gerrit.osmocom.org/9448 ) Change subject: Remove unused function ...................................................................... Restored -- To view, visit https://gerrit.osmocom.org/9448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: restore Gerrit-Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 Gerrit-Change-Number: 9448 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:05:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:05:24 +0000 Subject: Change in osmo-sysmon[master]: Remove unused function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9448 ) Change subject: Remove unused function ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 Gerrit-Change-Number: 9448 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:05:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:05:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:05:26 +0000 Subject: Change in osmo-sysmon[master]: Remove unused function In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9448 ) Change subject: Remove unused function ...................................................................... Remove unused function Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 --- M osysmon_main.c 1 file changed, 0 insertions(+), 9 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/osysmon_main.c b/osysmon_main.c index d50fd00..eaed1a9 100644 --- a/osysmon_main.c +++ b/osysmon_main.c @@ -110,15 +110,6 @@ } } -static void exit_help(void) -{ - printf("Usage:\n"); - printf("\tosmo-ctrl-client HOST PORT get VARIABLE\n"); - printf("\tosmo-ctrl-client HOST PORT set VARIABLE VALUE\n"); - printf("\tosmo-ctrl-client HOST PORT monitor\n"); - exit(2); -} - int main(int argc, char **argv) { int rc; -- To view, visit https://gerrit.osmocom.org/9448 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0b5d59bf3c98d1199e710eec310d041fa15994b9 Gerrit-Change-Number: 9448 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:15:17 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Tue, 5 Jun 2018 17:15:17 +0000 Subject: Change in libosmo-sccp[master]: fix infinite recursion with routing by global title Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9463 Change subject: fix infinite recursion with routing by global title ...................................................................... fix infinite recursion with routing by global title We don't implement routing by global title address. When processing an SCCP message which is routed by global title, don't recurs indefinitely until the stack is exhausted. Instead, return an error with cause SUBSYSTEM_FAILURE, which we also do in other routing failure cases. Change-Id: I24621e77ffc979bc337775f9c6a4ad9a9068625a Related: OS#2666 --- M src/sccp_scrc.c 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/63/9463/1 diff --git a/src/sccp_scrc.c b/src/sccp_scrc.c index dca5645..cd01774 100644 --- a/src/sccp_scrc.c +++ b/src/sccp_scrc.c @@ -279,8 +279,15 @@ translated.ri != OSMO_SCCP_RI_SSN_IP) { /* TODO: GT Routing */ LOGP(DLSCCP, LOGL_NOTICE, "GT Routing not implemented yet\n"); +#if 1 + /* Prevent endless recursion, see OS#2666. */ + sccp_sclc_rx_scrc_rout_fail(inst, xua, + SCCP_RETURN_CAUSE_SUBSYSTEM_FAILURE); + return 0; +#else /* Node 7 (Sheet 5) */ return scrc_node_7(inst, xua, called); +#endif } /* Check DPC resultant from GT translation */ -- To view, visit https://gerrit.osmocom.org/9463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I24621e77ffc979bc337775f9c6a4ad9a9068625a Gerrit-Change-Number: 9463 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 5 17:15:37 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 5 Jun 2018 17:15:37 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sysmon_=C2=BB_a1=3Ddef?= =?UTF-8?Q?ault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1?= Message-ID: <6474965.351.1528218937382.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 57.68 KB...] - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/sim make[2]: Entering directory ' CC core.lo CC reader.lo CC class_tables.lo CC reader_pcsc.lo CC card_fs_sim.lo CC card_fs_uicc.lo CC card_fs_usim.lo CC card_fs_isim.lo CC card_fs_tetra.lo CCLD libosmosim.la make[3]: Entering directory ' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmosim.la ' libtool: warning: relinking 'libosmosim.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -fPIC -Wall -I/usr/include/PCSC -pthread -g -O2 -DBUILDING_LIBOSMOCORE -Wall -version-info 0:2:0 -o libosmosim.la -rpath core.lo reader.lo reader_pcsc.lo class_tables.lo card_fs_sim.lo card_fs_usim.lo card_fs_uicc.lo card_fs_isim.lo card_fs_tetra.lo ../../src/libosmocore.la ../../src/gsm/libosmogsm.la -ltalloc -lpcsclite ) libtool: install: /usr/bin/install -c .libs/libosmosim.so.0.0.2T libtool: install: (cd && { ln -s -f libosmosim.so.0.0.2 libosmosim.so.0 || { rm -f libosmosim.so.0 && ln -s libosmosim.so.0.0.2 libosmosim.so.0; }; }) libtool: install: (cd && { ln -s -f libosmosim.so.0.0.2 libosmosim.so || { rm -f libosmosim.so && ln -s libosmosim.so.0.0.2 libosmosim.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmosim.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/pseudotalloc make[2]: Entering directory ' make[3]: Entering directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in utils make[2]: Entering directory ' CC osmo-arfcn.o CC osmo-auc-gen.o CC osmo_sim_test-osmo-sim-test.o CCLD osmo-arfcn CCLD osmo-auc-gen CCLD osmo-sim-test make[3]: Entering directory ' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../libtool --mode=install /usr/bin/install -c osmo-arfcn osmo-auc-gen ' libtool: install: /usr/bin/install -c .libs/osmo-arfcn libtool: install: /usr/bin/install -c .libs/osmo-auc-gen make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in tests make[2]: Entering directory ' GEN conv/gsm0503_test_vectors.c Generating test vectors... Generate 'xcch' test vector Generate 'rach' test vector Generate 'rach_ext' test vector Generate 'sch' test vector Generate 'cs2' test vector Generate 'cs3' test vector Generate 'cs2_np' test vector Generate 'cs3_np' test vector Generate 'tch_afs_12_2' test vector Generate 'tch_afs_10_2' test vector Generate 'tch_afs_7_95' test vector Generate 'tch_afs_7_4' test vector Generate 'tch_afs_6_7' test vector Generate 'tch_afs_5_9' test vector Generate 'tch_afs_5_15' test vector Generate 'tch_afs_4_75' test vector Generate 'tch_fr' test vector Generate 'tch_hr' test vector Generate 'tch_ahs_7_95' test vector Generate 'tch_ahs_7_4' test vector Generate 'tch_ahs_6_7' test vector Generate 'tch_ahs_5_9' test vector Generate 'tch_ahs_5_15' test vector Generate 'tch_ahs_4_75' test vector Generate 'mcs1_dl_hdr' test vector Generate 'mcs1_ul_hdr' test vector Generate 'mcs1' test vector Generate 'mcs2' test vector Generate 'mcs3' test vector Generate 'mcs4' test vector Generate 'mcs5_dl_hdr' test vector Generate 'mcs5_ul_hdr' test vector Generate 'mcs5' test vector Generate 'mcs6' test vector Generate 'mcs7_dl_hdr' test vector Generate 'mcs7_ul_hdr' test vector Generate 'mcs7' test vector Generate 'mcs8' test vector Generate 'mcs9' test vector Generation complete. make install-am make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[2]: Entering directory ' make[3]: Entering directory ' /bin/mkdir -p ' /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 libosmocore.pc libosmocodec.pc libosmovty.pc libosmogsm.pc libosmogb.pc libosmoctrl.pc libosmocoding.pc libosmosim.pc ' /usr/bin/install -c osmo-release.sh ' /usr/bin/install -c -m 644 osmo-release.mk ' make install-data-hook make[4]: Entering directory ' make[4]: Nothing to be done for 'install-data-hook'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' + STOW_DIR= stow --restow libosmocore ++ find . -name '*.[hc]' + verify_value_string_arrays_are_terminated.py ./osysmon_main.c ./osysmon_rtnl.c ./value_node.h ./deps/install/stow/libosmocore/include/osmocom/crypt/gprs_cipher.h ./deps/install/stow/libosmocore/include/osmocom/crypt/auth.h ./deps/install/stow/libosmocore/include/osmocom/vty/buffer.h ./deps/install/stow/libosmocore/include/osmocom/vty/vty.h ./deps/install/stow/libosmocore/include/osmocom/vty/command.h ./deps/install/stow/libosmocore/include/osmocom/vty/ports.h ./deps/install/stow/libosmocore/include/osmocom/vty/telnet_interface.h ./deps/install/stow/libosmocore/include/osmocom/vty/vector.h ./deps/install/stow/libosmocore/include/osmocom/vty/logging.h ./deps/install/stow/libosmocore/include/osmocom/vty/misc.h ./deps/install/stow/libosmocore/include/osmocom/vty/stats.h ./deps/install/stow/libosmocore/include/osmocom/codec/codec.h ./deps/install/stow/libosmocore/include/osmocom/codec/gsm610_bits.h ./deps/install/stow/libosmocore/include/osmocom/codec/ecu.h ./deps/install/stow/libosmocore/include/osmocom/coding/gsm0503_mapping.h ./deps/install/stow/libosmocore/include/osmocom/coding/gsm0503_interleaving.h ./deps/install/stow/libosmocore/include/osmocom/coding/gsm0503_tables.h ./deps/install/stow/libosmocore/include/osmocom/coding/gsm0503_coding.h ./deps/install/stow/libosmocore/include/osmocom/coding/gsm0503_parity.h ./deps/install/stow/libosmocore/include/osmocom/sim/sim.h ./deps/install/stow/libosmocore/include/osmocom/sim/class_tables.h ./deps/install/stow/libosmocore/include/osmocom/core/byteswap.h ./deps/install/stow/libosmocore/include/osmocom/core/timer_compat.h ./deps/install/stow/libosmocore/include/osmocom/core/msgb.h ./deps/install/stow/libosmocore/include/osmocom/core/crc64gen.h ./deps/install/stow/libosmocore/include/osmocom/core/serial.h ./deps/install/stow/libosmocore/include/osmocom/core/backtrace.h ./deps/install/stow/libosmocore/include/osmocom/core/stat_item.h ./deps/install/stow/libosmocore/include/osmocom/core/conv.h ./deps/install/stow/libosmocore/include/osmocom/core/crcgen.h ./deps/install/stow/libosmocore/include/osmocom/core/linuxrbtree.h ./deps/install/stow/libosmocore/include/osmocom/core/strrb.h ./deps/install/stow/libosmocore/include/osmocom/core/crc8gen.h ./deps/install/stow/libosmocore/include/osmocom/core/timer.h ./deps/install/stow/libosmocore/include/osmocom/core/sercomm.h ./deps/install/stow/libosmocore/include/osmocom/core/talloc.h ./deps/install/stow/libosmocore/include/osmocom/core/socket.h ./deps/install/stow/libosmocore/include/osmocom/core/bitvec.h ./deps/install/stow/libosmocore/include/osmocom/core/bits.h ./deps/install/stow/libosmocore/include/osmocom/core/isdnhdlc.h ./deps/install/stow/libosmocore/include/osmocom/core/bitcomp.h ./deps/install/stow/libosmocore/include/osmocom/core/prim.h ./deps/install/stow/libosmocore/include/osmocom/core/loggingrb.h ./deps/install/stow/libosmocore/include/osmocom/core/linuxlist.h ./deps/install/stow/libosmocore/include/osmocom/core/counter.h ./deps/install/stow/libosmocore/include/osmocom/core/bit32gen.h ./deps/install/stow/libosmocore/include/osmocom/core/logging.h ./deps/install/stow/libosmocore/include/osmocom/core/gsmtap_util.h ./deps/install/stow/libosmocore/include/osmocom/core/endian.h ./deps/install/stow/libosmocore/include/osmocom/core/defs.h ./deps/install/stow/libosmocore/include/osmocom/core/fsm.h ./deps/install/stow/libosmocore/include/osmocom/core/statistics.h ./deps/install/stow/libosmocore/include/osmocom/core/msgfile.h ./deps/install/stow/libosmocore/include/osmocom/core/gsmtap.h ./deps/install/stow/libosmocore/include/osmocom/core/plugin.h ./deps/install/stow/libosmocore/include/osmocom/core/prbs.h ./deps/install/stow/libosmocore/include/osmocom/core/write_queue.h ./deps/install/stow/libosmocore/include/osmocom/core/macaddr.h ./deps/install/stow/libosmocore/include/osmocom/core/bit64gen.h ./deps/install/stow/libosmocore/include/osmocom/core/rate_ctr.h ./deps/install/stow/libosmocore/include/osmocom/core/panic.h ./deps/install/stow/libosmocore/include/osmocom/core/process.h ./deps/install/stow/libosmocore/include/osmocom/core/crc16gen.h ./deps/install/stow/libosmocore/include/osmocom/core/select.h ./deps/install/stow/libosmocore/include/osmocom/core/crc16.h ./deps/install/stow/libosmocore/include/osmocom/core/crc32gen.h ./deps/install/stow/libosmocore/include/osmocom/core/utils.h ./deps/install/stow/libosmocore/include/osmocom/core/application.h ./deps/install/stow/libosmocore/include/osmocom/core/signal.h ./deps/install/stow/libosmocore/include/osmocom/core/bit16gen.h ./deps/install/stow/libosmocore/include/osmocom/core/stats.h ./deps/install/stow/libosmocore/include/osmocom/ctrl/ports.h ./deps/install/stow/libosmocore/include/osmocom/ctrl/control_if.h ./deps/install/stow/libosmocore/include/osmocom/ctrl/control_cmd.h ./deps/install/stow/libosmocore/include/osmocom/ctrl/control_vty.h ./deps/install/stow/libosmocore/include/osmocom/gsm/mncc.h ./deps/install/stow/libosmocore/include/osmocom/gsm/l1sap.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm23003.h ./deps/install/stow/libosmocore/include/osmocom/gsm/meas_rep.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0480.h ./deps/install/stow/libosmocore/include/osmocom/gsm/comp128v23.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0411_smc.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0502.h ./deps/install/stow/libosmocore/include/osmocom/gsm/oap.h ./deps/install/stow/libosmocore/include/osmocom/gsm/lapd_core.h ./deps/install/stow/libosmocore/include/osmocom/gsm/lapdm.h ./deps/install/stow/libosmocore/include/osmocom/gsm/bitvec_gsm.h ./deps/install/stow/libosmocore/include/osmocom/gsm/a5.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gan.h ./deps/install/stow/libosmocore/include/osmocom/gsm/rxlev_stat.h ./deps/install/stow/libosmocore/include/osmocom/gsm/prim.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0808_utils.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0411_utils.h ./deps/install/stow/libosmocore/include/osmocom/gsm/bts_features.h ./deps/install/stow/libosmocore/include/osmocom/gsm/abis_nm.h ./deps/install/stow/libosmocore/include/osmocom/gsm/apn.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0411_smr.h ./deps/install/stow/libosmocore/include/osmocom/gsm/ipa.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_04_80.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_12_21.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/ipaccess.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/smpp34_osmocom.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_04_08_gprs.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_08_08.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_09_02.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_03_40.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_23_003.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_04_14.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_04_12.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_44_318.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_03_41.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_04_08.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_08_58.h ./deps/install/stow/libosmocore/include/osmocom/gsm/protocol/gsm_04_11.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0341.h ./deps/install/stow/libosmocore/include/osmocom/gsm/rsl.h ./deps/install/stow/libosmocore/include/osmocom/gsm/comp128.h ./deps/install/stow/libosmocore/include/osmocom/gsm/sysinfo.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsup.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm48.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0808.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm0503.h ./deps/install/stow/libosmocore/include/osmocom/gsm/tlv.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm48_ie.h ./deps/install/stow/libosmocore/include/osmocom/gsm/gsm_utils.h ./deps/install/stow/libosmocore/include/osmocom/gprs/gprs_ns_frgre.h ./deps/install/stow/libosmocore/include/osmocom/gprs/gprs_bssgp.h ./deps/install/stow/libosmocore/include/osmocom/gprs/gprs_bssgp_bss.h ./deps/install/stow/libosmocore/include/osmocom/gprs/protocol/gsm_08_18.h ./deps/install/stow/libosmocore/include/osmocom/gprs/protocol/gsm_08_16.h ./deps/install/stow/libosmocore/include/osmocom/gprs/protocol/gsm_04_60.h ./deps/install/stow/libosmocore/include/osmocom/gprs/gprs_rlc.h ./deps/install/stow/libosmocore/include/osmocom/gprs/gprs_msgb.h ./deps/install/stow/libosmocore/include/osmocom/gprs/gprs_ns.h ./deps/libosmocore/config.h ./deps/libosmocore/utils/osmo-auc-gen.c ./deps/libosmocore/utils/osmo-arfcn.c ./deps/libosmocore/utils/osmo-sim-test.c ./deps/libosmocore/src/logging_syslog.c ./deps/libosmocore/src/stats_statsd.c ./deps/libosmocore/src/panic.c ./deps/libosmocore/src/backtrace.c ./deps/libosmocore/src/timer.c ./deps/libosmocore/src/sercomm.c ./deps/libosmocore/src/crc32gen.c ./deps/libosmocore/src/logging_gsmtap.c ./deps/libosmocore/src/crc64gen.c ./deps/libosmocore/src/timer_gettimeofday.c ./deps/libosmocore/src/prim.c ./deps/libosmocore/src/gb/common_vty.c ./deps/libosmocore/src/gb/gprs_bssgp_util.c ./deps/libosmocore/src/gb/gprs_bssgp.c ./deps/libosmocore/src/gb/gprs_ns_vty.c ./deps/libosmocore/src/gb/gprs_ns_frgre.c ./deps/libosmocore/src/gb/gprs_bssgp_bss.c ./deps/libosmocore/src/gb/gprs_ns.c ./deps/libosmocore/src/gb/common_vty.h ./deps/libosmocore/src/gb/gprs_bssgp_vty.c ./deps/libosmocore/src/bitvec.c ./deps/libosmocore/src/isdnhdlc.c ./deps/libosmocore/src/utils.c ./deps/libosmocore/src/strrb.c ./deps/libosmocore/src/conv_acc_sse.c ./deps/libosmocore/src/conv_acc_sse_impl.h ./deps/libosmocore/src/conv.c ./deps/libosmocore/src/crc16.c ./deps/libosmocore/src/vty/buffer.c ./deps/libosmocore/src/vty/vector.c ./deps/libosmocore/src/vty/utils.c ./deps/libosmocore/src/vty/telnet_interface.c ./deps/libosmocore/src/vty/command.c ./deps/libosmocore/src/vty/logging_vty.c ./deps/libosmocore/src/vty/talloc_ctx_vty.c ./deps/libosmocore/src/vty/stats_vty.c ./deps/libosmocore/src/vty/fsm_vty.c ./deps/libosmocore/src/vty/vty.c ./deps/libosmocore/src/bitcomp.c ./deps/libosmocore/src/signal.c ./deps/libosmocore/src/serial.c ./deps/libosmocore/src/crc16gen.c ./deps/libosmocore/src/prbs.c ./deps/libosmocore/src/codec/gsm660.c ./deps/libosmocore/src/codec/gsm610.c ./deps/libosmocore/src/codec/gsm620.c ./deps/libosmocore/src/codec/ecu_fr.c ./deps/libosmocore/src/codec/gsm690.c ./deps/libosmocore/src/socket.c ./deps/libosmocore/src/conv_acc_generic.c ./deps/libosmocore/src/msgb.c ./deps/libosmocore/src/coding/gsm0503_parity.c ./deps/libosmocore/src/coding/gsm0503_interleaving.c ./deps/libosmocore/src/coding/gsm0503_coding.c ./deps/libosmocore/src/coding/gsm0503_mapping.c ./deps/libosmocore/src/coding/gsm0503_tables.c ./deps/libosmocore/src/bits.c ./deps/libosmocore/src/sim/class_tables.c ./deps/libosmocore/src/sim/gsm_int.h ./deps/libosmocore/src/sim/sim_int.h ./deps/libosmocore/src/sim/reader.c ./deps/libosmocore/src/sim/card_fs_usim.c ./deps/libosmocore/src/sim/reader_pcsc.c ./deps/libosmocore/src/sim/card_fs_isim.c ./deps/libosmocore/src/sim/core.c ./deps/libosmocore/src/sim/card_fs_sim.c ./deps/libosmocore/src/sim/card_fs_uicc.c ./deps/libosmocore/src/sim/card_fs_tetra.c ./deps/libosmocore/src/rbtree.c ./deps/libosmocore/src/timer_clockgettime.c ./deps/libosmocore/src/plugin.c ./deps/libosmocore/src/conv_acc_sse_avx.c ./deps/libosmocore/src/stat_item.c ./deps/libosmocore/src/counter.c ./deps/libosmocore/src/application.c ./deps/libosmocore/src/ctrl/control_cmd.c ./deps/libosmocore/src/ctrl/control_vty.c ./deps/libosmocore/src/ctrl/control_if.c ./deps/libosmocore/src/ctrl/fsm_ctrl_commands.c ./deps/libosmocore/src/msgfile.c ./deps/libosmocore/src/gsm/gsm0808.c ./deps/libosmocore/src/gsm/lapdm.c ./deps/libosmocore/src/gsm/gsm_utils.c ./deps/libosmocore/src/gsm/oap.c ./deps/libosmocore/src/gsm/gsm0341.c ./deps/libosmocore/src/gsm/gea.c ./deps/libosmocore/src/gsm/gsm0411_smc.c ./deps/libosmocore/src/gsm/milenage/common.h ./deps/libosmocore/src/gsm/milenage/milenage.c ./deps/libosmocore/src/gsm/milenage/includes.h ./deps/libosmocore/src/gsm/milenage/aes-encblock.c ./deps/libosmocore/src/gsm/milenage/aes.h ./deps/libosmocore/src/gsm/milenage/milenage.h ./deps/libosmocore/src/gsm/milenage/aes-internal-enc.c ./deps/libosmocore/src/gsm/milenage/aes_wrap.h ./deps/libosmocore/src/gsm/milenage/crypto.h ./deps/libosmocore/src/gsm/milenage/aes-internal.c ./deps/libosmocore/src/gsm/milenage/aes_i.h ./deps/libosmocore/src/gsm/gan.c ./deps/libosmocore/src/gsm/comp128v23.c ./deps/libosmocore/src/gsm/comp128.c ./deps/libosmocore/src/gsm/gsm0503_conv.c ./deps/libosmocore/src/gsm/rsl.c ./deps/libosmocore/src/gsm/gsm_04_08_gprs.c ./deps/libosmocore/src/gsm/sysinfo.c ./deps/libosmocore/src/gsm/auth_milenage.c ./deps/libosmocore/src/gsm/gprs_cipher_core.c ./deps/libosmocore/src/gsm/gprs_rlc.c ./deps/libosmocore/src/gsm/bts_features.c ./deps/libosmocore/src/gsm/auth_comp128v23.c ./deps/libosmocore/src/gsm/kasumi.c ./deps/libosmocore/src/gsm/gsm0411_utils.c ./deps/libosmocore/src/gsm/gsm48_ie.c ./deps/libosmocore/src/gsm/gsup.c ./deps/libosmocore/src/gsm/gsm0411_smr.c ./deps/libosmocore/src/gsm/tlv_parser.c ./deps/libosmocore/src/gsm/auth_comp128v1.c ./deps/libosmocore/src/gsm/gsm0808_utils.c ./deps/libosmocore/src/gsm/apn.c ./deps/libosmocore/src/gsm/a5.c ./deps/libosmocore/src/gsm/gsm48.c ./deps/libosmocore/src/gsm/lapd_core.c ./deps/libosmocore/src/gsm/gsm0502.c ./deps/libosmocore/src/gsm/gsm0414.c ./deps/libosmocore/src/gsm/gprs_gea.c ./deps/libosmocore/src/gsm/rxlev_stat.c ./deps/libosmocore/src/gsm/auth_core.c ./deps/libosmocore/src/gsm/gsm0480.c ./deps/libosmocore/src/gsm/gsm23003.c ./deps/libosmocore/src/gsm/abis_nm.c ./deps/libosmocore/src/gsm/ipa.c ./deps/libosmocore/src/gsm/mncc.c ./deps/libosmocore/src/stats.c ./deps/libosmocore/src/fsm.c ./deps/libosmocore/src/macaddr.c ./deps/libosmocore/src/logging.c ./deps/libosmocore/src/crc8gen.c ./deps/libosmocore/src/gsmtap_util.c ./deps/libosmocore/src/rate_ctr.c ./deps/libosmocore/src/conv_acc.c ./deps/libosmocore/src/write_queue.c ./deps/libosmocore/src/pseudotalloc/talloc.h ./deps/libosmocore/src/pseudotalloc/pseudotalloc.c ./deps/libosmocore/src/loggingrb.c ./deps/libosmocore/src/select.c ./deps/libosmocore/include/osmocom/crypt/gprs_cipher.h ./deps/libosmocore/include/osmocom/crypt/auth.h ./deps/libosmocore/include/osmocom/vty/buffer.h ./deps/libosmocore/include/osmocom/vty/vty.h ./deps/libosmocore/include/osmocom/vty/command.h ./deps/libosmocore/include/osmocom/vty/ports.h ./deps/libosmocore/include/osmocom/vty/telnet_interface.h ./deps/libosmocore/include/osmocom/vty/vector.h ./deps/libosmocore/include/osmocom/vty/logging.h ./deps/libosmocore/include/osmocom/vty/misc.h ./deps/libosmocore/include/osmocom/vty/stats.h ./deps/libosmocore/include/osmocom/codec/codec.h ./deps/libosmocore/include/osmocom/codec/gsm610_bits.h ./deps/libosmocore/include/osmocom/codec/ecu.h ./deps/libosmocore/include/osmocom/coding/gsm0503_mapping.h ./deps/libosmocore/include/osmocom/coding/gsm0503_interleaving.h ./deps/libosmocore/include/osmocom/coding/gsm0503_tables.h ./deps/libosmocore/include/osmocom/coding/gsm0503_coding.h ./deps/libosmocore/include/osmocom/coding/gsm0503_parity.h ./deps/libosmocore/include/osmocom/sim/sim.h ./deps/libosmocore/include/osmocom/sim/class_tables.h ./deps/libosmocore/include/osmocom/core/byteswap.h ./deps/libosmocore/include/osmocom/core/timer_compat.h ./deps/libosmocore/include/osmocom/core/msgb.h ./deps/libosmocore/include/osmocom/core/crc64gen.h ./deps/libosmocore/include/osmocom/core/serial.h ./deps/libosmocore/include/osmocom/core/backtrace.h ./deps/libosmocore/include/osmocom/core/stat_item.h ./deps/libosmocore/include/osmocom/core/conv.h ./deps/libosmocore/include/osmocom/core/crcgen.h ./deps/libosmocore/include/osmocom/core/linuxrbtree.h ./deps/libosmocore/include/osmocom/core/strrb.h ./deps/libosmocore/include/osmocom/core/crc8gen.h ./deps/libosmocore/include/osmocom/core/timer.h ./deps/libosmocore/include/osmocom/core/sercomm.h ./deps/libosmocore/include/osmocom/core/talloc.h ./deps/libosmocore/include/osmocom/core/socket.h ./deps/libosmocore/include/osmocom/core/bitvec.h ./deps/libosmocore/include/osmocom/core/bits.h ./deps/libosmocore/include/osmocom/core/isdnhdlc.h ./deps/libosmocore/include/osmocom/core/bitcomp.h ./deps/libosmocore/include/osmocom/core/prim.h ./deps/libosmocore/include/osmocom/core/loggingrb.h ./deps/libosmocore/include/osmocom/core/linuxlist.h ./deps/libosmocore/include/osmocom/core/counter.h ./deps/libosmocore/include/osmocom/core/bit32gen.h ./deps/libosmocore/include/osmocom/core/logging.h ./deps/libosmocore/include/osmocom/core/gsmtap_util.h ./deps/libosmocore/include/osmocom/core/endian.h ./deps/libosmocore/include/osmocom/core/defs.h ./deps/libosmocore/include/osmocom/core/fsm.h ./deps/libosmocore/include/osmocom/core/statistics.h ./deps/libosmocore/include/osmocom/core/msgfile.h ./deps/libosmocore/include/osmocom/core/gsmtap.h ./deps/libosmocore/include/osmocom/core/plugin.h ./deps/libosmocore/include/osmocom/core/prbs.h ./deps/libosmocore/include/osmocom/core/write_queue.h ./deps/libosmocore/include/osmocom/core/macaddr.h ./deps/libosmocore/include/osmocom/core/bit64gen.h ./deps/libosmocore/include/osmocom/core/rate_ctr.h ./deps/libosmocore/include/osmocom/core/panic.h ./deps/libosmocore/include/osmocom/core/process.h ./deps/libosmocore/include/osmocom/core/crc16gen.h ./deps/libosmocore/include/osmocom/core/select.h ./deps/libosmocore/include/osmocom/core/crc16.h ./deps/libosmocore/include/osmocom/core/crc32gen.h ./deps/libosmocore/include/osmocom/core/utils.h ./deps/libosmocore/include/osmocom/core/application.h ./deps/libosmocore/include/osmocom/core/signal.h ./deps/libosmocore/include/osmocom/core/bit16gen.h ./deps/libosmocore/include/osmocom/core/stats.h ./deps/libosmocore/include/osmocom/ctrl/ports.h ./deps/libosmocore/include/osmocom/ctrl/control_if.h ./deps/libosmocore/include/osmocom/ctrl/control_cmd.h ./deps/libosmocore/include/osmocom/ctrl/control_vty.h ./deps/libosmocore/include/osmocom/gsm/mncc.h ./deps/libosmocore/include/osmocom/gsm/l1sap.h ./deps/libosmocore/include/osmocom/gsm/gsm23003.h ./deps/libosmocore/include/osmocom/gsm/meas_rep.h ./deps/libosmocore/include/osmocom/gsm/gsm0480.h ./deps/libosmocore/include/osmocom/gsm/gea.h ./deps/libosmocore/include/osmocom/gsm/comp128v23.h ./deps/libosmocore/include/osmocom/gsm/gsm0411_smc.h ./deps/libosmocore/include/osmocom/gsm/kasumi.h ./deps/libosmocore/include/osmocom/gsm/gsm0502.h ./deps/libosmocore/include/osmocom/gsm/oap.h ./deps/libosmocore/include/osmocom/gsm/lapd_core.h ./deps/libosmocore/include/osmocom/gsm/lapdm.h ./deps/libosmocore/include/osmocom/gsm/bitvec_gsm.h ./deps/libosmocore/include/osmocom/gsm/a5.h ./deps/libosmocore/include/osmocom/gsm/gan.h ./deps/libosmocore/include/osmocom/gsm/rxlev_stat.h ./deps/libosmocore/include/osmocom/gsm/prim.h ./deps/libosmocore/include/osmocom/gsm/gsm0808_utils.h ./deps/libosmocore/include/osmocom/gsm/gsm0411_utils.h ./deps/libosmocore/include/osmocom/gsm/bts_features.h ./deps/libosmocore/include/osmocom/gsm/abis_nm.h ./deps/libosmocore/include/osmocom/gsm/apn.h ./deps/libosmocore/include/osmocom/gsm/gsm0411_smr.h ./deps/libosmocore/include/osmocom/gsm/ipa.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_04_80.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_12_21.h ./deps/libosmocore/include/osmocom/gsm/protocol/ipaccess.h ./deps/libosmocore/include/osmocom/gsm/protocol/smpp34_osmocom.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_04_08_gprs.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_08_08.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_09_02.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_03_40.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_23_003.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_04_14.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_04_12.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_44_318.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_03_41.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_04_08.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_08_58.h ./deps/libosmocore/include/osmocom/gsm/protocol/gsm_04_11.h ./deps/libosmocore/include/osmocom/gsm/gsm0341.h ./deps/libosmocore/include/osmocom/gsm/rsl.h ./deps/libosmocore/include/osmocom/gsm/comp128.h ./deps/libosmocore/include/osmocom/gsm/sysinfo.h ./deps/libosmocore/include/osmocom/gsm/gsup.h ./deps/libosmocore/include/osmocom/gsm/gsm48.h ./deps/libosmocore/include/osmocom/gsm/gsm0808.h ./deps/libosmocore/include/osmocom/gsm/gsm0503.h ./deps/libosmocore/include/osmocom/gsm/tlv.h ./deps/libosmocore/include/osmocom/gsm/gsm48_ie.h ./deps/libosmocore/include/osmocom/gsm/gsm_utils.h ./deps/libosmocore/include/osmocom/gprs/gprs_ns_frgre.h ./deps/libosmocore/include/osmocom/gprs/gprs_bssgp.h ./deps/libosmocore/include/osmocom/gprs/gprs_bssgp_bss.h ./deps/libosmocore/include/osmocom/gprs/protocol/gsm_08_18.h ./deps/libosmocore/include/osmocom/gprs/protocol/gsm_08_16.h ./deps/libosmocore/include/osmocom/gprs/protocol/gsm_04_60.h ./deps/libosmocore/include/osmocom/gprs/gprs_rlc.h ./deps/libosmocore/include/osmocom/gprs/gprs_msgb.h ./deps/libosmocore/include/osmocom/gprs/gprs_ns.h ./deps/libosmocore/tests/gsup/gsup_test.c ./deps/libosmocore/tests/comp128/comp128_test.c ./deps/libosmocore/tests/gsm0808/gsm0808_test.c ./deps/libosmocore/tests/socket/socket_test.c ./deps/libosmocore/tests/logging/logging_test.c ./deps/libosmocore/tests/tlv/tlv_test.c ./deps/libosmocore/tests/gb/gprs_ns_test.c ./deps/libosmocore/tests/gb/gprs_bssgp_test.c ./deps/libosmocore/tests/gb/bssgp_fc_test.c ./deps/libosmocore/tests/utils/utils_test.c ./deps/libosmocore/tests/timer/clk_override_test.c ./deps/libosmocore/tests/timer/timer_test.c ./deps/libosmocore/tests/gsm23003/gsm23003_test.c ./deps/libosmocore/tests/a5/a5_test.c ./deps/libosmocore/tests/kasumi/kasumi_test.c ./deps/libosmocore/tests/vty/vty_test.c ./deps/libosmocore/tests/libsercomstub.c ./deps/libosmocore/tests/sercomm/sercomm_test.c ./deps/libosmocore/tests/auth/milenage_test.c ./deps/libosmocore/tests/msgfile/msgfile_test.c ./deps/libosmocore/tests/ussd/ussd_test.c ./deps/libosmocore/tests/codec/codec_test.c ./deps/libosmocore/tests/codec/codec_ecu_fr_test.c ./deps/libosmocore/tests/prbs/prbs_test.c ./deps/libosmocore/tests/bitvec/bitvec_test.c ./deps/libosmocore/tests/gsm0408/gsm0408_test.c ./deps/libosmocore/tests/coding/coding_test.c ./deps/libosmocore/tests/strrb/strrb_test.c ./deps/libosmocore/tests/endian/endian_test.c ./deps/libosmocore/tests/msgb/msgb_test.c ./deps/libosmocore/tests/sim/sim_test.c ./deps/libosmocore/tests/write_queue/wqueue_test.c ./deps/libosmocore/tests/fsm/fsm_test.c ./deps/libosmocore/tests/oap/oap_test.c ./deps/libosmocore/tests/ctrl/ctrl_test.c ./deps/libosmocore/tests/fr/fr_test.c ./deps/libosmocore/tests/lapd/lapd_test.c ./deps/libosmocore/tests/sms/sms_test.c ./deps/libosmocore/tests/gea/gea_test.c ./deps/libosmocore/tests/loggingrb/loggingrb_test.c ./deps/libosmocore/tests/conv/gsm0503_test_vectors.c ./deps/libosmocore/tests/conv/conv.h ./deps/libosmocore/tests/conv/conv_test.c ./deps/libosmocore/tests/conv/conv.c ./deps/libosmocore/tests/conv/conv_gsm0503_test.c ./deps/libosmocore/tests/bits/bitrev_test.c ./deps/libosmocore/tests/bits/bitcomp_test.c ./deps/libosmocore/tests/bits/bitfield_test.c ./deps/libosmocore/tests/stats/stats_test.c ./deps/libosmocore/tests/abis/abis_test.c ./deps/libosmocore/tests/gprs/gprs_test.c ./deps/libosmocore/tests/smscb/gsm0341_test.c ./deps/libosmocore/tests/smscb/smscb_test.c ./simple_ctrl.c ./osysmon_file.c ./osysmon_sysinfo.c ./osysmon_ctrl.c ./value_node.c ./osysmon.h ./simple_ctrl.h ./osmo-ctrl-client.c + export PKG_CONFIG_PATH=: + PKG_CONFIG_PATH=: + export LD_LIBRARY_PATH= + LD_LIBRARY_PATH= + set +x =============================== osmo-sysmon ============================ + cd + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'. libtoolize: copying file './ltmain.sh' libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac, libtoolize: and rerunning libtoolize and aclocal. libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:20: installing './compile' configure.ac:22: installing './config.guess' configure.ac:22: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' Makefile.am: installing './depcomp' + ./configure --enable-sanitize --enable-external-tests --enable-werror configure: WARNING: unrecognized options: --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes configure: error: Please install autoconf-archive; re-run 'autoreconf -fi' for it to take effect. Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Jun 5 17:22:40 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 5 Jun 2018 17:22:40 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-sysmon_=C2=BB_a?= =?UTF-8?Q?1=3Ddefault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#2?= In-Reply-To: <6474965.351.1528218937382.JavaMail.jenkins@jenkins.osmocom.org> References: <6474965.351.1528218937382.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <384392079.352.1528219360047.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:23:31 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 5 Jun 2018 17:23:31 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-jenkins-slave: install autoconf-archive Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9464 Change subject: ansible: osmocom-jenkins-slave: install autoconf-archive ...................................................................... ansible: osmocom-jenkins-slave: install autoconf-archive Required at least by osmo-sysmon. Change-Id: I5c6536bfb68ffdda7ec7bf71f5d0efeb1cb77e61 --- M ansible/roles/osmocom-jenkins-slave/tasks/main.yml 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/64/9464/1 diff --git a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml index 347221f..215c988 100644 --- a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml +++ b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml @@ -12,6 +12,7 @@ with_items: - asciidoc - autoconf + - autoconf-archive - automake - bc - bison -- To view, visit https://gerrit.osmocom.org/9464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5c6536bfb68ffdda7ec7bf71f5d0efeb1cb77e61 Gerrit-Change-Number: 9464 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:25:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:25:07 +0000 Subject: Change in osmo-sysmon[master]: Remove unused last_value handling code In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9452 ) Change subject: Remove unused last_value handling code ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I14cc5883af8ae73bc462ed714ef38c8ee1444cc6 Gerrit-Change-Number: 9452 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 17:25:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:25:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:25:38 +0000 Subject: Change in osmo-sysmon[master]: Add zero termination char to received ctrl cmd message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9453 ) Change subject: Add zero termination char to received ctrl cmd message ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieaa9b3e2516d301ba45b6f3ec61870e928ed0cc6 Gerrit-Change-Number: 9453 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 17:25:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:25:45 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Jun 2018 17:25:45 +0000 Subject: Change in osmo-sysmon[master]: Remove unused last_value handling code In-Reply-To: References: Message-ID: daniel has submitted this change and it was merged. ( https://gerrit.osmocom.org/9452 ) Change subject: Remove unused last_value handling code ...................................................................... Remove unused last_value handling code Change-Id: I14cc5883af8ae73bc462ed714ef38c8ee1444cc6 --- M osysmon_ctrl.c 1 file changed, 1 insertion(+), 16 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/osysmon_ctrl.c b/osysmon_ctrl.c index b13b13b..15521aa 100644 --- a/osysmon_ctrl.c +++ b/osysmon_ctrl.c @@ -63,8 +63,6 @@ /* display name, if any */ const char *display_name; } cfg; - /* most recent value we received for this */ - char *last_value; }; static struct ctrl_client *ctrl_client_find(struct osysmon_state *os, const char *name) @@ -275,27 +273,14 @@ cc->sch = simple_ctrl_open(cc, cc->cfg.remote_host, cc->cfg.remote_port, 1000); /* abort, if that failed */ if (!cc->sch) { - llist_for_each_entry(ccgv, &cc->get_vars, list) { - if (ccgv->last_value) { - talloc_free(ccgv->last_value); - ccgv->last_value = talloc_strdup(ccgv, ""); - } - } return -1; } llist_for_each_entry(ccgv, &cc->get_vars, list) { char *value = simple_ctrl_get(cc->sch, ccgv->cfg.name); -#if 0 - if (ccgv->last_value) { - talloc_free(ccgv->last_value); - ccgv->last_value = NULL; - } - ccgv->last_value = value; -#else + value_node_add(vn_clnt, vn_clnt, ccgv->cfg.name, value); free(value); /* no talloc, this is from sscanf() */ -#endif } return 0; } -- To view, visit https://gerrit.osmocom.org/9452 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I14cc5883af8ae73bc462ed714ef38c8ee1444cc6 Gerrit-Change-Number: 9452 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:25:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:25:51 +0000 Subject: Change in osmo-sysmon[master]: Disconnect properly on errors so we can reconnect In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9454 ) Change subject: Disconnect properly on errors so we can reconnect ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id134be34a24e91a4c0b8a8d11cf4df9593dae687 Gerrit-Change-Number: 9454 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 17:25:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:25:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:25:53 +0000 Subject: Change in osmo-sysmon[master]: Add zero termination char to received ctrl cmd message In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9453 ) Change subject: Add zero termination char to received ctrl cmd message ...................................................................... Add zero termination char to received ctrl cmd message The terminating NULL byte is not part of the ctrl message, so add it afterwards. Change-Id: Ieaa9b3e2516d301ba45b6f3ec61870e928ed0cc6 --- M simple_ctrl.c 1 file changed, 7 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/simple_ctrl.c b/simple_ctrl.c index deab12c..2261323 100644 --- a/simple_ctrl.c +++ b/simple_ctrl.c @@ -173,7 +173,7 @@ } len = ntohs(hh.len); - resp = msgb_alloc(len+sizeof(hh), "CTRL Rx"); + resp = msgb_alloc(len+sizeof(hh)+1, "CTRL Rx"); if (!resp) return NULL; resp->l1h = msgb_put(resp, sizeof(hh)); @@ -196,6 +196,7 @@ struct msgb *resp; struct ipaccess_head *ih; struct ipaccess_head_ext *ihe; + unsigned char *tmp; /* loop until we've received a CTRL message */ while (true) { @@ -207,9 +208,12 @@ if (ih->proto == IPAC_PROTO_OSMO) resp->l2h = resp->l2h+1; ihe = (struct ipaccess_head_ext*) (resp->l1h + sizeof(*ih)); - if (ih->proto == IPAC_PROTO_OSMO && ihe->proto == IPAC_PROTO_EXT_CTRL) + if (ih->proto == IPAC_PROTO_OSMO && ihe->proto == IPAC_PROTO_EXT_CTRL) { + /* Ensure data is NULL terminated */ + tmp = msgb_put(resp, 1); + *tmp = '\0'; return resp; - else { + } else { fprintf(stderr, "unknown IPA message %s\n", msgb_hexdump(resp)); msgb_free(resp); } @@ -246,7 +250,6 @@ return NULL; /* FIXME: ignore any TRAP */ - /* FIXME: check string is zero-terminated */ return simple_ctrl_receive(sch); } -- To view, visit https://gerrit.osmocom.org/9453 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ieaa9b3e2516d301ba45b6f3ec61870e928ed0cc6 Gerrit-Change-Number: 9453 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:25:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:25:53 +0000 Subject: Change in osmo-sysmon[master]: Disconnect properly on errors so we can reconnect In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9454 ) Change subject: Disconnect properly on errors so we can reconnect ...................................................................... Disconnect properly on errors so we can reconnect Change-Id: Id134be34a24e91a4c0b8a8d11cf4df9593dae687 --- M osysmon_ctrl.c 1 file changed, 9 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/osysmon_ctrl.c b/osysmon_ctrl.c index 15521aa..25c2b4c 100644 --- a/osysmon_ctrl.c +++ b/osysmon_ctrl.c @@ -279,6 +279,15 @@ llist_for_each_entry(ccgv, &cc->get_vars, list) { char *value = simple_ctrl_get(cc->sch, ccgv->cfg.name); + /* FIXME: Distinguish between ERROR reply and + * connection issues */ + /* Close connection on error */ + if (!value) { + simple_ctrl_close(cc->sch); + cc->sch = NULL; + return 0; + } + value_node_add(vn_clnt, vn_clnt, ccgv->cfg.name, value); free(value); /* no talloc, this is from sscanf() */ } -- To view, visit https://gerrit.osmocom.org/9454 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id134be34a24e91a4c0b8a8d11cf4df9593dae687 Gerrit-Change-Number: 9454 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:26:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:26:07 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-jenkins-slave: install autoconf-archive In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9464 ) Change subject: ansible: osmocom-jenkins-slave: install autoconf-archive ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5c6536bfb68ffdda7ec7bf71f5d0efeb1cb77e61 Gerrit-Change-Number: 9464 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:26:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:26:09 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:26:09 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-jenkins-slave: install autoconf-archive In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9464 ) Change subject: ansible: osmocom-jenkins-slave: install autoconf-archive ...................................................................... ansible: osmocom-jenkins-slave: install autoconf-archive Required at least by osmo-sysmon. Change-Id: I5c6536bfb68ffdda7ec7bf71f5d0efeb1cb77e61 --- M ansible/roles/osmocom-jenkins-slave/tasks/main.yml 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml index 347221f..215c988 100644 --- a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml +++ b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml @@ -12,6 +12,7 @@ with_items: - asciidoc - autoconf + - autoconf-archive - automake - bc - bison -- To view, visit https://gerrit.osmocom.org/9464 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5c6536bfb68ffdda7ec7bf71f5d0efeb1cb77e61 Gerrit-Change-Number: 9464 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:27:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:27:18 +0000 Subject: Change in libosmo-sccp[master]: fix infinite recursion with routing by global title In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9463 ) Change subject: fix infinite recursion with routing by global title ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I24621e77ffc979bc337775f9c6a4ad9a9068625a Gerrit-Change-Number: 9463 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 17:27:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:27:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:27:19 +0000 Subject: Change in libosmo-sccp[master]: fix infinite recursion with routing by global title In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9463 ) Change subject: fix infinite recursion with routing by global title ...................................................................... fix infinite recursion with routing by global title We don't implement routing by global title address. When processing an SCCP message which is routed by global title, don't recurs indefinitely until the stack is exhausted. Instead, return an error with cause SUBSYSTEM_FAILURE, which we also do in other routing failure cases. Change-Id: I24621e77ffc979bc337775f9c6a4ad9a9068625a Related: OS#2666 --- M src/sccp_scrc.c 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/sccp_scrc.c b/src/sccp_scrc.c index dca5645..cd01774 100644 --- a/src/sccp_scrc.c +++ b/src/sccp_scrc.c @@ -279,8 +279,15 @@ translated.ri != OSMO_SCCP_RI_SSN_IP) { /* TODO: GT Routing */ LOGP(DLSCCP, LOGL_NOTICE, "GT Routing not implemented yet\n"); +#if 1 + /* Prevent endless recursion, see OS#2666. */ + sccp_sclc_rx_scrc_rout_fail(inst, xua, + SCCP_RETURN_CAUSE_SUBSYSTEM_FAILURE); + return 0; +#else /* Node 7 (Sheet 5) */ return scrc_node_7(inst, xua, called); +#endif } /* Check DPC resultant from GT translation */ -- To view, visit https://gerrit.osmocom.org/9463 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I24621e77ffc979bc337775f9c6a4ad9a9068625a Gerrit-Change-Number: 9463 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:32:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:32:33 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9402 ) Change subject: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9402/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9402/2//COMMIT_MSG at 23 PS2, Line 23: Got message: b'ERROR 23 No peers found' it's debatable if no peers is actually an "ERROR" in the context of the CTRL interface. I would argue the operation as successful but rendered 0 results. But then, as indicated, debatable :) -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 17:32:33 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:33:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:33:07 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: only check once the apt freshness In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9455 ) Change subject: ansible: gsm-tester: only check once the apt freshness ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I40462fed216b1c0844a41172001dd2aaf8a8d04c Gerrit-Change-Number: 9455 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:33:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:33:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:33:43 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add missing python dependencies In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9456 ) Change subject: ansible: gsm-tester: add missing python dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0871df95a968f8f9e9318882c5397a16cba1814a Gerrit-Change-Number: 9456 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:33:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:33:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:33:55 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-network: start all network interfaces after addin... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9457 ) Change subject: ansible: gsm-tester-network: start all network interfaces after adding new ones ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I197dadb68cffeba4c451d2fbfe40075039a67cb8 Gerrit-Change-Number: 9457 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:33:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:34:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:34:57 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9458 ) Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/9458/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9458/1//COMMIT_MSG at 9 PS1, Line 9: we install our own ofono and don't need the system's ofono one could do something like "apt-get build-dep ofono" to ensure we have all the build dependencies installed for ofono? -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:34:57 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:35:09 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:35:09 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add udev rule to allow jenkins to access sispm d... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9459 ) Change subject: ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 Gerrit-Change-Number: 9459 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:35:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:35:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:35:19 +0000 Subject: Change in osmo-ci[master]: ansible: setup-gsm-tester.yml: use role gsm-tester-bts In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9460 ) Change subject: ansible: setup-gsm-tester.yml: use role gsm-tester-bts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 Gerrit-Change-Number: 9460 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:35:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:35:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:35:35 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-bts: remove role prefix in names In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9461 ) Change subject: ansible: gsm-tester-bts: remove role prefix in names ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 Gerrit-Change-Number: 9461 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:35:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 17:35:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 17:35:50 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: fix apt_repository tasks In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9462 ) Change subject: ansible: gsm-tester: fix apt_repository tasks ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icc97d9d2355f8922853d6b21cb8a95f532347031 Gerrit-Change-Number: 9462 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 05 Jun 2018 17:35:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 5 17:40:10 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 5 Jun 2018 17:40:10 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-iuh_=C2=BB_a1=3Dd?= =?UTF-8?Q?efault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1311?= In-Reply-To: <18783009.350.1528215042872.JavaMail.jenkins@jenkins.osmocom.org> References: <18783009.350.1528215042872.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <292135436.353.1528220410502.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Jun 5 18:58:26 2018 From: gerrit-no-reply at lists.osmocom.org (roox) Date: Tue, 5 Jun 2018 18:58:26 +0000 Subject: Change in osmo-sysmon[master]: Makefile.am: Fix typo Message-ID: roox has uploaded this change for review. ( https://gerrit.osmocom.org/9465 Change subject: Makefile.am: Fix typo ...................................................................... Makefile.am: Fix typo Change-Id: I392cf453087230d848bafe959544646e68df8070 --- M Makefile.am 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/65/9465/1 diff --git a/Makefile.am b/Makefile.am index 354e972..9ad5947 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,7 +13,7 @@ AM_LDFLAGS = \ $(COVERAGE_LDFLAGS) \ - $(NUKK) + $(NULL) bin_PROGRAMS = \ osmo-sysmon \ -- To view, visit https://gerrit.osmocom.org/9465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I392cf453087230d848bafe959544646e68df8070 Gerrit-Change-Number: 9465 Gerrit-PatchSet: 1 Gerrit-Owner: roox -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 19:58:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 19:58:05 +0000 Subject: Change in osmo-bsc[master]: Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9466 Change subject: Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case ...................................................................... Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case If we receive a BSSMAP ASSIGNMENT REQ for a speech channel containing only a CIC but no AoIP transport layer address, then that's illegal and must be rejected. In Change-Id If362a0084de452727cd063063dfb645eca2f9beb we re-introduced accepting CIC-only ASSIGNMENT REQ, but we failed to verify that this actually only happens over a SCCPlite A interface. This fixes the BSC_Tests.TC_assignment_cic_only testcase. Change-Id: Ia6e3897edca48b9f838ea69939d9b8be7185abf8 --- M src/osmo-bsc/osmo_bsc_bssap.c 1 file changed, 25 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/9466/1 diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 24a5e3a..c2d51b5 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -742,6 +742,8 @@ } msc = conn->sccp.msc; + if (msc->a.asp_proto != OSMO_SS7_ASP_PROT_IPA) + aoip = true; tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); @@ -771,14 +773,27 @@ cause = GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP; goto reject; case GSM0808_CHAN_SPEECH: - /* Detect if a CIC code is present, if so, we use the classic ip.access method to - * calculate the RTP port */ if (TLVP_PRESENT(&tp, GSM0808_IE_CIRCUIT_IDENTITY_CODE)) { + /* CIC is permitted in both AoIP and SCCPlite */ conn->user_plane.cic = osmo_load16be(TLVP_VAL(&tp, GSM0808_IE_CIRCUIT_IDENTITY_CODE)); timeslot = conn->user_plane.cic & 0x1f; multiplex = (conn->user_plane.cic & ~0x1f) >> 5; - } else if (TLVP_PRESENT(&tp, GSM0808_IE_AOIP_TRASP_ADDR)) { + } else { + if (!aoip) { + /* no CIC but SCCPlite: illegal */ + LOGP(DMSC, LOGL_ERROR, "SCCPlite MSC, but no CIC in ASSIGN REQ?\n"); + cause = GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING; + goto reject; + } + } + if (TLVP_PRESENT(&tp, GSM0808_IE_AOIP_TRASP_ADDR)) { + if (!aoip) { + /* SCCPlite and AoIP transport address: illegal */ + LOGP(DMSC, LOGL_ERROR, "AoIP Transport address over IPA ?!?\n"); + cause = GSM0808_CAUSE_INCORRECT_VALUE; + goto reject; + } /* Decode AoIP transport address element */ rc = gsm0808_dec_aoip_trasp_addr(&rtp_addr, TLVP_VAL(&tp, GSM0808_IE_AOIP_TRASP_ADDR), @@ -788,12 +803,14 @@ cause = GSM0808_CAUSE_INCORRECT_VALUE; goto reject; } - aoip = true; } else { - LOGP(DMSC, LOGL_ERROR, "AoIP transport address and CIC missing. " - "Audio would not work; rejecting\n"); - cause = GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING; - goto reject; + if (aoip) { + /* no AoIP transport level address but AoIP transport: illegal */ + LOGP(DMSC, LOGL_ERROR, "AoIP transport address missing in ASSIGN REQ, " + "audio would not work; rejecting\n"); + cause = GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING; + goto reject; + } } /* Decode speech codec list (AoIP) */ -- To view, visit https://gerrit.osmocom.org/9466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia6e3897edca48b9f838ea69939d9b8be7185abf8 Gerrit-Change-Number: 9466 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 20:20:50 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 5 Jun 2018 20:20:50 +0000 Subject: Change in osmocom-bb[master]: mobile: Make time spent in c7 configurable In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/9407 ) Change subject: mobile: Make time spent in c7 configurable ...................................................................... mobile: Make time spent in c7 configurable When no cell was found during the PLMN search the camp on any cell state will be entered. LUs are prevented in this state and it will be left after the start_any_timer has timedout. Even if camping on the home network the state will not be left before the expiry of the timer. For systematic tests this is producing a too high upper bound. Make it configurable so we can succeed with a UL more quickly. Change-Id: I25bc985cd4360d5e37d05a7b16b39eefb75ce20f --- M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/subscriber.c M src/host/layer23/src/mobile/vty_interface.c 4 files changed, 26 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index cdf6323..a1bce06 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -1,6 +1,8 @@ #ifndef _settings_h #define _settings_h +#define MOB_C7_DEFLT_ANY_TIMEOUT 30 + struct gsm_settings { char layer2_socket_path[128]; char sap_socket_path[128]; @@ -100,6 +102,9 @@ uint8_t class_dtm; uint8_t dtm_mac; uint8_t dtm_egprs; + + /* Timeout for GSM 03.22 C7 state */ + uint8_t any_timeout; }; struct gsm_settings_abbrev { diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index 6d50c6b..f1c0cfc 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -90,6 +90,8 @@ /* software features */ set->cc_dtmf = 1; + set->any_timeout = MOB_C7_DEFLT_ANY_TIMEOUT; + INIT_LLIST_HEAD(&set->abbrev); return 0; diff --git a/src/host/layer23/src/mobile/subscriber.c b/src/host/layer23/src/mobile/subscriber.c index d332a07..6a30148 100644 --- a/src/host/layer23/src/mobile/subscriber.c +++ b/src/host/layer23/src/mobile/subscriber.c @@ -99,7 +99,7 @@ subscr->key_seq = 7; /* any cell selection timer timeout */ - subscr->any_timeout = 30; + subscr->any_timeout = ms->settings.any_timeout; /* init lists */ INIT_LLIST_HEAD(&subscr->plmn_list); diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index 37093ce..f8ecb28 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -1528,6 +1528,10 @@ vty_out(vty, " hplmn-search %s%s", (set->test_always) ? "everywhere" : "foreign-country", VTY_NEWLINE); + if (!hide_default || set->any_timeout != MOB_C7_DEFLT_ANY_TIMEOUT) + vty_out(vty, " c7-any-timeout %d%s", + set->any_timeout, VTY_NEWLINE); + /* no shutdown must be written to config, because shutdown is default */ vty_out(vty, " %sshutdown%s", (ms->shutdown != MS_SHUTDOWN_NONE) ? "" : "no ", VTY_NEWLINE); @@ -2170,6 +2174,19 @@ return CMD_SUCCESS; } +DEFUN(cfg_ms_any_timeout, cfg_ms_any_timeout_cmd, "c7-any-timeout <0-255>", + "Seconds to wait in C7 before doing a PLMN search") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + set->any_timeout = atoi(argv[0]); + + vty_restart_if_started(vty, ms); + + return CMD_SUCCESS; +} + static int config_write_dummy(struct vty *vty) { return CMD_SUCCESS; @@ -2891,6 +2908,7 @@ install_element(MS_NODE, &cfg_ms_testsim_cmd); install_element(MS_NODE, &cfg_ms_neighbour_cmd); install_element(MS_NODE, &cfg_ms_no_neighbour_cmd); + install_element(MS_NODE, &cfg_ms_any_timeout_cmd); install_element(MS_NODE, &cfg_ms_support_cmd); install_node(&support_node, config_write_dummy); install_element(SUPPORT_NODE, &cfg_ms_sup_dtmf_cmd); -- To view, visit https://gerrit.osmocom.org/9407 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I25bc985cd4360d5e37d05a7b16b39eefb75ce20f Gerrit-Change-Number: 9407 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 20:21:41 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 5 Jun 2018 20:21:41 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Fix memory leak in case the storage can not be opened In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/9417 ) Change subject: mobile/sms: Fix memory leak in case the storage can not be opened ...................................................................... Patch Set 1: > (1 comment) True but the scope seems different? One is global and the other is per ms? How would you deal with it? I am happy to follow up. -- To view, visit https://gerrit.osmocom.org/9417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifce2bc130fe3a5bd49ad457ee61002952dd496ba Gerrit-Change-Number: 9417 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 05 Jun 2018 20:21:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 20:21:58 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 5 Jun 2018 20:21:58 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Fix memory leak in case the storage can not be opened In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/9417 ) Change subject: mobile/sms: Fix memory leak in case the storage can not be opened ...................................................................... mobile/sms: Fix memory leak in case the storage can not be opened Before jumping to the failure handling code free the sms_file. Change-Id: Ifce2bc130fe3a5bd49ad457ee61002952dd496ba --- M src/host/layer23/src/mobile/gsm411_sms.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/src/mobile/gsm411_sms.c b/src/host/layer23/src/mobile/gsm411_sms.c index 9090697..3eca48a 100644 --- a/src/host/layer23/src/mobile/gsm411_sms.c +++ b/src/host/layer23/src/mobile/gsm411_sms.c @@ -213,8 +213,10 @@ snprintf(sms_file, len, "%s/%s", home, osmocomsms); fp = fopen(sms_file, "a"); - if (!fp) + if (!fp) { + talloc_free(sms_file); goto fail; + } fprintf(fp, "[SMS from %s]\n%s\n", gsms->address, gsms->text); fclose(fp); -- To view, visit https://gerrit.osmocom.org/9417 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifce2bc130fe3a5bd49ad457ee61002952dd496ba Gerrit-Change-Number: 9417 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 20:22:22 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 5 Jun 2018 20:22:22 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Simplify the string format routines In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/9418 ) Change subject: mobile/sms: Simplify the string format routines ...................................................................... mobile/sms: Simplify the string format routines It seems the original code didn't allocate \0 for the string. Just use talloc_asprintf and get a new string... Change-Id: I8ffb50b04d2d6196caf0231711f3467abc8c5ea5 --- M src/host/layer23/src/mobile/gsm411_sms.c 1 file changed, 1 insertion(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/src/mobile/gsm411_sms.c b/src/host/layer23/src/mobile/gsm411_sms.c index 3eca48a..fe13ba1 100644 --- a/src/host/layer23/src/mobile/gsm411_sms.c +++ b/src/host/layer23/src/mobile/gsm411_sms.c @@ -182,7 +182,6 @@ struct gsm_sms *gsms) { const char osmocomsms[] = ".osmocom/bb/sms.txt"; - int len; const char *home; char *sms_file; char vty_text[sizeof(gsms->text)], *p; @@ -206,11 +205,9 @@ "your home directory.\n", osmocomsms); return GSM411_RP_CAUSE_MT_MEM_EXCEEDED; } - len = strlen(home) + 1 + sizeof(osmocomsms); - sms_file = talloc_size(l23_ctx, len); + sms_file = talloc_asprintf(l23_ctx, "%s/%s", home, osmocomsms); if (!sms_file) goto fail; - snprintf(sms_file, len, "%s/%s", home, osmocomsms); fp = fopen(sms_file, "a"); if (!fp) { -- To view, visit https://gerrit.osmocom.org/9418 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8ffb50b04d2d6196caf0231711f3467abc8c5ea5 Gerrit-Change-Number: 9418 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 20:23:00 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 5 Jun 2018 20:23:00 +0000 Subject: Change in openbsc[master]: test.. please ignore In-Reply-To: References: Message-ID: Holger Freyther has abandoned this change. ( https://gerrit.osmocom.org/52 ) Change subject: test.. please ignore ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/52 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I3458f8f6596ff5446261e7e4c3ef8923cc21db06 Gerrit-Change-Number: 52 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 20:34:40 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 5 Jun 2018 20:34:40 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Make it optional to store the SMS on disk Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9467 Change subject: mobile/sms: Make it optional to store the SMS on disk ...................................................................... mobile/sms: Make it optional to store the SMS on disk Disable storing the SMS on disk. This is useful when scripting mobile. Keep the default of attempting to store it to disk. Change-Id: I6353447343d98ebaa5e12ab63f995750f81c8500 --- M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/src/mobile/gsm411_sms.c M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/vty_interface.c 4 files changed, 37 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/67/9467/1 diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index a1bce06..4e5d5a1 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -21,6 +21,7 @@ /* SMS */ char sms_sca[22]; + bool store_sms; /* test card simulator settings */ char test_imsi[16]; diff --git a/src/host/layer23/src/mobile/gsm411_sms.c b/src/host/layer23/src/mobile/gsm411_sms.c index fe13ba1..623ba53 100644 --- a/src/host/layer23/src/mobile/gsm411_sms.c +++ b/src/host/layer23/src/mobile/gsm411_sms.c @@ -177,8 +177,8 @@ * receive SMS */ -/* now here comes our SMS */ -static int gsm340_rx_sms_deliver(struct osmocom_ms *ms, struct msgb *msg, +/* store the SMS to disk */ +static int sms_store(struct osmocom_ms *ms, struct msgb *msg, struct gsm_sms *gsms) { const char osmocomsms[] = ".osmocom/bb/sms.txt"; @@ -187,8 +187,6 @@ char vty_text[sizeof(gsms->text)], *p; FILE *fp; - mobile_prim_ntfy_sms_new(ms, gsms); - /* remove linefeeds and show at VTY */ strcpy(vty_text, gsms->text); for (p = vty_text; *p; p++) { @@ -222,6 +220,16 @@ return 0; } +/* now here comes our SMS */ +static int gsm340_rx_sms_deliver(struct osmocom_ms *ms, struct msgb *msg, + struct gsm_sms *gsms) +{ + mobile_prim_ntfy_sms_new(ms, gsms); + if (!ms->settings.store_sms) + return 0; + return sms_store(ms, msg, gsms); +} + /* process an incoming TPDU (called from RP-DATA) * return value > 0: RP CAUSE for ERROR; < 0: silent error; 0 = success */ static int gsm340_rx_tpdu(struct gsm_trans *trans, struct msgb *msg, uint8_t msg_ref) diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index f1c0cfc..7370b0a 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -92,6 +92,8 @@ set->any_timeout = MOB_C7_DEFLT_ANY_TIMEOUT; + set->store_sms = true; + INIT_LLIST_HEAD(&set->abbrev); return 0; diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index f8ecb28..ec1216f 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -1766,6 +1766,26 @@ return CMD_SUCCESS; } +DEFUN(cfg_ms_no_sms_store, cfg_ms_no_sms_store_cmd, "no sms-store", + NO_STR "Store SMS in the home directory") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + set->store_sms = false; + return CMD_SUCCESS; +} + +DEFUN(cfg_ms_sms_store, cfg_ms_sms_store_cmd, "sms-store", + "Store SMS in the home directory") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + set->store_sms = true; + return CMD_SUCCESS; +} + DEFUN(cfg_no_cw, cfg_ms_no_cw_cmd, "no call-waiting", NO_STR "Disallow waiting calls") { @@ -2909,6 +2929,8 @@ install_element(MS_NODE, &cfg_ms_neighbour_cmd); install_element(MS_NODE, &cfg_ms_no_neighbour_cmd); install_element(MS_NODE, &cfg_ms_any_timeout_cmd); + install_element(MS_NODE, &cfg_ms_sms_store_cmd); + install_element(MS_NODE, &cfg_ms_no_sms_store_cmd); install_element(MS_NODE, &cfg_ms_support_cmd); install_node(&support_node, config_write_dummy); install_element(SUPPORT_NODE, &cfg_ms_sup_dtmf_cmd); -- To view, visit https://gerrit.osmocom.org/9467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6353447343d98ebaa5e12ab63f995750f81c8500 Gerrit-Change-Number: 9467 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:43:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:43:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9468 Change subject: bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL ...................................................................... bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL When f_ass_patch_lcls() was recently introduced during LCLS support patches, we broke any testcases that *expected* an ASSIGNMENT FAIL by overwriting the ASSIGNMENT FAIL with an ASSIGNMENT COMPL. This patch fixes f_ass_patch_lcls() to only patch 'assignmentComplete' members, if this assignmentComplete is actually chosen. This fixes BSC_Tests.TC_assignment_fr_a5_1_codec_missing Change-Id: I64fbf4cc3178a91913143960475a0d3758779ced --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/68/9468/1 diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 225e86b..0846762 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -742,10 +742,12 @@ if (ispresent(g_pars.lcls.csc)) { ass_tpl.pdu.bssmap.assignmentRequest.lCLS_ConnectionStatusControl := ts_BSSMAP_IE_LclsCsc(g_pars.lcls.csc); } - if (ispresent(g_pars.lcls.exp_sts)) { - ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(g_pars.lcls.exp_sts); - } else { - ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := omit; + if (ischosen(ass_cpl.pdu.bssmap.assignmentComplete)) { + if (ispresent(g_pars.lcls.exp_sts)) { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(g_pars.lcls.exp_sts); + } else { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := omit; + } } } -- To view, visit https://gerrit.osmocom.org/9468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I64fbf4cc3178a91913143960475a0d3758779ced Gerrit-Change-Number: 9468 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:44:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:44:06 +0000 Subject: Change in osmo-bsc[master]: Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9466 ) Change subject: Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia6e3897edca48b9f838ea69939d9b8be7185abf8 Gerrit-Change-Number: 9466 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 21:44:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:44:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:44:08 +0000 Subject: Change in osmo-bsc[master]: Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9466 ) Change subject: Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case ...................................................................... Reject ASSIGNMENT REQ with CIC but no AoIP transp addr in AoIP case If we receive a BSSMAP ASSIGNMENT REQ for a speech channel containing only a CIC but no AoIP transport layer address, then that's illegal and must be rejected. In Change-Id If362a0084de452727cd063063dfb645eca2f9beb we re-introduced accepting CIC-only ASSIGNMENT REQ, but we failed to verify that this actually only happens over a SCCPlite A interface. This fixes the BSC_Tests.TC_assignment_cic_only testcase. Change-Id: Ia6e3897edca48b9f838ea69939d9b8be7185abf8 --- M src/osmo-bsc/osmo_bsc_bssap.c 1 file changed, 25 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index 24a5e3a..c2d51b5 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -742,6 +742,8 @@ } msc = conn->sccp.msc; + if (msc->a.asp_proto != OSMO_SS7_ASP_PROT_IPA) + aoip = true; tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); @@ -771,14 +773,27 @@ cause = GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP; goto reject; case GSM0808_CHAN_SPEECH: - /* Detect if a CIC code is present, if so, we use the classic ip.access method to - * calculate the RTP port */ if (TLVP_PRESENT(&tp, GSM0808_IE_CIRCUIT_IDENTITY_CODE)) { + /* CIC is permitted in both AoIP and SCCPlite */ conn->user_plane.cic = osmo_load16be(TLVP_VAL(&tp, GSM0808_IE_CIRCUIT_IDENTITY_CODE)); timeslot = conn->user_plane.cic & 0x1f; multiplex = (conn->user_plane.cic & ~0x1f) >> 5; - } else if (TLVP_PRESENT(&tp, GSM0808_IE_AOIP_TRASP_ADDR)) { + } else { + if (!aoip) { + /* no CIC but SCCPlite: illegal */ + LOGP(DMSC, LOGL_ERROR, "SCCPlite MSC, but no CIC in ASSIGN REQ?\n"); + cause = GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING; + goto reject; + } + } + if (TLVP_PRESENT(&tp, GSM0808_IE_AOIP_TRASP_ADDR)) { + if (!aoip) { + /* SCCPlite and AoIP transport address: illegal */ + LOGP(DMSC, LOGL_ERROR, "AoIP Transport address over IPA ?!?\n"); + cause = GSM0808_CAUSE_INCORRECT_VALUE; + goto reject; + } /* Decode AoIP transport address element */ rc = gsm0808_dec_aoip_trasp_addr(&rtp_addr, TLVP_VAL(&tp, GSM0808_IE_AOIP_TRASP_ADDR), @@ -788,12 +803,14 @@ cause = GSM0808_CAUSE_INCORRECT_VALUE; goto reject; } - aoip = true; } else { - LOGP(DMSC, LOGL_ERROR, "AoIP transport address and CIC missing. " - "Audio would not work; rejecting\n"); - cause = GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING; - goto reject; + if (aoip) { + /* no AoIP transport level address but AoIP transport: illegal */ + LOGP(DMSC, LOGL_ERROR, "AoIP transport address missing in ASSIGN REQ, " + "audio would not work; rejecting\n"); + cause = GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING; + goto reject; + } } /* Decode speech codec list (AoIP) */ -- To view, visit https://gerrit.osmocom.org/9466 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia6e3897edca48b9f838ea69939d9b8be7185abf8 Gerrit-Change-Number: 9466 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:44:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:44:40 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Make it optional to store the SMS on disk In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9467 ) Change subject: mobile/sms: Make it optional to store the SMS on disk ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6353447343d98ebaa5e12ab63f995750f81c8500 Gerrit-Change-Number: 9467 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 21:44:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:44:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:44:41 +0000 Subject: Change in osmocom-bb[master]: mobile/sms: Make it optional to store the SMS on disk In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9467 ) Change subject: mobile/sms: Make it optional to store the SMS on disk ...................................................................... mobile/sms: Make it optional to store the SMS on disk Disable storing the SMS on disk. This is useful when scripting mobile. Keep the default of attempting to store it to disk. Change-Id: I6353447343d98ebaa5e12ab63f995750f81c8500 --- M src/host/layer23/include/osmocom/bb/mobile/settings.h M src/host/layer23/src/mobile/gsm411_sms.c M src/host/layer23/src/mobile/settings.c M src/host/layer23/src/mobile/vty_interface.c 4 files changed, 37 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/include/osmocom/bb/mobile/settings.h b/src/host/layer23/include/osmocom/bb/mobile/settings.h index a1bce06..4e5d5a1 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/settings.h +++ b/src/host/layer23/include/osmocom/bb/mobile/settings.h @@ -21,6 +21,7 @@ /* SMS */ char sms_sca[22]; + bool store_sms; /* test card simulator settings */ char test_imsi[16]; diff --git a/src/host/layer23/src/mobile/gsm411_sms.c b/src/host/layer23/src/mobile/gsm411_sms.c index fe13ba1..623ba53 100644 --- a/src/host/layer23/src/mobile/gsm411_sms.c +++ b/src/host/layer23/src/mobile/gsm411_sms.c @@ -177,8 +177,8 @@ * receive SMS */ -/* now here comes our SMS */ -static int gsm340_rx_sms_deliver(struct osmocom_ms *ms, struct msgb *msg, +/* store the SMS to disk */ +static int sms_store(struct osmocom_ms *ms, struct msgb *msg, struct gsm_sms *gsms) { const char osmocomsms[] = ".osmocom/bb/sms.txt"; @@ -187,8 +187,6 @@ char vty_text[sizeof(gsms->text)], *p; FILE *fp; - mobile_prim_ntfy_sms_new(ms, gsms); - /* remove linefeeds and show at VTY */ strcpy(vty_text, gsms->text); for (p = vty_text; *p; p++) { @@ -222,6 +220,16 @@ return 0; } +/* now here comes our SMS */ +static int gsm340_rx_sms_deliver(struct osmocom_ms *ms, struct msgb *msg, + struct gsm_sms *gsms) +{ + mobile_prim_ntfy_sms_new(ms, gsms); + if (!ms->settings.store_sms) + return 0; + return sms_store(ms, msg, gsms); +} + /* process an incoming TPDU (called from RP-DATA) * return value > 0: RP CAUSE for ERROR; < 0: silent error; 0 = success */ static int gsm340_rx_tpdu(struct gsm_trans *trans, struct msgb *msg, uint8_t msg_ref) diff --git a/src/host/layer23/src/mobile/settings.c b/src/host/layer23/src/mobile/settings.c index f1c0cfc..7370b0a 100644 --- a/src/host/layer23/src/mobile/settings.c +++ b/src/host/layer23/src/mobile/settings.c @@ -92,6 +92,8 @@ set->any_timeout = MOB_C7_DEFLT_ANY_TIMEOUT; + set->store_sms = true; + INIT_LLIST_HEAD(&set->abbrev); return 0; diff --git a/src/host/layer23/src/mobile/vty_interface.c b/src/host/layer23/src/mobile/vty_interface.c index f8ecb28..ec1216f 100644 --- a/src/host/layer23/src/mobile/vty_interface.c +++ b/src/host/layer23/src/mobile/vty_interface.c @@ -1766,6 +1766,26 @@ return CMD_SUCCESS; } +DEFUN(cfg_ms_no_sms_store, cfg_ms_no_sms_store_cmd, "no sms-store", + NO_STR "Store SMS in the home directory") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + set->store_sms = false; + return CMD_SUCCESS; +} + +DEFUN(cfg_ms_sms_store, cfg_ms_sms_store_cmd, "sms-store", + "Store SMS in the home directory") +{ + struct osmocom_ms *ms = vty->index; + struct gsm_settings *set = &ms->settings; + + set->store_sms = true; + return CMD_SUCCESS; +} + DEFUN(cfg_no_cw, cfg_ms_no_cw_cmd, "no call-waiting", NO_STR "Disallow waiting calls") { @@ -2909,6 +2929,8 @@ install_element(MS_NODE, &cfg_ms_neighbour_cmd); install_element(MS_NODE, &cfg_ms_no_neighbour_cmd); install_element(MS_NODE, &cfg_ms_any_timeout_cmd); + install_element(MS_NODE, &cfg_ms_sms_store_cmd); + install_element(MS_NODE, &cfg_ms_no_sms_store_cmd); install_element(MS_NODE, &cfg_ms_support_cmd); install_node(&support_node, config_write_dummy); install_element(SUPPORT_NODE, &cfg_ms_sup_dtmf_cmd); -- To view, visit https://gerrit.osmocom.org/9467 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6353447343d98ebaa5e12ab63f995750f81c8500 Gerrit-Change-Number: 9467 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:44:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:44:53 +0000 Subject: Change in osmo-sysmon[master]: Makefile.am: Fix typo In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9465 ) Change subject: Makefile.am: Fix typo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I392cf453087230d848bafe959544646e68df8070 Gerrit-Change-Number: 9465 Gerrit-PatchSet: 1 Gerrit-Owner: roox Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 21:44:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:44:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:44:54 +0000 Subject: Change in osmo-sysmon[master]: Makefile.am: Fix typo In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9465 ) Change subject: Makefile.am: Fix typo ...................................................................... Makefile.am: Fix typo Change-Id: I392cf453087230d848bafe959544646e68df8070 --- M Makefile.am 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/Makefile.am b/Makefile.am index 354e972..9ad5947 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,7 +13,7 @@ AM_LDFLAGS = \ $(COVERAGE_LDFLAGS) \ - $(NUKK) + $(NULL) bin_PROGRAMS = \ osmo-sysmon \ -- To view, visit https://gerrit.osmocom.org/9465 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I392cf453087230d848bafe959544646e68df8070 Gerrit-Change-Number: 9465 Gerrit-PatchSet: 1 Gerrit-Owner: roox Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:45:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:45:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9468 ) Change subject: bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I64fbf4cc3178a91913143960475a0d3758779ced Gerrit-Change-Number: 9468 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 05 Jun 2018 21:45:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 5 21:45:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Jun 2018 21:45:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9468 ) Change subject: bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL ...................................................................... bsc: Fix f_establish_fully() for cases where we expect ASSIGN FAIL When f_ass_patch_lcls() was recently introduced during LCLS support patches, we broke any testcases that *expected* an ASSIGNMENT FAIL by overwriting the ASSIGNMENT FAIL with an ASSIGNMENT COMPL. This patch fixes f_ass_patch_lcls() to only patch 'assignmentComplete' members, if this assignmentComplete is actually chosen. This fixes BSC_Tests.TC_assignment_fr_a5_1_codec_missing Change-Id: I64fbf4cc3178a91913143960475a0d3758779ced --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 6 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 225e86b..0846762 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -742,10 +742,12 @@ if (ispresent(g_pars.lcls.csc)) { ass_tpl.pdu.bssmap.assignmentRequest.lCLS_ConnectionStatusControl := ts_BSSMAP_IE_LclsCsc(g_pars.lcls.csc); } - if (ispresent(g_pars.lcls.exp_sts)) { - ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(g_pars.lcls.exp_sts); - } else { - ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := omit; + if (ischosen(ass_cpl.pdu.bssmap.assignmentComplete)) { + if (ispresent(g_pars.lcls.exp_sts)) { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := tr_BSSMAP_IE_LclsSts(g_pars.lcls.exp_sts); + } else { + ass_cpl.pdu.bssmap.assignmentComplete.lCLS_BSS_Status := omit; + } } } -- To view, visit https://gerrit.osmocom.org/9468 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I64fbf4cc3178a91913143960475a0d3758779ced Gerrit-Change-Number: 9468 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 00:15:13 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Jun 2018 00:15:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9469 Change subject: USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR ...................................................................... USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR Change-Id: I9f2b526cb67224cab81364cec34efd42bbb44327 --- M msc/USSD_Helpers.ttcn 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/9469/1 diff --git a/msc/USSD_Helpers.ttcn b/msc/USSD_Helpers.ttcn index 6a71681..5dd4bb1 100644 --- a/msc/USSD_Helpers.ttcn +++ b/msc/USSD_Helpers.ttcn @@ -60,4 +60,19 @@ return enc_SS_FacilityInformation(facility_ie); } +function f_USSD_FACILITY_IE_RETURN_ERROR( + integer invoke_id := 1, + SS_Err_Code err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE +) return octetstring { + var SS_FacilityInformation facility_ie; + + /* Encode Facility IE */ + facility_ie := valueof(ts_SS_FACILITY_RETURN_ERROR( + invoke_id := invoke_id, + err_code := err_code + )); + + return enc_SS_FacilityInformation(facility_ie); +} + } -- To view, visit https://gerrit.osmocom.org/9469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9f2b526cb67224cab81364cec34efd42bbb44327 Gerrit-Change-Number: 9469 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 00:15:13 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Jun 2018 00:15:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: msc/USSD: add unknown request code testcase Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9470 Change subject: WIP: msc/USSD: add unknown request code testcase ...................................................................... WIP: msc/USSD: add unknown request code testcase The idea of this testcase is to check reaction of the network on reception of USSD request with unknown/unhandled request code. It is not clearly defined by the GSM specs, how the network should react in such cases, but looking at GSM TS 04.80, section 4.3.2 "Error types description", the UnexpectedDataValue error looks suitable. Commercial networks also use this error when an unknown request code is sent. Change-Id: I6a3fcaafc37972a38c13722f0b511ea5e1e3fbd8 --- M msc/MSC_Tests.ttcn 1 file changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/70/9470/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 05d6b4f..7b8740c 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2163,6 +2163,59 @@ vc_conn.done; } +private function f_tc_lu_and_ussd_wrong_code(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Perform location update */ + f_perform_lu(); + + /* Send CM Service Request for SS/USSD */ + f_establish_fully(EST_TYPE_SS_ACT); + + /* Compose a new SS/REGISTER message with request */ + var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( + tid := 1, /* We just need a single transaction */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "*#999#" + ) + ); + + /* Compose SS/RELEASE_COMPLETE template with expected response */ + var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := 1, /* Response should arrive within the same transaction */ + ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ + facility := f_USSD_FACILITY_IE_RETURN_ERROR( + invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */ + err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE + ) + ); + + /* Request own number request */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); + alt { + /* We expect RELEASE_COMPLETE message with the response */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + } + + f_expect_clear(); +} +testcase TC_lu_and_ussd_wrong_code() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_wrong_code), 47); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2245,6 +2298,7 @@ execute( TC_smpp_mt_sms() ); execute( TC_lu_and_ussd_single_req() ); + execute( TC_lu_and_ussd_wrong_code() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); -- To view, visit https://gerrit.osmocom.org/9470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6a3fcaafc37972a38c13722f0b511ea5e1e3fbd8 Gerrit-Change-Number: 9470 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 00:15:14 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Jun 2018 00:15:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: msc/USSD: add multi-transaction testcase Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9471 Change subject: WIP: msc/USSD: add multi-transaction testcase ...................................................................... WIP: msc/USSD: add multi-transaction testcase The idea of this testcase is to establish a dedicated connection, perform location update, and then send 8 USSD requests on 8 separate transactions at once. A few requests contain known '*#100#' request code, others are intentionally wrong. Finally, we expect that each received response shall correspond to its request and shall be sent back on a proper transaction. Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 --- M msc/MSC_Tests.ttcn 1 file changed, 136 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/71/9471/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 7b8740c..bb44f83 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2216,6 +2216,141 @@ vc_conn.done; } +private template (value) PDU_DTAP_MO ts_dtap_ussd_init_req( + uint3_t tid := 0, + charstring code +) := ts_PDU_DTAP_MO( + ts_ML3_MO_SS_REGISTER( + tid := tid, + ti_flag := c_TIF_ORIG, + facility := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := code + ) + ) +) +private template PDU_DTAP_MT tr_dtap_ussd_result( + template uint3_t tid := ?, + charstring result +) := tr_PDU_DTAP_MT( + tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := tid, + ti_flag := c_TIF_REPL, + facility := f_USSD_FACILITY_IE_RETURN_RESULT( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := result + ) + ) +) +private template PDU_DTAP_MT tr_dtap_ussd_error( + template uint3_t tid := ?, + SS_Err_Code err_code +) := tr_PDU_DTAP_MT( + tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := tid, + ti_flag := c_TIF_REPL, + facility := f_USSD_FACILITY_IE_RETURN_ERROR( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + err_code := err_code + ) + ) +) + +private function f_tc_lu_and_ussd_multi_tid(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Perform location update */ + f_perform_lu(); + + /* Send CM Service Request for SS/USSD */ + f_establish_fully(EST_TYPE_SS_ACT); + + /** + * Send a few requests using separate transcations. + * Some of them are with intentionally wrong codes. + * + * GSM allows a side to initiate up to 8 transactions, + * so let's use them all, why not? + */ + BSSAP.send(ts_dtap_ussd_init_req(tid := 0, code := "*#100#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 1, code := "*110*181#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 2, code := "*999*888#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 3, code := "*#100#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 4, code := "*#100#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 5, code := "##113#")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 6, code := "#osmocom")); + BSSAP.send(ts_dtap_ussd_init_req(tid := 7, code := "*#100#")); + + /** + * We expect that each response shall correspond to its + * request and shall be sent back on a proper transaction. + */ + var bitstring rsp_tid_mask := '00000000'B; + var PDU_DTAP_MT rsp_msg; + var bitstring rsp_tid; + alt { + [] BSSAP.receive(tr_dtap_ussd_result( + tid := (0, 3, 4, 7), /* Known request codes => known result */ + result := "Your extension is " & hex2str(g_pars.msisdn) & "\r" + )) -> value rsp_msg { + /** + * Looks ugly, but for some reason the field assignment + * according to "22.2.2 The Receive operation", i.e. + * (-> value (rsp_msg, tid := dtap.etc.)) doesn't work. + * + * "error: Redirecting parts of a value is not supported + * in the Load Test Runtime." + */ + rsp_tid := rsp_msg.dtap.tiOrSkip.transactionId.tio; + rsp_tid_mask := rsp_tid_mask or4b ('1'B << bit2int(rsp_tid)); + + /* Decide, should we repeat? */ + if (rsp_tid_mask == '11111111'B) { + setverdict(pass); + } else { + repeat; + } + } + [] BSSAP.receive(tr_dtap_ussd_error( + tid := (1, 2, 5, 6), /* Unknown request codes => error */ + err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE + )) -> value rsp_msg { + /** + * Looks ugly, but for some reason the field assignment + * according to "22.2.2 The Receive operation", i.e. + * (-> value (rsp_msg, tid := dtap.etc.)) doesn't work. + * + * "error: Redirecting parts of a value is not supported + * in the Load Test Runtime." + */ + rsp_tid := rsp_msg.dtap.tiOrSkip.transactionId.tio; + rsp_tid_mask := rsp_tid_mask or4b ('1'B << bit2int(rsp_tid)); + + /* Decide, should we repeat? */ + if (rsp_tid_mask == '11111111'B) { + setverdict(pass); + } else { + repeat; + } + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + } + + f_expect_clear(); +} +testcase TC_lu_and_ussd_multi_tid() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_multi_tid), 48); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2299,6 +2434,7 @@ execute( TC_lu_and_ussd_single_req() ); execute( TC_lu_and_ussd_wrong_code() ); + execute( TC_lu_and_ussd_multi_tid() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); -- To view, visit https://gerrit.osmocom.org/9471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 Gerrit-Change-Number: 9471 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:41:41 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:41:41 +0000 Subject: Change in osmo-ci[master]: ansible: udhcpd: add systemd service file In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9447 ) Change subject: ansible: udhcpd: add systemd service file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie373119a902a001f093599e289cadb8b2d290668 Gerrit-Change-Number: 9447 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:41:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:42:17 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:42:17 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: only check once the apt freshness In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9455 ) Change subject: ansible: gsm-tester: only check once the apt freshness ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I40462fed216b1c0844a41172001dd2aaf8a8d04c Gerrit-Change-Number: 9455 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:42:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:42:42 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:42:42 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add missing python dependencies In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9456 ) Change subject: ansible: gsm-tester: add missing python dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0871df95a968f8f9e9318882c5397a16cba1814a Gerrit-Change-Number: 9456 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:42:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:43:02 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:43:02 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-network: start all network interfaces after addin... In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9457 ) Change subject: ansible: gsm-tester-network: start all network interfaces after adding new ones ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I197dadb68cffeba4c451d2fbfe40075039a67cb8 Gerrit-Change-Number: 9457 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:43:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:44:59 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:44:59 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9458 ) Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... Patch Set 1: As far as I can see, build-dep only provides build time dependencies, not runtime dependencies. -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:44:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:46:03 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:46:03 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add udev rule to allow jenkins to access sispm d... In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9459 ) Change subject: ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 Gerrit-Change-Number: 9459 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:46:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:47:40 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:47:40 +0000 Subject: Change in osmo-ci[master]: ansible: setup-gsm-tester.yml: use role gsm-tester-bts In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9460 ) Change subject: ansible: setup-gsm-tester.yml: use role gsm-tester-bts ...................................................................... Patch Set 1: I'd welcome a better description for this commit -- To view, visit https://gerrit.osmocom.org/9460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 Gerrit-Change-Number: 9460 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:47:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 08:48:03 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 08:48:03 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-bts: remove role prefix in names In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9461 ) Change subject: ansible: gsm-tester-bts: remove role prefix in names ...................................................................... Patch Set 1: Is this related to the previous commit changes? -- To view, visit https://gerrit.osmocom.org/9461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 Gerrit-Change-Number: 9461 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 08:48:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 09:14:53 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 09:14:53 +0000 Subject: Change in meta-telephony[201705]: osmo-ggsn: Update 1.2.1 -> 1.2.2 In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/9399 ) Change subject: osmo-ggsn: Update 1.2.1 -> 1.2.2 ...................................................................... osmo-ggsn: Update 1.2.1 -> 1.2.2 Change-Id: I48f607b380b798f416cb6c05c6bf06e458b75836 --- M recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb index 13d3cbd..58f00ec 100644 --- a/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb +++ b/recipes-osmocom/osmo-ggsn/osmo-ggsn_git.bb @@ -2,10 +2,10 @@ HOMEPAGE = "https://osmocom.org/projects/openggsn" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" -PV = "1.2.1+gitr${SRCPV}" +PV = "1.2.2+gitr${SRCPV}" PR = "r0" -SRCREV = "ac07625086948281295e54dd295228153ecd5ff0" +SRCREV = "b673d1c438488fb74abda344e563d733e5ce451a" SRC_URI = "git://git.osmocom.org/osmo-ggsn \ file://osmo-ggsn.init \ file://libgtp-queue_depth_32.patch \ -- To view, visit https://gerrit.osmocom.org/9399 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-MessageType: merged Gerrit-Change-Id: I48f607b380b798f416cb6c05c6bf06e458b75836 Gerrit-Change-Number: 9399 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 09:32:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 09:32:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9469 ) Change subject: USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9f2b526cb67224cab81364cec34efd42bbb44327 Gerrit-Change-Number: 9469 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 09:32:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 09:32:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 09:32:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: msc/USSD: add unknown request code testcase In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9470 ) Change subject: WIP: msc/USSD: add unknown request code testcase ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a3fcaafc37972a38c13722f0b511ea5e1e3fbd8 Gerrit-Change-Number: 9470 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 09:32:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 09:37:26 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 09:37:26 +0000 Subject: Change in libosmo-sccp[master]: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9439 ) Change subject: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9439/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/#/c/9439/1/src/osmo_ss7.c at 1923 PS1, Line 1923: __attribute__((weak)) > the introduction of a weak symbol for overloading is of course a bit controversial. [?] To be honest, it's the first time I see this, I was not aware it existed. According to wikipedia https://en.wikipedia.org/wiki/Weak_symbol: "Weak symbols are not mentioned by the C or C++ language standards; as such, inserting them into code is not very portable. Even if two platforms support the same or similar syntax for marking symbols as weak, the semantics may differ in subtle points, e.g. whether weak symbols during dynamic linking at runtime lose their semantics or not." For instance, it seems the syntax and behavior when compiling with MSVC++ (eg. to run in MS Windows) is different from that of GCC. I think the best (more portable, more clear) would be to have a function callback pointer and have an API to set it. Set it by default to osmo_ss7_asp_rx_unknown. Maybe rename it to osmo_ss7_asp_rx_unknown_default? (and make it static). -- To view, visit https://gerrit.osmocom.org/9439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 Gerrit-Change-Number: 9439 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 09:37:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 09:48:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 09:48:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: msc/USSD: add multi-transaction testcase In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9471 ) Change subject: WIP: msc/USSD: add multi-transaction testcase ...................................................................... Patch Set 1: Code-Review+1 (2 comments) https://gerrit.osmocom.org/#/c/9471/1/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9471/1/msc/MSC_Tests.ttcn at 2227 PS1, Line 2227: invoke_id := 5, /* Phone may not start from 0 or 1 */ why always use the same invoke_id? Doesn't that cause problems if you want to use them in parallel? Doesn't the invoke-id need to be unique for a given MS at a given time? https://gerrit.osmocom.org/#/c/9471/1/msc/MSC_Tests.ttcn at 2278 PS1, Line 2278: BSSAP.send(ts_dtap_ussd_init_req(tid := 0, code := "*#100#")); interesting approach with the bit-mask and handling everything in a single alt/receive clause below. The more "TTCN native" way to handle this (I believe) would be to create a new component type, where basically each component represents one USSD dialogue/session, and the "BSC_ConnHdlr" dispatches to those individual per-dialogue components based on TID. You can then simply create+start any number of those components in parallel, and wait for them to terminate with verdict success or fail. But I understand that's of course much more effort to implement, so I'm happy to merge the current test. The advantage of the "ussd dialogue component" approach is that in each of those components you then only have to deal with a single dialogue. This method is what we use in e.g. RSL_Emulation to de-multiplex between different logical channels, or in BSSMAP_Emulation to separate the different SCCP connections, ... -- To view, visit https://gerrit.osmocom.org/9471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 Gerrit-Change-Number: 9471 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 09:48:47 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 09:54:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 09:54:55 +0000 Subject: Change in libosmo-sccp[master]: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9439 ) Change subject: Introduce osmo_ss7_asp_rx_unknown() for handling unknown PPID/StreamID ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9439/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/#/c/9439/1/src/osmo_ss7.c at 1923 PS1, Line 1923: __attribute__((weak)) > To be honest, it's the first time I see this, I was not aware it existed. [?] weak symbols are used in virtually any microcontroller / bare metal project I'm familiar with. But then yes, those by their very nature don't require to be portable in any way, at least not across compilers. We also use it in libosmocore/src/sercomm.c already (which was originally from OsmocomBB and later moved in libosmocore to be able to use it in other contexts). The Linux kernel also uses them. But all in all, I agree, there's no need to rely on this, and having an explicit function pointer with setter-function is not a big effort. -- To view, visit https://gerrit.osmocom.org/9439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 Gerrit-Change-Number: 9439 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 09:54:55 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 10:59:11 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Jun 2018 10:59:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/9469 ) Change subject: USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR ...................................................................... USSD_Helpers.ttcn: add f_USSD_FACILITY_IE_RETURN_ERROR Change-Id: I9f2b526cb67224cab81364cec34efd42bbb44327 --- M msc/USSD_Helpers.ttcn 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/msc/USSD_Helpers.ttcn b/msc/USSD_Helpers.ttcn index 6a71681..5dd4bb1 100644 --- a/msc/USSD_Helpers.ttcn +++ b/msc/USSD_Helpers.ttcn @@ -60,4 +60,19 @@ return enc_SS_FacilityInformation(facility_ie); } +function f_USSD_FACILITY_IE_RETURN_ERROR( + integer invoke_id := 1, + SS_Err_Code err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE +) return octetstring { + var SS_FacilityInformation facility_ie; + + /* Encode Facility IE */ + facility_ie := valueof(ts_SS_FACILITY_RETURN_ERROR( + invoke_id := invoke_id, + err_code := err_code + )); + + return enc_SS_FacilityInformation(facility_ie); +} + } -- To view, visit https://gerrit.osmocom.org/9469 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9f2b526cb67224cab81364cec34efd42bbb44327 Gerrit-Change-Number: 9469 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 11:18:20 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 11:18:20 +0000 Subject: Change in osmo-mgw[master]: protocol: do not change LCO, when no LCO are present Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9472 Change subject: protocol: do not change LCO, when no LCO are present ...................................................................... protocol: do not change LCO, when no LCO are present In the current implementation the LCO parameters are reset. This means that an MDCX without LCO will reset the LCO that have previously set via CRCX. But according to RFC 3435 6.8 LocalConnectionOptions, the LCO parameters should be preserved or left at their defaults if missing. - Make sure LCO are retained if no LCO string is present. - Also preserve the values of individual parameters if missing. Change-Id: Ia0d73f61516618317dcd1d49384818fd8de27aa6 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/72/9472/1 diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index b403be0..ded1552 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -405,10 +405,12 @@ char *p_opt, *a_opt; char codec[9]; + if (!options) + return 0; + if (strlen(options) == 0) + return 0; + talloc_free(lco->string); - talloc_free(lco->codec); - lco->codec = NULL; - lco->pkt_period_min = lco->pkt_period_max = 0; lco->string = talloc_strdup(ctx, options ? options : ""); p_opt = strstr(lco->string, "p:"); @@ -417,8 +419,10 @@ lco->pkt_period_max = lco->pkt_period_min; a_opt = strstr(lco->string, "a:"); - if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) + if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) { + talloc_free(lco->codec); lco->codec = talloc_strdup(ctx, codec); + } LOGP(DLMGCP, LOGL_DEBUG, "local CX options: lco->pkt_period_max: %i, lco->codec: %s\n", -- To view, visit https://gerrit.osmocom.org/9472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia0d73f61516618317dcd1d49384818fd8de27aa6 Gerrit-Change-Number: 9472 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 11:18:22 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 11:18:22 +0000 Subject: Change in osmo-mgw[master]: mgcp_lco: get rid of struct member "string" Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9473 Change subject: mgcp_lco: get rid of struct member "string" ...................................................................... mgcp_lco: get rid of struct member "string" struct mgcp_lco there contains a struct member "string", which is a char pointer. This pointer is populated with a copy of the LCO string that has been received via MGCP. However, this memory is used only when parsing the LCO options and then never again. This struct member requires handling using talloc and complicates things unnecessarily, so lets remove it. - Remove struct member "string" from struct mgcp_lco Change-Id: I6715c7178033f1b94d6561ef0a6e97fe106f67bd --- M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_endp.c M src/libosmo-mgcp/mgcp_protocol.c 3 files changed, 2 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/73/9473/1 diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 7a00c98..382becb 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -149,7 +149,6 @@ }; struct mgcp_lco { - char *string; char *codec; int pkt_period_min; /* time in ms */ int pkt_period_max; /* time in ms */ diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c index fa2dd28..aebf19c 100644 --- a/src/libosmo-mgcp/mgcp_endp.c +++ b/src/libosmo-mgcp/mgcp_endp.c @@ -48,8 +48,6 @@ /* Reset endpoint parameters and states */ talloc_free(endp->callid); endp->callid = NULL; - talloc_free(endp->local_options.string); - endp->local_options.string = NULL; talloc_free(endp->local_options.codec); endp->local_options.codec = NULL; endp->wildcarded_req = false; diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index ded1552..9fdaf18 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -410,15 +410,12 @@ if (strlen(options) == 0) return 0; - talloc_free(lco->string); - lco->string = talloc_strdup(ctx, options ? options : ""); - - p_opt = strstr(lco->string, "p:"); + p_opt = strstr(options, "p:"); if (p_opt && sscanf(p_opt, "p:%d-%d", &lco->pkt_period_min, &lco->pkt_period_max) == 1) lco->pkt_period_max = lco->pkt_period_min; - a_opt = strstr(lco->string, "a:"); + a_opt = strstr(options, "a:"); if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) { talloc_free(lco->codec); lco->codec = talloc_strdup(ctx, codec); -- To view, visit https://gerrit.osmocom.org/9473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6715c7178033f1b94d6561ef0a6e97fe106f67bd Gerrit-Change-Number: 9473 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 11:18:23 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 11:18:23 +0000 Subject: Change in osmo-mgw[master]: protocol: reject illegal multiple lco options Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9474 Change subject: protocol: reject illegal multiple lco options ...................................................................... protocol: reject illegal multiple lco options At the moment osmo-mgw will accept multiple lco options. (e.g. p:10, a:PCMU, p:10) If LCO appear multiple times, than the first appearance of will be parsed and used, all following appearances will be ignored. However, having multiple appearances of LCO is illegal and affected requests should be rejected. - make sure that multiple appearances of LCOs will be rejected Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Closes: OS#3119 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 98 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/74/9474/1 diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 9fdaf18..8eaff3b 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -395,6 +395,97 @@ return -1; } +/* Helper function for check_local_cx_options() to get a pointer of the next + * lco option identifier */ +static char *get_lco_identifier(const char *options) +{ + char *ptr; + unsigned int count = 0; + + ptr = strstr(options, ":"); + if (!ptr) + return NULL; + + while (1) { + /* Endless loop protection */ + if (count > 10000) + return NULL; + if (ptr <= options) + break; + else if (*ptr == ' ' || *ptr == ',') { + ptr++; + break; + } + ptr--; + count++; + } + + return ptr; +} + +/* Check the LCO option. This function checks for multiple appearence of LCO + * options, which is illegal */ +int check_local_cx_options(void *ctx, const char *options) +{ + int i; + char *options_copy; + char *lco_identifier; + char *lco_identifier_end; + char *next_lco_identifier; + + char **lco_seen; + unsigned int lco_seen_n = 0; + + if (!options) + return -1; + + lco_seen = (char **)talloc_zero_size(ctx, strlen(options) * sizeof(char *)); + options_copy = talloc_strdup(ctx, options); + lco_identifier = options_copy; + + do { + /* Move the lco_identifier pointer to the beginning of the + * current lco option identifier */ + lco_identifier = get_lco_identifier(lco_identifier); + if (!lco_identifier) + goto error; + + /* Look ahead to the next LCO option early, since we + * will parse destructively */ + next_lco_identifier = strstr(lco_identifier + 1, ","); + + /* Pinch off the end of the lco field identifier name + * and see if we still got something */ + lco_identifier_end = strstr(lco_identifier, ":"); + if (!lco_identifier_end) + goto error; + *lco_identifier_end = '\0'; + if (strlen(lco_identifier) == 0) + goto error; + + /* Check if we have already seen the current field identifier + * before. If yes, we must bail, an LCO must only appear once + * in the LCO string */ + for (i = 0; i < lco_seen_n; i++) { + if (strcmp(lco_seen[i], lco_identifier) == 0) + goto error; + } + lco_seen[lco_seen_n] = lco_identifier; + lco_seen_n++; + + /* Go to the next lco option */ + lco_identifier = next_lco_identifier; + } while (lco_identifier); + + talloc_free(lco_seen); + talloc_free(options_copy); + return 0; +error: + talloc_free(lco_seen); + talloc_free(options_copy); + return -1; +} + /* Set the LCO from a string (see RFC 3435). * The string is stored in the 'string' field. A NULL string is handled exactly * like an empty string, the 'string' field is never NULL after this function @@ -410,6 +501,13 @@ if (strlen(options) == 0) return 0; + /* Make sure the encoding of the LCO is consistant before we proceed */ + if (check_local_cx_options(ctx, options) != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "local CX options: Internal inconsistency in Local Connection Options!\n"); + return 524; + } + p_opt = strstr(options, "p:"); if (p_opt && sscanf(p_opt, "p:%d-%d", &lco->pkt_period_min, &lco->pkt_period_max) == 1) -- To view, visit https://gerrit.osmocom.org/9474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Gerrit-Change-Number: 9474 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:04:10 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 12:04:10 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 2: (2 comments) I'd keep having only 1 setup.py file. We can have 3 debian packages: python-osmopy-libs python-osmopy-scripts python3-osmopy-libs python3-osmopy-scripts Then, to generate it probably something like (not sure if it's the correct way, I don't know much about dh debian stuff): python setup.py install --install-layout=deb --root=$(CURDIR)/debian/python-osmopy-libs rm -rf $(CURDIR)/debian/python-osmopy-libs/scripts python setup.py install --install-layout=deb --root=$(CURDIR)/debian/python-osmopy-scripts rm -rf $(CURDIR)/debian/python-osmopy-libs/osmopy python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-libs rm -rf $(CURDIR)/debian/python3-osmopy-libs/scripts python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-scripts rm -rf $(CURDIR)/debian/python3-osmopy-libs/libs https://gerrit.osmocom.org/#/c/9396/2/debian/control File debian/control: https://gerrit.osmocom.org/#/c/9396/2/debian/control at 15 PS2, Line 15: . Is this dot here expected? https://gerrit.osmocom.org/#/c/9396/2/debian/control at 22 PS2, Line 22: . Same here -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Wed, 06 Jun 2018 12:04:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:13:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 12:13:48 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9396/2/debian/control File debian/control: https://gerrit.osmocom.org/#/c/9396/2/debian/control at 15 PS2, Line 15: . > Is this dot here expected? yes, it adds an empty line after the first description line -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Wed, 06 Jun 2018 12:13:48 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:14:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 12:14:28 +0000 Subject: Change in osmo-mgw[master]: protocol: do not change LCO, when no LCO are present In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9472 ) Change subject: protocol: do not change LCO, when no LCO are present ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia0d73f61516618317dcd1d49384818fd8de27aa6 Gerrit-Change-Number: 9472 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 12:14:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:15:11 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 12:15:11 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix typo Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9475 Change subject: cosmetic: fix typo ...................................................................... cosmetic: fix typo Change-Id: I1df5ff642b3744771836dea82f9d0b4ad6749bc5 --- M include/osmocom/mgcp/mgcp_endp.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/75/9475/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index a486dcd..9283373 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -66,7 +66,7 @@ /*!< Call identifier string (as supplied by the call agant) */ char *callid; - /*!< Local connection options (see mgcp_intermal.h) */ + /*!< Local connection options (see mgcp_internal.h) */ struct mgcp_lco local_options; /*!< List with connections active on this endpoint */ -- To view, visit https://gerrit.osmocom.org/9475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1df5ff642b3744771836dea82f9d0b4ad6749bc5 Gerrit-Change-Number: 9475 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:15:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 12:15:49 +0000 Subject: Change in osmo-mgw[master]: mgcp_lco: get rid of struct member "string" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9473 ) Change subject: mgcp_lco: get rid of struct member "string" ...................................................................... Patch Set 1: Code-Review+1 to me it seems a bit like we're breaking the ABI for no good reason with this change. -- To view, visit https://gerrit.osmocom.org/9473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6715c7178033f1b94d6561ef0a6e97fe106f67bd Gerrit-Change-Number: 9473 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 12:15:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:20:35 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Jun 2018 12:20:35 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix typo In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9475 ) Change subject: cosmetic: fix typo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1df5ff642b3744771836dea82f9d0b4ad6749bc5 Gerrit-Change-Number: 9475 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 12:20:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:21:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 12:21:40 +0000 Subject: Change in osmo-mgw[master]: protocol: reject illegal multiple lco options In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9474 ) Change subject: protocol: reject illegal multiple lco options ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/9474/1/src/libosmo-mgcp/mgcp_protocol.c File src/libosmo-mgcp/mgcp_protocol.c: https://gerrit.osmocom.org/#/c/9474/1/src/libosmo-mgcp/mgcp_protocol.c at 406 PS1, Line 406: if (!ptr) I don't understand this code, sorry. * We first get a pointer to the [first] ":" * we then enter the while loop, where we ** check if ptr <= options (which is not true, unless the ":" was the first character) ** we increment ptr, if *ptr is a space or a comma But that increment could never happen, as we only ever enter the while loop with *ptr == ':' What am I missing? btw: these kind of side-effect free functions are the *ideal* candidates for unit tests inside the tests/ subdirectory. https://gerrit.osmocom.org/#/c/9474/1/src/libosmo-mgcp/mgcp_protocol.c at 428 PS1, Line 428: int check_local_cx_options(void *ctx, const char *options) this function should have unit test coverage with a variety of legal and illegal strings as input. -- To view, visit https://gerrit.osmocom.org/9474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Gerrit-Change-Number: 9474 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 06 Jun 2018 12:21:40 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 12:39:08 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 12:39:08 +0000 Subject: Change in osmo-mgw[master]: mgcp_lco: get rid of struct member "string" In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/9473 ) Change subject: mgcp_lco: get rid of struct member "string" ...................................................................... Abandoned With this patch we risk ABI breakage. Lets keep the "string" member for now. -- To view, visit https://gerrit.osmocom.org/9473 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I6715c7178033f1b94d6561ef0a6e97fe106f67bd Gerrit-Change-Number: 9473 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 14:44:15 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 14:44:15 +0000 Subject: Change in osmo-mgw[master]: protocol: reject illegal lco options In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9474 to look at the new patch set (#2). Change subject: protocol: reject illegal lco options ...................................................................... protocol: reject illegal lco options At the moment osmo-mgw will accept multiple lco options. (e.g. p:10, a:PCMU, p:10) If LCO appear multiple times, than the first appearance of will be parsed and used, all following appearances will be ignored. However, having multiple appearances of LCO is illegal and affected requests should be rejected. Also osmo-mgw should reject illegal formatted LCO strings - make sure that multiple appearances of LCOs will be rejected - make sure that illegal formated LCOs are rejected - add testcases with garbeled LCO and valid LCO examples Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Closes: OS#3119 --- M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_protocol.c M tests/mgcp/mgcp_test.c M tests/mgcp/mgcp_test.ok 4 files changed, 244 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/74/9474/2 -- To view, visit https://gerrit.osmocom.org/9474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Gerrit-Change-Number: 9474 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 14:59:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 14:59:05 +0000 Subject: Change in libosmocore[master]: Add osmo_isqrt32() to compute 32bit integer square root Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9476 Change subject: Add osmo_isqrt32() to compute 32bit integer square root ...................................................................... Add osmo_isqrt32() to compute 32bit integer square root Change-Id: I2b96db6e037e72e92317fec874877e473a1cf909 --- M include/osmocom/core/utils.h M src/utils.c M tests/utils/utils_test.c M tests/utils/utils_test.ok 4 files changed, 66 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/9476/1 diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 8928f68..cd22dfb 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -128,4 +128,6 @@ const char *osmo_quote_str(const char *str, int in_len); const char *osmo_quote_str_buf(const char *str, int in_len, char *buf, size_t bufsize); +uint32_t osmo_isqrt32(uint32_t x); + /*! @} */ diff --git a/src/utils.c b/src/utils.c index 32ea87c..ea0bbde 100644 --- a/src/utils.c +++ b/src/utils.c @@ -592,4 +592,44 @@ return osmo_quote_str_buf(str, in_len, namebuf, sizeof(namebuf)); } +/*! perform an integer square root operation on unsigned 32bit integer. + * This implementation is taken from "Hacker's Delight" Figure 11-1 "Integer square root, Newton's + * method", which can also be found at http://www.hackersdelight.org/hdcodetxt/isqrt.c.txt */ +uint32_t osmo_isqrt32(uint32_t x) +{ + uint32_t x1; + int s, g0, g1; + + if (x <= 1) + return x; + + s = 1; + x1 = x - 1; + if (x1 > 0xffff) { + s = s + 8; + x1 = x1 >> 16; + } + if (x1 > 0xff) { + s = s + 4; + x1 = x1 >> 8; + } + if (x1 > 0xf) { + s = s + 2; + x1 = x1 >> 4; + } + if (x1 > 0x3) { + s = s + 1; + } + + g0 = 1 << s; /* g0 = 2**s */ + g1 = (g0 + (x >> s)) >> 1; /* g1 = (g0 + x/g0)/2 */ + + /* converges after four to five divisions for arguments up to 16,785,407 */ + while (g1 < g0) { + g0 = g1; + g1 = (g0 + (x/g0)) >> 1; + } + return g0; +} + /*! @} */ diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index a124352..cb4e476 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -27,6 +27,7 @@ #include #include +#include static void hexdump_test(void) { @@ -425,6 +426,26 @@ printf("'%s'\n", osmo_quote_str_buf(NULL, -1, out_buf, 10)); } +static void isqrt_test(void) +{ + int i; + + printf("\nTesting integer square-root\n"); + srand(time(NULL)); + for (i = 0; i < 1024; i++) { + uint16_t x; + uint32_t r = rand(); + if (RAND_MAX < UINT16_MAX) + x = r * (UINT16_MAX/RAND_MAX); + else + x = r; + uint32_t sq = x*x; + uint32_t y = osmo_isqrt32(sq); + if (y != x) + printf("ERROR: x=%u, sq=%u, osmo_isqrt(%u) = %u\n", x, sq, sq, y); + } +} + int main(int argc, char **argv) { static const struct log_info log_info = {}; @@ -437,5 +458,6 @@ bcd_test(); str_escape_test(); str_quote_test(); + isqrt_test(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 5bc3896..ea9216f 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -137,3 +137,5 @@ '' - NULL string becomes a "NULL" literal: 'NULL' + +Testing integer square-root -- To view, visit https://gerrit.osmocom.org/9476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2b96db6e037e72e92317fec874877e473a1cf909 Gerrit-Change-Number: 9476 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:26:21 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Wed, 6 Jun 2018 15:26:21 +0000 Subject: Change in libosmo-sccp[master]: fix use after free in osmo_sccp_simple_server_add_clnt() Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9477 Change subject: fix use after free in osmo_sccp_simple_server_add_clnt() ...................................................................... fix use after free in osmo_sccp_simple_server_add_clnt() The variable as_name was freed before being passed to the osmo_ss7_route_create() function. Free it later to avoid a use-after-free crash with address sanitizer. Found by running 'examples/m3ua_example aaa' with address sanitizer enabled. Change-Id: I9d724bc1d2aa8d6f8b6a67bdeafdb5f0f9136413 Related: OS#2666 --- M src/sccp_user.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/77/9477/1 diff --git a/src/sccp_user.c b/src/sccp_user.c index a6161c0..99ed96e 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -611,7 +611,6 @@ as = osmo_ss7_as_find_or_create(ss7, as_name, prot); if (!as) goto out_strings; - talloc_free(as_name); /* route only selected PC to the client */ rt = osmo_ss7_route_create(ss7->rtable_system, pc, 0xffff, as_name); @@ -624,6 +623,7 @@ asp->cfg.is_server = true; osmo_ss7_as_add_asp(as, asp_name); talloc_free(asp_name); + talloc_free(as_name); osmo_ss7_asp_restart(asp); return ss7->sccp; -- To view, visit https://gerrit.osmocom.org/9477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9d724bc1d2aa8d6f8b6a67bdeafdb5f0f9136413 Gerrit-Change-Number: 9477 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:29:46 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 15:29:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: expect TC_crcx_illegal_double_lco to pass Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9478 Change subject: MGCP_Test: expect TC_crcx_illegal_double_lco to pass ...................................................................... MGCP_Test: expect TC_crcx_illegal_double_lco to pass The osmo-mgw now rejects multiple appearances of LCO, the testcase TC_crcx_illegal_double_lco now passes. - update expected-results.xml Change-Id: If4a68e9373b34696236935cce936e9d3c254511b Related: OS#3119 --- M mgw/expected-results.xml 1 file changed, 1 insertion(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/9478/1 diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index 0e9f0e8..b85a2b1 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -11,12 +11,7 @@ - - - MGCP_Test.ttcn:MASKED MGCP_Test control part - MGCP_Test.ttcn:MASKED TC_crcx_illegal_double_lco testcase - - + -- To view, visit https://gerrit.osmocom.org/9478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If4a68e9373b34696236935cce936e9d3c254511b Gerrit-Change-Number: 9478 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:29:47 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 6 Jun 2018 15:29:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Test non LCO crcx Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9479 Change subject: MGCP_Test: Test non LCO crcx ...................................................................... MGCP_Test: Test non LCO crcx When a CRCX without an LCO option (codec) is sent, then older versions of osmo-mgw will omit the port number in the SDP part of the response. Also no default codec is selected and reported back. This testcase pinpoints the problem. Change-Id: Ie16cdab936ce468fe378d4ec9e1c61f81c07fb4e Related: OS#2658 --- M library/MGCP_Templates.ttcn M mgw/MGCP_Test.ttcn M mgw/expected-results.xml 3 files changed, 49 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/79/9479/1 diff --git a/library/MGCP_Templates.ttcn b/library/MGCP_Templates.ttcn index e509da8..9d6dea6 100644 --- a/library/MGCP_Templates.ttcn +++ b/library/MGCP_Templates.ttcn @@ -80,6 +80,15 @@ sdp := sdp } + template MgcpCommand ts_CRCX_no_lco(MgcpTransId trans_id, charstring ep, MgcpConnectionMode mode, MgcpCallId call_id, template SDP_Message sdp := omit) := { + line := t_MgcpCmdLine("CRCX", trans_id, ep), + params := { + t_MgcpParConnMode(mode), + ts_MgcpParCallId(call_id) + }, + sdp := sdp + } + template MgcpCommand tr_CRCX(template MgcpEndpoint ep := ?) := { line := t_MgcpCmdLine("CRCX", ?, ep), params := *, diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 1892a42..26a0701 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -307,12 +307,48 @@ f_dlcx_ok(ep, call_id); } + function f_crcx_no_lco(charstring ep_prefix) runs on dummy_CT { + var MgcpEndpoint ep := ep_prefix & "2@" & c_mgw_domain; + var template MgcpCommand cmd; + var MgcpResponse resp; + var MgcpCallId call_id := '1234'H; + + f_init(ep); + + /* create the connection on the MGW */ + cmd := ts_CRCX_no_lco(get_next_trans_id(), ep, "recvonly", call_id); + resp := mgcp_transceive_mgw(cmd, tr_CRCX_ACK); + extract_conn_id(resp); + + /* clean-up */ + f_dlcx_ok(ep, call_id); + + /* See also OS#2658: Even when we omit the LCO information, we + expect the MGW to pick a sane payload type for us. This + payload type should be visible in the SDP of the response. */ + if (resp.sdp.media_list[0].attributes[0].rtpmap.attr_value != "0 PCMU/8000/1") { + setverdict(fail, "SDP contains unexpected codec"); + } + + /* See also OS#2658: We also expect the MGW to assign a port + number to us. */ + if (isbound(resp.sdp.media_list[0].media_field.ports.port_number) == false) { + setverdict(fail, "SDP does not contain a port number"); + } + } + /* test valid CRCX without SDP */ testcase TC_crcx() runs on dummy_CT { f_crcx(c_mgw_ep_rtpbridge); setverdict(pass); } + /* test valid CRCX without SDP and LCO */ + testcase TC_crcx_no_lco() runs on dummy_CT { + f_crcx_no_lco(c_mgw_ep_rtpbridge); + setverdict(pass); + } + /* test valid CRCX without SDP (older method without endpoint prefix) */ testcase TC_crcx_noprefix() runs on dummy_CT { f_crcx(""); @@ -881,6 +917,7 @@ control { execute(TC_selftest()); execute(TC_crcx()); + execute(TC_crcx_no_lco()); execute(TC_crcx_noprefix()); execute(TC_crcx_unsupp_mode()); execute(TC_crcx_early_bidir_mode()); diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index b85a2b1..03c8fd2 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -4,6 +4,9 @@ no verdict + + Dynamic test case error: Using the value of an optional field containing omit. + -- To view, visit https://gerrit.osmocom.org/9479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie16cdab936ce468fe378d4ec9e1c61f81c07fb4e Gerrit-Change-Number: 9479 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:30:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:30:42 +0000 Subject: Change in libosmocore[master]: Add osmo_isqrt32() to compute 32bit integer square root In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9476 ) Change subject: Add osmo_isqrt32() to compute 32bit integer square root ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2b96db6e037e72e92317fec874877e473a1cf909 Gerrit-Change-Number: 9476 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 15:30:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:31:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:31:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: expect TC_crcx_illegal_double_lco to pass In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9478 ) Change subject: MGCP_Test: expect TC_crcx_illegal_double_lco to pass ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If4a68e9373b34696236935cce936e9d3c254511b Gerrit-Change-Number: 9478 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 15:31:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:31:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:31:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Test non LCO crcx In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9479 ) Change subject: MGCP_Test: Test non LCO crcx ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie16cdab936ce468fe378d4ec9e1c61f81c07fb4e Gerrit-Change-Number: 9479 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 15:31:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:31:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:31:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: expect TC_crcx_illegal_double_lco to pass In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9478 ) Change subject: MGCP_Test: expect TC_crcx_illegal_double_lco to pass ...................................................................... MGCP_Test: expect TC_crcx_illegal_double_lco to pass The osmo-mgw now rejects multiple appearances of LCO, the testcase TC_crcx_illegal_double_lco now passes. - update expected-results.xml Change-Id: If4a68e9373b34696236935cce936e9d3c254511b Related: OS#3119 --- M mgw/expected-results.xml 1 file changed, 1 insertion(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index 0e9f0e8..b85a2b1 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -11,12 +11,7 @@ - - - MGCP_Test.ttcn:MASKED MGCP_Test control part - MGCP_Test.ttcn:MASKED TC_crcx_illegal_double_lco testcase - - + -- To view, visit https://gerrit.osmocom.org/9478 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If4a68e9373b34696236935cce936e9d3c254511b Gerrit-Change-Number: 9478 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:31:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:31:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Test non LCO crcx In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9479 ) Change subject: MGCP_Test: Test non LCO crcx ...................................................................... MGCP_Test: Test non LCO crcx When a CRCX without an LCO option (codec) is sent, then older versions of osmo-mgw will omit the port number in the SDP part of the response. Also no default codec is selected and reported back. This testcase pinpoints the problem. Change-Id: Ie16cdab936ce468fe378d4ec9e1c61f81c07fb4e Related: OS#2658 --- M library/MGCP_Templates.ttcn M mgw/MGCP_Test.ttcn M mgw/expected-results.xml 3 files changed, 49 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/MGCP_Templates.ttcn b/library/MGCP_Templates.ttcn index e509da8..9d6dea6 100644 --- a/library/MGCP_Templates.ttcn +++ b/library/MGCP_Templates.ttcn @@ -80,6 +80,15 @@ sdp := sdp } + template MgcpCommand ts_CRCX_no_lco(MgcpTransId trans_id, charstring ep, MgcpConnectionMode mode, MgcpCallId call_id, template SDP_Message sdp := omit) := { + line := t_MgcpCmdLine("CRCX", trans_id, ep), + params := { + t_MgcpParConnMode(mode), + ts_MgcpParCallId(call_id) + }, + sdp := sdp + } + template MgcpCommand tr_CRCX(template MgcpEndpoint ep := ?) := { line := t_MgcpCmdLine("CRCX", ?, ep), params := *, diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 1892a42..26a0701 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -307,12 +307,48 @@ f_dlcx_ok(ep, call_id); } + function f_crcx_no_lco(charstring ep_prefix) runs on dummy_CT { + var MgcpEndpoint ep := ep_prefix & "2@" & c_mgw_domain; + var template MgcpCommand cmd; + var MgcpResponse resp; + var MgcpCallId call_id := '1234'H; + + f_init(ep); + + /* create the connection on the MGW */ + cmd := ts_CRCX_no_lco(get_next_trans_id(), ep, "recvonly", call_id); + resp := mgcp_transceive_mgw(cmd, tr_CRCX_ACK); + extract_conn_id(resp); + + /* clean-up */ + f_dlcx_ok(ep, call_id); + + /* See also OS#2658: Even when we omit the LCO information, we + expect the MGW to pick a sane payload type for us. This + payload type should be visible in the SDP of the response. */ + if (resp.sdp.media_list[0].attributes[0].rtpmap.attr_value != "0 PCMU/8000/1") { + setverdict(fail, "SDP contains unexpected codec"); + } + + /* See also OS#2658: We also expect the MGW to assign a port + number to us. */ + if (isbound(resp.sdp.media_list[0].media_field.ports.port_number) == false) { + setverdict(fail, "SDP does not contain a port number"); + } + } + /* test valid CRCX without SDP */ testcase TC_crcx() runs on dummy_CT { f_crcx(c_mgw_ep_rtpbridge); setverdict(pass); } + /* test valid CRCX without SDP and LCO */ + testcase TC_crcx_no_lco() runs on dummy_CT { + f_crcx_no_lco(c_mgw_ep_rtpbridge); + setverdict(pass); + } + /* test valid CRCX without SDP (older method without endpoint prefix) */ testcase TC_crcx_noprefix() runs on dummy_CT { f_crcx(""); @@ -881,6 +917,7 @@ control { execute(TC_selftest()); execute(TC_crcx()); + execute(TC_crcx_no_lco()); execute(TC_crcx_noprefix()); execute(TC_crcx_unsupp_mode()); execute(TC_crcx_early_bidir_mode()); diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index b85a2b1..03c8fd2 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -4,6 +4,9 @@ no verdict + + Dynamic test case error: Using the value of an optional field containing omit. + -- To view, visit https://gerrit.osmocom.org/9479 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie16cdab936ce468fe378d4ec9e1c61f81c07fb4e Gerrit-Change-Number: 9479 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:32:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:32:27 +0000 Subject: Change in libosmo-sccp[master]: fix use after free in osmo_sccp_simple_server_add_clnt() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9477 ) Change subject: fix use after free in osmo_sccp_simple_server_add_clnt() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d724bc1d2aa8d6f8b6a67bdeafdb5f0f9136413 Gerrit-Change-Number: 9477 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 15:32:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:32:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:32:29 +0000 Subject: Change in libosmo-sccp[master]: fix use after free in osmo_sccp_simple_server_add_clnt() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9477 ) Change subject: fix use after free in osmo_sccp_simple_server_add_clnt() ...................................................................... fix use after free in osmo_sccp_simple_server_add_clnt() The variable as_name was freed before being passed to the osmo_ss7_route_create() function. Free it later to avoid a use-after-free crash with address sanitizer. Found by running 'examples/m3ua_example aaa' with address sanitizer enabled. Change-Id: I9d724bc1d2aa8d6f8b6a67bdeafdb5f0f9136413 Related: OS#2666 --- M src/sccp_user.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/sccp_user.c b/src/sccp_user.c index a6161c0..99ed96e 100644 --- a/src/sccp_user.c +++ b/src/sccp_user.c @@ -611,7 +611,6 @@ as = osmo_ss7_as_find_or_create(ss7, as_name, prot); if (!as) goto out_strings; - talloc_free(as_name); /* route only selected PC to the client */ rt = osmo_ss7_route_create(ss7->rtable_system, pc, 0xffff, as_name); @@ -624,6 +623,7 @@ asp->cfg.is_server = true; osmo_ss7_as_add_asp(as, asp_name); talloc_free(asp_name); + talloc_free(as_name); osmo_ss7_asp_restart(asp); return ss7->sccp; -- To view, visit https://gerrit.osmocom.org/9477 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9d724bc1d2aa8d6f8b6a67bdeafdb5f0f9136413 Gerrit-Change-Number: 9477 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:32:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:32:43 +0000 Subject: Change in osmo-mgw[master]: protocol: do not change LCO, when no LCO are present In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9472 ) Change subject: protocol: do not change LCO, when no LCO are present ...................................................................... protocol: do not change LCO, when no LCO are present In the current implementation the LCO parameters are reset. This means that an MDCX without LCO will reset the LCO that have previously set via CRCX. But according to RFC 3435 6.8 LocalConnectionOptions, the LCO parameters should be preserved or left at their defaults if missing. - Make sure LCO are retained if no LCO string is present. - Also preserve the values of individual parameters if missing. Change-Id: Ia0d73f61516618317dcd1d49384818fd8de27aa6 --- M src/libosmo-mgcp/mgcp_protocol.c 1 file changed, 8 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index b403be0..ded1552 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -405,10 +405,12 @@ char *p_opt, *a_opt; char codec[9]; + if (!options) + return 0; + if (strlen(options) == 0) + return 0; + talloc_free(lco->string); - talloc_free(lco->codec); - lco->codec = NULL; - lco->pkt_period_min = lco->pkt_period_max = 0; lco->string = talloc_strdup(ctx, options ? options : ""); p_opt = strstr(lco->string, "p:"); @@ -417,8 +419,10 @@ lco->pkt_period_max = lco->pkt_period_min; a_opt = strstr(lco->string, "a:"); - if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) + if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) { + talloc_free(lco->codec); lco->codec = talloc_strdup(ctx, codec); + } LOGP(DLMGCP, LOGL_DEBUG, "local CX options: lco->pkt_period_max: %i, lco->codec: %s\n", -- To view, visit https://gerrit.osmocom.org/9472 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia0d73f61516618317dcd1d49384818fd8de27aa6 Gerrit-Change-Number: 9472 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 15:32:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 15:32:49 +0000 Subject: Change in osmo-mgw[master]: protocol: reject illegal lco options In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9474 ) Change subject: protocol: reject illegal lco options ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Gerrit-Change-Number: 9474 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 06 Jun 2018 15:32:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 17:09:22 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 6 Jun 2018 17:09:22 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9402 to look at the new patch set (#3). Change subject: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands ...................................................................... gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands This patch adds a control interface to osmo-gbproxy as well as the first two commands to query the state of each NSVC and gbproxy peer. The "ns-state" command replies with nsei, nsvci, local state, role, remote state of all NSVCs. The "gbproxy-state" command replies with nsei, bvci, mcc, mnc, lac, rac, and state of each peer. Entries are separated by a newline '\n' character. If there are no entries an empty list is returned. This behaviour is similar to that of the subscriber-list-active-v1 command in osmo-sgsn. $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g ns-state Got message: b'GET_REPLY 23 gb-status 101,101,DEAD,BLOCKED,SGSN,DEAD,UNBLOCKED\n' $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g gbproxy-state Got message: b'GET_REPLY 4871085901306801158 gbproxy-state ' Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Ticket: OS#3281, SYS#4235 Sponsored-by: On-Waves ehf --- M include/osmocom/sgsn/gb_proxy.h M src/gprs/Makefile.am A src/gprs/gb_proxy_ctrl.c M src/gprs/gb_proxy_main.c 4 files changed, 114 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/02/9402/3 -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 17:09:27 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 6 Jun 2018 17:09:27 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/9402 ) Change subject: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9402/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9402/2//COMMIT_MSG at 23 PS2, Line 23: Got message: b'ERROR 23 No peers found' > it's debatable if no peers is actually an "ERROR" in the context of the CTRL interface. [?] True and after looking at how osmo-sgsn handles something similar I have now changed it to work along those lines (also uses newlines to delimit multiple results). I can't seem to find the place that prompted me to use ';' as delimiter in the first place. -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 06 Jun 2018 17:09:27 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 18:26:57 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 6 Jun 2018 18:26:57 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ms_driver: Use the two new config options for the mobile Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9480 Change subject: osmo_ms_driver: Use the two new config options for the mobile ...................................................................... osmo_ms_driver: Use the two new config options for the mobile Avoid being stuck in c7 state and use the c7-any-timeout with a low value. Do not attempt to store SMS in the home directory (if they are received). Change-Id: I4bb59130a04852bc43af9ef3602b129f40e9e170 --- M src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/80/9480/1 diff --git a/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl index 96ec0d9..395d6f4 100644 --- a/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl @@ -21,6 +21,8 @@ codec full-speed prefer codec half-speed no abbrev + c7-any-timeout 0 + no sms-store support sms a5/1 -- To view, visit https://gerrit.osmocom.org/9480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4bb59130a04852bc43af9ef3602b129f40e9e170 Gerrit-Change-Number: 9480 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 19:30:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 19:30:44 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9402 ) Change subject: gb_proxy: Add ctrl interface and ns-state, gbproxy-state commands ...................................................................... Patch Set 3: Code-Review+1 (2 comments) https://gerrit.osmocom.org/#/c/9402/3/src/gprs/gb_proxy_ctrl.c File src/gprs/gb_proxy_ctrl.c: https://gerrit.osmocom.org/#/c/9402/3/src/gprs/gb_proxy_ctrl.c at 47 PS3, Line 47: cmd->reply = talloc_asprintf_append(cmd->reply, This might be taking it a bit too far, but I think it makes sense to have the "convert a NSVC to a CTRL interface string representation" inside libosmogb. This way, we can ensure that the same syntax is used when we want to dump the NSVC state of the PCU or the SGSN in [other] patches. What do you think? https://gerrit.osmocom.org/#/c/9402/3/src/gprs/gb_proxy_ctrl.c at 61 PS3, Line 61: CTRL_CMD_DEFINE_RO(ns_status, "ns-state"); as we're printing NSVC state, I think it might also make sense to call the command "nsvc-state". This way we make it clear it's about the NSVC and not the NSE, e.g. -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 06 Jun 2018 19:30:44 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 19:30:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 19:30:56 +0000 Subject: Change in osmo-mgw[master]: protocol: reject illegal lco options In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9474 ) Change subject: protocol: reject illegal lco options ...................................................................... protocol: reject illegal lco options At the moment osmo-mgw will accept multiple lco options. (e.g. p:10, a:PCMU, p:10) If LCO appear multiple times, than the first appearance of will be parsed and used, all following appearances will be ignored. However, having multiple appearances of LCO is illegal and affected requests should be rejected. Also osmo-mgw should reject illegal formatted LCO strings - make sure that multiple appearances of LCOs will be rejected - make sure that illegal formated LCOs are rejected - add testcases with garbeled LCO and valid LCO examples Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Closes: OS#3119 --- M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_protocol.c M tests/mgcp/mgcp_test.c M tests/mgcp/mgcp_test.ok 4 files changed, 244 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 7a00c98..bff7da0 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -282,6 +282,8 @@ struct mgcp_trunk_config *mgcp_trunk_alloc(struct mgcp_config *cfg, int index); struct mgcp_trunk_config *mgcp_trunk_num(struct mgcp_config *cfg, int index); +char *get_lco_identifier(const char *options); +int check_local_cx_options(void *ctx, const char *options); void mgcp_rtp_end_config(struct mgcp_endpoint *endp, int expect_ssrc_change, struct mgcp_rtp_end *rtp); uint32_t mgcp_rtp_packet_duration(struct mgcp_endpoint *endp, diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index ded1552..21f6cf3 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -395,6 +395,121 @@ return -1; } +/*! Helper function for check_local_cx_options() to get a pointer of the next + * lco option identifier + * \param[in] lco string + * \returns pointer to the beginning of the LCO identifier, NULL on failure */ +char *get_lco_identifier(const char *options) +{ + char *ptr; + unsigned int count = 0; + + /* Jump to the end of the lco identifier */ + ptr = strstr(options, ":"); + if (!ptr) + return NULL; + + /* Walk backwards until the pointer points to the beginning of the + * lco identifier. We know that we stand at the beginning when we + * are either at the beginning of the memory or see a space or + * comma. (this is tolerant, it will accept a:10, b:11 as well as + * a:10,b:11) */ + while (1) { + /* Endless loop protection */ + if (count > 10000) + return NULL; + else if (ptr < options || *ptr == ' ' || *ptr == ',') { + ptr++; + break; + } + ptr--; + count++; + } + + /* Check if we got any result */ + if (*ptr == ':') + return NULL; + + return ptr; +} + +/*! Check the LCO option. This function checks for multiple appearence of LCO + * options, which is illegal + * \param[in] ctx talloc context + * \param[in] lco string + * \returns 0 on success, -1 on failure */ +int check_local_cx_options(void *ctx, const char *options) +{ + int i; + char *options_copy; + char *lco_identifier; + char *lco_identifier_end; + char *next_lco_identifier; + + char **lco_seen; + unsigned int lco_seen_n = 0; + + if (!options) + return -1; + + lco_seen = + (char **)talloc_zero_size(ctx, strlen(options) * sizeof(char *)); + options_copy = talloc_strdup(ctx, options); + lco_identifier = options_copy; + + do { + /* Move the lco_identifier pointer to the beginning of the + * current lco option identifier */ + lco_identifier = get_lco_identifier(lco_identifier); + if (!lco_identifier) + goto error; + + /* Look ahead to the next LCO option early, since we + * will parse destructively */ + next_lco_identifier = strstr(lco_identifier + 1, ","); + + /* Pinch off the end of the lco field identifier name + * and see if we still got something, also check if + * there is some value after the colon. */ + lco_identifier_end = strstr(lco_identifier, ":"); + if (!lco_identifier_end) + goto error; + if (*(lco_identifier_end + 1) == ' ' + || *(lco_identifier_end + 1) == ',' + || *(lco_identifier_end + 1) == '\0') + goto error; + *lco_identifier_end = '\0'; + if (strlen(lco_identifier) == 0) + goto error; + + /* Check if we have already seen the current field identifier + * before. If yes, we must bail, an LCO must only appear once + * in the LCO string */ + for (i = 0; i < lco_seen_n; i++) { + if (strcmp(lco_seen[i], lco_identifier) == 0) + goto error; + } + lco_seen[lco_seen_n] = lco_identifier; + lco_seen_n++; + + /* The first identifier must always be found at the beginnning + * of the LCO string */ + if (lco_seen[0] != options_copy) + goto error; + + /* Go to the next lco option */ + lco_identifier = next_lco_identifier; + } while (lco_identifier); + + talloc_free(lco_seen); + talloc_free(options_copy); + return 0; +error: + talloc_free(lco_seen); + talloc_free(options_copy); + return -1; +} + /* Set the LCO from a string (see RFC 3435). * The string is stored in the 'string' field. A NULL string is handled exactly * like an empty string, the 'string' field is never NULL after this function @@ -410,9 +525,16 @@ if (strlen(options) == 0) return 0; - talloc_free(lco->string); - lco->string = talloc_strdup(ctx, options ? options : ""); + /* Make sure the encoding of the LCO is consistant before we proceed */ + if (check_local_cx_options(ctx, options) != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "local CX options: Internal inconsistency in Local Connection Options!\n"); + return 524; + } + talloc_free(lco->string); + lco->string = talloc_strdup(ctx, options); + p_opt = strstr(lco->string, "p:"); if (p_opt && sscanf(p_opt, "p:%d-%d", &lco->pkt_period_min, &lco->pkt_period_max) == 1) diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index 4dce64c..3fc8bc0 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -1465,6 +1465,108 @@ .num_cat = ARRAY_SIZE(log_categories), }; +static void test_get_lco_identifier(void) +{ + char *test; + printf("Testing get_lco_identifier()\n"); + + /* Normal case at the beginning */ + test = "p:10, a:PCMU"; + printf("%s -> %s\n", test, get_lco_identifier(test)); + + test = "p:10, a:PCMU"; + printf("%s -> %s\n", test, get_lco_identifier(test)); + + /* Begin parsing in the middle of the value part of + * the previous LCO option value */ + test = "XXXX, p:10, a:PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + test = "XXXX,p:10,a:PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + test = "10,a:PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + test = "10, a:PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + test = "10,a: PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + test = "10 ,a: PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + /* Begin parsing right at the end of the previous LCO + * option value */ + test = ", a:PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + test = " a:PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + /* Empty string, result should be (null) */ + test = ""; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); + + /* Missing colons, result should be (null) */ + test = "p10, aPCMU"; + printf("%s -> %s\n", test, get_lco_identifier(test)); + + /* Colon separated from the identifier, result should be (null) */ + test = "10,a :PCMU"; + printf("'%s' -> '%s'\n", test, get_lco_identifier(test)); +} + +static void test_check_local_cx_options(void *ctx) +{ + /* Legal cases */ + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a:PCMU") == 0); + OSMO_ASSERT(check_local_cx_options(ctx, "a:PCMU") == 0); + OSMO_ASSERT(check_local_cx_options(ctx, "a:PCMU, p:10, IN:10") == 0); + OSMO_ASSERT(check_local_cx_options(ctx, "one:AAA, two:BB, tree:C") == + 0); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a:PCMU") == 0); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a:G726-32") == 0); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10-20, b:64") == 0); + OSMO_ASSERT(check_local_cx_options(ctx, "b:32-64, e:off") == 0); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a:PCMU;G726-32") == 0); + + /* Illegal spaces before and after colon */ + OSMO_ASSERT(check_local_cx_options(ctx, "a:PCMU, p :10") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "a :PCMU, p:10") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "p: 10, a:PCMU") == -1); + + /* Check if multiple appearances of LCOs are rejected */ + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a:PCMU, p:10") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a:PCMU, a:PCMU, p:10") == + -1); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, p:10") == -1); + + /* Check if empty LCO are rejected */ + OSMO_ASSERT(check_local_cx_options(ctx, "p: , a:PCMU") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "p: , a: PCMU") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a: PCMU") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "p:, a:PCMU") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "p:10, a:") == -1); + + /* Garbeled beginning and ends */ + OSMO_ASSERT(check_local_cx_options(ctx, ":10, a:10") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "10, a:PCMU") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, ", a:PCMU") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, " a:PCMU") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "a:PCMU,") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "a:PCMU, ") == -1); + + /* Illegal strings */ + OSMO_ASSERT(check_local_cx_options(ctx, " ") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, "AAA") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, ":,") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, ",:") == -1); + OSMO_ASSERT(check_local_cx_options(ctx, ",,,") == -1); +} + int main(int argc, char **argv) { void *ctx = talloc_named_const(NULL, 0, "mgcp_test"); @@ -1486,6 +1588,8 @@ test_no_cycle(); test_no_name(); test_osmux_cid(); + test_get_lco_identifier(); + test_check_local_cx_options(ctx); OSMO_ASSERT(talloc_total_size(msgb_ctx) == 0); OSMO_ASSERT(talloc_total_blocks(msgb_ctx) == 1); diff --git a/tests/mgcp/mgcp_test.ok b/tests/mgcp/mgcp_test.ok index d2879ad..e293533 100644 --- a/tests/mgcp/mgcp_test.ok +++ b/tests/mgcp/mgcp_test.ok @@ -1104,4 +1104,18 @@ checking response: using message with patched conn_id for comparison Response matches our expectations. +Testing get_lco_identifier() +p:10, a:PCMU -> p:10, a:PCMU +p:10, a:PCMU -> p:10, a:PCMU +'XXXX, p:10, a:PCMU' -> 'p:10, a:PCMU' +'XXXX,p:10,a:PCMU' -> 'p:10,a:PCMU' +'10,a:PCMU' -> 'a:PCMU' +'10, a:PCMU' -> 'a:PCMU' +'10,a: PCMU' -> 'a: PCMU' +'10 ,a: PCMU' -> 'a: PCMU' +', a:PCMU' -> 'a:PCMU' +' a:PCMU' -> 'a:PCMU' +'' -> '(null)' +p10, aPCMU -> (null) +'10,a :PCMU' -> '(null)' Done -- To view, visit https://gerrit.osmocom.org/9474 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iae2fddfa5f2bcfc952f8ab217b3056694e5f7812 Gerrit-Change-Number: 9474 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 19:31:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 19:31:18 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ms_driver: Use the two new config options for the mobile In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9480 ) Change subject: osmo_ms_driver: Use the two new config options for the mobile ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4bb59130a04852bc43af9ef3602b129f40e9e170 Gerrit-Change-Number: 9480 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Jun 2018 19:31:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 19:31:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 19:31:22 +0000 Subject: Change in osmo-gsm-tester[master]: osmo_ms_driver: Use the two new config options for the mobile In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9480 ) Change subject: osmo_ms_driver: Use the two new config options for the mobile ...................................................................... osmo_ms_driver: Use the two new config options for the mobile Avoid being stuck in c7 state and use the c7-any-timeout with a low value. Do not attempt to store SMS in the home directory (if they are received). Change-Id: I4bb59130a04852bc43af9ef3602b129f40e9e170 --- M src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl index 96ec0d9..395d6f4 100644 --- a/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-mobile.cfg.tmpl @@ -21,6 +21,8 @@ codec full-speed prefer codec half-speed no abbrev + c7-any-timeout 0 + no sms-store support sms a5/1 -- To view, visit https://gerrit.osmocom.org/9480 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4bb59130a04852bc43af9ef3602b129f40e9e170 Gerrit-Change-Number: 9480 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 19:31:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Jun 2018 19:31:28 +0000 Subject: Change in libosmocore[master]: Add osmo_isqrt32() to compute 32bit integer square root In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9476 ) Change subject: Add osmo_isqrt32() to compute 32bit integer square root ...................................................................... Add osmo_isqrt32() to compute 32bit integer square root Change-Id: I2b96db6e037e72e92317fec874877e473a1cf909 --- M include/osmocom/core/utils.h M src/utils.c M tests/utils/utils_test.c M tests/utils/utils_test.ok 4 files changed, 66 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 8928f68..cd22dfb 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -128,4 +128,6 @@ const char *osmo_quote_str(const char *str, int in_len); const char *osmo_quote_str_buf(const char *str, int in_len, char *buf, size_t bufsize); +uint32_t osmo_isqrt32(uint32_t x); + /*! @} */ diff --git a/src/utils.c b/src/utils.c index 32ea87c..ea0bbde 100644 --- a/src/utils.c +++ b/src/utils.c @@ -592,4 +592,44 @@ return osmo_quote_str_buf(str, in_len, namebuf, sizeof(namebuf)); } +/*! perform an integer square root operation on unsigned 32bit integer. + * This implementation is taken from "Hacker's Delight" Figure 11-1 "Integer square root, Newton's + * method", which can also be found at http://www.hackersdelight.org/hdcodetxt/isqrt.c.txt */ +uint32_t osmo_isqrt32(uint32_t x) +{ + uint32_t x1; + int s, g0, g1; + + if (x <= 1) + return x; + + s = 1; + x1 = x - 1; + if (x1 > 0xffff) { + s = s + 8; + x1 = x1 >> 16; + } + if (x1 > 0xff) { + s = s + 4; + x1 = x1 >> 8; + } + if (x1 > 0xf) { + s = s + 2; + x1 = x1 >> 4; + } + if (x1 > 0x3) { + s = s + 1; + } + + g0 = 1 << s; /* g0 = 2**s */ + g1 = (g0 + (x >> s)) >> 1; /* g1 = (g0 + x/g0)/2 */ + + /* converges after four to five divisions for arguments up to 16,785,407 */ + while (g1 < g0) { + g0 = g1; + g1 = (g0 + (x/g0)) >> 1; + } + return g0; +} + /*! @} */ diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index a124352..cb4e476 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -27,6 +27,7 @@ #include #include +#include static void hexdump_test(void) { @@ -425,6 +426,26 @@ printf("'%s'\n", osmo_quote_str_buf(NULL, -1, out_buf, 10)); } +static void isqrt_test(void) +{ + int i; + + printf("\nTesting integer square-root\n"); + srand(time(NULL)); + for (i = 0; i < 1024; i++) { + uint16_t x; + uint32_t r = rand(); + if (RAND_MAX < UINT16_MAX) + x = r * (UINT16_MAX/RAND_MAX); + else + x = r; + uint32_t sq = x*x; + uint32_t y = osmo_isqrt32(sq); + if (y != x) + printf("ERROR: x=%u, sq=%u, osmo_isqrt(%u) = %u\n", x, sq, sq, y); + } +} + int main(int argc, char **argv) { static const struct log_info log_info = {}; @@ -437,5 +458,6 @@ bcd_test(); str_escape_test(); str_quote_test(); + isqrt_test(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 5bc3896..ea9216f 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -137,3 +137,5 @@ '' - NULL string becomes a "NULL" literal: 'NULL' + +Testing integer square-root -- To view, visit https://gerrit.osmocom.org/9476 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2b96db6e037e72e92317fec874877e473a1cf909 Gerrit-Change-Number: 9476 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 6 20:21:39 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Jun 2018 20:21:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: WIP: msc/USSD: add multi-transaction testcase In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9471 ) Change subject: WIP: msc/USSD: add multi-transaction testcase ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/9471/1/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9471/1/msc/MSC_Tests.ttcn at 2227 PS1, Line 2227: invoke_id := 5, /* Phone may not start from 0 or 1 */ > why always use the same invoke_id? It doesn't matter which value to use while we have a single 'request-response' pair within transaction. But I am also going to implement a bit core complex test scenario with multiple messages, so then I will use different values. In other words, InvokeID is used to relate the response to request within a single transaction. https://gerrit.osmocom.org/#/c/9471/1/msc/MSC_Tests.ttcn at 2278 PS1, Line 2278: BSSAP.send(ts_dtap_ussd_init_req(tid := 0, code := "*#100#")); > The more "TTCN native" way to handle this (I believe) would be to > create a new component type, where basically each component represents > one USSD dialogue/session, and the "BSC_ConnHdlr" dispatches to those > individual per-dialogue components based on TID. Yep, the current approach is a result of my imperative style of mind. It's a bit hard to start thinking in functional style immediately :) > This method is what we use in e.g. RSL_Emulation to de-multiplex > between different logical channels, or in BSSMAP_Emulation to > separate the different SCCP connections I like the idea to have a new component type, and I'll try to learn how it's implemented there, for sure. Thanks for this tip! But at the moment, I just figured out that my upcoming change for OsmoMSC, which enables multiple sessions handling, is not working properly. OsmoMSC closes MM-connection after handling of the first request, and then the pending ones are getting dropped... Something is wrong with the reference counting, and an ugly hack helped to make it work as expected. The code is here: https://git.osmocom.org/osmo-msc/log/?h=fixeria/ussd Also, the testcase itself has the following runtime error: > Dynamic test case error: Sending data on the connection of port > CLIENT to 12:BSSAP failed. (Broken pipe) Probably, this is related to some timer... -- To view, visit https://gerrit.osmocom.org/9471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 Gerrit-Change-Number: 9471 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 06 Jun 2018 20:21:39 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: cosmetic: gscon: undup code: add common assignment_failed() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9280 to look at the new patch set (#2). Change subject: cosmetic: gscon: undup code: add common assignment_failed() ...................................................................... cosmetic: gscon: undup code: add common assignment_failed() Call one common function to signal Assignment Failure and transition back to ST_ACTIVE. Change-Id: I1ce10a3ead286cdb6ad529fc293b6cecd151cc9a --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 33 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/80/9280/2 -- To view, visit https://gerrit.osmocom.org/9280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I1ce10a3ead286cdb6ad529fc293b6cecd151cc9a Gerrit-Change-Number: 9280 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9281 to look at the new patch set (#2). Change subject: assignment: signal assignment failure on chan act nack ...................................................................... assignment: signal assignment failure on chan act nack When the BTS responds with a Chan Act NACK, i.e. the lchan could not be activated, immediately signal Assignment Failure to the MSC (in handle_chan_nack()). In handle_chan_nack(), adjust log: instead of waiting for timeout, we now signal Assignment Failure. Cosmetic: in this file, the struct bsc_api* is typically named 'bsc', not 'api', so rename the arg. Drop misleading logging from bsc_assign_fail(): instead of transmitting the Assignment Failure message, it actually signals an FSM event. Leave logging of that to the FSM logging. Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 --- M src/osmo-bsc/bsc_api.c M src/osmo-bsc/osmo_bsc_api.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9281/2 -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: log: fix logging in rsl_rx_chan_act_nack() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9282 to look at the new patch set (#2). Change subject: log: fix logging in rsl_rx_chan_act_nack() ...................................................................... log: fix logging in rsl_rx_chan_act_nack() In each code path within rsl_rx_chan_act_nack(), do separate logging of the NACK to ensure proper termination of each log line. When receiving a Chan Act NACK, we possibly mixed a LOGP() within an unterminated other LOGP() that had not been ended with a LOGPC() yet. Change-Id: Icd2772b21ef3a2ff5af11b7c92dff0ecb4d87ff0 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 9 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/82/9282/2 -- To view, visit https://gerrit.osmocom.org/9282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Icd2772b21ef3a2ff5af11b7c92dff0ecb4d87ff0 Gerrit-Change-Number: 9282 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: log: assignment: add two logs on unexpected lchan release In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9283 to look at the new patch set (#2). Change subject: log: assignment: add two logs on unexpected lchan release ...................................................................... log: assignment: add two logs on unexpected lchan release Change-Id: Ib61125ebc41e55dc4a6595db8c8559c62b3ed2c0 --- M src/osmo-bsc/bsc_api.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/9283/2 -- To view, visit https://gerrit.osmocom.org/9283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib61125ebc41e55dc4a6595db8c8559c62b3ed2c0 Gerrit-Change-Number: 9283 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9284 to look at the new patch set (#2). Change subject: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() ...................................................................... use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() The guts of bssap_speech_from_lchan() and lchan_to_chosen_channel() have been moved to libosmocore; call that. The functions become mere wrappers to feed the right lchan members. Depends: I8a3cc5d4548e9a78d945d54c69ccced251edcec9 (libosmocore) Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 5 insertions(+), 72 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/9284/2 -- To view, visit https://gerrit.osmocom.org/9284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 Gerrit-Change-Number: 9284 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: cosmetic: penalty timers: constify, tweak doc In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9285 to look at the new patch set (#2). Change subject: cosmetic: penalty timers: constify, tweak doc ...................................................................... cosmetic: penalty timers: constify, tweak doc Change-Id: I28addc9a16a4c81978290303d368f630a8334228 --- M include/osmocom/bsc/penalty_timers.h M src/osmo-bsc/penalty_timers.c 2 files changed, 15 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/9285/2 -- To view, visit https://gerrit.osmocom.org/9285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I28addc9a16a4c81978290303d368f630a8334228 Gerrit-Change-Number: 9285 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: cosmetic: bsc_subscr_alloc: log initial get In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9286 to look at the new patch set (#2). Change subject: cosmetic: bsc_subscr_alloc: log initial get ...................................................................... cosmetic: bsc_subscr_alloc: log initial get Instead of silently setting the use count to 1, instead increment with an explicit bsc_subsct_get(), which then logs the event along with the place that created the subscriber. Change-Id: Ia72f8010b7b2e1ca44e3b005c0f2c05f3eeae8d5 --- M src/osmo-bsc/bsc_subscriber.c M tests/subscr/bsc_subscr_test.err 2 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/9286/2 -- To view, visit https://gerrit.osmocom.org/9286 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ia72f8010b7b2e1ca44e3b005c0f2c05f3eeae8d5 Gerrit-Change-Number: 9286 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: gscon: put subscriber a little later In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9287 to look at the new patch set (#2). Change subject: gscon: put subscriber a little later ...................................................................... gscon: put subscriber a little later Keep the bsc_subscr associated with the conn as long as possible, to benefit logging, which then contains the subscriber identity (if any). Change-Id: Ifa528b58842a02509bfe0af6915c64bd67058bcd --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/9287/2 -- To view, visit https://gerrit.osmocom.org/9287 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifa528b58842a02509bfe0af6915c64bd67058bcd Gerrit-Change-Number: 9287 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: try to pick up subsrc IMSI on l3-compl In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9288 to look at the new patch set (#2). Change subject: try to pick up subsrc IMSI on l3-compl ...................................................................... try to pick up subsrc IMSI on l3-compl This is a tiny step towards being aware of a connection's subscriber identity. Iff the Layer 3 Complete message contains an IMSI, associate a bsc_subscr with the conn, so that subsequent logging and possibly meas_feed contains the IMSI. For any L3 Complete using TMSI, this has no effect whatsoever. Related: OS#2969 Change-Id: I3b696a0c0932e3abcb682ba231db65755d8c27a6 --- M src/osmo-bsc/osmo_bsc_api.c 1 file changed, 16 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/9288/2 -- To view, visit https://gerrit.osmocom.org/9288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3b696a0c0932e3abcb682ba231db65755d8c27a6 Gerrit-Change-Number: 9288 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:34 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:34 +0000 Subject: Change in osmo-bsc[master]: store subscriber identity on paging In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9289 to look at the new patch set (#2). Change subject: store subscriber identity on paging ...................................................................... store subscriber identity on paging Another small step towards being aware of the subscriber identity. Any connection initiated by paging will subsequently log the subscriber's identity -- of course not necessarily the IMSI, if paging was done by TMSI. This is only for Paging, not the Paging Response; for that see, L3 Complete. Related: OS#2969 Change-Id: I0ab7bedfe693bb4e42a04fb0585b94a730ff2d9b --- M src/osmo-bsc/paging.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/9289/2 -- To view, visit https://gerrit.osmocom.org/9289 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0ab7bedfe693bb4e42a04fb0585b94a730ff2d9b Gerrit-Change-Number: 9289 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:42 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:42 +0000 Subject: Change in osmo-bsc[master]: dissolve libbsc: move all to src/osmo-bsc, link .o files Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9481 Change subject: dissolve libbsc: move all to src/osmo-bsc, link .o files ...................................................................... dissolve libbsc: move all to src/osmo-bsc, link .o files Move all of libbsc/ into osmo-bsc/, and separate/move some implementations to allow linking from utils/* and ipaccess/* without pulling in unccessary dependencies. Some utilities use gsm_network and gsm_bts structs, which already include data structures for fairly advanced uses. Move initialization that only osmo-bsc needs into new bsc_network_init() and bsc_bts_alloc_register() functions, so that the leaner tools can use the old gsm_* versions without the need to link everything (e.g. handover and lchan alloc code). In some instances, there need to be stubs if to cut off linking "just before the RSL level" and prevent dependencies from creeping in. - abis_rsl_rcvmsg(): the only program currently interpreting RSL messages is osmo-bsc, the utils are merely concerned with OML, if at all. - paging_flush_bts(): ip.access nanobts models call this when the RSL link is dropped. Only osmo-bsc actually needs to do anything there. - on_gsm_ts_init(): the mechanism to trigger timeslot initialization is related to OML, while this action to take on init would pull in RSL dependencies. utils/ and ipaccess/ each have a stubs.c file to implement these stubs. Tests implement stubs inline where required. >From src/utils/, src/ipaccess/ and tests/*/, link in .o files from osmo-bsc/. In order for this to work, the osmo-bsc subdir must be built before the other source trees. (An alternative would be to include the .c files as sources, but that would re-compile them in every source tree. Not a large burden really, but unless linking .o files gives problems, let's have the quicker build.) Minor obvious cleanups creep in with this patch, I will not bother to name them individually now unless code review asks me to. Rationale: 1) libbsc has been separate to use it for osmo-nitb and osmo-bsc in the old openbsc.git. This is no longer required, and spreading over libbsc and osmo-bsc is distracting. 2) Recently, ridiculous linking requirements have made adding new functions cumbersome, because libbsc has started depending on osmo-bsc/*.c implementations: on gscon FSM and bssap functions. For example, neither bs11_config nor ipaccess-config nor bts_test need handover_cfg or BSSMAP message composition. It makes no sense to link the entire osmo-bsc to it, nor do we want to keep adding stubs to each linking realm. Change-Id: I36a586726f5818121abe54d25654819fc451d3bf --- M configure.ac M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bss.h M include/osmocom/bsc/chan_alloc.h D include/osmocom/bsc/common_bsc.h M include/osmocom/bsc/gsm_data.h M src/Makefile.am M src/ipaccess/Makefile.am M src/ipaccess/ipaccess-config.c A src/ipaccess/stubs.c D src/libbsc/Makefile.am D src/libbsc/bsc_init.c D src/libbsc/net_init.c M src/osmo-bsc/Makefile.am R src/osmo-bsc/a_reset.c A src/osmo-bsc/abis_bs11.c R src/osmo-bsc/abis_nm.c R src/osmo-bsc/abis_nm_ipaccess.c R src/osmo-bsc/abis_nm_vty.c R src/osmo-bsc/abis_om2000.c R src/osmo-bsc/abis_om2000_vty.c R src/osmo-bsc/abis_rsl.c R src/osmo-bsc/acc_ramp.c R src/osmo-bsc/arfcn_range_encode.c R src/osmo-bsc/bsc_api.c R src/osmo-bsc/bsc_ctrl_commands.c R src/osmo-bsc/bsc_ctrl_lookup.c R src/osmo-bsc/bsc_dyn_ts.c A src/osmo-bsc/bsc_init.c R src/osmo-bsc/bsc_rf_ctrl.c R src/osmo-bsc/bsc_rll.c R src/osmo-bsc/bsc_subscr_conn_fsm.c R src/osmo-bsc/bsc_subscriber.c R src/osmo-bsc/bsc_vty.c R src/osmo-bsc/bts_ericsson_rbs2000.c R src/osmo-bsc/bts_init.c R src/osmo-bsc/bts_ipaccess_nanobts.c R src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c R src/osmo-bsc/bts_nokia_site.c R src/osmo-bsc/bts_siemens_bs11.c R src/osmo-bsc/bts_sysmobts.c R src/osmo-bsc/bts_unknown.c R src/osmo-bsc/chan_alloc.c R src/osmo-bsc/e1_config.c R src/osmo-bsc/gsm_04_08_utils.c R src/osmo-bsc/gsm_04_80_utils.c R src/osmo-bsc/gsm_data.c R src/osmo-bsc/handover_cfg.c R src/osmo-bsc/handover_decision.c R src/osmo-bsc/handover_decision_2.c R src/osmo-bsc/handover_logic.c R src/osmo-bsc/handover_vty.c R src/osmo-bsc/meas_feed.c R src/osmo-bsc/meas_rep.c A src/osmo-bsc/net_init.c R src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c R src/osmo-bsc/paging.c R src/osmo-bsc/pcu_sock.c R src/osmo-bsc/penalty_timers.c R src/osmo-bsc/rest_octets.c R src/osmo-bsc/system_information.c M src/utils/Makefile.am M src/utils/bs11_config.c A src/utils/stubs.c M tests/abis/Makefile.am M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/bssap/Makefile.am M tests/bssap/bssap_test.c M tests/channel/Makefile.am M tests/channel/channel_test.c M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/subscr/Makefile.am 80 files changed, 1,118 insertions(+), 935 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9481/1 diff --git a/configure.ac b/configure.ac index bcf890c..f07c756 100644 --- a/configure.ac +++ b/configure.ac @@ -168,7 +168,6 @@ include/osmocom/Makefile include/osmocom/bsc/Makefile src/Makefile - src/libbsc/Makefile src/libfilter/Makefile src/osmo-bsc/Makefile src/ipaccess/Makefile diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 0987be9..5fa39eb 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -12,7 +12,6 @@ bss.h \ bts_ipaccess_nanobts_omlattr.h \ chan_alloc.h \ - common_bsc.h \ ctrl.h \ debug.h \ e1_config.h \ diff --git a/include/osmocom/bsc/bss.h b/include/osmocom/bsc/bss.h index 9891f5f..ecb68d6 100644 --- a/include/osmocom/bsc/bss.h +++ b/include/osmocom/bsc/bss.h @@ -7,7 +7,6 @@ /* start and stop network */ extern int bsc_network_alloc(void); -extern int bsc_network_configure(const char *cfg_file); extern int bsc_shutdown_net(struct gsm_network *net); /* register all supported BTS */ diff --git a/include/osmocom/bsc/chan_alloc.h b/include/osmocom/bsc/chan_alloc.h index 98568a5..f3aec9d 100644 --- a/include/osmocom/bsc/chan_alloc.h +++ b/include/osmocom/bsc/chan_alloc.h @@ -45,7 +45,6 @@ void network_chan_load(struct pchan_load *pl, struct gsm_network *net); void bts_update_t3122_chan_load(struct gsm_bts *bts); -bool trx_is_usable(const struct gsm_bts_trx *trx); bool ts_is_usable(const struct gsm_bts_trx_ts *ts); #endif /* _CHAN_ALLOC_H */ diff --git a/include/osmocom/bsc/common_bsc.h b/include/osmocom/bsc/common_bsc.h deleted file mode 100644 index c23d20c..0000000 --- a/include/osmocom/bsc/common_bsc.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#include - -struct gsm_network *bsc_network_init(void *ctx); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index b1fceb3..a8d1f92 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -997,6 +997,8 @@ }; +struct gsm_network *gsm_network_init(void *ctx); + struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num); struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); @@ -1378,9 +1380,8 @@ struct gsm_subscriber_connection *msc_subscr_con_allocate(struct gsm_network *network); void msc_subscr_con_free(struct gsm_subscriber_connection *conn); -struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, - enum gsm_bts_type type, - uint8_t bsic); +struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, enum gsm_bts_type type, uint8_t bsic); +struct gsm_bts *bsc_bts_alloc_register(struct gsm_network *net, enum gsm_bts_type type, uint8_t bsic); void set_ts_e1link(struct gsm_bts_trx_ts *ts, uint8_t e1_nr, uint8_t e1_ts, uint8_t e1_ts_ss); @@ -1418,4 +1419,8 @@ void gsm_trx_mark_all_ts_uninitialized(struct gsm_bts_trx *trx); void gsm_bts_mark_all_ts_uninitialized(struct gsm_bts *bts); +bool trx_is_usable(const struct gsm_bts_trx *trx); + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts); + #endif /* _GSM_DATA_H */ diff --git a/src/Makefile.am b/src/Makefile.am index fc9bf8e..6c63eea 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,15 +19,9 @@ $(COVERAGE_LDFLAGS) \ $(NULL) -# Libraries SUBDIRS = \ - libbsc \ libfilter \ - $(NULL) - -# Programs -SUBDIRS += \ + osmo-bsc \ utils \ ipaccess \ - osmo-bsc \ $(NULL) diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index 0f9045f..2c6282d 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -33,31 +33,37 @@ $(NULL) abisip_find_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ $(OSMO_LIBS) \ $(NULL) abisip_find_SOURCES = \ abisip-find.c \ + stubs.c \ $(NULL) ipaccess_config_SOURCES = \ ipaccess-config.c \ ipaccess-firmware.c \ network_listen.c \ + stubs.c \ $(NULL) # FIXME: resolve the bogus dependencies patched around here: ipaccess_config_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ $(OSMO_LIBS) \ $(NULL) ipaccess_proxy_SOURCES = \ ipaccess-proxy.c \ + stubs.c \ + $(top_srcdir)/src/osmo-bsc/gsm_data.c \ $(NULL) ipaccess_proxy_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ $(OSMO_LIBS) \ $(NULL) diff --git a/src/ipaccess/ipaccess-config.c b/src/ipaccess/ipaccess-config.c index 2236063..079bae2 100644 --- a/src/ipaccess/ipaccess-config.c +++ b/src/ipaccess/ipaccess-config.c @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -54,6 +53,7 @@ #include #include #include +#include struct gsm_network *bsc_gsmnet; @@ -873,8 +873,6 @@ print_value_string(&ipa_test_strs[0], ARRAY_SIZE(ipa_test_strs)); } -extern void bts_model_nanobts_init(); - static const struct log_info_cat log_categories[] = { [DNM] = { .name = "DNM", @@ -898,6 +896,7 @@ int rc, option_index = 0, stream_id = 0xff; tall_ctx_config = talloc_named_const(NULL, 0, "ipaccess-config"); + tall_bsc_ctx = tall_ctx_config; msgb_talloc_ctx_init(tall_ctx_config, 0); osmo_init_logging2(tall_ctx_config, &log_info); @@ -1034,7 +1033,7 @@ libosmo_abis_init(tall_ctx_config); - bsc_gsmnet = bsc_network_init(tall_bsc_ctx); + bsc_gsmnet = gsm_network_init(tall_ctx_config); if (!bsc_gsmnet) exit(1); diff --git a/src/ipaccess/stubs.c b/src/ipaccess/stubs.c new file mode 100644 index 0000000..c52d52b --- /dev/null +++ b/src/ipaccess/stubs.c @@ -0,0 +1,43 @@ +/* Stubs required for linking */ + +/* (C) 2018 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +struct gsm_bts; +struct gsm_bts_trx_ts; +struct msgb; +struct bsc_msc_data; + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ + /* No TS init required here. */ + return true; +} + +int abis_rsl_rcvmsg(struct msgb *msg) +{ + /* No RSL handling here */ + return 0; +} + +void paging_flush_bts(struct gsm_bts *bts, struct bsc_msc_data *msc) +{ + /* No paging flushing */ +} diff --git a/src/libbsc/Makefile.am b/src/libbsc/Makefile.am deleted file mode 100644 index 2e44729..0000000 --- a/src/libbsc/Makefile.am +++ /dev/null @@ -1,70 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - -I$(top_builddir) \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOVTY_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOMGCP_CFLAGS) \ - $(LIBOSMOSIGTRAN_CFLAGS) \ - $(COVERAGE_CFLAGS) \ - $(LIBOSMOMGCPCLIENT_CFLAGS) \ - $(NULL) - -noinst_LIBRARIES = \ - libbsc.a \ - $(NULL) - -libbsc_a_SOURCES = \ - abis_nm.c \ - abis_nm_vty.c \ - abis_om2000.c \ - abis_om2000_vty.c \ - abis_rsl.c \ - a_reset.c \ - acc_ramp.c \ - bsc_rll.c \ - bsc_subscriber.c \ - paging.c \ - bts_ericsson_rbs2000.c \ - bts_ipaccess_nanobts.c \ - bts_siemens_bs11.c \ - bts_nokia_site.c \ - bts_unknown.c \ - bts_sysmobts.c \ - chan_alloc.c \ - gsm_data.c \ - handover_decision.c \ - handover_logic.c \ - meas_rep.c \ - pcu_sock.c \ - rest_octets.c \ - system_information.c \ - e1_config.c \ - bsc_api.c \ - bsc_vty.c \ - gsm_04_08_utils.c \ - gsm_04_80_utils.c \ - bsc_init.c \ - bts_init.c \ - bsc_rf_ctrl.c \ - arfcn_range_encode.c \ - bsc_ctrl_commands.c \ - bsc_ctrl_lookup.c \ - net_init.c \ - bsc_dyn_ts.c \ - bts_ipaccess_nanobts_omlattr.c \ - handover_vty.c \ - handover_cfg.c \ - penalty_timers.c \ - handover_decision_2.c \ - bsc_subscr_conn_fsm.c \ - meas_feed.c \ - osmo_bsc_lcls.c \ - $(NULL) - diff --git a/src/libbsc/bsc_init.c b/src/libbsc/bsc_init.c deleted file mode 100644 index 508a7f4..0000000 --- a/src/libbsc/bsc_init.c +++ /dev/null @@ -1,591 +0,0 @@ -/* A hackish minimal BSC (+MSC +HLR) implementation */ - -/* (C) 2008-2018 by Harald Welte - * (C) 2009 by Holger Hans Peter Freyther - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/* Callback function for NACK on the OML NM */ -static int oml_msg_nack(struct nm_nack_signal_data *nack) -{ - if (nack->mt == NM_MT_GET_ATTR_NACK) { - LOGP(DNM, LOGL_ERROR, "BTS%u does not support Get Attributes " - "OML message.\n", nack->bts->nr); - return 0; - } - - if (nack->mt == NM_MT_SET_BTS_ATTR_NACK) - LOGP(DNM, LOGL_ERROR, "Failed to set BTS attributes. That is fatal. " - "Was the bts type and frequency properly specified?\n"); - else - LOGP(DNM, LOGL_ERROR, "Got %s NACK going to drop the OML links.\n", - abis_nm_nack_name(nack->mt)); - - if (!nack->bts) { - LOGP(DNM, LOGL_ERROR, "Unknown bts. Can not drop it.\n"); - return 0; - } - - if (is_ipaccess_bts(nack->bts)) - ipaccess_drop_oml(nack->bts); - - return 0; -} - -/* Callback function to be called every time we receive a signal from NM */ -static int nm_sig_cb(unsigned int subsys, unsigned int signal, - void *handler_data, void *signal_data) -{ - struct nm_nack_signal_data *nack; - - switch (signal) { - case S_NM_NACK: - nack = signal_data; - return oml_msg_nack(nack); - default: - break; - } - return 0; -} - -int bsc_shutdown_net(struct gsm_network *net) -{ - struct gsm_bts *bts; - - llist_for_each_entry(bts, &net->bts_list, list) { - LOGP(DNM, LOGL_NOTICE, "shutting down OML for BTS %u\n", bts->nr); - osmo_signal_dispatch(SS_L_GLOBAL, S_GLOBAL_BTS_CLOSE_OM, bts); - } - - return 0; -} - -unsigned long long bts_uptime(const struct gsm_bts *bts) -{ - struct timespec tp; - - if (!bts->uptime || !bts->oml_link) { - LOGP(DNM, LOGL_ERROR, "BTS %u OML link uptime unavailable\n", bts->nr); - return 0; - } - - if (clock_gettime(CLOCK_MONOTONIC, &tp) != 0) { - LOGP(DNM, LOGL_ERROR, "BTS %u uptime computation failure: %s\n", bts->nr, strerror(errno)); - return 0; - } - - /* monotonic clock helps to ensure that the conversion is valid */ - return difftime(tp.tv_sec, bts->uptime); -} - -static int rsl_si(struct gsm_bts_trx *trx, enum osmo_sysinfo_type i, int si_len) -{ - struct gsm_bts *bts = trx->bts; - int rc, j; - - if (si_len) { - DEBUGP(DRR, "SI%s: %s\n", get_value_string(osmo_sitype_strs, i), - osmo_hexdump(GSM_BTS_SI(bts, i), GSM_MACBLOCK_LEN)); - } else - DEBUGP(DRR, "SI%s: OFF\n", get_value_string(osmo_sitype_strs, i)); - - switch (i) { - case SYSINFO_TYPE_5: - case SYSINFO_TYPE_5bis: - case SYSINFO_TYPE_5ter: - case SYSINFO_TYPE_6: - rc = rsl_sacch_filling(trx, osmo_sitype2rsl(i), - si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); - break; - case SYSINFO_TYPE_2quater: - if (si_len == 0) { - rc = rsl_bcch_info(trx, i, NULL, 0); - break; - } - rc = 0; - for (j = 0; j <= bts->si2q_count; j++) - rc = rsl_bcch_info(trx, i, (const uint8_t *)GSM_BTS_SI2Q(bts, j), GSM_MACBLOCK_LEN); - break; - default: - rc = rsl_bcch_info(trx, i, si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); - break; - } - - return rc; -} - -/* set all system information types for a TRX */ -int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx) -{ - int i, rc; - struct gsm_bts *bts = trx->bts; - uint8_t gen_si[_MAX_SYSINFO_TYPE], n_si = 0, n; - int si_len[_MAX_SYSINFO_TYPE]; - - bts->si_common.cell_sel_par.ms_txpwr_max_ccch = - ms_pwr_ctl_lvl(bts->band, bts->ms_max_power); - bts->si_common.cell_sel_par.neci = bts->network->neci; - - /* Zero/forget the state of the dynamically computed SIs, leeping the static ones */ - bts->si_valid = bts->si_mode_static; - - /* First, we determine which of the SI messages we actually need */ - - if (trx == bts->c0) { - /* 1...4 are always present on a C0 TRX */ - gen_si[n_si++] = SYSINFO_TYPE_1; - gen_si[n_si++] = SYSINFO_TYPE_2; - gen_si[n_si++] = SYSINFO_TYPE_2bis; - gen_si[n_si++] = SYSINFO_TYPE_2ter; - gen_si[n_si++] = SYSINFO_TYPE_2quater; - gen_si[n_si++] = SYSINFO_TYPE_3; - gen_si[n_si++] = SYSINFO_TYPE_4; - - /* 13 is always present on a C0 TRX of a GPRS BTS */ - if (bts->gprs.mode != BTS_GPRS_NONE) - gen_si[n_si++] = SYSINFO_TYPE_13; - } - - /* 5 and 6 are always present on every TRX */ - gen_si[n_si++] = SYSINFO_TYPE_5; - gen_si[n_si++] = SYSINFO_TYPE_5bis; - gen_si[n_si++] = SYSINFO_TYPE_5ter; - gen_si[n_si++] = SYSINFO_TYPE_6; - - /* Second, we generate the selected SI via RSL */ - - for (n = 0; n < n_si; n++) { - i = gen_si[n]; - /* Only generate SI if this SI is not in "static" (user-defined) mode */ - if (!(bts->si_mode_static & (1 << i))) { - /* Set SI as being valid. gsm_generate_si() might unset - * it, if SI is not required. */ - bts->si_valid |= (1 << i); - rc = gsm_generate_si(bts, i); - if (rc < 0) - goto err_out; - si_len[i] = rc; - } else { - if (i == SYSINFO_TYPE_5 || i == SYSINFO_TYPE_5bis - || i == SYSINFO_TYPE_5ter) - si_len[i] = 18; - else if (i == SYSINFO_TYPE_6) - si_len[i] = 11; - else - si_len[i] = 23; - } - } - - /* Third, we send the selected SI via RSL */ - - for (n = 0; n < n_si; n++) { - i = gen_si[n]; - /* if we don't currently have this SI, we send a zero-length - * RSL BCCH FILLING / SACCH FILLING * in order to deactivate - * the SI, in case it might have previously been active */ - if (!GSM_BTS_HAS_SI(bts, i)) - rc = rsl_si(trx, i, 0); - else - rc = rsl_si(trx, i, si_len[i]); - if (rc < 0) - return rc; - } - - /* Make sure the PCU is aware (in case anything GPRS related has - * changed in SI */ - pcu_info_update(bts); - - return 0; -err_out: - LOGP(DRR, LOGL_ERROR, "Cannot generate SI%s for BTS %u: error <%s>, " - "most likely a problem with neighbor cell list generation\n", - get_value_string(osmo_sitype_strs, i), bts->nr, strerror(-rc)); - return rc; -} - -/* set all system information types for a BTS */ -int gsm_bts_set_system_infos(struct gsm_bts *bts) -{ - struct gsm_bts_trx *trx; - - /* Generate a new ID */ - bts->bcch_change_mark += 1; - bts->bcch_change_mark %= 0x7; - - llist_for_each_entry(trx, &bts->trx_list, list) { - int rc; - - rc = gsm_bts_trx_set_system_infos(trx); - if (rc != 0) - return rc; - } - - return 0; -} - -/* Produce a MA as specified in 10.5.2.21 */ -static int generate_ma_for_ts(struct gsm_bts_trx_ts *ts) -{ - /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs - * and the MA */ - struct bitvec *cell_chan = &ts->trx->bts->si_common.cell_alloc; - struct bitvec *ts_arfcn = &ts->hopping.arfcns; - struct bitvec *ma = &ts->hopping.ma; - unsigned int num_cell_arfcns, bitnum, n_chan; - int i; - - /* re-set the MA to all-zero */ - ma->cur_bit = 0; - ts->hopping.ma_len = 0; - memset(ma->data, 0, ma->data_len); - - if (!ts->hopping.enabled) - return 0; - - /* count the number of ARFCNs in the cell channel allocation */ - num_cell_arfcns = 0; - for (i = 0; i < 1024; i++) { - if (bitvec_get_bit_pos(cell_chan, i)) - num_cell_arfcns++; - } - - /* pad it to octet-aligned number of bits */ - ts->hopping.ma_len = num_cell_arfcns / 8; - if (num_cell_arfcns % 8) - ts->hopping.ma_len++; - - n_chan = 0; - for (i = 0; i < 1024; i++) { - if (!bitvec_get_bit_pos(cell_chan, i)) - continue; - /* set the corresponding bit in the MA */ - bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; - if (bitvec_get_bit_pos(ts_arfcn, i)) - bitvec_set_bit_pos(ma, bitnum, 1); - else - bitvec_set_bit_pos(ma, bitnum, 0); - n_chan++; - } - - /* ARFCN 0 is special: It is coded last in the bitmask */ - if (bitvec_get_bit_pos(cell_chan, 0)) { - n_chan++; - /* set the corresponding bit in the MA */ - bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; - if (bitvec_get_bit_pos(ts_arfcn, 0)) - bitvec_set_bit_pos(ma, bitnum, 1); - else - bitvec_set_bit_pos(ma, bitnum, 0); - } - - return 0; -} - -static void bootstrap_rsl(struct gsm_bts_trx *trx) -{ - unsigned int i; - - LOGP(DRSL, LOGL_NOTICE, "bootstrapping RSL for BTS/TRX (%u/%u) " - "on ARFCN %u using MCC-MNC %s LAC=%u CID=%u BSIC=%u\n", - trx->bts->nr, trx->nr, trx->arfcn, - osmo_plmn_name(&bsc_gsmnet->plmn), - trx->bts->location_area_code, - trx->bts->cell_identity, trx->bts->bsic); - - if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { - rsl_nokia_si_begin(trx); - } - - /* - * Trigger ACC ramping before sending system information to BTS. - * This ensures that RACH control in system information is configured correctly. - * TRX 0 should be usable and unlocked, otherwise starting ACC ramping is pointless. - */ - if (trx_is_usable(trx) && trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) - acc_ramp_trigger(&trx->bts->acc_ramp); - - gsm_bts_trx_set_system_infos(trx); - - if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { - /* channel unspecific, power reduction in 2 dB steps */ - rsl_bs_power_control(trx, 0xFF, trx->max_power_red / 2); - rsl_nokia_si_end(trx); - } - - for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - struct gsm_bts_trx_ts *ts = &trx->ts[i]; - generate_ma_for_ts(ts); - gsm_ts_check_init(ts); - } -} - -/* Callback function to be called every time we receive a signal from INPUT */ -static int inp_sig_cb(unsigned int subsys, unsigned int signal, - void *handler_data, void *signal_data) -{ - struct input_signal_data *isd = signal_data; - struct gsm_bts_trx *trx = isd->trx; - int ts_no, lchan_no; - /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ - const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; - const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; - - /* we should not request more attributes than we're ready to handle */ - OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); - OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); - - if (subsys != SS_L_INPUT) - return -EINVAL; - - LOGP(DLMI, LOGL_DEBUG, "%s(): Input signal '%s' received\n", __func__, - get_value_string(e1inp_signal_names, signal)); - switch (signal) { - case S_L_INP_TEI_UP: - if (isd->link_type == E1INP_SIGN_OML) { - /* TODO: this is required for the Nokia BTS, hopping is configured - during OML, other MA is not set. */ - struct gsm_bts_trx *cur_trx; - /* was static in system_information.c */ - extern int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); - uint8_t ca[20]; - /* has to be called before generate_ma_for_ts to - set bts->si_common.cell_alloc */ - generate_cell_chan_list(ca, trx->bts); - - /* Request generic BTS-level attributes */ - abis_nm_get_attr(trx->bts, NM_OC_BTS, 0xFF, 0xFF, 0xFF, bts_attr, sizeof(bts_attr)); - - llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { - int i; - /* Request TRX-level attributes */ - abis_nm_get_attr(cur_trx->bts, NM_OC_BASEB_TRANSC, 0, cur_trx->nr, 0xFF, - trx_attr, sizeof(trx_attr)); - for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) - generate_ma_for_ts(&cur_trx->ts[i]); - } - } - if (isd->link_type == E1INP_SIGN_RSL) - bootstrap_rsl(trx); - break; - case S_L_INP_TEI_DN: - LOGP(DLMI, LOGL_ERROR, "Lost some E1 TEI link: %d %p\n", isd->link_type, trx); - - if (isd->link_type == E1INP_SIGN_OML) - rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_OML_FAIL]); - else if (isd->link_type == E1INP_SIGN_RSL) { - rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_RSL_FAIL]); - acc_ramp_abort(&trx->bts->acc_ramp); - } - - /* - * free all allocated channels. change the nm_state so the - * trx and trx_ts becomes unusable and chan_alloc.c can not - * allocate from it. - */ - for (ts_no = 0; ts_no < ARRAY_SIZE(trx->ts); ++ts_no) { - struct gsm_bts_trx_ts *ts = &trx->ts[ts_no]; - - for (lchan_no = 0; lchan_no < ARRAY_SIZE(ts->lchan); ++lchan_no) { - if (ts->lchan[lchan_no].state != LCHAN_S_NONE) - lchan_free(&ts->lchan[lchan_no]); - lchan_reset(&ts->lchan[lchan_no]); - } - } - - gsm_bts_mo_reset(trx->bts); - - abis_nm_clear_queue(trx->bts); - break; - default: - break; - } - - return 0; -} - -static int bootstrap_bts(struct gsm_bts *bts) -{ - int i, n; - - if (!bts->model) - return -EFAULT; - - if (bts->model->start && !bts->model->started) { - int ret = bts->model->start(bts->network); - if (ret < 0) - return ret; - - bts->model->started = true; - } - - /* FIXME: What about secondary TRX of a BTS? What about a BTS that has TRX - * in different bands? Why is 'band' a parameter of the BTS and not of the TRX? */ - switch (bts->band) { - case GSM_BAND_1800: - if (bts->c0->arfcn < 512 || bts->c0->arfcn > 885) { - LOGP(DNM, LOGL_ERROR, "GSM1800 channel must be between 512-885.\n"); - return -EINVAL; - } - break; - case GSM_BAND_1900: - if (bts->c0->arfcn < 512 || bts->c0->arfcn > 810) { - LOGP(DNM, LOGL_ERROR, "GSM1900 channel must be between 512-810.\n"); - return -EINVAL; - } - break; - case GSM_BAND_900: - if ((bts->c0->arfcn > 124 && bts->c0->arfcn < 955) || - bts->c0->arfcn > 1023) { - LOGP(DNM, LOGL_ERROR, "GSM900 channel must be between 0-124, 955-1023.\n"); - return -EINVAL; - } - break; - case GSM_BAND_850: - if (bts->c0->arfcn < 128 || bts->c0->arfcn > 251) { - LOGP(DNM, LOGL_ERROR, "GSM850 channel must be between 128-251.\n"); - return -EINVAL; - } - break; - default: - LOGP(DNM, LOGL_ERROR, "Unsupported frequency band.\n"); - return -EINVAL; - } - - /* Control Channel Description is set from vty/config */ - - /* T3212 is set from vty/config */ - - /* Set ccch config by looking at ts config */ - for (n=0, i=0; i<8; i++) - n += bts->c0->ts[i].pchan == GSM_PCHAN_CCCH ? 1 : 0; - - /* Indicate R99 MSC in SI3 */ - bts->si_common.chan_desc.mscr = 1; - - switch (n) { - case 0: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_C; - /* Limit reserved block to 2 on combined channel according to - 3GPP TS 44.018 Table 10.5.2.11.1 */ - if (bts->si_common.chan_desc.bs_ag_blks_res > 2) { - LOGP(DNM, LOGL_NOTICE, "CCCH is combined with SDCCHs, " - "reducing BS-AG-BLKS-RES value %d -> 2\n", - bts->si_common.chan_desc.bs_ag_blks_res); - bts->si_common.chan_desc.bs_ag_blks_res = 2; - } - break; - case 1: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_NC; - break; - case 2: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_2_NC; - break; - case 3: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_3_NC; - break; - case 4: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_4_NC; - break; - default: - LOGP(DNM, LOGL_ERROR, "Unsupported CCCH timeslot configuration\n"); - return -EINVAL; - } - - bts->si_common.cell_options.pwrc = 0; /* PWRC not set */ - - bts->si_common.cell_sel_par.acs = 0; - - bts->si_common.ncc_permitted = 0xff; - - bts->chan_load_samples_idx = 0; - - /* ACC ramping is initialized from vty/config */ - - /* Initialize the BTS state */ - gsm_bts_mo_reset(bts); - - return 0; -} - -int bsc_network_alloc(void) -{ - /* initialize our data structures */ - bsc_gsmnet = bsc_network_init(tall_bsc_ctx); - if (!bsc_gsmnet) - return -ENOMEM; - - return 0; -} - -int bsc_network_configure(const char *config_file) -{ - struct gsm_bts *bts; - int rc; - - rc = vty_read_config_file(config_file, NULL); - if (rc < 0) { - LOGP(DNM, LOGL_FATAL, "Failed to parse the config file: '%s'\n", config_file); - return rc; - } - - /* start telnet after reading config for vty_get_bind_addr() */ - rc = telnet_init_dynif(tall_bsc_ctx, bsc_gsmnet, vty_get_bind_addr(), - OSMO_VTY_PORT_NITB_BSC); - if (rc < 0) - return rc; - - osmo_signal_register_handler(SS_NM, nm_sig_cb, NULL); - osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); - - llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { - rc = bootstrap_bts(bts); - if (rc < 0) { - LOGP(DNM, LOGL_FATAL, "Error bootstrapping BTS\n"); - return rc; - } - rc = e1_reconfig_bts(bts); - if (rc < 0) { - LOGP(DNM, LOGL_FATAL, "Error enabling E1 input driver\n"); - return rc; - } - } - - return 0; -} diff --git a/src/libbsc/net_init.c b/src/libbsc/net_init.c deleted file mode 100644 index f03a2e1..0000000 --- a/src/libbsc/net_init.c +++ /dev/null @@ -1,117 +0,0 @@ -/* (C) 2008-2010 by Harald Welte - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include -#include -#include - -/* XXX hard-coded for now */ -#define T3122_CHAN_LOAD_SAMPLE_INTERVAL 1 /* in seconds */ - -static void update_t3122_chan_load_timer(void *data) -{ - struct gsm_network *net = data; - struct gsm_bts *bts; - - llist_for_each_entry(bts, &net->bts_list, list) - bts_update_t3122_chan_load(bts); - - /* Keep this timer ticking. */ - osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); -} - -struct gsm_network *bsc_network_init(void *ctx) -{ - struct gsm_network *net; - - net = talloc_zero(ctx, struct gsm_network); - if (!net) - return NULL; - - net->plmn = (struct osmo_plmn_id){ - .mcc = 1, - .mnc = 1, - }; - - net->dyn_ts_allow_tch_f = true; - - /* Permit a compile-time default of A5/3 and A5/1 */ - net->a5_encryption_mask = (1 << 3) | (1 << 1); - - /* Use 30 min periodic update interval as sane default */ - net->t3212 = 5; - - INIT_LLIST_HEAD(&net->subscr_conns); - - net->bsc_subscribers = talloc_zero(net, struct llist_head); - INIT_LLIST_HEAD(net->bsc_subscribers); - - net->bsc_data = talloc_zero(net, struct osmo_bsc_data); - if (!net->bsc_data) { - talloc_free(net); - return NULL; - } - - /* Init back pointer */ - net->bsc_data->auto_off_timeout = -1; - net->bsc_data->network = net; - INIT_LLIST_HEAD(&net->bsc_data->mscs); - - net->num_bts = 0; - net->T3101 = GSM_T3101_DEFAULT; - net->T3103 = GSM_T3103_DEFAULT; - net->T3105 = GSM_T3105_DEFAULT; - net->T3107 = GSM_T3107_DEFAULT; - net->T3109 = GSM_T3109_DEFAULT; - net->T3111 = GSM_T3111_DEFAULT; - net->T3113 = GSM_T3113_DEFAULT; - net->T3115 = GSM_T3115_DEFAULT; - net->T3117 = GSM_T3117_DEFAULT; - net->T3119 = GSM_T3119_DEFAULT; - net->T3122 = GSM_T3122_DEFAULT; - net->T3141 = GSM_T3141_DEFAULT; - - net->ho = ho_cfg_init(net, NULL); - net->hodec2.congestion_check_interval_s = HO_CFG_CONGESTION_CHECK_DEFAULT; - - INIT_LLIST_HEAD(&net->bts_list); - - /* - * At present all BTS in the network share one channel load timeout. - * If this becomes a problem for networks with a lot of BTS, this - * code could be refactored to run the timeout individually per BTS. - */ - osmo_timer_setup(&net->t3122_chan_load_timer, update_t3122_chan_load_timer, net); - osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); - - /* init statistics */ - net->bsc_ctrs = rate_ctr_group_alloc(net, &bsc_ctrg_desc, 0); - if (!net->bsc_ctrs) { - talloc_free(net); - return NULL; - } - - gsm_net_update_ctype(net); - - return net; -} - diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index cc96743..a459a92 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -26,21 +26,65 @@ $(NULL) osmo_bsc_SOURCES = \ - osmo_bsc_main.c \ - osmo_bsc_vty.c \ + a_reset.c \ + abis_nm.c \ + abis_nm_vty.c \ + abis_om2000.c \ + abis_om2000_vty.c \ + abis_rsl.c \ + acc_ramp.c \ + arfcn_range_encode.c \ + bsc_api.c \ + bsc_ctrl_commands.c \ + bsc_ctrl_lookup.c \ + bsc_dyn_ts.c \ + bsc_init.c \ + bsc_rf_ctrl.c \ + bsc_rll.c \ + bsc_subscr_conn_fsm.c \ + bsc_subscriber.c \ + bsc_vty.c \ + bts_ericsson_rbs2000.c \ + bts_init.c \ + bts_ipaccess_nanobts.c \ + bts_ipaccess_nanobts_omlattr.c \ + bts_nokia_site.c \ + bts_siemens_bs11.c \ + bts_sysmobts.c \ + bts_unknown.c \ + chan_alloc.c \ + e1_config.c \ + gsm_04_08_utils.c \ + gsm_04_80_utils.c \ + gsm_data.c \ + handover_cfg.c \ + handover_decision.c \ + handover_decision_2.c \ + handover_logic.c \ + handover_vty.c \ + meas_feed.c \ + meas_rep.c \ + net_init.c \ osmo_bsc_api.c \ + osmo_bsc_audio.c \ + osmo_bsc_bssap.c \ + osmo_bsc_ctrl.c \ + osmo_bsc_filter.c \ osmo_bsc_grace.c \ + osmo_bsc_lcls.c \ + osmo_bsc_main.c \ osmo_bsc_msc.c \ osmo_bsc_sigtran.c \ - osmo_bsc_filter.c \ - osmo_bsc_bssap.c \ - osmo_bsc_audio.c \ - osmo_bsc_ctrl.c \ + osmo_bsc_vty.c \ + paging.c \ + pcu_sock.c \ + penalty_timers.c \ + rest_octets.c \ + system_information.c \ $(NULL) osmo_bsc_LDADD = \ $(top_builddir)/src/libfilter/libfilter.a \ - $(top_builddir)/src/libbsc/libbsc.a \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOVTY_LIBS) \ diff --git a/src/libbsc/a_reset.c b/src/osmo-bsc/a_reset.c similarity index 100% rename from src/libbsc/a_reset.c rename to src/osmo-bsc/a_reset.c diff --git a/src/osmo-bsc/abis_bs11.c b/src/osmo-bsc/abis_bs11.c new file mode 100644 index 0000000..8b721fa --- /dev/null +++ b/src/osmo-bsc/abis_bs11.c @@ -0,0 +1,21 @@ +/* Siemens BS11 specific Abis implementations */ + +/* (C) 2008-2018 by Harald Welte + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + diff --git a/src/libbsc/abis_nm.c b/src/osmo-bsc/abis_nm.c similarity index 99% rename from src/libbsc/abis_nm.c rename to src/osmo-bsc/abis_nm.c index ea94d37..9dc1f62 100644 --- a/src/libbsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -164,13 +164,6 @@ static int abis_nm_rcvmsg_sw(struct msgb *mb); -bool nm_is_running(const struct gsm_nm_state *s) { - return (s->operational == NM_OPSTATE_ENABLED) && ( - (s->availability == NM_AVSTATE_OK) || - (s->availability == 0xff) - ); -} - /* Update the administrative state of a given object in our in-memory data * structures and send an event to the higher layer */ static int update_admstate(struct gsm_bts *bts, uint8_t obj_class, diff --git a/src/libbsc/abis_nm_ipaccess.c b/src/osmo-bsc/abis_nm_ipaccess.c similarity index 98% rename from src/libbsc/abis_nm_ipaccess.c rename to src/osmo-bsc/abis_nm_ipaccess.c index b822538..964b92e 100644 --- a/src/libbsc/abis_nm_ipaccess.c +++ b/src/osmo-bsc/abis_nm_ipaccess.c @@ -20,6 +20,8 @@ * */ +#include + /* A list of all the 'embedded' attributes of ip.access */ enum ipa_embedded_att { IPA_ATT_ARFCN_WHITELIST = 0x01, diff --git a/src/libbsc/abis_nm_vty.c b/src/osmo-bsc/abis_nm_vty.c similarity index 100% rename from src/libbsc/abis_nm_vty.c rename to src/osmo-bsc/abis_nm_vty.c diff --git a/src/libbsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c similarity index 100% rename from src/libbsc/abis_om2000.c rename to src/osmo-bsc/abis_om2000.c diff --git a/src/libbsc/abis_om2000_vty.c b/src/osmo-bsc/abis_om2000_vty.c similarity index 100% rename from src/libbsc/abis_om2000_vty.c rename to src/osmo-bsc/abis_om2000_vty.c diff --git a/src/libbsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c similarity index 98% rename from src/libbsc/abis_rsl.c rename to src/osmo-bsc/abis_rsl.c index 48cc39f..7bbde47 100644 --- a/src/libbsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -3033,38 +3033,8 @@ } /* Initial timeslot actions when a timeslot first comes into operation. */ -static bool gsm_ts_init(struct gsm_bts_trx_ts *ts) +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) { dyn_ts_init(ts); return true; } - -/* Trigger initial timeslot actions iff both OML and RSL are setup. */ -void gsm_ts_check_init(struct gsm_bts_trx_ts *ts) -{ - struct gsm_bts *bts = ts->trx->bts; - if (bts->model->oml_is_ts_ready - && !bts->model->oml_is_ts_ready(ts)) - return; - if (!ts->trx->rsl_link) - return; - if (ts->initialized) - return; - ts->initialized = gsm_ts_init(ts); -} - -void gsm_trx_mark_all_ts_uninitialized(struct gsm_bts_trx *trx) -{ - int i; - for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - struct gsm_bts_trx_ts *ts = &trx->ts[i]; - ts->initialized = false; - } -} - -void gsm_bts_mark_all_ts_uninitialized(struct gsm_bts *bts) -{ - struct gsm_bts_trx *trx; - llist_for_each_entry(trx, &bts->trx_list, list) - gsm_trx_mark_all_ts_uninitialized(trx); -} diff --git a/src/libbsc/acc_ramp.c b/src/osmo-bsc/acc_ramp.c similarity index 100% rename from src/libbsc/acc_ramp.c rename to src/osmo-bsc/acc_ramp.c diff --git a/src/libbsc/arfcn_range_encode.c b/src/osmo-bsc/arfcn_range_encode.c similarity index 100% rename from src/libbsc/arfcn_range_encode.c rename to src/osmo-bsc/arfcn_range_encode.c diff --git a/src/libbsc/bsc_api.c b/src/osmo-bsc/bsc_api.c similarity index 100% rename from src/libbsc/bsc_api.c rename to src/osmo-bsc/bsc_api.c diff --git a/src/libbsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c similarity index 100% rename from src/libbsc/bsc_ctrl_commands.c rename to src/osmo-bsc/bsc_ctrl_commands.c diff --git a/src/libbsc/bsc_ctrl_lookup.c b/src/osmo-bsc/bsc_ctrl_lookup.c similarity index 100% rename from src/libbsc/bsc_ctrl_lookup.c rename to src/osmo-bsc/bsc_ctrl_lookup.c diff --git a/src/libbsc/bsc_dyn_ts.c b/src/osmo-bsc/bsc_dyn_ts.c similarity index 100% rename from src/libbsc/bsc_dyn_ts.c rename to src/osmo-bsc/bsc_dyn_ts.c diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c new file mode 100644 index 0000000..b6bd410 --- /dev/null +++ b/src/osmo-bsc/bsc_init.c @@ -0,0 +1,288 @@ +/* A hackish minimal BSC (+MSC +HLR) implementation */ + +/* (C) 2008-2018 by Harald Welte + * (C) 2009 by Holger Hans Peter Freyther + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +int bsc_shutdown_net(struct gsm_network *net) +{ + struct gsm_bts *bts; + + llist_for_each_entry(bts, &net->bts_list, list) { + LOGP(DNM, LOGL_NOTICE, "shutting down OML for BTS %u\n", bts->nr); + osmo_signal_dispatch(SS_L_GLOBAL, S_GLOBAL_BTS_CLOSE_OM, bts); + } + + return 0; +} + +unsigned long long bts_uptime(const struct gsm_bts *bts) +{ + struct timespec tp; + + if (!bts->uptime || !bts->oml_link) { + LOGP(DNM, LOGL_ERROR, "BTS %u OML link uptime unavailable\n", bts->nr); + return 0; + } + + if (clock_gettime(CLOCK_MONOTONIC, &tp) != 0) { + LOGP(DNM, LOGL_ERROR, "BTS %u uptime computation failure: %s\n", bts->nr, strerror(errno)); + return 0; + } + + /* monotonic clock helps to ensure that the conversion is valid */ + return difftime(tp.tv_sec, bts->uptime); +} + +static int rsl_si(struct gsm_bts_trx *trx, enum osmo_sysinfo_type i, int si_len) +{ + struct gsm_bts *bts = trx->bts; + int rc, j; + + if (si_len) { + DEBUGP(DRR, "SI%s: %s\n", get_value_string(osmo_sitype_strs, i), + osmo_hexdump(GSM_BTS_SI(bts, i), GSM_MACBLOCK_LEN)); + } else + DEBUGP(DRR, "SI%s: OFF\n", get_value_string(osmo_sitype_strs, i)); + + switch (i) { + case SYSINFO_TYPE_5: + case SYSINFO_TYPE_5bis: + case SYSINFO_TYPE_5ter: + case SYSINFO_TYPE_6: + rc = rsl_sacch_filling(trx, osmo_sitype2rsl(i), + si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); + break; + case SYSINFO_TYPE_2quater: + if (si_len == 0) { + rc = rsl_bcch_info(trx, i, NULL, 0); + break; + } + rc = 0; + for (j = 0; j <= bts->si2q_count; j++) + rc = rsl_bcch_info(trx, i, (const uint8_t *)GSM_BTS_SI2Q(bts, j), GSM_MACBLOCK_LEN); + break; + default: + rc = rsl_bcch_info(trx, i, si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); + break; + } + + return rc; +} + +/* set all system information types for a TRX */ +int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx) +{ + int i, rc; + struct gsm_bts *bts = trx->bts; + uint8_t gen_si[_MAX_SYSINFO_TYPE], n_si = 0, n; + int si_len[_MAX_SYSINFO_TYPE]; + + bts->si_common.cell_sel_par.ms_txpwr_max_ccch = + ms_pwr_ctl_lvl(bts->band, bts->ms_max_power); + bts->si_common.cell_sel_par.neci = bts->network->neci; + + /* Zero/forget the state of the dynamically computed SIs, leeping the static ones */ + bts->si_valid = bts->si_mode_static; + + /* First, we determine which of the SI messages we actually need */ + + if (trx == bts->c0) { + /* 1...4 are always present on a C0 TRX */ + gen_si[n_si++] = SYSINFO_TYPE_1; + gen_si[n_si++] = SYSINFO_TYPE_2; + gen_si[n_si++] = SYSINFO_TYPE_2bis; + gen_si[n_si++] = SYSINFO_TYPE_2ter; + gen_si[n_si++] = SYSINFO_TYPE_2quater; + gen_si[n_si++] = SYSINFO_TYPE_3; + gen_si[n_si++] = SYSINFO_TYPE_4; + + /* 13 is always present on a C0 TRX of a GPRS BTS */ + if (bts->gprs.mode != BTS_GPRS_NONE) + gen_si[n_si++] = SYSINFO_TYPE_13; + } + + /* 5 and 6 are always present on every TRX */ + gen_si[n_si++] = SYSINFO_TYPE_5; + gen_si[n_si++] = SYSINFO_TYPE_5bis; + gen_si[n_si++] = SYSINFO_TYPE_5ter; + gen_si[n_si++] = SYSINFO_TYPE_6; + + /* Second, we generate the selected SI via RSL */ + + for (n = 0; n < n_si; n++) { + i = gen_si[n]; + /* Only generate SI if this SI is not in "static" (user-defined) mode */ + if (!(bts->si_mode_static & (1 << i))) { + /* Set SI as being valid. gsm_generate_si() might unset + * it, if SI is not required. */ + bts->si_valid |= (1 << i); + rc = gsm_generate_si(bts, i); + if (rc < 0) + goto err_out; + si_len[i] = rc; + } else { + if (i == SYSINFO_TYPE_5 || i == SYSINFO_TYPE_5bis + || i == SYSINFO_TYPE_5ter) + si_len[i] = 18; + else if (i == SYSINFO_TYPE_6) + si_len[i] = 11; + else + si_len[i] = 23; + } + } + + /* Third, we send the selected SI via RSL */ + + for (n = 0; n < n_si; n++) { + i = gen_si[n]; + /* if we don't currently have this SI, we send a zero-length + * RSL BCCH FILLING / SACCH FILLING * in order to deactivate + * the SI, in case it might have previously been active */ + if (!GSM_BTS_HAS_SI(bts, i)) + rc = rsl_si(trx, i, 0); + else + rc = rsl_si(trx, i, si_len[i]); + if (rc < 0) + return rc; + } + + /* Make sure the PCU is aware (in case anything GPRS related has + * changed in SI */ + pcu_info_update(bts); + + return 0; +err_out: + LOGP(DRR, LOGL_ERROR, "Cannot generate SI%s for BTS %u: error <%s>, " + "most likely a problem with neighbor cell list generation\n", + get_value_string(osmo_sitype_strs, i), bts->nr, strerror(-rc)); + return rc; +} + +/* set all system information types for a BTS */ +int gsm_bts_set_system_infos(struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + + /* Generate a new ID */ + bts->bcch_change_mark += 1; + bts->bcch_change_mark %= 0x7; + + llist_for_each_entry(trx, &bts->trx_list, list) { + int rc; + + rc = gsm_bts_trx_set_system_infos(trx); + if (rc != 0) + return rc; + } + + return 0; +} + +/* XXX hard-coded for now */ +#define T3122_CHAN_LOAD_SAMPLE_INTERVAL 1 /* in seconds */ + +static void update_t3122_chan_load_timer(void *data) +{ + struct gsm_network *net = data; + struct gsm_bts *bts; + + llist_for_each_entry(bts, &net->bts_list, list) + bts_update_t3122_chan_load(bts); + + /* Keep this timer ticking. */ + osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); +} + +static struct gsm_network *bsc_network_init(void *ctx) +{ + struct gsm_network *net = gsm_network_init(ctx); + + net->bsc_data = talloc_zero(net, struct osmo_bsc_data); + if (!net->bsc_data) { + talloc_free(net); + return NULL; + } + + /* Init back pointer */ + net->bsc_data->auto_off_timeout = -1; + net->bsc_data->network = net; + INIT_LLIST_HEAD(&net->bsc_data->mscs); + + net->ho = ho_cfg_init(net, NULL); + net->hodec2.congestion_check_interval_s = HO_CFG_CONGESTION_CHECK_DEFAULT; + + /* init statistics */ + net->bsc_ctrs = rate_ctr_group_alloc(net, &bsc_ctrg_desc, 0); + if (!net->bsc_ctrs) { + talloc_free(net); + return NULL; + } + + gsm_net_update_ctype(net); + + /* + * At present all BTS in the network share one channel load timeout. + * If this becomes a problem for networks with a lot of BTS, this + * code could be refactored to run the timeout individually per BTS. + */ + osmo_timer_setup(&net->t3122_chan_load_timer, update_t3122_chan_load_timer, net); + osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); + + return net; +} + +int bsc_network_alloc(void) +{ + /* initialize our data structures */ + bsc_gsmnet = bsc_network_init(tall_bsc_ctx); + if (!bsc_gsmnet) + return -ENOMEM; + + return 0; +} + +struct gsm_bts *bsc_bts_alloc_register(struct gsm_network *net, enum gsm_bts_type type, uint8_t bsic) +{ + struct gsm_bts *bts = gsm_bts_alloc_register(net, type, bsic); + + bts->ho = ho_cfg_init(bts, net->ho); + + return bts; +} diff --git a/src/libbsc/bsc_rf_ctrl.c b/src/osmo-bsc/bsc_rf_ctrl.c similarity index 100% rename from src/libbsc/bsc_rf_ctrl.c rename to src/osmo-bsc/bsc_rf_ctrl.c diff --git a/src/libbsc/bsc_rll.c b/src/osmo-bsc/bsc_rll.c similarity index 100% rename from src/libbsc/bsc_rll.c rename to src/osmo-bsc/bsc_rll.c diff --git a/src/libbsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c similarity index 100% rename from src/libbsc/bsc_subscr_conn_fsm.c rename to src/osmo-bsc/bsc_subscr_conn_fsm.c diff --git a/src/libbsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c similarity index 100% rename from src/libbsc/bsc_subscriber.c rename to src/osmo-bsc/bsc_subscriber.c diff --git a/src/libbsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c similarity index 99% rename from src/libbsc/bsc_vty.c rename to src/osmo-bsc/bsc_vty.c index 757a8a1..5d0feb6 100644 --- a/src/libbsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1945,7 +1945,7 @@ return CMD_WARNING; } else if (bts_nr == gsmnet->num_bts) { /* allocate a new one */ - bts = gsm_bts_alloc_register(gsmnet, GSM_BTS_TYPE_UNKNOWN, + bts = bsc_bts_alloc_register(gsmnet, GSM_BTS_TYPE_UNKNOWN, HARDCODED_BSIC); /* * Initalize bts->acc_ramp here. Else we could segfault while diff --git a/src/libbsc/bts_ericsson_rbs2000.c b/src/osmo-bsc/bts_ericsson_rbs2000.c similarity index 100% rename from src/libbsc/bts_ericsson_rbs2000.c rename to src/osmo-bsc/bts_ericsson_rbs2000.c diff --git a/src/libbsc/bts_init.c b/src/osmo-bsc/bts_init.c similarity index 100% rename from src/libbsc/bts_init.c rename to src/osmo-bsc/bts_init.c diff --git a/src/libbsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c similarity index 100% rename from src/libbsc/bts_ipaccess_nanobts.c rename to src/osmo-bsc/bts_ipaccess_nanobts.c diff --git a/src/libbsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c similarity index 100% rename from src/libbsc/bts_ipaccess_nanobts_omlattr.c rename to src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c diff --git a/src/libbsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c similarity index 100% rename from src/libbsc/bts_nokia_site.c rename to src/osmo-bsc/bts_nokia_site.c diff --git a/src/libbsc/bts_siemens_bs11.c b/src/osmo-bsc/bts_siemens_bs11.c similarity index 100% rename from src/libbsc/bts_siemens_bs11.c rename to src/osmo-bsc/bts_siemens_bs11.c diff --git a/src/libbsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c similarity index 100% rename from src/libbsc/bts_sysmobts.c rename to src/osmo-bsc/bts_sysmobts.c diff --git a/src/libbsc/bts_unknown.c b/src/osmo-bsc/bts_unknown.c similarity index 100% rename from src/libbsc/bts_unknown.c rename to src/osmo-bsc/bts_unknown.c diff --git a/src/libbsc/chan_alloc.c b/src/osmo-bsc/chan_alloc.c similarity index 98% rename from src/libbsc/chan_alloc.c rename to src/osmo-bsc/chan_alloc.c index 4eccff0..a24fbea 100644 --- a/src/libbsc/chan_alloc.c +++ b/src/osmo-bsc/chan_alloc.c @@ -65,18 +65,6 @@ return true; } -bool trx_is_usable(const struct gsm_bts_trx *trx) -{ - /* FIXME: How does this behave for BS-11 ? */ - if (is_ipaccess_bts(trx->bts)) { - if (!nm_is_running(&trx->mo.nm_state) || - !nm_is_running(&trx->bb_transc.mo.nm_state)) - return false; - } - - return true; -} - static int trx_count_free_ts(struct gsm_bts_trx *trx, enum gsm_phys_chan_config pchan) { struct gsm_bts_trx_ts *ts; diff --git a/src/libbsc/e1_config.c b/src/osmo-bsc/e1_config.c similarity index 100% rename from src/libbsc/e1_config.c rename to src/osmo-bsc/e1_config.c diff --git a/src/libbsc/gsm_04_08_utils.c b/src/osmo-bsc/gsm_04_08_utils.c similarity index 97% rename from src/libbsc/gsm_04_08_utils.c rename to src/osmo-bsc/gsm_04_08_utils.c index f30640f..5bfdf97 100644 --- a/src/libbsc/gsm_04_08_utils.c +++ b/src/osmo-bsc/gsm_04_08_utils.c @@ -302,26 +302,6 @@ cd->arfcn_lo = bts->c0->arfcn & 0xff; } -void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd, - const struct gsm_lchan *lchan) -{ - uint16_t arfcn = lchan->ts->trx->arfcn & 0x3ff; - - cd->chan_nr = gsm_lchan2chan_nr(lchan); - if (!lchan->ts->hopping.enabled) { - cd->h0.tsc = gsm_ts_tsc(lchan->ts); - cd->h0.h = 0; - cd->h0.arfcn_high = arfcn >> 8; - cd->h0.arfcn_low = arfcn & 0xff; - } else { - cd->h1.tsc = gsm_ts_tsc(lchan->ts); - cd->h1.h = 1; - cd->h1.maio_high = lchan->ts->hopping.maio >> 2; - cd->h1.maio_low = lchan->ts->hopping.maio & 0x03; - cd->h1.hsn = lchan->ts->hopping.hsn; - } -} - /*! \brief Encode a TS 04.08 multirate config LV according to 10.5.2.21aa * \param[out] lv caller-allocated buffer of 7 bytes. First octet is IS length * \param[in] mr multi-rate configuration to encode diff --git a/src/libbsc/gsm_04_80_utils.c b/src/osmo-bsc/gsm_04_80_utils.c similarity index 100% rename from src/libbsc/gsm_04_80_utils.c rename to src/osmo-bsc/gsm_04_80_utils.c diff --git a/src/libbsc/gsm_data.c b/src/osmo-bsc/gsm_data.c similarity index 93% rename from src/libbsc/gsm_data.c rename to src/osmo-bsc/gsm_data.c index ea2aea0..0f062d2 100644 --- a/src/libbsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -648,6 +648,10 @@ .initial_mcs = 6, }; +/* Initialize those parts that don't require osmo-bsc specific dependencies. + * This part is shared among the thin programs in osmo-bsc/src/utils/. + * osmo-bsc requires further initialization that pulls in more dependencies (see + * bsc_bts_alloc_register()). */ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num) { struct gsm_bts *bts = talloc_zero(net, struct gsm_bts); @@ -716,8 +720,6 @@ bts->bcch_change_mark = 1; bts->chan_load_avg = 0; - bts->ho = ho_cfg_init(bts, net->ho); - /* timer overrides */ bts->T3122 = 0; /* not overriden by default */ @@ -1232,3 +1234,72 @@ { return pchan_is_tch(ts_pchan(ts)); } + +bool trx_is_usable(const struct gsm_bts_trx *trx) +{ + /* FIXME: How does this behave for BS-11 ? */ + if (is_ipaccess_bts(trx->bts)) { + if (!nm_is_running(&trx->mo.nm_state) || + !nm_is_running(&trx->bb_transc.mo.nm_state)) + return false; + } + + return true; +} + +void gsm_trx_mark_all_ts_uninitialized(struct gsm_bts_trx *trx) +{ + int i; + for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { + struct gsm_bts_trx_ts *ts = &trx->ts[i]; + ts->initialized = false; + } +} + +void gsm_bts_mark_all_ts_uninitialized(struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + llist_for_each_entry(trx, &bts->trx_list, list) + gsm_trx_mark_all_ts_uninitialized(trx); +} + +/* Trigger initial timeslot actions iff both OML and RSL are setup. */ +void gsm_ts_check_init(struct gsm_bts_trx_ts *ts) +{ + struct gsm_bts *bts = ts->trx->bts; + if (bts->model->oml_is_ts_ready + && !bts->model->oml_is_ts_ready(ts)) + return; + if (!ts->trx->rsl_link) + return; + if (ts->initialized) + return; + ts->initialized = on_gsm_ts_init(ts); +} + +void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd, + const struct gsm_lchan *lchan) +{ + uint16_t arfcn = lchan->ts->trx->arfcn & 0x3ff; + + cd->chan_nr = gsm_lchan2chan_nr(lchan); + if (!lchan->ts->hopping.enabled) { + cd->h0.tsc = gsm_ts_tsc(lchan->ts); + cd->h0.h = 0; + cd->h0.arfcn_high = arfcn >> 8; + cd->h0.arfcn_low = arfcn & 0xff; + } else { + cd->h1.tsc = gsm_ts_tsc(lchan->ts); + cd->h1.h = 1; + cd->h1.maio_high = lchan->ts->hopping.maio >> 2; + cd->h1.maio_low = lchan->ts->hopping.maio & 0x03; + cd->h1.hsn = lchan->ts->hopping.hsn; + } +} + +bool nm_is_running(const struct gsm_nm_state *s) { + return (s->operational == NM_OPSTATE_ENABLED) && ( + (s->availability == NM_AVSTATE_OK) || + (s->availability == 0xff) + ); +} diff --git a/src/libbsc/handover_cfg.c b/src/osmo-bsc/handover_cfg.c similarity index 100% rename from src/libbsc/handover_cfg.c rename to src/osmo-bsc/handover_cfg.c diff --git a/src/libbsc/handover_decision.c b/src/osmo-bsc/handover_decision.c similarity index 100% rename from src/libbsc/handover_decision.c rename to src/osmo-bsc/handover_decision.c diff --git a/src/libbsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c similarity index 100% rename from src/libbsc/handover_decision_2.c rename to src/osmo-bsc/handover_decision_2.c diff --git a/src/libbsc/handover_logic.c b/src/osmo-bsc/handover_logic.c similarity index 100% rename from src/libbsc/handover_logic.c rename to src/osmo-bsc/handover_logic.c diff --git a/src/libbsc/handover_vty.c b/src/osmo-bsc/handover_vty.c similarity index 100% rename from src/libbsc/handover_vty.c rename to src/osmo-bsc/handover_vty.c diff --git a/src/libbsc/meas_feed.c b/src/osmo-bsc/meas_feed.c similarity index 100% rename from src/libbsc/meas_feed.c rename to src/osmo-bsc/meas_feed.c diff --git a/src/libbsc/meas_rep.c b/src/osmo-bsc/meas_rep.c similarity index 100% rename from src/libbsc/meas_rep.c rename to src/osmo-bsc/meas_rep.c diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c new file mode 100644 index 0000000..db84e2a --- /dev/null +++ b/src/osmo-bsc/net_init.c @@ -0,0 +1,69 @@ +/* (C) 2008-2010 by Harald Welte + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include + +/* Initialize the bare minimum of struct gsm_network, minimizing required dependencies. + * This part is shared among the thin programs in osmo-bsc/src/utils/. + * osmo-bsc requires further initialization that pulls in more dependencies (see bsc_network_init()). */ +struct gsm_network *gsm_network_init(void *ctx) +{ + struct gsm_network *net = talloc_zero(ctx, struct gsm_network); + if (!net) + return NULL; + + net->plmn = (struct osmo_plmn_id){ + .mcc = 1, + .mnc = 1, + }; + + net->dyn_ts_allow_tch_f = true; + + /* Permit a compile-time default of A5/3 and A5/1 */ + net->a5_encryption_mask = (1 << 3) | (1 << 1); + + /* Use 30 min periodic update interval as sane default */ + net->t3212 = 5; + + INIT_LLIST_HEAD(&net->subscr_conns); + + net->bsc_subscribers = talloc_zero(net, struct llist_head); + INIT_LLIST_HEAD(net->bsc_subscribers); + + INIT_LLIST_HEAD(&net->bts_list); + net->num_bts = 0; + net->T3101 = GSM_T3101_DEFAULT; + net->T3103 = GSM_T3103_DEFAULT; + net->T3105 = GSM_T3105_DEFAULT; + net->T3107 = GSM_T3107_DEFAULT; + net->T3109 = GSM_T3109_DEFAULT; + net->T3111 = GSM_T3111_DEFAULT; + net->T3113 = GSM_T3113_DEFAULT; + net->T3115 = GSM_T3115_DEFAULT; + net->T3117 = GSM_T3117_DEFAULT; + net->T3119 = GSM_T3119_DEFAULT; + net->T3122 = GSM_T3122_DEFAULT; + net->T3141 = GSM_T3141_DEFAULT; + + return net; +} diff --git a/src/libbsc/osmo_bsc_lcls.c b/src/osmo-bsc/osmo_bsc_lcls.c similarity index 100% rename from src/libbsc/osmo_bsc_lcls.c rename to src/osmo-bsc/osmo_bsc_lcls.c diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index fefc041..5c6a872 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -42,9 +42,15 @@ #include #include #include +#include +#include #include #include +#include +#include +#include +#include #include @@ -147,6 +153,369 @@ } } +/* Callback function for NACK on the OML NM */ +static int oml_msg_nack(struct nm_nack_signal_data *nack) +{ + if (nack->mt == NM_MT_GET_ATTR_NACK) { + LOGP(DNM, LOGL_ERROR, "BTS%u does not support Get Attributes " + "OML message.\n", nack->bts->nr); + return 0; + } + + if (nack->mt == NM_MT_SET_BTS_ATTR_NACK) + LOGP(DNM, LOGL_ERROR, "Failed to set BTS attributes. That is fatal. " + "Was the bts type and frequency properly specified?\n"); + else + LOGP(DNM, LOGL_ERROR, "Got %s NACK going to drop the OML links.\n", + abis_nm_nack_name(nack->mt)); + + if (!nack->bts) { + LOGP(DNM, LOGL_ERROR, "Unknown bts. Can not drop it.\n"); + return 0; + } + + if (is_ipaccess_bts(nack->bts)) + ipaccess_drop_oml(nack->bts); + + return 0; +} + +/* Callback function to be called every time we receive a signal from NM */ +static int nm_sig_cb(unsigned int subsys, unsigned int signal, + void *handler_data, void *signal_data) +{ + struct nm_nack_signal_data *nack; + + switch (signal) { + case S_NM_NACK: + nack = signal_data; + return oml_msg_nack(nack); + default: + break; + } + return 0; +} + +/* Produce a MA as specified in 10.5.2.21 */ +static int generate_ma_for_ts(struct gsm_bts_trx_ts *ts) +{ + /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs + * and the MA */ + struct bitvec *cell_chan = &ts->trx->bts->si_common.cell_alloc; + struct bitvec *ts_arfcn = &ts->hopping.arfcns; + struct bitvec *ma = &ts->hopping.ma; + unsigned int num_cell_arfcns, bitnum, n_chan; + int i; + + /* re-set the MA to all-zero */ + ma->cur_bit = 0; + ts->hopping.ma_len = 0; + memset(ma->data, 0, ma->data_len); + + if (!ts->hopping.enabled) + return 0; + + /* count the number of ARFCNs in the cell channel allocation */ + num_cell_arfcns = 0; + for (i = 0; i < 1024; i++) { + if (bitvec_get_bit_pos(cell_chan, i)) + num_cell_arfcns++; + } + + /* pad it to octet-aligned number of bits */ + ts->hopping.ma_len = num_cell_arfcns / 8; + if (num_cell_arfcns % 8) + ts->hopping.ma_len++; + + n_chan = 0; + for (i = 0; i < 1024; i++) { + if (!bitvec_get_bit_pos(cell_chan, i)) + continue; + /* set the corresponding bit in the MA */ + bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; + if (bitvec_get_bit_pos(ts_arfcn, i)) + bitvec_set_bit_pos(ma, bitnum, 1); + else + bitvec_set_bit_pos(ma, bitnum, 0); + n_chan++; + } + + /* ARFCN 0 is special: It is coded last in the bitmask */ + if (bitvec_get_bit_pos(cell_chan, 0)) { + n_chan++; + /* set the corresponding bit in the MA */ + bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; + if (bitvec_get_bit_pos(ts_arfcn, 0)) + bitvec_set_bit_pos(ma, bitnum, 1); + else + bitvec_set_bit_pos(ma, bitnum, 0); + } + + return 0; +} + +static void bootstrap_rsl(struct gsm_bts_trx *trx) +{ + unsigned int i; + + LOGP(DRSL, LOGL_NOTICE, "bootstrapping RSL for BTS/TRX (%u/%u) " + "on ARFCN %u using MCC-MNC %s LAC=%u CID=%u BSIC=%u\n", + trx->bts->nr, trx->nr, trx->arfcn, + osmo_plmn_name(&bsc_gsmnet->plmn), + trx->bts->location_area_code, + trx->bts->cell_identity, trx->bts->bsic); + + if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { + rsl_nokia_si_begin(trx); + } + + /* + * Trigger ACC ramping before sending system information to BTS. + * This ensures that RACH control in system information is configured correctly. + * TRX 0 should be usable and unlocked, otherwise starting ACC ramping is pointless. + */ + if (trx_is_usable(trx) && trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) + acc_ramp_trigger(&trx->bts->acc_ramp); + + gsm_bts_trx_set_system_infos(trx); + + if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { + /* channel unspecific, power reduction in 2 dB steps */ + rsl_bs_power_control(trx, 0xFF, trx->max_power_red / 2); + rsl_nokia_si_end(trx); + } + + for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { + struct gsm_bts_trx_ts *ts = &trx->ts[i]; + generate_ma_for_ts(ts); + gsm_ts_check_init(ts); + } +} + +/* Callback function to be called every time we receive a signal from INPUT */ +static int inp_sig_cb(unsigned int subsys, unsigned int signal, + void *handler_data, void *signal_data) +{ + struct input_signal_data *isd = signal_data; + struct gsm_bts_trx *trx = isd->trx; + int ts_no, lchan_no; + /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ + const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; + const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; + + /* we should not request more attributes than we're ready to handle */ + OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); + OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); + + if (subsys != SS_L_INPUT) + return -EINVAL; + + LOGP(DLMI, LOGL_DEBUG, "%s(): Input signal '%s' received\n", __func__, + get_value_string(e1inp_signal_names, signal)); + switch (signal) { + case S_L_INP_TEI_UP: + if (isd->link_type == E1INP_SIGN_OML) { + /* TODO: this is required for the Nokia BTS, hopping is configured + during OML, other MA is not set. */ + struct gsm_bts_trx *cur_trx; + /* was static in system_information.c */ + extern int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); + uint8_t ca[20]; + /* has to be called before generate_ma_for_ts to + set bts->si_common.cell_alloc */ + generate_cell_chan_list(ca, trx->bts); + + /* Request generic BTS-level attributes */ + abis_nm_get_attr(trx->bts, NM_OC_BTS, 0xFF, 0xFF, 0xFF, bts_attr, sizeof(bts_attr)); + + llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { + int i; + /* Request TRX-level attributes */ + abis_nm_get_attr(cur_trx->bts, NM_OC_BASEB_TRANSC, 0, cur_trx->nr, 0xFF, + trx_attr, sizeof(trx_attr)); + for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) + generate_ma_for_ts(&cur_trx->ts[i]); + } + } + if (isd->link_type == E1INP_SIGN_RSL) + bootstrap_rsl(trx); + break; + case S_L_INP_TEI_DN: + LOGP(DLMI, LOGL_ERROR, "Lost some E1 TEI link: %d %p\n", isd->link_type, trx); + + if (isd->link_type == E1INP_SIGN_OML) + rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_OML_FAIL]); + else if (isd->link_type == E1INP_SIGN_RSL) { + rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_RSL_FAIL]); + acc_ramp_abort(&trx->bts->acc_ramp); + } + + /* + * free all allocated channels. change the nm_state so the + * trx and trx_ts becomes unusable and chan_alloc.c can not + * allocate from it. + */ + for (ts_no = 0; ts_no < ARRAY_SIZE(trx->ts); ++ts_no) { + struct gsm_bts_trx_ts *ts = &trx->ts[ts_no]; + + for (lchan_no = 0; lchan_no < ARRAY_SIZE(ts->lchan); ++lchan_no) { + if (ts->lchan[lchan_no].state != LCHAN_S_NONE) + lchan_free(&ts->lchan[lchan_no]); + lchan_reset(&ts->lchan[lchan_no]); + } + } + + gsm_bts_mo_reset(trx->bts); + + abis_nm_clear_queue(trx->bts); + break; + default: + break; + } + + return 0; +} + +static int bootstrap_bts(struct gsm_bts *bts) +{ + int i, n; + + if (!bts->model) + return -EFAULT; + + if (bts->model->start && !bts->model->started) { + int ret = bts->model->start(bts->network); + if (ret < 0) + return ret; + + bts->model->started = true; + } + + /* FIXME: What about secondary TRX of a BTS? What about a BTS that has TRX + * in different bands? Why is 'band' a parameter of the BTS and not of the TRX? */ + switch (bts->band) { + case GSM_BAND_1800: + if (bts->c0->arfcn < 512 || bts->c0->arfcn > 885) { + LOGP(DNM, LOGL_ERROR, "GSM1800 channel must be between 512-885.\n"); + return -EINVAL; + } + break; + case GSM_BAND_1900: + if (bts->c0->arfcn < 512 || bts->c0->arfcn > 810) { + LOGP(DNM, LOGL_ERROR, "GSM1900 channel must be between 512-810.\n"); + return -EINVAL; + } + break; + case GSM_BAND_900: + if ((bts->c0->arfcn > 124 && bts->c0->arfcn < 955) || + bts->c0->arfcn > 1023) { + LOGP(DNM, LOGL_ERROR, "GSM900 channel must be between 0-124, 955-1023.\n"); + return -EINVAL; + } + break; + case GSM_BAND_850: + if (bts->c0->arfcn < 128 || bts->c0->arfcn > 251) { + LOGP(DNM, LOGL_ERROR, "GSM850 channel must be between 128-251.\n"); + return -EINVAL; + } + break; + default: + LOGP(DNM, LOGL_ERROR, "Unsupported frequency band.\n"); + return -EINVAL; + } + + /* Control Channel Description is set from vty/config */ + + /* T3212 is set from vty/config */ + + /* Set ccch config by looking at ts config */ + for (n=0, i=0; i<8; i++) + n += bts->c0->ts[i].pchan == GSM_PCHAN_CCCH ? 1 : 0; + + /* Indicate R99 MSC in SI3 */ + bts->si_common.chan_desc.mscr = 1; + + switch (n) { + case 0: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_C; + /* Limit reserved block to 2 on combined channel according to + 3GPP TS 44.018 Table 10.5.2.11.1 */ + if (bts->si_common.chan_desc.bs_ag_blks_res > 2) { + LOGP(DNM, LOGL_NOTICE, "CCCH is combined with SDCCHs, " + "reducing BS-AG-BLKS-RES value %d -> 2\n", + bts->si_common.chan_desc.bs_ag_blks_res); + bts->si_common.chan_desc.bs_ag_blks_res = 2; + } + break; + case 1: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_NC; + break; + case 2: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_2_NC; + break; + case 3: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_3_NC; + break; + case 4: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_4_NC; + break; + default: + LOGP(DNM, LOGL_ERROR, "Unsupported CCCH timeslot configuration\n"); + return -EINVAL; + } + + bts->si_common.cell_options.pwrc = 0; /* PWRC not set */ + + bts->si_common.cell_sel_par.acs = 0; + + bts->si_common.ncc_permitted = 0xff; + + bts->chan_load_samples_idx = 0; + + /* ACC ramping is initialized from vty/config */ + + /* Initialize the BTS state */ + gsm_bts_mo_reset(bts); + + return 0; +} + +static int bsc_network_configure(const char *config_file) +{ + struct gsm_bts *bts; + int rc; + + rc = vty_read_config_file(config_file, NULL); + if (rc < 0) { + LOGP(DNM, LOGL_FATAL, "Failed to parse the config file: '%s'\n", config_file); + return rc; + } + + /* start telnet after reading config for vty_get_bind_addr() */ + rc = telnet_init_dynif(tall_bsc_ctx, bsc_gsmnet, vty_get_bind_addr(), + OSMO_VTY_PORT_NITB_BSC); + if (rc < 0) + return rc; + + osmo_signal_register_handler(SS_NM, nm_sig_cb, NULL); + osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); + + llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { + rc = bootstrap_bts(bts); + if (rc < 0) { + LOGP(DNM, LOGL_FATAL, "Error bootstrapping BTS\n"); + return rc; + } + rc = e1_reconfig_bts(bts); + if (rc < 0) { + LOGP(DNM, LOGL_FATAL, "Error enabling E1 input driver\n"); + return rc; + } + } + + return 0; +} + static int bsc_vty_go_parent(struct vty *vty) { switch (vty->node) { diff --git a/src/libbsc/paging.c b/src/osmo-bsc/paging.c similarity index 100% rename from src/libbsc/paging.c rename to src/osmo-bsc/paging.c diff --git a/src/libbsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c similarity index 100% rename from src/libbsc/pcu_sock.c rename to src/osmo-bsc/pcu_sock.c diff --git a/src/libbsc/penalty_timers.c b/src/osmo-bsc/penalty_timers.c similarity index 100% rename from src/libbsc/penalty_timers.c rename to src/osmo-bsc/penalty_timers.c diff --git a/src/libbsc/rest_octets.c b/src/osmo-bsc/rest_octets.c similarity index 100% rename from src/libbsc/rest_octets.c rename to src/osmo-bsc/rest_octets.c diff --git a/src/libbsc/system_information.c b/src/osmo-bsc/system_information.c similarity index 100% rename from src/libbsc/system_information.c rename to src/osmo-bsc/system_information.c diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 6e21ccc..543344b 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -46,15 +46,18 @@ bs11_config_SOURCES = \ bs11_config.c \ + stubs.c \ $(NULL) bs11_config_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/bts_siemens_bs11.o \ + $(top_builddir)/src/osmo-bsc/e1_config.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBOSMOMGCPCLIENT_LIBS) \ $(NULL) isdnsync_SOURCES = \ @@ -114,12 +117,14 @@ meas_json_SOURCES = \ meas_json.c \ + stubs.c \ $(NULL) meas_json_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOABIS_LIBS) \ $(NULL) meas_json_CFLAGS = \ diff --git a/src/utils/bs11_config.c b/src/utils/bs11_config.c index 8d4de01..ae307c7 100644 --- a/src/utils/bs11_config.c +++ b/src/utils/bs11_config.c @@ -32,7 +32,6 @@ #include -#include #include #include #include @@ -915,7 +914,7 @@ handle_options(argc, argv); bts_model_bs11_init(); - gsmnet = bsc_network_init(tall_bs11cfg_ctx); + gsmnet = gsm_network_init(tall_bs11cfg_ctx); if (!gsmnet) { fprintf(stderr, "Unable to allocate gsm network\n"); exit(1); diff --git a/src/utils/stubs.c b/src/utils/stubs.c new file mode 100644 index 0000000..624797f --- /dev/null +++ b/src/utils/stubs.c @@ -0,0 +1,36 @@ +/* Stubs required for linking */ + +/* (C) 2018 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +struct gsm_bts_trx_ts; +struct msgb; + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ + /* No TS init required here. */ + return true; +} + +int abis_rsl_rcvmsg(struct msgb *msg) +{ + /* No RSL handling here */ + return 0; +} diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index 8dc829f..60054d9 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -25,7 +25,9 @@ $(NULL) abis_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/abis/abis_test.c b/tests/abis/abis_test.c index faf9ea5..c6f29f5 100644 --- a/tests/abis/abis_test.c +++ b/tests/abis/abis_test.c @@ -186,3 +186,5 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) { return true; } diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index a436c27..a930629 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -28,11 +28,28 @@ bsc_test_SOURCES = \ bsc_test.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_filter.c \ $(NULL) bsc_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_rsl.o \ + $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ + $(top_builddir)/src/osmo-bsc/bsc_api.o \ + $(top_builddir)/src/osmo-bsc/bsc_dyn_ts.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_filter.o \ + $(top_builddir)/src/osmo-bsc/bsc_rll.o \ + $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ + $(top_builddir)/src/osmo-bsc/chan_alloc.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/handover_cfg.o \ + $(top_builddir)/src/osmo-bsc/handover_logic.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/paging.o \ + $(top_builddir)/src/osmo-bsc/pcu_sock.o \ + $(top_builddir)/src/osmo-bsc/rest_octets.o \ + $(top_builddir)/src/osmo-bsc/system_information.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOVTY_LIBS) \ diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c index 106b08b..183fddf 100644 --- a/tests/bsc/bsc_test.c +++ b/tests/bsc/bsc_test.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include @@ -124,7 +123,7 @@ { int i; - struct gsm_network *net = bsc_network_init(ctx); + struct gsm_network *net = gsm_network_init(ctx); struct gsm_bts *bts = gsm_bts_alloc(net, 0); struct bsc_msc_data *msc; struct gsm_subscriber_connection *conn; @@ -162,7 +161,7 @@ /* override timezone of msg coming from the BSC */ /* FIXME: no test for this case is defined in * test_scan_defs[], so this is never used. */ - result = bsc_scan_bts_msg(conn, msg); + //result = bsc_scan_bts_msg(conn, msg); break; default: abort(); diff --git a/tests/bssap/Makefile.am b/tests/bssap/Makefile.am index 30a9246..fad6318 100644 --- a/tests/bssap/Makefile.am +++ b/tests/bssap/Makefile.am @@ -25,14 +25,9 @@ bssap_test_SOURCES = \ bssap_test.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_bssap.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_sigtran.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_filter.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_grace.c \ $(NULL) bssap_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ @@ -41,6 +36,30 @@ $(NULL) bssap_test_LDFLAGS = \ + $(top_builddir)/src/osmo-bsc/a_reset.o \ + $(top_builddir)/src/osmo-bsc/abis_rsl.o \ + $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ + $(top_builddir)/src/osmo-bsc/bsc_api.o \ + $(top_builddir)/src/osmo-bsc/bsc_dyn_ts.o \ + $(top_builddir)/src/osmo-bsc/bsc_init.o \ + $(top_builddir)/src/osmo-bsc/bsc_rll.o \ + $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ + $(top_builddir)/src/osmo-bsc/chan_alloc.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/handover_cfg.o \ + $(top_builddir)/src/osmo-bsc/handover_logic.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_api.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_bssap.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_filter.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_grace.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_sigtran.o \ + $(top_builddir)/src/osmo-bsc/paging.o \ + $(top_builddir)/src/osmo-bsc/pcu_sock.o \ + $(top_builddir)/src/osmo-bsc/rest_octets.o \ + $(top_builddir)/src/osmo-bsc/system_information.o \ -Wl,--wrap=bsc_grace_paging_request \ $(NULL) diff --git a/tests/bssap/bssap_test.c b/tests/bssap/bssap_test.c index c9e7075..bb23241 100644 --- a/tests/bssap/bssap_test.c +++ b/tests/bssap/bssap_test.c @@ -24,8 +24,8 @@ #include #include #include -#include #include +#include struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) { @@ -80,7 +80,7 @@ }, }; -struct gsm_network *bsc_gsmnet; +struct gsm_network *bsc_gsmnet = NULL; void test_cell_identifier() { @@ -89,7 +89,7 @@ struct bsc_msc_data *msc; struct gsm_bts *bts; - bsc_gsmnet = bsc_network_init(NULL); + bsc_network_alloc(); bsc_gsmnet->bsc_data->rf_ctrl = talloc_zero(NULL, struct osmo_bsc_rf); bsc_gsmnet->bsc_data->rf_ctrl->policy = S_RF_ON; @@ -160,3 +160,26 @@ int bsc_sccplite_rx_ctrl(struct osmo_ss7_asp *asp, struct msgb *msg) { OSMO_ASSERT(0); } + +int bsc_sccplite_rx_mgcp(struct osmo_ss7_asp *asp, struct msgb *msg) { + OSMO_ASSERT(0); +} + +int bsc_sccplite_rx_mgcp(struct osmo_ss7_asp *asp, struct msgb *msg) { + OSMO_ASSERT(0); +} + +int bsc_msg_filter_initial(struct gsm48_hdr *hdr48, size_t hdr48_len, + struct bsc_filter_request *req, + int *con_type, + char **imsi, struct bsc_filter_reject_cause *cause) +{ return 0; } + +int bsc_msg_filter_data(struct gsm48_hdr *hdr48, size_t len, + struct bsc_filter_request *req, + struct bsc_filter_state *state, + struct bsc_filter_reject_cause *cause) +{ return 0; } + +struct llist_head *bsc_access_lists(void) +{ return NULL; } diff --git a/tests/channel/Makefile.am b/tests/channel/Makefile.am index f641f60..26c6cff 100644 --- a/tests/channel/Makefile.am +++ b/tests/channel/Makefile.am @@ -24,7 +24,8 @@ $(NULL) channel_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/channel/channel_test.c b/tests/channel/channel_test.c index e8f6cd9..4c2f9cd 100644 --- a/tests/channel/channel_test.c +++ b/tests/channel/channel_test.c @@ -25,10 +25,11 @@ #include #include -#include #include #include +void *ctx = NULL; + void test_bts_debug_print(void) { struct gsm_network *network; @@ -38,7 +39,7 @@ printf("Testing the lchan printing:"); /* Create a dummy network */ - network = bsc_network_init(tall_bsc_ctx); + network = gsm_network_init(ctx); if (!network) exit(1); /* Add a BTS with some reasonanbly non-zero id */ @@ -98,7 +99,8 @@ int main(int argc, char **argv) { - osmo_init_logging2(NULL, &log_info); + ctx = talloc_named_const(NULL, 0, "channel_test"); + osmo_init_logging2(ctx, &log_info); test_dyn_ts_subslots(); test_bts_debug_print(); @@ -106,19 +108,4 @@ return EXIT_SUCCESS; } -void sms_alloc() {} -void sms_free() {} -void gsm48_secure_channel() {} -void vty_out() {} - -void ipa_client_conn_clear_queue() {} -void ipa_client_conn_close() {} -void ipa_client_conn_create() {} -void ipa_client_conn_destroy() {} -void ipa_client_conn_open() {} -void ipa_client_conn_send() {} -void ipa_msg_push_header() {} -void ipaccess_bts_handle_ccm() {} -struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *network) { return NULL; } - -struct tlv_definition nm_att_tlvdef; +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) { return true; } diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 9a74d44..6d10b9f 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -23,7 +23,11 @@ $(NULL) gsm0408_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/rest_octets.o \ + $(top_builddir)/src/osmo-bsc/system_information.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index a934806..9552fb1 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -24,7 +24,6 @@ #include #include -#include #include #include #include @@ -817,7 +816,7 @@ osmo_init_logging2(tall_bsc_ctx, &log_info); log_set_log_level(osmo_stderr_target, LOGL_INFO); - net = bsc_network_init(tall_bsc_ctx); + net = gsm_network_init(tall_bsc_ctx); if (!net) { printf("Network init failure.\n"); return EXIT_FAILURE; @@ -848,3 +847,8 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ + return true; +} diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 957bbee..9cb77ea 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -34,7 +34,34 @@ $(NULL) handover_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/a_reset.o \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_rsl.o \ + $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ + $(top_builddir)/src/osmo-bsc/bsc_api.o \ + $(top_builddir)/src/osmo-bsc/bsc_dyn_ts.o \ + $(top_builddir)/src/osmo-bsc/bsc_init.o \ + $(top_builddir)/src/osmo-bsc/bsc_rll.o \ + $(top_builddir)/src/osmo-bsc/bsc_subscr_conn_fsm.o \ + $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/bts_sysmobts.o \ + $(top_builddir)/src/osmo-bsc/chan_alloc.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/handover_cfg.o \ + $(top_builddir)/src/osmo-bsc/handover_decision.o \ + $(top_builddir)/src/osmo-bsc/handover_decision_2.o \ + $(top_builddir)/src/osmo-bsc/handover_logic.o \ + $(top_builddir)/src/osmo-bsc/meas_rep.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/paging.o \ + $(top_builddir)/src/osmo-bsc/pcu_sock.o \ + $(top_builddir)/src/osmo-bsc/penalty_timers.o \ + $(top_builddir)/src/osmo-bsc/rest_octets.o \ + $(top_builddir)/src/osmo-bsc/system_information.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 82afbe5..26074a2 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -37,7 +37,6 @@ #include #include #include -#include #include #include #include @@ -202,7 +201,7 @@ struct e1inp_sign_link *rsl_link; int i; - bts = gsm_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_OSMOBTS, 0x3f); + bts = bsc_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_OSMOBTS, 0x3f); if (!bts) { printf("No resource for bts1\n"); return NULL; @@ -1347,8 +1346,8 @@ struct gsm_lchan *lchan[256]; int lchan_num = 0; int i; - int algorithm; struct bsc_api bsc_api = {}; + int algorithm; int test_case_i; int last_test_i; @@ -1373,8 +1372,7 @@ log_set_print_category_hex(osmo_stderr_target, 0); log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); - /* Create a dummy network */ - bsc_gsmnet = bsc_network_init(ctx); + bsc_network_alloc(); if (!bsc_gsmnet) exit(1); diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index c2b2c3b..aa7045e 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -23,7 +23,9 @@ $(NULL) nanobts_omlattr_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index 8e8626d..72dabe5 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -305,3 +305,6 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ return true; } diff --git a/tests/subscr/Makefile.am b/tests/subscr/Makefile.am index 8d14ebf..e56d142 100644 --- a/tests/subscr/Makefile.am +++ b/tests/subscr/Makefile.am @@ -31,7 +31,7 @@ $(NULL) bsc_subscr_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOGSM_LIBS) \ -- To view, visit https://gerrit.osmocom.org/9481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I36a586726f5818121abe54d25654819fc451d3bf Gerrit-Change-Number: 9481 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:43 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:43 +0000 Subject: Change in osmo-bsc[master]: remove struct bsc_api Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9482 Change subject: remove struct bsc_api ...................................................................... remove struct bsc_api struct bsc_api was used to provide an abstract API for both osmo-bsc and osmo-msc, between BSC and MSC. That's no longer needed, so get rid of it, to prevent code turbulences it creates for no reason. Change-Id: I3fd5888c63a0b4f95520a498320aa105a6d60579 --- M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_api.c M src/osmo-bsc/osmo_bsc_api.c M src/osmo-bsc/osmo_bsc_main.c M tests/bsc/bsc_test.c M tests/handover/handover_test.c 7 files changed, 86 insertions(+), 198 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/82/9482/1 diff --git a/include/osmocom/bsc/bsc_api.h b/include/osmocom/bsc/bsc_api.h index 06f8093..a90268b 100644 --- a/include/osmocom/bsc/bsc_api.h +++ b/include/osmocom/bsc/bsc_api.h @@ -8,43 +8,18 @@ #define BSC_API_CONN_POL_ACCEPT 0 #define BSC_API_CONN_POL_REJECT 1 -struct bsc_api { - /*! \brief BTS->MSC: tell MSC a SAPI was not established */ - void (*sapi_n_reject)(struct gsm_subscriber_connection *conn, int dlci); - /*! \brief MS->MSC: Tell MSC that ciphering has been enabled */ - void (*cipher_mode_compl)(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint8_t chosen_encr); - /*! \brief MS->MSC: New MM context with L3 payload */ - int (*compl_l3)(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint16_t chosen_channel); - /*! \brief MS->BSC/MSC: Um L3 message */ - void (*dtap)(struct gsm_subscriber_connection *conn, uint8_t link_id, - struct msgb *msg); - /*! \brief BSC->MSC: Assignment of lchan successful */ - void (*assign_compl)(struct gsm_subscriber_connection *conn, uint8_t rr_cause); - /*! \brief BSC->MSC: Assignment of lchan failed */ - void (*assign_fail)(struct gsm_subscriber_connection *conn, - uint8_t cause, uint8_t *rr_cause); - /*! \brief BSC->MSC: RR conn has been cleared */ - int (*clear_request)(struct gsm_subscriber_connection *conn, - uint32_t cause); - /*! \brief BSC->MSC: Classmark Update */ - void (*classmark_chg)(struct gsm_subscriber_connection *conn, - const uint8_t *cm2, uint8_t cm2_len, - const uint8_t *cm3, uint8_t cm3_len); +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci); +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr); +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel); +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg); +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause); +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause); +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause); +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len); +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate); - /** - * Configure the multirate setting on this channel. If it is - * not implemented AMR5.9 will be used. - */ - void (*mr_config)(struct gsm_subscriber_connection *conn, - struct gsm_lchan *lchan, int full_rate); - - /** Callback for additional actions during conn cleanup */ - void (*conn_cleanup)(struct gsm_subscriber_connection *conn); -}; - -int bsc_api_init(struct gsm_network *network, struct bsc_api *api); int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, int link_id, int allow_sacch); int gsm0808_assign_req(struct gsm_subscriber_connection *conn, int chan_mode, int full_rate); int gsm0808_cipher_mode(struct gsm_subscriber_connection *conn, int cipher, diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index a8d1f92..56cca16 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -256,7 +256,6 @@ struct gsm_lchan; struct osmo_rtp_socket; struct rtp_socket; -struct bsc_api; /* Network Management State */ struct gsm_nm_state { @@ -1217,8 +1216,6 @@ struct rate_ctr_group *bsc_ctrs; - struct bsc_api *bsc_api; - unsigned int num_bts; struct llist_head bts_list; diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 8ae781e..5334314 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -45,52 +45,9 @@ #define HO_DTAP_CACHE_MSGB_CB_ALLOW_SACCH 1 static void rll_ind_cb(struct gsm_lchan *, uint8_t, void *, enum bsc_rllr_ind); -static void send_sapi_reject(struct gsm_subscriber_connection *conn, int link_id); -static void handle_release(struct gsm_subscriber_connection *conn, struct bsc_api *bsc, struct gsm_lchan *lchan); -static void handle_chan_ack(struct gsm_subscriber_connection *conn, struct bsc_api *bsc, struct gsm_lchan *lchan); -static void handle_chan_nack(struct gsm_subscriber_connection *conn, struct bsc_api *bsc, struct gsm_lchan *lchan); - -/*! \brief Determine and apply AMR multi-rate configuration to lchan - * Determine which AMR multi-rate configuration to use and apply it to - * the lchan (so it can be communicated to BTS and MS during channel - * activation. - * \param[in] conn subscriber connection (used to resolve bsc_api) - * \param[out] lchan logical channel to which to apply mr config - * \param[in] full_rate whether to use full-rate (1) or half-rate (0) config - */ -static void handle_mr_config(struct gsm_subscriber_connection *conn, - struct gsm_lchan *lchan, int full_rate) -{ - struct bsc_api *api; - api = conn->network->bsc_api; - struct amr_multirate_conf *mr; - struct gsm48_multi_rate_conf *mr_conf; - - /* BSC api override for this method, used in OsmoBSC mode with - * bsc_mr_config() to use MSC-specific/specified configuration */ - if (api->mr_config) - return api->mr_config(conn, lchan, full_rate); - - /* NITB case: use the BTS-specic multi-rate configuration from - * the vty/configuration file */ - if (full_rate) - mr = &lchan->ts->trx->bts->mr_full; - else - mr = &lchan->ts->trx->bts->mr_half; - - mr_conf = (struct gsm48_multi_rate_conf *) mr->gsm48_ie; - mr_conf->ver = 1; - - /* default, if no AMR codec defined */ - if (!mr->gsm48_ie[1]) { - mr_conf->icmi = 1; - mr_conf->m5_90 = 1; - } - /* store encoded MR config IE lchan for both MS (uplink) and BTS - * (downlink) directions */ - gsm48_multirate_config(lchan->mr_ms_lv, mr, mr->ms_mode); - gsm48_multirate_config(lchan->mr_bts_lv, mr, mr->bts_mode); -} +static void handle_release(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); +static void handle_chan_ack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); +static void handle_chan_nack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); /* * Start a new assignment and make sure that it is completed within T10 either @@ -145,7 +102,7 @@ /* handle AMR correctly */ if (chan_mode == GSM48_CMODE_SPEECH_AMR) - handle_mr_config(conn, new_lchan, full_rate); + bsc_mr_config(conn, new_lchan, full_rate); if (rsl_chan_activate_lchan(new_lchan, 0x1, 0) < 0) { LOGPLCHAN(new_lchan, DHO, LOGL_ERROR, "could not activate channel\n"); @@ -202,12 +159,6 @@ } } -int bsc_api_init(struct gsm_network *network, struct bsc_api *api) -{ - network->bsc_api = api; - return 0; -} - /*! \brief process incoming 08.08 DTAP from MSC (send via BTS to MS) */ int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, int link_id, int allow_sacch) @@ -246,7 +197,7 @@ OBSC_LINKID_CB(msg) = link_id; if (rll_establish(msg->lchan, sapi, rll_ind_cb, msg) != 0) { msgb_free(msg); - send_sapi_reject(conn, link_id); + bsc_sapi_n_reject(conn, link_id); return -1; } return 0; @@ -306,9 +257,6 @@ { /* TODO: Add multirate configuration, make it work for more than audio. */ - struct bsc_api *api; - api = conn->network->bsc_api; - if (!chan_compat_with_mode(conn->lchan, chan_mode, full_rate)) { if (handle_new_assignment(conn, chan_mode, full_rate) != 0) goto error; @@ -319,7 +267,7 @@ return 1; if (chan_mode == GSM48_CMODE_SPEECH_AMR) - handle_mr_config(conn, conn->lchan, full_rate); + bsc_mr_config(conn, conn->lchan, full_rate); LOGPLCHAN(conn->lchan, DMSC, LOGL_NOTICE, "Sending ChanModify for speech: %s\n", @@ -331,7 +279,7 @@ return 0; error: - api->assign_fail(conn, 0, NULL); + bsc_assign_fail(conn, 0, NULL); return -1; } @@ -345,7 +293,6 @@ struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); - struct bsc_api *api = conn->network->bsc_api; enum gsm48_rr_cause cause; /* Expecting gsm48_hdr + cause value */ @@ -393,13 +340,12 @@ if (is_ipaccess_bts(conn_get_bts(conn)) && conn->lchan->tch_mode != GSM48_CMODE_SIGN) rsl_ipacc_crcx(conn->lchan); - api->assign_compl(conn, cause); + bsc_assign_compl(conn, cause); } static void handle_ass_fail(struct gsm_subscriber_connection *conn, struct msgb *msg) { - struct bsc_api *api = conn->network->bsc_api; uint8_t *rr_failure; struct gsm48_hdr *gh; @@ -446,15 +392,12 @@ rr_failure = &gh->data[0]; } - api->assign_fail(conn, - GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, - rr_failure); + bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, rr_failure); } static void handle_classmark_chg(struct gsm_subscriber_connection *conn, struct msgb *msg) { - struct bsc_api *api = msg->lchan->ts->trx->bts->network->bsc_api; struct gsm48_hdr *gh = msgb_l3(msg); unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); uint8_t cm2_len, cm3_len = 0; @@ -486,7 +429,7 @@ } DEBUGPC(DRR, "CM3(len=%u)\n", cm3_len); } - api->classmark_chg(conn, cm2, cm2_len, cm3, cm3_len); + bsc_cm_update(conn, cm2, cm2_len, cm3, cm3_len); } /* Chapter 9.1.16 Handover complete */ @@ -533,7 +476,6 @@ static void dispatch_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) { - struct bsc_api *api = msg->lchan->ts->trx->bts->network->bsc_api; struct gsm48_hdr *gh; uint8_t pdisc; uint8_t msg_type; @@ -582,9 +524,7 @@ handle_rr_ho_fail(msg); break; case GSM48_MT_RR_CIPH_M_COMPL: - if (api->cipher_mode_compl) - api->cipher_mode_compl(conn, msg, - conn->lchan->encr.alg_id); + bsc_cipher_mode_compl(conn, msg, conn->lchan->encr.alg_id); break; case GSM48_MT_RR_ASS_COMPL: handle_ass_compl(conn, msg); @@ -595,13 +535,10 @@ case GSM48_MT_RR_CHAN_MODE_MODIF_ACK: osmo_timer_del(&conn->T10); rc = gsm48_rx_rr_modif_ack(msg); - if (rc < 0) { - api->assign_fail(conn, - GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, - NULL); - } else if (rc >= 0) { - api->assign_compl(conn, 0); - } + if (rc < 0) + bsc_assign_fail(conn, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, NULL); + else + bsc_assign_compl(conn, 0); break; case GSM48_MT_RR_CLSM_CHG: handle_classmark_chg(conn, msg); @@ -609,8 +546,7 @@ case GSM48_MT_RR_APP_INFO: /* Passing RR APP INFO to MSC, not quite * according to spec */ - if (api->dtap) - api->dtap(conn, link_id, msg); + bsc_dtap(conn, link_id, msg); break; default: /* Drop unknown RR message */ @@ -621,8 +557,7 @@ } break; default: - if (api->dtap) - api->dtap(conn, link_id, msg); + bsc_dtap(conn, link_id, msg); break; } } @@ -631,7 +566,6 @@ int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id) { int rc; - struct bsc_api *api = msg->lchan->ts->trx->bts->network->bsc_api; struct gsm_lchan *lchan; lchan = msg->lchan; @@ -656,7 +590,7 @@ lchan->conn->lchan = lchan; /* fwd via bsc_api to send COMPLETE L3 INFO to MSC */ - rc = api->compl_l3(lchan->conn, msg, 0); + rc = bsc_compl_l3(lchan->conn, msg, 0); if (rc != BSC_API_CONN_POL_ACCEPT) { //osmo_fsm_inst_dispatch(lchan->conn->fi, FIXME, NULL); @@ -716,20 +650,6 @@ return 0; } -static void send_sapi_reject(struct gsm_subscriber_connection *conn, int link_id) -{ - struct bsc_api *api; - - if (!conn) - return; - - api = conn->network->bsc_api; - if (!api || !api->sapi_n_reject) - return; - - api->sapi_n_reject(conn, link_id); -} - static void rll_ind_cb(struct gsm_lchan *lchan, uint8_t link_id, void *_data, enum bsc_rllr_ind rllr_ind) { struct msgb *msg = _data; @@ -749,7 +669,7 @@ case BSC_RLLR_IND_REL_IND: case BSC_RLLR_IND_ERR_IND: case BSC_RLLR_IND_TIMEOUT: - send_sapi_reject(lchan->conn, OBSC_LINKID_CB(msg)); + bsc_sapi_n_reject(lchan->conn, OBSC_LINKID_CB(msg)); msgb_free(msg); break; } @@ -758,7 +678,6 @@ static int bsc_handle_lchan_signal(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { - struct bsc_api *bsc; struct gsm_lchan *lchan; struct lchan_signal_data *lchan_data; @@ -771,40 +690,33 @@ return 0; lchan = lchan_data->lchan; - bsc = lchan->ts->trx->bts->network->bsc_api; - if (!bsc) - return 0; switch (signal) { case S_LCHAN_UNEXPECTED_RELEASE: - handle_release(lchan->conn, bsc, lchan); + handle_release(lchan->conn, lchan); break; case S_LCHAN_ACTIVATE_ACK: - handle_chan_ack(lchan->conn, bsc, lchan); + handle_chan_ack(lchan->conn, lchan); break; case S_LCHAN_ACTIVATE_NACK: - handle_chan_nack(lchan->conn, bsc, lchan); + handle_chan_nack(lchan->conn, lchan); break; } return 0; } -static void handle_release(struct gsm_subscriber_connection *conn, - struct bsc_api *bsc, struct gsm_lchan *lchan) +static void handle_release(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan) { if (conn->secondary_lchan == lchan) { osmo_timer_del(&conn->T10); conn->secondary_lchan = NULL; - bsc->assign_fail(conn, - GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, - NULL); + bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, NULL); } /* clear the connection now */ - if (bsc->clear_request) - bsc->clear_request(conn, 0); + bsc_clear_request(conn, 0); /* now give up all channels */ if (conn->lchan == lchan) @@ -814,8 +726,7 @@ lchan->conn = NULL; } -static void handle_chan_ack(struct gsm_subscriber_connection *conn, - struct bsc_api *api, struct gsm_lchan *lchan) +static void handle_chan_ack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan) { if (conn->secondary_lchan != lchan) return; @@ -824,8 +735,7 @@ gsm48_send_rr_ass_cmd(conn->lchan, lchan, lchan->ms_power); } -static void handle_chan_nack(struct gsm_subscriber_connection *conn, - struct bsc_api *api, struct gsm_lchan *lchan) +static void handle_chan_nack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan) { if (conn->secondary_lchan != lchan) return; diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c index 8081ea4..51fbdd3 100644 --- a/src/osmo-bsc/osmo_bsc_api.c +++ b/src/osmo-bsc/osmo_bsc_api.c @@ -51,7 +51,6 @@ return true; } -static int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause); static int complete_layer3(struct gsm_subscriber_connection *conn, struct msgb *msg, struct bsc_msc_data *msc); @@ -135,12 +134,13 @@ return rc; } -static void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) +/*! BTS->MSC: tell MSC a SAPI was not established. */ +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) { int rc; struct msgb *resp; - if (!msc_connected(conn)) + if (!conn || !msc_connected(conn)) return; LOGP(DMSC, LOGL_NOTICE, "Tx MSC SAPI N REJECT DLCI=0x%02x\n", dlci); @@ -150,8 +150,8 @@ msgb_free(resp); } -static void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint8_t chosen_encr) +/*! MS->MSC: Tell MSC that ciphering has been enabled. */ +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr) { int rc; struct msgb *resp; @@ -210,12 +210,8 @@ bsc_send_ussd_release_complete(conn); } -/* - * Instruct to reserve data for a new connectiom, create the complete - * layer three message, send it to open the connection. - */ -static int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, - uint16_t chosen_channel) +/*! MS->MSC: New MM context with L3 payload. */ +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel) { struct bsc_msc_data *msc; @@ -367,7 +363,8 @@ } -static void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) +/*! MS->BSC/MSC: Um L3 message. */ +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) { int lu_cause; @@ -399,7 +396,8 @@ osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_MO_DTAP, msg); } -static void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) +/*! BSC->MSC: Assignment of lchan successful. */ +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) { if (!msc_connected(conn)) return; @@ -424,14 +422,15 @@ } } -static void bsc_assign_fail(struct gsm_subscriber_connection *conn, - uint8_t cause, uint8_t *rr_cause) +/*! BSC->MSC: Assignment of lchan failed. */ +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) { LOGP(DMSC, LOGL_INFO, "Tx MSC ASSIGN FAIL\n"); osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_RR_ASS_FAIL, NULL); } -static int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) +/*! BSC->MSC: RR conn has been cleared. */ +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) { int rc; struct msgb *resp; @@ -454,9 +453,10 @@ return 1; } -static void bsc_cm_update(struct gsm_subscriber_connection *conn, - const uint8_t *cm2, uint8_t cm2_len, - const uint8_t *cm3, uint8_t cm3_len) +/*! BSC->MSC: Classmark Update. */ +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len) { int rc; struct msgb *resp; @@ -470,8 +470,8 @@ msgb_free(resp); } -static void bsc_mr_config(struct gsm_subscriber_connection *conn, - struct gsm_lchan *lchan, int full_rate) +/*! Configure the multirate setting on this channel. */ +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate) { struct bsc_msc_data *msc; struct gsm48_multi_rate_conf *ms_conf, *bts_conf; @@ -511,20 +511,3 @@ /* now copy this into the bts structure */ memcpy(lchan->mr_bts_lv, lchan->mr_ms_lv, sizeof(lchan->mr_ms_lv)); } - -static struct bsc_api bsc_handler = { - .sapi_n_reject = bsc_sapi_n_reject, - .cipher_mode_compl = bsc_cipher_mode_compl, - .compl_l3 = bsc_compl_l3, - .dtap = bsc_dtap, - .assign_compl = bsc_assign_compl, - .assign_fail = bsc_assign_fail, - .clear_request = bsc_clear_request, - .classmark_chg = bsc_cm_update, - .mr_config = bsc_mr_config, -}; - -struct bsc_api *osmo_bsc_api() -{ - return &bsc_handler; -} diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 5c6a872..494f280 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -827,7 +827,6 @@ fprintf(stderr, "Bootstrapping the network failed. exiting.\n"); exit(1); } - bsc_api_init(bsc_gsmnet, osmo_bsc_api()); /* start control interface after reading config for * ctrl_vty_get_bind_addr() */ diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c index 183fddf..652c8c6 100644 --- a/tests/bsc/bsc_test.c +++ b/tests/bsc/bsc_test.c @@ -242,3 +242,17 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) {} +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr) {} +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel) +{ return 0; } +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) {} +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) {} +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) {} +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) +{ return 0; } +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len) {} +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate) {} diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 26074a2..87e64ec 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1346,7 +1346,6 @@ struct gsm_lchan *lchan[256]; int lchan_num = 0; int i; - struct bsc_api bsc_api = {}; int algorithm; int test_case_i; int last_test_i; @@ -1376,8 +1375,6 @@ if (!bsc_gsmnet) exit(1); - bsc_api_init(bsc_gsmnet, &bsc_api); - ho_set_algorithm(bsc_gsmnet->ho, 2); ho_set_ho_active(bsc_gsmnet->ho, true); ho_set_hodec2_as_active(bsc_gsmnet->ho, true); @@ -1695,3 +1692,16 @@ void trau_send_frame() {} int osmo_bsc_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg) { return 0; } int osmo_bsc_sigtran_open_conn(struct gsm_subscriber_connection *conn, struct msgb *msg) { return 0; } +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) {} +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr) {} +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel) +{ return 0; } +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) {} +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) {} +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) {} +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) +{ return 0; } +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len) {} +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate) {} -- To view, visit https://gerrit.osmocom.org/9482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3fd5888c63a0b4f95520a498320aa105a6d60579 Gerrit-Change-Number: 9482 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:43 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:43 +0000 Subject: Change in osmo-bsc[master]: tests: remove bssap_test Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9483 Change subject: tests: remove bssap_test ...................................................................... tests: remove bssap_test Rationale: - All it does is compose four Paging Requests and feed it into the osmo-bsc bssap_udt, and expects the cell identifier to be decoded properly. - To do so it employs a comparatively huge linking effort. This linking effort is becoming annoying in my ongoing work and is just not worth it. - We have comprehensive cell identifier tests in ttcn3, verifying that the proper cells are paged, and that actually for *all* cell identifier types. Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 --- M configure.ac M tests/Makefile.am D tests/bssap/Makefile.am D tests/bssap/bssap_test.c D tests/bssap/bssap_test.err D tests/bssap/bssap_test.ok M tests/testsuite.at 7 files changed, 0 insertions(+), 289 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/9483/1 diff --git a/configure.ac b/configure.ac index f07c756..c064fb9 100644 --- a/configure.ac +++ b/configure.ac @@ -180,7 +180,6 @@ tests/abis/Makefile tests/subscr/Makefile tests/nanobts_omlattr/Makefile - tests/bssap/Makefile tests/handover/Makefile doc/Makefile doc/examples/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index 20368ee..7bbef99 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -5,7 +5,6 @@ abis \ subscr \ nanobts_omlattr \ - bssap \ handover \ $(NULL) diff --git a/tests/bssap/Makefile.am b/tests/bssap/Makefile.am deleted file mode 100644 index fad6318..0000000 --- a/tests/bssap/Makefile.am +++ /dev/null @@ -1,68 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOSIGTRAN_CFLAGS) \ - $(COVERAGE_CFLAGS) \ - $(LIBOSMOMGCPCLIENT_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - bssap_test.ok \ - bssap_test.err \ - $(NULL) - -noinst_PROGRAMS = \ - bssap_test \ - $(NULL) - -bssap_test_SOURCES = \ - bssap_test.c \ - $(NULL) - -bssap_test_LDADD = \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBOSMOMGCPCLIENT_LIBS) \ - $(NULL) - -bssap_test_LDFLAGS = \ - $(top_builddir)/src/osmo-bsc/a_reset.o \ - $(top_builddir)/src/osmo-bsc/abis_rsl.o \ - $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ - $(top_builddir)/src/osmo-bsc/bsc_api.o \ - $(top_builddir)/src/osmo-bsc/bsc_dyn_ts.o \ - $(top_builddir)/src/osmo-bsc/bsc_init.o \ - $(top_builddir)/src/osmo-bsc/bsc_rll.o \ - $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ - $(top_builddir)/src/osmo-bsc/chan_alloc.o \ - $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ - $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ - $(top_builddir)/src/osmo-bsc/gsm_data.o \ - $(top_builddir)/src/osmo-bsc/handover_cfg.o \ - $(top_builddir)/src/osmo-bsc/handover_logic.o \ - $(top_builddir)/src/osmo-bsc/net_init.o \ - $(top_builddir)/src/osmo-bsc/osmo_bsc_api.o \ - $(top_builddir)/src/osmo-bsc/osmo_bsc_bssap.o \ - $(top_builddir)/src/osmo-bsc/osmo_bsc_filter.o \ - $(top_builddir)/src/osmo-bsc/osmo_bsc_grace.o \ - $(top_builddir)/src/osmo-bsc/osmo_bsc_sigtran.o \ - $(top_builddir)/src/osmo-bsc/paging.o \ - $(top_builddir)/src/osmo-bsc/pcu_sock.o \ - $(top_builddir)/src/osmo-bsc/rest_octets.o \ - $(top_builddir)/src/osmo-bsc/system_information.o \ - -Wl,--wrap=bsc_grace_paging_request \ - $(NULL) - -.PHONY: update_exp -update_exp: - $(builddir)/bssap_test >$(srcdir)/bssap_test.ok 2>$(srcdir)/bssap_test.err diff --git a/tests/bssap/bssap_test.c b/tests/bssap/bssap_test.c deleted file mode 100644 index bb23241..0000000 --- a/tests/bssap/bssap_test.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * (C) 2017 by sysmocom - s.f.m.c. GmbH - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include - -#include -#include -#include -#include -#include -#include -#include - -struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) -{ - struct msgb *msg = msgb_alloc(size, label); - unsigned char *rc; - msg->l2h = msg->l3h = msg->head; - rc = msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg))); - OSMO_ASSERT(rc == msg->l2h); - return msg; -} - -uint16_t gl_expect_lac = 0; - -/* override, requires '-Wl,--wrap=bsc_grace_paging_request' */ -int __real_bsc_grace_paging_request(enum signal_rf rf_policy, struct bsc_subscr *subscr, int chan_needed, - struct bsc_msc_data *msc, struct gsm_bts *bts); -int __wrap_bsc_grace_paging_request(enum signal_rf rf_policy, struct bsc_subscr *subscr, int chan_needed, - struct bsc_msc_data *msc, struct gsm_bts *bts) -{ - if (subscr->lac == GSM_LAC_RESERVED_ALL_BTS) - fprintf(stderr, "BSC paging started on entire BSS (%u)\n", subscr->lac); - else - fprintf(stderr, "BSC paging started with LAC %u\n", subscr->lac); - OSMO_ASSERT(gl_expect_lac == subscr->lac); - return 1; /* pretend one BTS was paged */ -} - -struct { - const char *msg; - uint16_t expect_lac; - int expect_rc; -} cell_identifier_tests[] = { - { - "001652080859512069000743940904010844601a03050065", - /* ^^^^^^ Cell Identifier List: LAC */ - 0x65, 0 - }, - { - "001452080859512069000743940904010844601a0106", - /* ^^ Cell Identifier List: BSS */ - GSM_LAC_RESERVED_ALL_BTS, 0 - }, - { - "001952080859512069000743940904010844601a060415f5490065", - /* ^^^^^^^^^^^^ Cell Identifier List: LAI */ - GSM_LAC_RESERVED_ALL_BTS, 0 - }, - { - "001952080859512069000743940904010844601a060400f1100065", - /* ^^^^^^^^^^^^ Cell Identifier List: LAI */ - 0x65, 0 - }, -}; - -struct gsm_network *bsc_gsmnet = NULL; - -void test_cell_identifier() -{ - int i; - int rc; - struct bsc_msc_data *msc; - struct gsm_bts *bts; - - bsc_network_alloc(); - bsc_gsmnet->bsc_data->rf_ctrl = talloc_zero(NULL, struct osmo_bsc_rf); - bsc_gsmnet->bsc_data->rf_ctrl->policy = S_RF_ON; - - msc = talloc_zero(bsc_gsmnet, struct bsc_msc_data); - msc->network = bsc_gsmnet; - - bts = gsm_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_UNKNOWN, 0); - if (bts == NULL) { - fprintf(stderr, "gsm_bts_alloc_register() returned NULL\n"); - return; - } - - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - - for (i = 0; i < ARRAY_SIZE(cell_identifier_tests); i++) { - struct msgb *msg; - fprintf(stderr, "\n%d:\n", i); - msg = msgb_from_hex("test_cell_identifier", 1024, cell_identifier_tests[i].msg); - - gl_expect_lac = cell_identifier_tests[i].expect_lac; - bts->location_area_code = (gl_expect_lac == GSM_LAC_RESERVED_ALL_BTS ? 0 : gl_expect_lac); - rc = bsc_handle_udt(msc, msg, msgb_l2len(msg)); - - fprintf(stderr, "bsc_handle_udt() returned %d\n", rc); - OSMO_ASSERT(rc == cell_identifier_tests[i].expect_rc); - - msgb_free(msg); - } -} - -static const struct log_info_cat log_categories[] = { - [DMSC] = { - .name = "DMSC", - .description = "Mobile Switching Center", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, - [DREF] = { - .name = "DREF", - .description = "Reference Counting", - .enabled = 0, .loglevel = LOGL_DEBUG, - }, -}; - -static const struct log_info log_info = { - .cat = log_categories, - .num_cat = ARRAY_SIZE(log_categories), -}; - -int main(int argc, char **argv) -{ - void *tall_ctx = talloc_named_const(NULL, 1, "bssap_test"); - msgb_talloc_ctx_init(tall_ctx, 0); - osmo_init_logging2(tall_ctx, &log_info); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_timestamp(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - log_set_print_category(osmo_stderr_target, 1); - - test_cell_identifier(); - - return 0; -} - -struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { - OSMO_ASSERT(0); -} - -int bsc_sccplite_rx_ctrl(struct osmo_ss7_asp *asp, struct msgb *msg) { - OSMO_ASSERT(0); -} - -int bsc_sccplite_rx_mgcp(struct osmo_ss7_asp *asp, struct msgb *msg) { - OSMO_ASSERT(0); -} - -int bsc_sccplite_rx_mgcp(struct osmo_ss7_asp *asp, struct msgb *msg) { - OSMO_ASSERT(0); -} - -int bsc_msg_filter_initial(struct gsm48_hdr *hdr48, size_t hdr48_len, - struct bsc_filter_request *req, - int *con_type, - char **imsi, struct bsc_filter_reject_cause *cause) -{ return 0; } - -int bsc_msg_filter_data(struct gsm48_hdr *hdr48, size_t len, - struct bsc_filter_request *req, - struct bsc_filter_state *state, - struct bsc_filter_reject_cause *cause) -{ return 0; } - -struct llist_head *bsc_access_lists(void) -{ return NULL; } diff --git a/tests/bssap/bssap_test.err b/tests/bssap/bssap_test.err deleted file mode 100644 index 8ae3b22..0000000 --- a/tests/bssap/bssap_test.err +++ /dev/null @@ -1,27 +0,0 @@ - -0: -DMSC Rx MSC UDT: 00 16 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 03 05 00 65 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging request from MSC BTS: 0 IMSI: '515029600703449' TMSI: '0x1084460/17319008' LAC: 0x65 -BSC paging started with LAC 101 -bsc_handle_udt() returned 0 - -1: -DMSC Rx MSC UDT: 00 14 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 01 06 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging request from MSC BTS: 0 IMSI: '515029600703449' TMSI: '0x1084460/17319008' LAC: 0xfffe -BSC paging started on entire BSS (65534) -bsc_handle_udt() returned 0 - -2: -DMSC Rx MSC UDT: 00 19 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 06 04 15 f5 49 00 65 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging IMSI 515029600703449: MCC-MNC in Cell Identifier List (515-94) do not match our network (001-01) -bsc_handle_udt() returned 0 - -3: -DMSC Rx MSC UDT: 00 19 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 06 04 00 f1 10 00 65 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging request from MSC BTS: 0 IMSI: '515029600703449' TMSI: '0x1084460/17319008' LAC: 0x65 -BSC paging started with LAC 101 -bsc_handle_udt() returned 0 diff --git a/tests/bssap/bssap_test.ok b/tests/bssap/bssap_test.ok deleted file mode 100644 index e69de29..0000000 --- a/tests/bssap/bssap_test.ok +++ /dev/null diff --git a/tests/testsuite.at b/tests/testsuite.at index 07bd85f..974af89 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -38,13 +38,6 @@ AT_CHECK([$abs_top_builddir/tests/nanobts_omlattr/nanobts_omlattr_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([bssap]) -AT_KEYWORDS([bssap]) -cat $abs_srcdir/bssap/bssap_test.ok > expout -cat $abs_srcdir/bssap/bssap_test.err > experr -AT_CHECK([$abs_top_builddir/tests/bssap/bssap_test], [], [expout], [experr]) -AT_CLEANUP - AT_SETUP([handover test 0]) AT_KEYWORDS([handover]) cat $abs_srcdir/handover/handover_test.ok > expout -- To view, visit https://gerrit.osmocom.org/9483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 Gerrit-Change-Number: 9483 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:43 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:43 +0000 Subject: Change in osmo-bsc[master]: tests: remove channel_test Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9484 Change subject: tests: remove channel_test ...................................................................... tests: remove channel_test Rationale: channel_test is trivial and useless, probably only exists as a legacy from openbsc.git. - it tests two printf()s of "(bts=45,trx=0,ts=3,ss=4)", hardly useful. - it tests ts_subslots() behavior for dyn ts, which will soon be replaced by a most trivial mapping that does no longer need complex dyn ts state evaluation (when introducing the new timeslot FSM to handle dyn TS switchover). Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 --- M configure.ac M tests/Makefile.am D tests/channel/Makefile.am D tests/channel/channel_test.c D tests/channel/channel_test.ok M tests/testsuite.at 6 files changed, 0 insertions(+), 153 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/9484/1 diff --git a/configure.ac b/configure.ac index c064fb9..25bcad7 100644 --- a/configure.ac +++ b/configure.ac @@ -175,7 +175,6 @@ tests/Makefile tests/atlocal tests/gsm0408/Makefile - tests/channel/Makefile tests/bsc/Makefile tests/abis/Makefile tests/subscr/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index 7bbef99..95d836b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,7 +1,6 @@ SUBDIRS = \ bsc \ gsm0408 \ - channel \ abis \ subscr \ nanobts_omlattr \ diff --git a/tests/channel/Makefile.am b/tests/channel/Makefile.am deleted file mode 100644 index 26c6cff..0000000 --- a/tests/channel/Makefile.am +++ /dev/null @@ -1,32 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - channel_test.ok \ - $(NULL) - -noinst_PROGRAMS = \ - channel_test \ - $(NULL) - -channel_test_SOURCES = \ - channel_test.c \ - $(NULL) - -channel_test_LDADD = \ - $(top_builddir)/src/osmo-bsc/gsm_data.o \ - $(top_builddir)/src/osmo-bsc/net_init.o \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(NULL) diff --git a/tests/channel/channel_test.c b/tests/channel/channel_test.c deleted file mode 100644 index 4c2f9cd..0000000 --- a/tests/channel/channel_test.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * (C) 2009 by Holger Hans Peter Freyther - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include - -#include - -#include -#include - -#include -#include - -void *ctx = NULL; - -void test_bts_debug_print(void) -{ - struct gsm_network *network; - struct gsm_bts *bts; - struct gsm_bts_trx *trx; - - printf("Testing the lchan printing:"); - - /* Create a dummy network */ - network = gsm_network_init(ctx); - if (!network) - exit(1); - /* Add a BTS with some reasonanbly non-zero id */ - bts = gsm_bts_alloc(network, 45); - /* Add a second TRX to test on multiple TRXs */ - gsm_bts_trx_alloc(bts); - - llist_for_each_entry(trx, &bts->trx_list, list) { - char *name = gsm_lchan_name(&trx->ts[3].lchan[4]); - - if (name) - printf(" %s", name); - else - printf("NULL name"); - } - printf("\n"); -} - - -void test_dyn_ts_subslots(void) -{ - struct gsm_bts_trx_ts ts; - - printf("Testing subslot numbers for pchan types\n"); - - ts.pchan = GSM_PCHAN_TCH_F; - OSMO_ASSERT(ts_subslots(&ts) == 1); - - ts.pchan = GSM_PCHAN_TCH_H; - OSMO_ASSERT(ts_subslots(&ts) == 2); - - ts.pchan = GSM_PCHAN_PDCH; - OSMO_ASSERT(ts_subslots(&ts) == 0); - - ts.pchan = GSM_PCHAN_TCH_F_PDCH; - ts.flags = 0; /* TCH_F mode */ - OSMO_ASSERT(ts_subslots(&ts) == 1); - ts.flags = TS_F_PDCH_ACTIVE; - OSMO_ASSERT(ts_subslots(&ts) == 0); - - ts.pchan = GSM_PCHAN_TCH_F_TCH_H_PDCH; - ts.dyn.pchan_is = GSM_PCHAN_TCH_F; - OSMO_ASSERT(ts_subslots(&ts) == 1); - ts.dyn.pchan_is = GSM_PCHAN_TCH_H; - OSMO_ASSERT(ts_subslots(&ts) == 2); - ts.dyn.pchan_is = GSM_PCHAN_PDCH; - OSMO_ASSERT(ts_subslots(&ts) == 0); -} - -static const struct log_info_cat log_categories[] = { -}; - -static const struct log_info log_info = { - .cat = log_categories, - .num_cat = ARRAY_SIZE(log_categories), -}; - -int main(int argc, char **argv) -{ - ctx = talloc_named_const(NULL, 0, "channel_test"); - osmo_init_logging2(ctx, &log_info); - - test_dyn_ts_subslots(); - test_bts_debug_print(); - - return EXIT_SUCCESS; -} - -bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) { return true; } diff --git a/tests/channel/channel_test.ok b/tests/channel/channel_test.ok deleted file mode 100644 index 81d6569..0000000 --- a/tests/channel/channel_test.ok +++ /dev/null @@ -1,2 +0,0 @@ -Testing subslot numbers for pchan types -Testing the lchan printing: (bts=45,trx=0,ts=3,ss=4) (bts=45,trx=1,ts=3,ss=4) diff --git a/tests/testsuite.at b/tests/testsuite.at index 974af89..515ffa0 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -14,12 +14,6 @@ AT_CHECK([$abs_top_builddir/tests/subscr/bsc_subscr_test], [], [expout], [experr]) AT_CLEANUP -AT_SETUP([channel]) -AT_KEYWORDS([channel]) -cat $abs_srcdir/channel/channel_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/channel/channel_test], [], [expout], [ignore]) -AT_CLEANUP - AT_SETUP([abis]) AT_KEYWORDS([abis]) cat $abs_srcdir/abis/abis_test.ok > expout -- To view, visit https://gerrit.osmocom.org/9484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 Gerrit-Change-Number: 9484 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:44 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:44 +0000 Subject: Change in osmo-bsc[master]: cosmetic: magic number: use RSL_ACT_ constant for chan act Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9485 Change subject: cosmetic: magic number: use RSL_ACT_ constant for chan act ...................................................................... cosmetic: magic number: use RSL_ACT_ constant for chan act Change-Id: I64ac2a17634f18322828ee2aa2284b0513130488 --- M src/osmo-bsc/bsc_api.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/9485/1 diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 5334314..02a59cc 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -104,7 +104,7 @@ if (chan_mode == GSM48_CMODE_SPEECH_AMR) bsc_mr_config(conn, new_lchan, full_rate); - if (rsl_chan_activate_lchan(new_lchan, 0x1, 0) < 0) { + if (rsl_chan_activate_lchan(new_lchan, RSL_ACT_INTRA_NORM_ASS, 0) < 0) { LOGPLCHAN(new_lchan, DHO, LOGL_ERROR, "could not activate channel\n"); lchan_free(new_lchan); return -1; -- To view, visit https://gerrit.osmocom.org/9485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I64ac2a17634f18322828ee2aa2284b0513130488 Gerrit-Change-Number: 9485 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:44 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:44 +0000 Subject: Change in osmo-bsc[master]: doc: tweak msc charts on Assignment/Handover: act_timer Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9486 Change subject: doc: tweak msc charts on Assignment/Handover: act_timer ...................................................................... doc: tweak msc charts on Assignment/Handover: act_timer Change-Id: I6205e43c227652432548c5c99bed5a197c095da2 --- M doc/assignment.msc M doc/handover.msc 2 files changed, 17 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/9486/1 diff --git a/doc/assignment.msc b/doc/assignment.msc index e2bdf84..d470d01 100644 --- a/doc/assignment.msc +++ b/doc/assignment.msc @@ -54,14 +54,17 @@ bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; ...; bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over Chan Release nor dyn TS switchover!"]; + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; ...; bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; bts <= bsc [label="RSL Chan Activ"]; --- [label="else (no dyn TS switchover)"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; bts <= bsc [label="RSL Chan Activ"]; bsc -> bsc_gscon [label="gsm0808_assign_req() returns"]; bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; @@ -79,6 +82,10 @@ ...; bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; + bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; bsc box bsc [label="bsc_api.c handle_chan_ack()"]; ms <= bsc [label="RR Assignment Command"]; @@ -135,6 +142,8 @@ --- [label="End: 'On timeout'"]; ...; bts => bsc [label="RSL RF Channel Release Ack"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop lchan->T3111"]; --- [label="End: 'Release old lchan'"]; bsc box bsc [label="still in handle_ass_compl()"]; bsc note bsc [label="officially take over new lchan: conn->lchan = conn->secondary_lchan"]; diff --git a/doc/handover.msc b/doc/handover.msc index e5e787c..8862dd9 100644 --- a/doc/handover.msc +++ b/doc/handover.msc @@ -20,7 +20,8 @@ bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; ...; bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over Chan Release nor dyn TS switchover!"]; + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; ...; bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; @@ -38,6 +39,9 @@ label="There seems to be no timer watching out for RSL Chan Activ ACK/NACK!"]; ...; bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; bsc box bsc [label="ho_chan_activ_ack()"]; @@ -132,6 +136,8 @@ --- [label="End: 'On timeout'"]; ...; bts => bsc [label="RSL RF Channel Release Ack"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop lchan->T3111"]; ---; bsc box bsc [label="still in ho_gsm48_ho_compl()"]; -- To view, visit https://gerrit.osmocom.org/9486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6205e43c227652432548c5c99bed5a197c095da2 Gerrit-Change-Number: 9486 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:44 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:44 +0000 Subject: Change in osmo-bsc[master]: doc: add lchan-release.msc Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9487 Change subject: doc: add lchan-release.msc ...................................................................... doc: add lchan-release.msc Change-Id: Ibcf2326cbc5a5f3f249ae15564825c83b5a063c8 --- M doc/Makefile.am A doc/lchan-release.msc 2 files changed, 150 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/9487/1 diff --git a/doc/Makefile.am b/doc/Makefile.am index cc2e277..3c8c2e0 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -5,6 +5,7 @@ msc: \ $(builddir)/handover.png \ $(builddir)/assignment.png \ + $(builddir)/lchan-release.png \ $(NULL) $(builddir)/%.png: $(srcdir)/%.msc diff --git a/doc/lchan-release.msc b/doc/lchan-release.msc new file mode 100644 index 0000000..f75b559 --- /dev/null +++ b/doc/lchan-release.msc @@ -0,0 +1,149 @@ +msc { + hscale=2; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + + ms note bsc_gscon [label="various lchan release scenarios"]; + + + ms rbox bsc_gscon [label="IF BSC releases, from BSSMAP Clear Request"]; + bsc note bsc [label="lchan_release() may be called with sacch_deact=true or false. + Currently, the only time lchan_release(sacch_deact=true) is invoked is upon BSSMAP Clear + Command, i.e. when the MSC instructs to stop using an active lchan. + Some error handling code paths however directly invoke + rsl_rf_chan_release(error=1, SACCH_DEACTIVATE)."]; + + ---; + bsc_gscon note bsc_gscon [label="Rx: BSSMAP Clear Request from MSC"]; + bsc <- bsc_gscon [label="gsm0808_clear()"]; + bsc box bsc [label="lchan_release(sacch_deact=1)"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=1)"]; + bsc box bsc [label="rsl_release_sapis_from(start=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI, except link_id=0"]; + ms <= bsc [label="RR Channel Release"]; + ms note bsc [label="There is no ACK for RR Channel Release"]; + bsc box bsc [label="rsl_deact_sacch()"]; + bts <= bsc [label="RSL Deactivate SACCH"]; + bsc abox bsc [label="Start T3109 (net->T3109, t3109_expired())"]; + ...; + --- [label="If T3109 expires"]; + bsc box bsc [label="t3109_expired()"]; + bsc box bsc [label="rsl_rf_chan_release(error=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI, except link_id=0"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bts <= bsc [label="RSL RF Channel Release"]; + ---; + ...; + bsc rbox bsc [label="continue in the 'Common' part"]; + --- [label="END: 'BSSMAP Clear Request'"]; + ...; + ...; + + ms rbox bsc_gscon [label="IF BSC releases, from implicitly unused lchan"]; + bsc note bsc [label="The BSC may release old unused lchans after Handover, or release lchans + after some error condition."]; + bsc note bsc [label="BSC decides to release an unused lchan"]; + bsc box bsc [label="lchan_release(sacch_deact=0)"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for all SAPIs"]; + ...; + bts note bsc_gscon [linecolor="red", + label="There seems to be no timer watching over RSL Release Request!"]; + ...; + bts => bsc [label="RSL Release Confirm..."]; + bts => bsc [label="...for all SAPIs"]; + bsc rbox bsc [label="continue in the 'Common' part"]; + ---; + ...; + ...; + + ms rbox bsc_gscon [label="IF MS releases"]; + ms => bts [label="DISC"]; + bts => bsc [label="RLL Release Ind..."]; + bts => bsc [label="...for each SAPI"]; + bsc rbox bsc [label="continue in the 'Common' part"]; + ---; + ...; + ...; + ms rbox bsc_gscon [label="Common"]; + --- [label="for each SAPI (?)"]; + bts => bsc [label="RLL Release Confirm / RLL Release Ind"]; + bsc box bsc [label="abis_rsl_rx_rll()"]; + bsc box bsc [label="mark lchan->sapis[link_id] = LCHAN_SAPI_UNUSED"]; + bsc box bsc [label="rll_indication()"]; + bsc box bsc [label="for each bsc_rll_req matching this link_id: + disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; + bsc box bsc [label="rsl_handle_release()"]; + --- [label="IF all SAPIs are unused"]; + bsc box bsc [label="Stop T3109"]; + bsc note bsc [label="T3109 was started if the MSC requested the release"]; + bsc abox bsc [label="Start T3111 (net->T3111 value, t3111_expired())"]; + --- [label="END: all SAPIs are unused"]; + bsc -> bsc_gscon [label="GSCON_EV_RLL_REL_IND (only if RLL Release Ind)"]; + --- [label="END: for each SAPI"]; + + ...; + bsc box bsc [label="T3111 expires"]; + bsc box bsc [label="rsl_rf_chan_release()"]; + bsc box bsc [label="Stop T3109"]; + bsc note bsc [label="[If lchan->state is LCHAN_S_REL_ERR, don't do anything]"]; + bsc abox bsc [label="Start lchan->act_timer (4s, lchan_deact_tmr_cb())"]; + bts <= bsc [label="RSL RF Channel Release"]; + + ...; + --- [label="IF lchan->act_timer expires"]; + bsc box bsc [label="lchan_deact_tmr_cb()"]; + bsc box bsc [label="rsl_lchan_mark_broken(): lchan->state = LCHAN_S_BROKEN"]; + bsc box bsc [label="lchan_free() (see below)"]; + --- [label="END: 'lchan->act_timer expires'"]; + ...; + + bts => bsc [label="RSL RF Channel Release ACK"]; + bsc box bsc [label="rsl_rx_rf_chan_rel_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop T3111"]; + + --- [label="IF lchan->state == LCHAN_S_BROKEN"]; + bsc note bsc [label="If an ACK comes in late, for specific BTS models, we may choose to 'repair' + the lchan so that it is usable again, by calling do_lchan_free() directly (see below)."]; + bsc box bsc [label="rsl_rx_rf_chan_rel_ack() exits here and none of below actions happen. + The lchan remains LCHAN_S_BROKEN indefinitely."]; + --- [label="END: lchan->state == LCHAN_S_BROKEN"]; + bsc box bsc [label="do_lchan_free()"]; + --- [label="IF lchan->state == LCHAN_S_REL_ERR"]; + bsc note bsc [label="If release failed, we take the lchan back into operation after due + timeout"]; + bsc abox bsc [label="Start lchan->error_timer (T3111+2, error_timeout_cb())"]; + bsc note bsc [label="do_lchan_free() continues, async:"]; + ...; + bsc box bsc [label="error_timeout_cb()"]; + bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; + bsc box bsc [label="dyn TS: activate PDCH..."]; + --- [label="ELSE"]; + bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; + --- [label="END: lchan->state == LCHAN_S_REL_ERR"]; + bsc box bsc [label="lchan_free()"]; + --- [label="IF conn is still associated (and not dyn TS in switchover)"]; + bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; + bsc box bsc [label="handle_release()"]; + bsc box bsc [label="Stop T10"]; + bsc note bsc [linecolor=orange,label="conn->T10 is actually dead code, it is never started. + Instead, the conn FSM starts ST_WAIT_ASS_COMPL with a T10 value."]; + bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; + bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP: BSSMAP Clear Request"]; + bsc box bsc [label="bsc_clear_handover()"]; + bsc box bsc [label="Stop T3103"]; + bsc box bsc [label="free handover struct"]; + bsc box bsc [label="lchan->conn = NULL"]; + --- [label="END: 'conn is still associated'"]; + bsc box bsc [label="Stop T3101"]; + bsc note bsc [label="T3101 is started when sending an RR Immediate Assignment"]; + bsc -> bsc [label="S_CHALLOC_FREED"]; + bsc -> bsc [label="rll_lchan_signal()"]; + bsc box bsc [label="for each bsc_rll_req matching this lchan: + disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; +} -- To view, visit https://gerrit.osmocom.org/9487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibcf2326cbc5a5f3f249ae15564825c83b5a063c8 Gerrit-Change-Number: 9487 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:44 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:44 +0000 Subject: Change in osmo-bsc[master]: doc: add ms-channel-request.msc Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9488 Change subject: doc: add ms-channel-request.msc ...................................................................... doc: add ms-channel-request.msc Change-Id: Iab22b8ae85a1a54d2f4002733e6068356368101b --- M doc/Makefile.am A doc/ms-channel-request.msc 2 files changed, 64 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/9488/1 diff --git a/doc/Makefile.am b/doc/Makefile.am index 3c8c2e0..5fe5674 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -6,6 +6,7 @@ $(builddir)/handover.png \ $(builddir)/assignment.png \ $(builddir)/lchan-release.png \ + $(builddir)/ms-channel-request.png \ $(NULL) $(builddir)/%.png: $(srcdir)/%.msc diff --git a/doc/ms-channel-request.msc b/doc/ms-channel-request.msc new file mode 100644 index 0000000..c0ef60f --- /dev/null +++ b/doc/ms-channel-request.msc @@ -0,0 +1,63 @@ +msc { + hscale=3; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + + ms note bsc_gscon [label="lchan allocation sequence for RSL Channel Request"]; + + ms => bts [label="RR Channel Request"]; + bts => bsc [label="RSL Channel Request"]; + bsc box bsc [label="rsl_rx_chan_rqd()"]; + bsc note bsc [label="Obtain RACH data from Request: - Reference - Access Delay (TA) + - Request Reason - Channel Type"]; + bsc note bsc [label="If the reason is PDCH, the RACH Request is forwarded to PCU and BSC is no + longer concerned (rsl_rx_pchan_rqd())."]; + bsc note bsc [label="Always try to allocate an SDCCH regardless of the requested type, only if no + SDCCH is available, look for the actually requested channel type."]; + bsc box bsc [label="lchan_alloc(SDCCH, allow_bigger=0)"]; + + --- [label="IF no lchan is available (neither SDCCH nor requested type)"]; + bsc note bsc [label="Figure out T3122 value from bts->T3122, network->T3122 or + GSM_T3122_DEFAULT"]; + bsc box bsc [label="rsl_send_imm_ass_rej()"]; + bsc note bsc [label="..."]; + bts <= bsc [label="RR Immediate Assign Reject"]; + ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; + bsc note bsc [label="rsl_rx_pchan_rqd() exits, no channel is allocated."]; + ---; + + bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"]; + bsc abox bsc [label="Start lchan->act_timer (4s, lchan_act_tmr_cb())"]; + + bsc box bsc [label="rsl_chan_activate_lchan(RSL_ACT_INTRA_IMM_ASS)"]; + --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; + bsc box bsc [linecolor=red,label="Osmocom style dyn TS use the lchan->act_timer for an RSL RF + Channel Release, to release PDCH mode. This will actually overwrite above act_timer!"]; + bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; + bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; + bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + ...; + bts note bsc_gscon [linecolor="red", + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; + ...; + bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; + bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; + bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + ---; + + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; + bts <= bsc [label="RSL Chan Activ: Immediate Assignment"]; + ...; + bsc note bsc [label="Timeout of lchan->act_timer causes the + lchan->state to go to LCHAN_S_BROKEN, but no events or actions + are triggered."]; + ...; + bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; + bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK (has no effect)"]; + bsc note bsc [label="Since this was an Immediate Assignment, no further action is required on + behalf of the BSC. The MS is now free to use the lchan."]; +} -- To view, visit https://gerrit.osmocom.org/9488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iab22b8ae85a1a54d2f4002733e6068356368101b Gerrit-Change-Number: 9488 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:01:45 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:01:45 +0000 Subject: Change in osmo-bsc[master]: doc: charts: illustrate new plan for ts and lchans Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9489 Change subject: doc: charts: illustrate new plan for ts and lchans ...................................................................... doc: charts: illustrate new plan for ts and lchans Add lchan and timeslot FSM charts to illustrate planning of how osmo-bsc should handle lchan assignment and release. Modify assignment, handover, lchan-release charts according to the new plan. Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936 --- M doc/Makefile.am M doc/assignment.msc A doc/handover-inter-bsc-mo.msc A doc/handover-inter-bsc-mt.msc M doc/handover.msc A doc/lchan-fsm.dot M doc/lchan-release.msc A doc/lchan.msc M doc/ms-channel-request.msc A doc/timeslot-fsm.dot A doc/timeslot.msc A doc/ts-and-lchan-fsm-lifecycle.msc 12 files changed, 1,098 insertions(+), 466 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/9489/1 diff --git a/doc/Makefile.am b/doc/Makefile.am index 5fe5674..ca0470d 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -7,11 +7,24 @@ $(builddir)/assignment.png \ $(builddir)/lchan-release.png \ $(builddir)/ms-channel-request.png \ + $(builddir)/timeslot.png \ + $(builddir)/lchan.png \ + $(builddir)/ts-and-lchan-fsm-lifecycle.png \ + $(builddir)/handover-inter-bsc-mo.png \ + $(builddir)/handover-inter-bsc-mt.png \ + $(NULL) + +dot: \ + $(builddir)/timeslot-fsm.png \ + $(builddir)/lchan-fsm.png \ $(NULL) $(builddir)/%.png: $(srcdir)/%.msc mscgen -T png -o $@ $< +$(builddir)/%.png: $(srcdir)/%.dot + dot -Tpng $< > $@ + .PHONY: poll poll: - while true; do $(MAKE) msc; sleep 1; done + while true; do $(MAKE) msc dot; sleep 1; done diff --git a/doc/assignment.msc b/doc/assignment.msc index d470d01..9f10ea1 100644 --- a/doc/assignment.msc +++ b/doc/assignment.msc @@ -1,190 +1,126 @@ msc { hscale=3; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw[label="MGW"], msc_[label="MSC"]; + ms [label="MS/BTS"], bsc_lchan[label="BSC lchan FSM"], + bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw_msc[label="MGW/MSC"]; - ms note msc_ [label="lchan allocation sequence for BSSMAP Assignment Request"]; + ms note mgw_msc [label="lchan allocation sequence for BSSMAP Assignment Request"]; - bsc <= msc_ [label="BSSMAP Assignment Request"]; - bsc box bsc [label="bssmap_handle_assignm_req()"]; - bsc -> bsc_gscon [label="GSCON_EV_A_ASSIGNMENT_CMD"]; + bsc_gscon <= mgw_msc [label="BSSMAP Assignment Request"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_LCHAN"]; - --- [label="is the chan_mode a speech mode?"]; + bsc_lchan <- bsc_gscon [label="lchan_select_by_chan_mode(chan_mode)"]; + |||; + --- [label="IF returned lchan is NULL"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + ---; + |||; + bsc_gscon box bsc_gscon [label="store lchan pointer in conn->lchan_for_assignment"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(FOR_ASSIGNMENT)"]; + ...; + |||; + --- [label="on lchan FSM error or timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: 'on error'"]; + ...; + ...; - bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_BTS (MGCP_MGW_TIMEOUT = 4s)"]; + --- [label="IF lchan FSM decides that it is an lchan for speech"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + --- [label="IF there is an MGW endpoint for the BTS already (conn->user_plane.fi_bts)"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="ELSE: no MGW endpoint for the BTS side yet"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_CRCX_BTS"]; + bsc_gscon box bsc_gscon [label="assignment_created_mgw_endpoint = true"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; - bsc_mgcp => mgw [label="CRCX (for BTS)"]; - bsc_mgcp abox bsc_mgcp [label="ST_CRCX (MGCP_MGW_TIMEOUT = 4s)"]; - bsc_gscon note bsc_mgcp [label="two timeouts running in parallel"]; - bsc_gscon note bsc_mgcp [label="note: #define MGCP_MGW_TIMEOUT exists twice, - once in libosmo-mgcp-client, - once in bsc_subscr_conn_fsm.c"]; - bsc_mgcp -> bsc_gscon [label="mgcp_conn_create() exits"]; - bsc_gscon -> bsc [label="bssmap_handle_assignm_req() exits"]; + bsc_mgcp abox bsc_mgcp [label="ST_CRCX_RESP (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_mgcp => mgw_msc [label="CRCX (for BTS)"]; + bsc_gscon note bsc_mgcp [label="conn FSM relies on mgcp FSM timeout"]; ...; --- [label="On Timeout"]; - bsc_gscon note bsc_gscon [label="The conn FSM likely timeouts first"]; - bsc_gscon => msc_ [label="BSSMAP Assignment Failure"]; - bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; - bsc_mgcp note bsc_mgcp [label="The MGCP FSM will timeout right after that, and terminate itself, - emitting the parent_term event set upon mgcp_conn_create():"]; + bsc_mgcp note bsc_mgcp [label="On timeouit, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS"]; bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS is handled by the conn FSM allstate - handler. It sets conn->user_plane.fi_bts = NULL. There is code - that would emit a BSSMAP Assignment Failure, but not in - ST_ACTIVE"]; - --- [label="end: 'On Timeout'"]; + handler. It sets conn->user_plane.fi_bts = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_lchan note bsc_gscon [label="conn FSM timeout handler exits and relies on the lchan FSM + signalling error, which should actually happen immediately:"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + --- [label="END: 'On Timeout'"]; ...; - bsc_mgcp <= mgw [label="CRCX OK (for BTS)"]; + bsc_mgcp <= mgw_msc [label="CRCX OK (for BTS)"]; bsc_mgcp box bsc_mgcp [label="libosmo-mgcp-client fsm_crcx_resp_cb()"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_CRCX_RESP_BTS"]; - --- [label="end: 'is the chan_mode a speech mode?'"]; - - bsc_gscon note bsc_gscon [label="for mode=sign, we're still handling GSCON_EV_A_ASSIGNMENT_CMD; - for speech mode, we're handling GSCON_EV_MGW_CRCX_RESP_BTS"]; - bsc <- bsc_gscon [label="gsm0808_assign_req()"]; - - bsc box bsc [label="lchan_alloc(): pick available lchan"]; - bsc box bsc [label="rsl_chan_activate_lchan()"]; - - --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; - bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; - bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; - bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_LCHAN"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="END: lchan FSM decides that it is an lchan for speech"]; ...; - bts note bsc_gscon [linecolor="red", - label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there - seems to be no timer watching over PDCH Deact!"]; ...; - bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; - bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; - bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; - bts <= bsc [label="RSL Chan Activ"]; - --- [label="else (no dyn TS switchover)"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; - bts <= bsc [label="RSL Chan Activ"]; - bsc -> bsc_gscon [label="gsm0808_assign_req() returns"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; - ---; - + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_COMPLETE\nT10, 6s"]; + ms <= bsc_gscon [label="RR Assignment"]; ...; --- [label="On Timeout"]; - bsc_gscon => msc_ [label="BSSMAP Assignment Failure"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_LCHAN_RELEASE"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + --- [label="IF assignment_created_mgw_endpoint == true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon note bsc_mgcp [label="If the MGW endpoint didn't exist before the Assignment, release + it now. If there was one before this, it is probably still in use by a previous lchan, so + keep it in place."]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; - bsc_gscon note bsc_mgcp [linecolor="red", - label="The mgcp FSM from CRCX above apparently lacks a cleanup action for this case. - It should be cleaned up eventually when the conn is torn down, but we should - release RTP endpoints as soon as possible."]; - --- [label="end: 'On Timeout'"]; + --- [label="END: 'On Timeout'"]; ...; - - bts => bsc [label="RSL Chan Activ ACK"]; - bsc box bsc [label="rsl_rx_chan_act_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; - bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; - bsc box bsc [label="bsc_api.c handle_chan_ack()"]; - ms <= bsc [label="RR Assignment Command"]; - - ...; - ms note bsc_gscon [label="We rely on the overall conn FSM ST_WAIT_ASS_COMPL timeout."]; - ...; - - ms => bsc [label="RR Assignment Complete"]; - bsc box bsc [label="handle_ass_compl()"]; - --- [label="Release old lchan"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; - bsc box bsc [label="rsl_release_sapis_from(start=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI except link_id=0"]; - bsc box bsc [label="rsl_release_request(link_id=0)"]; - bts <= bsc [label="RSL Release Request (Local End) for link_id=0"]; - bsc box bsc [label="_lchan_handle_release() returns here, the remaining release is asynchronous; - see `End: 'Release old lchan'` below."]; - ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over RSL Release Request!"]; - ...; - bts => bsc [label="RSL Release Confirm..."]; - bts => bsc [label="...for each SAPI and link_id=0"]; - bsc abox bsc [label="start T3111"]; - ...; - bsc box bsc [label="T3111 expires"]; - bsc abox bsc [label="Start lchan->act_timer with lchan_deact_tmr_cb"]; - bts <= bsc [label="RSL RF Channel Release"]; - ...; - --- [label="On timeout"]; - bsc box bsc [label="lchan_deact_tmr_cb()"]; - bsc box bsc [label="rsl_lchan_mark_broken(): state=LCHAN_S_BROKEN"]; - bsc box bsc [label="lchan_free()"]; - bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; - bsc box bsc [label="bsc_api.c handle_release()"]; - bsc box bsc [label="bsc->assign_fail()"]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; - bsc note bsc_gscon [linecolor="orange", - label="The name 'RR_ASS_FAIL' might suggest the event means an actual RR Assignment - Failure message being received. Maybe this should be called GSCON_EV_ASSIGNMENT_ERROR."]; - ...; - bsc box bsc [label="bsc->clear_request()"]; - bsc box bsc [label="bsc_clear_request encodes a BSSMAP Clear Request message and passes it on - to the conn FSM as data argument via:"]; - bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP"]; - bsc_gscon => msc_ [label="BSSMAP Clear Request"]; - bsc note bsc_gscon [linecolor="red", - label="Instead of sending an arbitrary message, the conn FSM should - be explicitly instructed to clear the connection, to be able - to notice if the MSC failed to respond to the Clear Request. - Currently, this relies on the MSC responding with a Clear - Command, hopefully, some time later."]; - --- [label="End: 'On timeout'"]; - ...; - bts => bsc [label="RSL RF Channel Release Ack"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="Stop lchan->T3111"]; - --- [label="End: 'Release old lchan'"]; - bsc box bsc [label="still in handle_ass_compl()"]; - bsc note bsc [label="officially take over new lchan: conn->lchan = conn->secondary_lchan"]; - --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; - bts <= bsc [label="IPACC CRCX"]; - ---; - bsc -> bsc [label="handle_ass_compl() calls bsc_api->assign_compl()"]; - --- [label="is BTS using IPA Abis? (osmo-bts, ip.access) && conn->user_plane.rtp_ip"]; - bsc box bsc [label="bsc_assign_compl()"]; - bsc note bsc [label="set ass_compl.valid = true, - postponing GSCON_EV_RR_ASS_COMPL until after the - IPACC MDCX ACK received in osmo_bsc_audio.c"]; - bsc box bsc [label="exit early: bsc_assign_compl()"]; - bsc box bsc [label="exit early: handle_ass_compl()"]; - bsc box bsc [label="osmo_bsc_audio.c"]; - bts => bsc [label="IPACC CRCX ACK"]; - bts <= bsc [label="IPACC MDCX"]; - bts => bsc [label="IPACC MDCX ACK"]; - bsc box bsc [label="handle_abisip_signal()"]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_COMPL"]; - --- [label="else"]; - bsc box bsc [label="bsc_assign_compl()"]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_COMPL"]; - --- ; - - --- [label="is chan_mode a speech mode?"]; + ms => bsc_gscon [label="RR Assignment Complete"]; + bsc_gscon -> bsc_lchan [label="OLD lchan: LCHAN_EV_LCHAN_RELEASE"]; + bsc_gscon box bsc_gscon [label="conn->lchan = conn->lchan_for_assignment"]; + --- [label="IF: chan_mode a speech mode?"]; bsc_gscon abox bsc_gscon [label="ST_WAIT_MDCX_BTS"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; bsc_mgcp note bsc_mgcp [label="same mgcp FSM as above, for BTS side"]; - bsc_mgcp => mgw [label="MDCX (for BTS)"]; - bsc_mgcp <= mgw [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_MDCX_RESP"]; + bsc_mgcp => mgw_msc [label="MDCX (for BTS)"]; + ...; + --- [label="On Timeout"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_MSC"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; bsc_mgcp note bsc_mgcp [label="second mgcp FSM for MSC side"]; - bsc_mgcp => mgw [label="CRCX (for MSC)"]; - bsc_mgcp <= mgw [label="CRCX OK (for MSC)"]; + bsc_mgcp => mgw_msc [label="CRCX (for MSC)"]; + ...; + --- [label="On Timeout"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="CRCX OK (for MSC)"]; bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_CRCX_RESP_MSC"]; - ---; + --- [label="END: chan_mode a speech mode?"]; - bsc_gscon => msc_ [label="BSSMAP Assignment Complete"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Complete"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; } diff --git a/doc/handover-inter-bsc-mo.msc b/doc/handover-inter-bsc-mo.msc new file mode 100644 index 0000000..9aff7a7 --- /dev/null +++ b/doc/handover-inter-bsc-mo.msc @@ -0,0 +1,37 @@ +msc { + hscale=2; + ms [label="MS via BTS"], bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + msc_[label="MSC"]; + + ms note msc_ [label="inter-BSC Handover to another BSS"]; + + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="bsc_handover_start(): init conn->ho"]; + bsc_gscon -> bsc_gscon [label="GSCON_EV_HO_START (inter-BSC MO)"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MO_\nWAIT_HO_CMD\nT7"]; + bsc_gscon => msc_ [label="BSSMAP Handover Required"]; + ...; + --- [label="On Timeout"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_gscon <= msc_ [label="BSSMAP Handover Command"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MO_\nWAIT_CLEAR_CMD\nT8"]; + ms <= bsc_gscon [label="RR Handover Command"]; + ...; + --- [label="On Timeout"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="END: 'On Timeout'"]; + ...; + msc_ note msc_ [label="Remote BSS reported Handover Complete to the MSC, this connection has been + superseded."]; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon abox bsc_gscon [label="ST_CLEARING"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; +} diff --git a/doc/handover-inter-bsc-mt.msc b/doc/handover-inter-bsc-mt.msc new file mode 100644 index 0000000..88a52da --- /dev/null +++ b/doc/handover-inter-bsc-mt.msc @@ -0,0 +1,154 @@ +msc { + hscale=3; + ms [label="MS via BTS"], bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + bsc_mgcp[label="BSC mgcp FSM"], mgw_msc[label="MGW/MSC"]; + + ms note mgw_msc [label="inter-BSC Handover, from remote BSS"]; + + bsc_gscon <= mgw_msc [label="N-Connect: BSSMAP Handover Request"]; + bsc_gscon box bsc_gscon [label="bsc_subscr_con_allocate()"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_LCHAN"]; + bsc_gscon box bsc_gscon [label="lchan_select_by_chan_mode()"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_HANDOVER)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_TS_READY"]; + ...; + --- [label="on no lchan, lchan FSM error or timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: 'on error'"]; + ...; + + --- [label="IF lchan FSM decides that it is an lchan for speech"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_CRCX_BTS"]; + bsc_gscon box bsc_gscon [label="handover_created_mgw_endpoint = true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp => mgw_msc [label="CRCX (for BTS)"]; + bsc_mgcp abox bsc_mgcp [label="ST_CRCX_RESP (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_gscon note bsc_mgcp [label="conn FSM relies on mgcp FSM timeout"]; + ...; + --- [label="On Timeout"]; + bsc_mgcp note bsc_mgcp [label="On timeout, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS is handled by the conn FSM allstate + handler. It sets conn->user_plane.fi_bts = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_lchan note bsc_gscon [label="conn FSM error handler exits and relies on the lchan FSM + signalling error, which should actually happen immediately:"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: 'On Timeout'"]; + ...; + + bsc_mgcp <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_mgcp box bsc_mgcp [label="libosmo-mgcp-client fsm_crcx_resp_cb()"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_CRCX_RESP_BTS"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_ACTIV_ACK"]; + bsc_gscon note bsc_gscon [label="MSC-side CRCX needs from Handover Required the RTP IP address + and port of the MSC's MGW; from MGW CRCX ACK (BTS) the conn->user_plane.mgw_endpoint; The + Call-ID, which we actually derive from the SCCP connection ID"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_CRCX_MSC"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp note bsc_mgcp [label="second mgcp FSM for MSC side"]; + bsc_mgcp => mgw_msc [label="CRCX (for MSC)"]; + ...; + --- [label="On Timeout"]; + bsc_mgcp note bsc_mgcp [label="On timeout, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_MSC"]; + bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_MSC is handled by the conn FSM allstate + handler. It sets conn->user_plane.fi_msc = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete() (FSM for BTS)"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="CRCX OK (for MSC)"]; + bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_CRCX_RESP_MSC"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_LCHAN"]; + --- [label="END: chan_mode a speech mode?"]; + --- [label="END: lchan FSM decides that it is an lchan for speech"]; + ...; + ...; + + bsc_lchan note bsc_lchan [label="TODO: when does the MS send RLL Establish Ind? I guess like + this:"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_RLL_ESTABLISH"]; + ms => bsc_lchan [label="RLL Establish Ind"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_\nWAIT_HO_ACCEPT\nsanity timer?"]; + bsc_gscon box bsc_gscon [label="Compose RR Handover Command"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Request Acknowledge"]; + mgw_msc note mgw_msc [label="MSC forwards the RR HO Cmd to the remote BSS"]; + + ...; + --- [label="On timeout"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: On timeout"]; + ...; + ms => bsc_gscon [label="RR Handover Accept"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Detect"]; + mgw_msc note mgw_msc [label="MSC switches call to new path"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_SABM\nT3105"]; + ...; + ms => bsc_gscon [label="SABM"]; + bsc_lchan note bsc_lchan [label="SABM: Layer 2 message containing ?"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_\nWAIT_MDCX_BTS\nT?"]; + bsc_lchan note bsc_lchan [label="TODO: what is UA?"]; + ms <= bsc_gscon [label="RR UA"]; + bsc_gscon note bsc_gscon [label="TODO: at what point do we know the information needed for BTS + MDCX?"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; + bsc_mgcp abox bsc_mgcp [label="ST_MDCX_RESP"]; + bsc_mgcp => mgw_msc [label="MDCX (for BTS)"]; + ...; + --- [label="Should the Handover Complete arrive early"]; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="handover_complete_received = true"]; + ---; + ...; + --- [label="On timeout of the mgcp FSM"]; + bsc_gscon note mgw_msc [label="MGCP FSM terminates"]; + bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_lchan note bsc_gscon [label="The phone has already taken on the new lchan, but now we happen + to not be able to use it. The only sensible thing is to end the conn."]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request\n(Equipment Failure)"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + --- [label="END: On timeout of the mgcp FSM"]; + ...; + bsc_mgcp <= mgw_msc [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; + --- [label="IF !handover_complete_received"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_HO_COMPL\nT?"]; + --- [label="ELSE"]; + bsc_gscon -> bsc_gscon [label="gscon_handover_post_complete()"]; + ---; + ...; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="gscon_handover_post_complete()"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Complete"]; + bsc_gscon note bsc_gscon [label="handover_end(success), conn->ho = NULL"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; +} diff --git a/doc/handover.msc b/doc/handover.msc index 8862dd9..7529de6 100644 --- a/doc/handover.msc +++ b/doc/handover.msc @@ -1,170 +1,123 @@ # Handover between cells, intra-BSC msc { hscale=3; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw[label="MGW"]; + ms [label="MS via BTS"], bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + bsc_mgcp[label="BSC mgcp FSM"], mgw_msc[label="MGW/MSC"]; - ms note mgw [label="intra-BSC Handover sequence"]; + ms note mgw_msc [label="intra-BSC Handover sequence"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; - bsc box bsc [label="bsc_handover_start(): init conn->ho"]; - bsc -> bsc_gscon [label="GSCON_EV_HO_START"]; - bsc <- bsc_gscon [label="bsc_handover_start_gscon()"]; - - bsc box bsc [label="lchan_alloc(): pick available lchan"]; - bsc box bsc [label="rsl_chan_activate_lchan()"]; - - --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; - bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; - bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; - bsc -> bsc_gscon [label="bsc_handover_start_gscon() returns early"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; + bsc_gscon box bsc_gscon [label="bsc_handover_start(): init conn->ho"]; + bsc_gscon -> bsc_gscon [label="GSCON_EV_HO_START (intra-BSC)"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_LCHAN"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_HANDOVER)"]; ...; - bts note bsc_gscon [linecolor="red", - label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there - seems to be no timer watching over PDCH Deact!"]; + --- [label="on lchan FSM error or timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: 'on error'"]; ...; - bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; - bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; - bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; - bts <= bsc [label="RSL Chan Activ"]; - --- [label="else (no dyn TS switchover)"]; + ...; - bts <= bsc [label="RSL Chan Activ"]; - bsc -> bsc_gscon [label="bsc_handover_start_gscon() returns"]; + --- [label="IF lchan FSM decides that it is an lchan for speech"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + --- [label="IF there is an MGW endpoint for the BTS already (conn->user_plane.fi_bts)"]; + bsc_gscon box bsc_gscon [label="handover_created_mgw_endpoint = false"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="ELSE: no MGW endpoint for the BTS side yet"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_CRCX_BTS"]; + bsc_gscon box bsc_gscon [label="handover_created_mgw_endpoint = true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp => mgw_msc [label="CRCX (for BTS)"]; + bsc_mgcp abox bsc_mgcp [label="ST_CRCX_RESP (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_gscon note bsc_mgcp [label="conn FSM relies on mgcp FSM timeout"]; + ...; + --- [label="On Timeout"]; + bsc_mgcp note bsc_mgcp [label="On timeout, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS is handled by the conn FSM allstate + handler. It sets conn->user_plane.fi_bts = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_lchan note bsc_gscon [label="conn FSM error handler exits and relies on the lchan FSM + signalling error, which should actually happen immediately:"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="IF handover_created_mgw_endpoint == true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; ---; - bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_mgcp box bsc_mgcp [label="libosmo-mgcp-client fsm_crcx_resp_cb()"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_CRCX_RESP_BTS"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_LCHAN"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="END: lchan FSM decides that it is an lchan for speech"]; ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching out for RSL Chan Activ ACK/NACK!"]; ...; - bts => bsc [label="RSL Chan Activ ACK"]; - bsc box bsc [label="rsl_rx_chan_act_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; - bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; - bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; - bsc box bsc [label="ho_chan_activ_ack()"]; - bsc note bsc [label="gsm48_send_ho_cmd()"]; - ms <= bsc [label="RR Handover Command"]; - bsc abox bsc [label="start T3103"]; - --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; - bts <= bsc [label="IPACC CRCX"]; - bsc -> bsc [label="ho_chan_activ_ack() returns"]; - bts note bsc [linecolor="red", - label="There seems to be no timer watching over IPACC CRCX ACK/NACK! - If no response is received, we simply ignore that fact and carry on as if - everything was fine."]; - ...; - bts note bsc [label="The IPACC CRCX and MDCX ACKs may come back at any time: - before or after the Handover Detect, before or after Handover Complete."]; - bts note bsc_mgcp [linecolor="red", - label="The CRCX ACK contains vital information for routing the RTP stream. - If the CRCX ACK were very slow, we would not know which RTP/RTPC ports - to point the MGW at, below at mgcp_conn_modify()! - Even though this being unrealistic, we must make sure to receive a CRCX ACK."]; - ...; - bsc box bsc [label="osmo_bsc_audio.c"]; - bts => bsc [label="IPACC CRCX ACK"]; - bts <= bsc [label="IPACC MDCX"]; - ...; - bts note bsc [linecolor="red", - label="There seems to be no timer watching over IPACC MDCX ACK/NACK! - If no response is received, we simply ignore that fact and carry on as if - everything was fine."]; - ...; - bts => bsc [label="IPACC MDCX ACK"]; - bts note bsc [label="IPACC MDCX ACK triggers no events or actions"]; - ---; - ...; - ms => bsc [label="RR Handover Detect"]; - bsc -> bsc [label="S_LCHAN_HANDOVER_DETECT"]; - bsc box bsc [label="ho_rsl_detect(): no action, only logging"]; - bsc note bsc_gscon [label="Handover Detect triggers no events or actions"]; - bsc note bsc_gscon [linecolor="red", - label="upon Handover Detect, we should already start re-routing the RTP! - Instead we wait for Handover Complete."]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_DETECT\nT3103"]; + bsc_gscon box bsc_gscon [label="gsm48_send_ho_cmd()"]; + ms <= bsc_gscon [label="RR Handover Command"]; ...; - ms => bsc [label="RR Handover Complete"]; - bsc -> bsc [label="S_LCHAN_HANDOVER_COMPL"]; - bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; - bsc box bsc [label="ho_gsm48_ho_compl()"]; - bsc box bsc [label="stop T3103"]; - bts note bsc_gscon [label="If anything goes wrong from this point on, we will not move back - to the old lchan: would be pointless after Handover Complete."]; - bsc note bsc [label="officially take over new lchan: conn->lchan = ho->new_lchan"]; - - --- [label="Release old lchan"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; - bsc box bsc [label="rsl_release_sapis_from(start=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI except link_id=0"]; - bsc box bsc [label="rsl_release_request(link_id=0)"]; - bts <= bsc [label="RSL Release Request (Local End) for link_id=0"]; - bsc box bsc [label="_lchan_handle_release() returns here, the remaining release is asynchronous; - see `End: 'Release old lchan'` below."]; - ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over RSL Release Request!"]; - ...; - bts => bsc [label="RSL Release Confirm..."]; - bts => bsc [label="...for each SAPI and link_id=0"]; - bsc abox bsc [label="start T3111"]; - ...; - bsc box bsc [label="T3111 expires"]; - bsc abox bsc [label="Start lchan->act_timer with lchan_deact_tmr_cb"]; - bts <= bsc [label="RSL RF Channel Release"]; - ...; --- [label="On timeout"]; - bsc box bsc [label="lchan_deact_tmr_cb()"]; - bsc box bsc [label="rsl_lchan_mark_broken(): state=LCHAN_S_BROKEN"]; - bsc box bsc [label="lchan_free()"]; - bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; - bsc box bsc [label="bsc_api.c handle_release()"]; - bsc box bsc [label="bsc->clear_request()"]; - bsc box bsc [label="bsc_clear_request encodes a BSSMAP Clear Request message and passes it on - to the conn FSM as data argument via:"]; - bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP"]; - bsc_gscon rbox bsc_gscon [label="BSSMAP Clear Request to MSC"]; - bsc note bsc_gscon [linecolor="red", - label="During Handover, we actually release the entire conn just because we failed to - gracefully release the old lchan. That is obviously nonsense."]; - bsc note bsc [label="Stop T3101 (but was not active in this code path)"]; - bsc -> bsc [label="S_CHALLOC_FREED"]; - --- [label="End: 'On timeout'"]; - ...; - bts => bsc [label="RSL RF Channel Release Ack"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="Stop lchan->T3111"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="IF handover_created_mgw_endpoint == true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; ---; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: On timeout"]; + ...; + ms => bsc_gscon [label="RR Handover Detect"]; - bsc box bsc [label="still in ho_gsm48_ho_compl()"]; - bsc note bsc [label="handover_free(), conn->ho = NULL"]; - bsc -> bsc_gscon [label="GSCON_EV_HO_COMPL"]; - bsc note bsc_gscon [linecolor="orange", - label="Handover information is cleared before signalling the conn FSM. - That means the conn FSM cannot possibly log sensible information about exactly - which Handover has just completed."]; - - bsc_gscon abox bsc_gscon [label="ST_WAIT_MDCX_BTS_HO - (MGCP_MGW_TIMEOUT=4s with MGCP_MGW_HO_TIMEOUT_TIMER_NR)"]; - + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_MDCX_BTS\ncontinue T3103"]; + bsc_gscon -> bsc_lchan [label="OLD lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_lchan note bsc_gscon [label="officially take over new lchan: conn->lchan = ho->new_lchan"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; bsc_mgcp note bsc_mgcp [label="mgcp FSM that was established for old lchan, for BTS side"]; - bsc_mgcp => mgw [label="MDCX (for BTS)"]; + bsc_mgcp abox bsc_mgcp [label="ST_MDCX_RESP"]; + bsc_mgcp => mgw_msc [label="MDCX (for BTS)"]; ...; - bsc_gscon note mgw [ - label="If we get no MDCX ACK, the MGCP FSM terminates, and emits GSCON_EV_MGW_FAIL_BTS. - Besides invalidating the MGCP FSM pointer, this event has no - effect in ST_WAIT_MDCX_BTS_HO, and we rely on above conn FSM - timeout instead."]; - bsc_gscon note bsc_gscon [linecolor="red", - label="A timeout of ST_WAIT_MDCX_BTS_HO simply transitions back to ST_ACTIVE! - Even though the MGW failed, we carry on as if everything were fine."]; + --- [label="Should the Handover Complete arrive early"]; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="handover_complete_received = true"]; + ---; ...; - bsc_mgcp <= mgw [label="MDCX OK"]; + --- [label="On timeout of the mgcp FSM"]; + bsc_gscon note mgw_msc [label="MGCP FSM terminates"]; + bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_lchan note bsc_gscon [label="The phone has already taken on the new lchan, but now we happen + to not be able to use it. The only sensible thing is to end the conn."]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request\n(Equipment Failure)"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + ...; + bsc_mgcp <= mgw_msc [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; + --- [label="IF !handover_complete_received"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_COMPLETE\ncontinue T3103"]; + --- [label="ELSE"]; + bsc_gscon -> bsc_gscon [label="gscon_handover_post_complete()"]; + ---; + ...; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="gscon_handover_post_complete()"]; + bsc_gscon note bsc_gscon [label="handover_end(success), conn->ho = NULL"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; } diff --git a/doc/lchan-fsm.dot b/doc/lchan-fsm.dot new file mode 100644 index 0000000..dbb283c --- /dev/null +++ b/doc/lchan-fsm.dot @@ -0,0 +1,53 @@ +digraph G { +rankdir=TB; + + invisible [style="invisible"] + UNUSED [penwidth=3.0] + WAIT_TS_READY + WAIT_MGW_ENDPOINT_AVAILABLE + WAIT_ACTIV_ACK + WAIT_IPACC_CRCX_ACK + WAIT_IPACC_MDCX_ACK + WAIT_RLL_ESTABLISH + ACTIVE [penwidth=3.0] + WAIT_SAPIS_RELEASED + WAIT_BEFORE_RF_RELEASE + WAIT_RF_RELEASE_ACK + WAIT_AFTER_ERROR + BORKEN + + ts [label="timeslot FSM",shape=box3d]; + gscon [label="conn FSM",shape=box3d]; + + UNUSED -> WAIT_TS_READY [label="lchan_allocate()"] + WAIT_TS_READY -> WAIT_ACTIV_ACK + WAIT_ACTIV_ACK -> WAIT_RLL_ESTABLISH + WAIT_RLL_ESTABLISH -> WAIT_MGW_ENDPOINT_AVAILABLE [label="TCH"] + WAIT_MGW_ENDPOINT_AVAILABLE -> WAIT_IPACC_CRCX_ACK [label="IPACC BTS"] + WAIT_MGW_ENDPOINT_AVAILABLE -> ACTIVE + WAIT_IPACC_CRCX_ACK -> WAIT_IPACC_MDCX_ACK + WAIT_IPACC_MDCX_ACK -> ACTIVE + WAIT_RLL_ESTABLISH -> ACTIVE [label="non-TCH"]; + WAIT_RLL_ESTABLISH -> WAIT_RF_RELEASE_ACK [label="timeout",style=dashed,constraint=false] + + ACTIVE -> WAIT_SAPIS_RELEASED [label="LCHAN_EV_\nRELEASE"] + WAIT_SAPIS_RELEASED -> WAIT_BEFORE_RF_RELEASE + WAIT_SAPIS_RELEASED -> WAIT_RF_RELEASE_ACK [label="timeout",style=dashed,constraint=false] + + WAIT_BEFORE_RF_RELEASE -> WAIT_RF_RELEASE_ACK [label="T3111"] + WAIT_RF_RELEASE_ACK -> UNUSED + WAIT_RF_RELEASE_ACK -> WAIT_AFTER_ERROR [label="release was\ndue to error"] + WAIT_AFTER_ERROR -> UNUSED [label="T3111+2s"] + + WAIT_TS_READY -> ts [label="TS_EV_\nLCHAN_\nREQUESTED",style=dotted,penwidth=3] + UNUSED -> ts [label="TS_EV_\nLCHAN_\nUNUSED",style=dotted,penwidth=3] + ts -> WAIT_TS_READY [label="LCHAN_EV_\nTS_READY",style=dotted] + + WAIT_TS_READY -> UNUSED [label="error/timeout",style=dashed,constraint=false] + {WAIT_ACTIV_ACK,WAIT_RF_RELEASE_ACK} -> BORKEN [label="error/timeout",style=dashed] + {WAIT_MGW_ENDPOINT_AVAILABLE,WAIT_IPACC_CRCX_ACK,WAIT_IPACC_MDCX_ACK} -> WAIT_SAPIS_RELEASED [label=error,style=dashed] + + WAIT_TS_READY -> gscon [label="GSCON_EV_\nENSURE_\nMGW_ENDPOINT",style=dotted] + gscon -> WAIT_MGW_ENDPOINT_AVAILABLE [label="LCHAN_EV_\nMGW_ENDPOINT_\n{AVAILABLE,ERROR}",style=dotted] + +} diff --git a/doc/lchan-release.msc b/doc/lchan-release.msc index f75b559..017c9cf 100644 --- a/doc/lchan-release.msc +++ b/doc/lchan-release.msc @@ -1,149 +1,83 @@ msc { hscale=2; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_lchan[label="BSC lchan FSM"], + bsc_gscon[label="BSC conn FSM"], msc_[label="MSC"]; ms note bsc_gscon [label="various lchan release scenarios"]; - - ms rbox bsc_gscon [label="IF BSC releases, from BSSMAP Clear Request"]; - bsc note bsc [label="lchan_release() may be called with sacch_deact=true or false. - Currently, the only time lchan_release(sacch_deact=true) is invoked is upon BSSMAP Clear - Command, i.e. when the MSC instructs to stop using an active lchan. - Some error handling code paths however directly invoke - rsl_rf_chan_release(error=1, SACCH_DEACTIVATE)."]; - - ---; - bsc_gscon note bsc_gscon [label="Rx: BSSMAP Clear Request from MSC"]; - bsc <- bsc_gscon [label="gsm0808_clear()"]; - bsc box bsc [label="lchan_release(sacch_deact=1)"]; - bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=1)"]; - bsc box bsc [label="rsl_release_sapis_from(start=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI, except link_id=0"]; - ms <= bsc [label="RR Channel Release"]; - ms note bsc [label="There is no ACK for RR Channel Release"]; - bsc box bsc [label="rsl_deact_sacch()"]; - bts <= bsc [label="RSL Deactivate SACCH"]; - bsc abox bsc [label="Start T3109 (net->T3109, t3109_expired())"]; + ms rbox msc_ [label="MSC releases"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon abox bsc_gscon [label="ST_CLEARING"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + --- [label="IF SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"]; + bts <= bsc_lchan [label="RSL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for each SAPI, except link_id=0"]; + ms <= bsc_lchan [label="RR Channel Release"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH",ID="if appropriate pchan"]; ...; - --- [label="If T3109 expires"]; - bsc box bsc [label="t3109_expired()"]; - bsc box bsc [label="rsl_rf_chan_release(error=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI, except link_id=0"]; - bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; - bts <= bsc [label="RSL RF Channel Release"]; - ---; + bts => bsc_lchan [label="RSL Release ACKs"]; + --- [label="END: SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"]; + bsc_gscon note bsc_gscon [label="has already forgotten the lchan above."]; ...; - bsc rbox bsc [label="continue in the 'Common' part"]; - --- [label="END: 'BSSMAP Clear Request'"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; ...; ...; - ms rbox bsc_gscon [label="IF BSC releases, from implicitly unused lchan"]; - bsc note bsc [label="The BSC may release old unused lchans after Handover, or release lchans - after some error condition."]; - bsc note bsc [label="BSC decides to release an unused lchan"]; - bsc box bsc [label="lchan_release(sacch_deact=0)"]; - bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for all SAPIs"]; + ms rbox msc_ [label="BSC releases, outside of conn FSM's flow"]; + bsc -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + --- [label="IF SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"]; + bts <= bsc_lchan [label="RSL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for each SAPI, except link_id=0"]; + ms <= bsc_lchan [label="RR Channel Release",ID="if conn is present"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH",ID="if appropriate pchan"]; ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over RSL Release Request!"]; + bts => bsc_lchan [label="RSL Release ACKs"]; + --- [label="END: SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"]; + bsc_gscon note bsc_gscon [label="conn FSM notices that its primary lchan is gone"]; + bsc_gscon => msc_ [label="BSSMAP Clear Request"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; ...; - bts => bsc [label="RSL Release Confirm..."]; - bts => bsc [label="...for all SAPIs"]; - bsc rbox bsc [label="continue in the 'Common' part"]; - ---; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + ...; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon abox bsc_gscon [label="ST_CLEARING"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; ...; ...; - ms rbox bsc_gscon [label="IF MS releases"]; + ms rbox msc_ [label="MS releases"]; ms => bts [label="DISC"]; - bts => bsc [label="RLL Release Ind..."]; - bts => bsc [label="...for each SAPI"]; - bsc rbox bsc [label="continue in the 'Common' part"]; - ---; + bts => bsc_lchan [label="RLL Release Ind..."]; + bts => bsc_lchan [label="...for each SAPI"]; + bsc_lchan note bsc_lchan [label="The lchan FSM notices when all SAPIs have been released"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; ...; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"]; + bsc_gscon note bsc_gscon [label="conn FSM notices that its primary lchan is gone"]; + bsc_gscon => msc_ [label="BSSMAP Clear Request"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; ...; - ms rbox bsc_gscon [label="Common"]; - --- [label="for each SAPI (?)"]; - bts => bsc [label="RLL Release Confirm / RLL Release Ind"]; - bsc box bsc [label="abis_rsl_rx_rll()"]; - bsc box bsc [label="mark lchan->sapis[link_id] = LCHAN_SAPI_UNUSED"]; - bsc box bsc [label="rll_indication()"]; - bsc box bsc [label="for each bsc_rll_req matching this link_id: - disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; - bsc box bsc [label="rsl_handle_release()"]; - --- [label="IF all SAPIs are unused"]; - bsc box bsc [label="Stop T3109"]; - bsc note bsc [label="T3109 was started if the MSC requested the release"]; - bsc abox bsc [label="Start T3111 (net->T3111 value, t3111_expired())"]; - --- [label="END: all SAPIs are unused"]; - bsc -> bsc_gscon [label="GSCON_EV_RLL_REL_IND (only if RLL Release Ind)"]; - --- [label="END: for each SAPI"]; - + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; ...; - bsc box bsc [label="T3111 expires"]; - bsc box bsc [label="rsl_rf_chan_release()"]; - bsc box bsc [label="Stop T3109"]; - bsc note bsc [label="[If lchan->state is LCHAN_S_REL_ERR, don't do anything]"]; - bsc abox bsc [label="Start lchan->act_timer (4s, lchan_deact_tmr_cb())"]; - bts <= bsc [label="RSL RF Channel Release"]; - - ...; - --- [label="IF lchan->act_timer expires"]; - bsc box bsc [label="lchan_deact_tmr_cb()"]; - bsc box bsc [label="rsl_lchan_mark_broken(): lchan->state = LCHAN_S_BROKEN"]; - bsc box bsc [label="lchan_free() (see below)"]; - --- [label="END: 'lchan->act_timer expires'"]; - ...; - - bts => bsc [label="RSL RF Channel Release ACK"]; - bsc box bsc [label="rsl_rx_rf_chan_rel_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="Stop T3111"]; - - --- [label="IF lchan->state == LCHAN_S_BROKEN"]; - bsc note bsc [label="If an ACK comes in late, for specific BTS models, we may choose to 'repair' - the lchan so that it is usable again, by calling do_lchan_free() directly (see below)."]; - bsc box bsc [label="rsl_rx_rf_chan_rel_ack() exits here and none of below actions happen. - The lchan remains LCHAN_S_BROKEN indefinitely."]; - --- [label="END: lchan->state == LCHAN_S_BROKEN"]; - bsc box bsc [label="do_lchan_free()"]; - --- [label="IF lchan->state == LCHAN_S_REL_ERR"]; - bsc note bsc [label="If release failed, we take the lchan back into operation after due - timeout"]; - bsc abox bsc [label="Start lchan->error_timer (T3111+2, error_timeout_cb())"]; - bsc note bsc [label="do_lchan_free() continues, async:"]; - ...; - bsc box bsc [label="error_timeout_cb()"]; - bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; - bsc box bsc [label="dyn TS: activate PDCH..."]; - --- [label="ELSE"]; - bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; - --- [label="END: lchan->state == LCHAN_S_REL_ERR"]; - bsc box bsc [label="lchan_free()"]; - --- [label="IF conn is still associated (and not dyn TS in switchover)"]; - bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; - bsc box bsc [label="handle_release()"]; - bsc box bsc [label="Stop T10"]; - bsc note bsc [linecolor=orange,label="conn->T10 is actually dead code, it is never started. - Instead, the conn FSM starts ST_WAIT_ASS_COMPL with a T10 value."]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; - bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP: BSSMAP Clear Request"]; - bsc box bsc [label="bsc_clear_handover()"]; - bsc box bsc [label="Stop T3103"]; - bsc box bsc [label="free handover struct"]; - bsc box bsc [label="lchan->conn = NULL"]; - --- [label="END: 'conn is still associated'"]; - bsc box bsc [label="Stop T3101"]; - bsc note bsc [label="T3101 is started when sending an RR Immediate Assignment"]; - bsc -> bsc [label="S_CHALLOC_FREED"]; - bsc -> bsc [label="rll_lchan_signal()"]; - bsc box bsc [label="for each bsc_rll_req matching this lchan: - disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; } diff --git a/doc/lchan.msc b/doc/lchan.msc new file mode 100644 index 0000000..9b7d663 --- /dev/null +++ b/doc/lchan.msc @@ -0,0 +1,306 @@ +msc { + hscale=2; + bts [label="MS/BTS"], bsc[label="BSC"], bsc_ts [label="BSC timeslot FSM"], + bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + mgw_msc[label="MGW/MSC"]; + + bts box mgw_msc [label="lchan allocation sequence"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + + bts rbox mgw_msc [label="Channel Request from MS"]; + bts => bsc [label="RSL Channel Request"]; + bsc box bsc [label="lchan_select_by_type(chan_type)"]; + bsc -> bsc_lchan [label="lchan_activate(lchan, FOR_MS_CHANNEL_REQUEST)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + + bts rbox mgw_msc [label="Channel Request from BSSMAP Assignment"]; + bsc_gscon <= mgw_msc [label="BSSMAP Assignment request"]; + bsc_gscon box bsc_gscon [label="lchan_select_by_chan_mode(chan_mode)"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_ASSIGNMENT)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + + bts rbox mgw_msc [label="Channel Request from Handover Decision"]; + bsc note bsc [label="target lchan typically already chosen by Handover Decision"]; + bsc -> bsc_gscon [label="GSCON_EV_HO_START (intra-BSC)"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_HANDOVER)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + + bts rbox mgw_msc [label="Channel Request from intra-BSC-MT-Handover"]; + bsc_gscon <- mgw_msc [label="BSSMAP Handover Request"]; + bsc_gscon box bsc_gscon [label="lchan_select_by_chan_mode(chan_mode)"]; + bsc box bsc [label="lchan_activate(lchan, FOR_HANDOVER)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + bts rbox mgw_msc [label="lchan_activate()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_\nWAIT_TS_READY\n(timeout: ? s, Tnnnn)"]; + |||; + |||; + --- [label="TCH?"]; + bsc_lchan note bsc_gscon [label="This is skipped when FOR_MS_CHANNEL_REQUEST. If the MS requests + a TCH lchan, and we end up actually giving it a TCH because no SDCCH are available, we + can not set up an RTP stream because there is not even an L3 conn yet."]; + bsc_lchan note bsc_gscon [label="The lchan FSM asks the conn FSM to have an MGW endpoint ready as + early as possible. Either the conn already has such MGW endpoint from a previous lchan, + in which case it immediately replies, or it requests one from the MGW, in which case we + wait for a response in 'TCH? (2)' below."]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + --- [label="IF conn has user_plane.fi_bts in state ST_READY"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan box bsc_lchan [label="mgw_endpoint_available = true"]; + bsc_lchan note bsc_lchan [label="lchan_activate() continues"]; + --- [label="ELSE (no MGW endpoint available yet)"]; + bsc_gscon => mgw_msc [label="CRCX (for BTS) via mgcp_conn_create()"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_BTS\n(timeout: ? s, Tnnnn)"]; + bsc_lchan <- bsc_gscon [label="(event dispatch returns)"]; + bsc_lchan note bsc_lchan [label="lchan_activate() continues"]; + ...; + bsc_gscon note bsc_gscon [label="async:"]; + bsc_gscon <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan box bsc_lchan [label="mgw_endpoint_available = true"]; + bsc_lchan note bsc_lchan [label="As soon as we reach LCHAN_ST_WAIT_MGW_ENDPOINT_AVAILABLE, this triggers + immedate action (s.b.), but until then, only the flag gets set to true."]; + ...; + --- [label="CRCX timeout"]; + bsc_gscon note bsc_gscon [label="conn FSM should fire on CRCX timeout"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_gscon note bsc_gscon [label="conn FSM should not assume anything and wait for + GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan rbox bsc_lchan [label="Do 'On any error'"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + --- [label="END: 'TCH?'"]; + |||; + |||; + + bsc_lchan box bsc_lchan [label="lchan_activate() exits"]; + bsc_lchan note bsc_lchan [label="still in\nlchan_request()\nLCHAN_ST_WAIT_\nTS_READY"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED"]; + ...; + --- [label="on error from TS or timeout:"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_ERROR"]; + bsc_lchan rbox bsc_lchan [label="Do 'On any error'"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + ---; + ...; + bsc_ts abox bsc_ts [label="TS_ST_IN_USE"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bsc_lchan box bsc_lchan [label="lchan_fsm_\npre_lchan_activ()"]; + + |||; + |||; + bts rbox mgw_msc [label="mode FOR_MS_CHANNEL_REQUEST"]; + bts note bsc_lchan [label="This is the simple case where the MS requested a channel, and there is no + L3 conn to the MSC; no matter if this is SDDCH or a TCH channel type, we will not prepare + an RTP stream."]; + + bsc_lchan note bsc_lchan [label="still in lchan_fsm_\npre_lchan_activ()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nACTIV_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="RSL Chan Activ (RSL_ACT_INTRA_IMM_ASS)"]; + bts note bsc_lchan [label="If any errors occur from now on, we don't want to send an RR Immediate + Assignment Reject anymore."]; + bsc_lchan box bsc_lchan [label="sent_chan_activ = true"]; + ...; + --- [label="on timeout"]; + bsc_lchan rbox bsc_lchan [label="Continue at: 'On any error', 'unrecoverable'"]; + ---; + ...; + bts => bsc_lchan [label="RSL Chan Activ ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\nT3101"]; + bsc_lchan note bsc_lchan [label="Now the lchan is assigned, but has no L3 conn yet. On errors, + this will either go into graceful release or into broken state, but will not trigger any + events to a (non-existing) conn."]; + ...; + --- [label="on timeout"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_RF_RELEASE_ACK\n(T?, 4s)"]; + ---; + ...; + bts => bsc_lchan [label="RLL Establish Ind"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + |||; + |||; + bts rbox mgw_msc [label="modes FOR_ASSIGNMENT and FOR_HANDOVER"]; + + bsc_lchan note bsc_lchan [label="still in lchan_fsm_\npre_lchan_activ()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nACTIV_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="RSL Chan Activ (RSL_ACT_INTRA_NORM_ASS)",ID=FOR_ASSIGNMENT]; + bts <= bsc_lchan [label="RSL Chan Activ (RSL_ACT_INTER_ASYNC)",ID=FOR_HANDOVER]; + ...; + --- [label="on timeout"]; + bsc_lchan rbox bsc_lchan [label="Continue at: 'On any error', 'unrecoverable'"]; + ---; + bts => bsc_lchan [label="RSL Chan Activ ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\nT3101"]; + ...; + --- [label="on timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_lchan [label="lchan_fsm_pre_rf_release()"]; + ---; + ...; + bts => bsc_lchan [label="RLL Establish Indication"]; + |||; + + --- [label="TCH? (2)"]; + --- [label="mgw_endpoint_available == false?"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nMGW_ENDPOINT_\nAVAILABLE"]; + bsc_lchan note bsc_lchan [label="rely on conn FSM timeout; apply only a long sanity timeout."]; + ...; + bsc_gscon <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan box bsc_lchan [label="mgw_endpoint_available = true"]; + bsc_lchan <- bsc_lchan [label="re-invoke lchan_fsm_pre_lchan_activ()"]; + --- [label="END: 'TCH? (2)'"]; + |||; + + --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nIPACC_CRCX_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="IPACC CRCX"]; + ...; + --- [label="on timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_lchan [label="lchan_graceful_release()"]; + ---; + ...; + bts => bsc_lchan [label="IPACC CRCX ACK"]; + bts note bsc_lchan [label="The IPACC CRCX ACK tells us what port the IPA Abis based BTS has + assigned to this lchan. AoIP: we need to forward this to the MGW (BTS side) with an MDCX; + SCCPlite: we forward this to the MSC during BSSMAP Assignment Complete (TODO: is this + correct??)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nIPACC_MDCX_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="IPACC MDCX"]; + bts note bsc_lchan [label="The IPACC MDCX tells IPA Abis based BTSes the IP address and RTP port + assigned by the BTS side of the MGW. AoIP: the MGW CRCX (BTS) must thus happen before + this; SCCPlite: the RTP port is already known from the timeslot+multiplex information."]; + ...; + --- [label="on timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_lchan [label="lchan_graceful_release()"]; + ---; + ...; + bts => bsc_lchan [label="IPACC MDCX ACK"]; + --- [label="END: is BTS using IPA Abis? (osmo-bts, ip.access)"]; + |||; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + bsc_lchan box bsc_lchan [label="lchan_fsm_post_lchan_activ()"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bts <= bsc_gscon [label="RR Assignment",ID="BSSMAP Assignment Request"]; + bts <= bsc_gscon [label="RR Handover Command",ID="intra-BSC HO"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover\nRequest Acknowledge",ID="inter-BSC-MT HO"]; + ...; + ---[label="On error"]; + bsc_lchan rbox bsc_lchan [label="Continue at 'When the lchan is no longer used'"]; + ---; + ...; + + bts => bsc_gscon [label="RR Assignment Complete",ID="BSSMAP Assignment Request"]; + bts => bsc_gscon [label="RR Handover Detect",ID="intra-BSC HO"]; + bts => bsc_gscon [label="RR Handover Accept",ID="inter-BSC-MT HO"]; + bsc_gscon note bsc_gscon [label="conn FSM takes care of MGW endpoints for BTS side (possibly + redirect) and MSC side (possibly create). More information in e.g. assignment.msc and + handover.msc"]; + + ...; + ...; + ...; + + bts rbox mgw_msc [label="When the lchan is no longer used"]; + --- [label="IF the MS or BTS release the lchan"]; + bts -> bsc_lchan [label="RLL Release Ind for SAPI=0"]; + --- [label="IF the BSC other than the conn FSM decides to release"]; + bsc -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + --- [label="IF the MSC or conn FSM release the lchan"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_RELEASE"]; + ---; + bsc note bsc_gscon [label="The LCHAN_EV_RELEASE's data pointer possibly indicates an error + cause"]; + bsc_lchan note bsc_gscon [label="If the conn FSM requested a release, it probably has already + forgotten about this lchan. However, if the MS/BTS initiated the release, make sure the conn FSM + is informed:"]; + bsc_lchan box bsc_lchan [label="lchan_graceful_release()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"]; + --- [label="TCH and got as far as Chan Activ Ack?"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH"]; + ---; + bts <= bsc_lchan [label="RLL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for all SAPIs except [0]"]; + |||; + --- [label="SAPI[0] in use?"]; + bsc_lchan note bsc_lchan [label="for bts->nokia.no_loc_rel_cnf we do not expect Release Confirm + messages and this state immediately advances to lchan_fsm_pre_rf_release()"]; + ...; + --- [label="on timeout"]; + bsc_lchan box bsc_lchan [label="Anyway try RF Channel Release, continue + with lchan_fsm_wait_before_rf_release()"]; + ---; + ...; + bts => bsc_lchan [label="RLL Release Confirm..."]; + bts => bsc_lchan [label="...for each SAPI except [0]"]; + bsc_lchan box bsc_lchan [label="Stay in\nLCHAN_ST_WAIT_\nSAPIS_RELEASED\nuntil only SAPI[0] remains active"]; + --- [label="END: 'SAPI[0] in use?'"]; + |||; + + bsc_lchan box bsc_lchan [label="lchan_fsm_wait_before_rf_release()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN (data=lchan)"]; + bsc_gscon note bsc_gscon [label="conn FSM immediately forgets about the lchan"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request?"]; + ...; + bsc_lchan box bsc_lchan [label="T3111 expires"]; + bsc_lchan box bsc_lchan [label="lchan_fsm_pre_rf_release()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\nT3111"]; + bsc_lchan box bsc_lchan [label="for each bsc_rll_req matching this lchan: disable timer, call + cb(BSC_RLLR_IND_REL_IND)"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + --- [label="on timeout"]; + bsc_lchan rbox bsc_lchan [label="Continue at: 'On any error', 'unrecoverable'"]; + ---; + ...; + bts => bsc_lchan [label="RSL RF Channel Release Ack"]; + + bsc_lchan box bsc_lchan [label="lchan_fsm_post_rf_release()"]; + |||; + --- [label="IF an error cause was indicated on LCHAN_EV_RELEASE"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nAFTER_ERROR\n(timeout: T3111+2 s, T?)"]; + ...; + bsc_lchan box bsc_lchan [label="timer expires"]; + --- [label="END: 'an error cause was indicated on LCHAN_EV_RELEASE'"]; + |||; + bsc_lchan box bsc_lchan [label="lchan_fsm_release_complete()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + bsc_ts abox bsc_ts [label="TS_ST_UNUSED"]; + |||; + |||; + + bts rbox mgw_msc [label="On any error"]; + |||; + --- [label="IF FOR_MS_CHANNEL_REQUEST && !sent_chan_activ"]; + bts <= bsc_lchan [label="RR Immediate Assign Reject"]; + |||; + --- [label="IF FOR_ASSIGNMENT or FOR_HANDOVER"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon note bsc_gscon [label="conn FSM shall immediately 'forget' the lchan"]; + bsc_gscon => mgw_msc [label="BSSMAP\nAssignment Failure",ID=FOR_ASSIGNMENT]; + bsc_gscon => mgw_msc [label="BSSMAP\nHandover Failure",ID="inter-BSC-MT HO"]; + ---; + |||; + --- [label="IF unrecoverable error"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_BORKEN"]; + bsc_lchan note bsc_lchan [label="The broken state usually stays around + until the BTS disconnects."]; + ...; + bts note bsc_lchan [label="If an ACK comes in late, for specific BTS models, we may choose to + 'repair' the lchan so that it is usable again."]; + bts -> bsc_lchan [label="Chan Release ACK"]; + bsc_lchan -> bsc_lchan [label="lchan_fsm_post_rf_release()"]; +} diff --git a/doc/ms-channel-request.msc b/doc/ms-channel-request.msc index c0ef60f..1c5b4bf 100644 --- a/doc/ms-channel-request.msc +++ b/doc/ms-channel-request.msc @@ -1,8 +1,8 @@ msc { - hscale=3; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + hscale=2; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_lchan[label="BSC lchan FSM"]; - ms note bsc_gscon [label="lchan allocation sequence for RSL Channel Request"]; + ms note bsc_lchan [label="lchan allocation sequence for RSL Channel Request"]; ms => bts [label="RR Channel Request"]; bts => bsc [label="RSL Channel Request"]; @@ -13,51 +13,47 @@ longer concerned (rsl_rx_pchan_rqd())."]; bsc note bsc [label="Always try to allocate an SDCCH regardless of the requested type, only if no SDCCH is available, look for the actually requested channel type."]; - bsc box bsc [label="lchan_alloc(SDCCH, allow_bigger=0)"]; + bsc box bsc [label="lchan_select_by_type(SDCCH)"]; --- [label="IF no lchan is available (neither SDCCH nor requested type)"]; bsc note bsc [label="Figure out T3122 value from bts->T3122, network->T3122 or GSM_T3122_DEFAULT"]; - bsc box bsc [label="rsl_send_imm_ass_rej()"]; + bsc box bsc [label="rsl_send_imm_ass_rej(wait_ind=T3122)"]; bsc note bsc [label="..."]; bts <= bsc [label="RR Immediate Assign Reject"]; ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; bsc note bsc [label="rsl_rx_pchan_rqd() exits, no channel is allocated."]; - ---; + --- [label="END: no lchan is available"]; bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"]; - bsc abox bsc [label="Start lchan->act_timer (4s, lchan_act_tmr_cb())"]; - - bsc box bsc [label="rsl_chan_activate_lchan(RSL_ACT_INTRA_IMM_ASS)"]; - --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; - bsc box bsc [linecolor=red,label="Osmocom style dyn TS use the lchan->act_timer for an RSL RF - Channel Release, to release PDCH mode. This will actually overwrite above act_timer!"]; - bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; - bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; - bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + bsc -> bsc_lchan [label="lchan_allocate(FOR_MS_CHANNEL_REQUEST)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_ACTIV_ACK\nT3103"]; + bsc_lchan note bsc_lchan [label="The lchan FSM knows that FOR_MS_CHANNEL_REQUEST is about + Immediate Assignment."]; + bts <= bsc_lchan [label="RSL Chan Activ (Immediate Assignment)"]; ...; - bts note bsc_gscon [linecolor="red", - label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there - seems to be no timer watching over PDCH Deact!"]; - ...; - bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; - bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; - bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + --- [label="on any error"]; + bts <= bsc_lchan [label="RR Immediate Assign Reject"]; + ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; ---; - - bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; - bts <= bsc [label="RSL Chan Activ: Immediate Assignment"]; ...; - bsc note bsc [label="Timeout of lchan->act_timer causes the - lchan->state to go to LCHAN_S_BROKEN, but no events or actions - are triggered."]; + bts => bsc_lchan [label="RSL Chan Activ ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\ncontinue T3103"]; ...; - bts => bsc [label="RSL Chan Activ ACK"]; - bsc box bsc [label="rsl_rx_chan_act_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; - bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK (has no effect)"]; - bsc note bsc [label="Since this was an Immediate Assignment, no further action is required on - behalf of the BSC. The MS is now free to use the lchan."]; + --- [label="on timeout"]; + bsc_lchan box bsc_lchan [label="lchan_error_release(deact_sacch=true)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_RF_RELEASE_ACK"]; + bts <= bsc_lchan [label="RLL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for all SAPIs including [0]"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_AFTER_ERROR"]; + ...; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + ---; + ms => bsc_lchan [label="RLL Establish Ind"]; + bsc_lchan box bsc_lchan [label="associate lchan FSM with new conn FSM"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; } diff --git a/doc/timeslot-fsm.dot b/doc/timeslot-fsm.dot new file mode 100644 index 0000000..79e56c9 --- /dev/null +++ b/doc/timeslot-fsm.dot @@ -0,0 +1,36 @@ +digraph G { +rankdir=TB; + + invisible [style="invisible"] + invisible2 [style="invisible"] + NOT_INITIALIZED + lchan [label="lchan FSM",shape=box3d]; + UNUSED + IN_USE + BORKEN + PDCH + WAIT_PDCH_ACT + WAIT_PDCH_DEACT + + invisible -> NOT_INITIALIZED [label="OML\nOpstart ACK",style=dotted] + invisible2 -> NOT_INITIALIZED [label="RSL\nbootstrapped",style=dotted] + + NOT_INITIALIZED -> UNUSED [label="OML+RSL ready"] + + UNUSED -> IN_USE [label="first\nlchan\nrequested\nby lchan\nFSM"] + IN_USE -> UNUSED [label="last lchan\nunused"] + + UNUSED -> PDCH [label="onenter:\ndedicated PDCH\nand GPRS\nis enabled"] + UNUSED -> WAIT_PDCH_ACT [label="onenter:\ndyn TS\nand GPRS\nis enabled"] + WAIT_PDCH_ACT -> PDCH [label="dyn TS:\nPDCH activated"] + + PDCH -> WAIT_PDCH_DEACT [label="dyn TS:\nlchan of specific\npchan requested"] + WAIT_PDCH_DEACT -> UNUSED [label="lchan\nunused\n(e.g. error)",style=dashed] + WAIT_PDCH_DEACT -> IN_USE [label="dyn TS:\nPDCH released"] + + lchan -> {UNUSED} [label="TS_EV_LCHAN_\nREQUESTED",style=dotted] + {IN_USE} -> lchan [label="LCHAN_EV_\nTS_READY",style=dotted] + lchan -> IN_USE [label="TS_EV_LCHAN_\nUNUSED",style=dotted] + + {WAIT_PDCH_ACT,WAIT_PDCH_DEACT} -> BORKEN [label=timeout,style=dashed] +} diff --git a/doc/timeslot.msc b/doc/timeslot.msc new file mode 100644 index 0000000..9a8c360 --- /dev/null +++ b/doc/timeslot.msc @@ -0,0 +1,98 @@ +msc { + hscale=2; + bts [label="MS/BTS"], bsc[label="BSC"], bsc_ts[label="BSC timeslot FSM"], bsc_lchan[label="BSC lchan FSM"]; + + bsc_ts abox bsc_ts [label="NOT_INITIALIZED (no timeout)"]; + + ...; + bsc note bsc_ts [label="OML and RSL may be established in any order"]; + bts => bsc_ts [label="OML: Channel OPSTART ACK"]; + bsc -> bsc_ts [label="RSL bootstrapped"]; + bsc_ts abox bsc_ts [label="UNUSED (no timeout)"]; + + |||; + bts rbox bsc_lchan [label="UNUSED, onenter"]; + bsc_ts abox bsc_ts [label="UNUSED"]; + --- [label="GPRS enabled?"]; + --- [label="IF: dedicated PDCH?"]; + bsc_ts abox bsc_ts [label="PDCH (no timeout)"]; + + |||; + --- [label="IF: dynamic timeslot"]; + bsc_ts abox bsc_ts [label="WAIT_PDCH_ACT (?s, Tnnnn)"]; + bts <= bsc_ts [label="RSL Chan Activ of PDCH",ID="Osmocom style"]; + bts <= bsc_ts [label="RSL PDCH Act",ID="ip.access style"]; + ...; + --- [label="timeout:"]; + bsc_ts abox bsc_ts [label="BORKEN"]; + ---; + ...; + bts => bsc_ts [label="RSL RF Chan Activ ACK",ID="Osmocom style"]; + bts => bsc_ts [label="RSL PDCH Act ACK",ID="ip.access style"]; + bsc_ts abox bsc_ts [label="PDCH (no timeout)"]; + + --- [label="END: GPRS enabled?"]; + ...; + ...; + + bts rbox bsc_lchan [label="UNUSED, on event"]; + bsc_ts abox bsc_ts [label="UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED (data=lchan)"]; + bsc_ts abox bsc_ts [label="IN_USE"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bts <= bsc_lchan [label="RSL Chan Activ (and so on)"]; + ...; + bts rbox bsc_lchan [label="IN_USE, second lchan"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED (data=lchan)"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bts <= bsc_lchan [label="RSL Chan Activ (and so on)"]; + ...; + ...; + bts rbox bsc_lchan [label="IN_USE, when lchan FSM releases (both regularly, or due to error)"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED (data=lchan)"]; + --- [label="IF all lchan->fi->state == LCHAN_ST_UNUSED"]; + bsc_ts abox bsc_ts [label="UNUSED"]; + ---; + ...; + ...; + + + bts rbox bsc_lchan [label="PDCH on lchan request"]; + bsc_ts note bsc_lchan [label="TS_EV_LCHAN_REQUESTED should only come in on + lchans where it makes sense, both from TS kind as well as not + conflicting with other users of the lchan."]; + + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED"]; + bsc_ts abox bsc_ts [label="WAIT_PDCH_DEACT (?s, Tnnnn)"]; + bts <= bsc_ts [label="RSL RF Chan Release of PDCH",ID="Osmocom style"]; + bts <= bsc_ts [label="RSL PDCH Deact",ID="ip.access style"]; + ...; + --- [label="timeout:"]; + bsc_ts abox bsc_ts [label="BORKEN"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_ERROR"]; + ---; + ...; + bts => bsc_ts [label="RSL RF Chan Release ACK",ID="Osmocom style"]; + bts => bsc_ts [label="RSL PDCH Deact ACK",ID="ip.access style"]; + --- [label="IF all lchan->fi->state == LCHAN_ST_UNUSED"]; + bsc_ts note bsc_lchan [label="If the lchan FSM decided to give up in the + meantime, nr of active lchans might have dropped back to zero."]; + bsc_ts abox bsc_ts [label="UNUSED"]; + bsc_ts note bsc_ts [label="onenter at UNUSED state will trigger back to + PDCH mode"]; + |||; + --- [label="IF at least one lchan->state != LCHAN_ST_UNUSED"]; + bsc_ts abox bsc_ts [label="IN_USE"]; + bsc_ts rbox bsc_ts [label="Continue at 'IN_USE' above"]; + ...; + ...; + + bts rbox bsc_lchan [label="on erratic event"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_ERROR"]; + bsc_lchan box bsc_lchan [label="release lchan"]; + ...; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + bsc_ts note bsc_ts [label="log error but ignore"]; + ...; + +} diff --git a/doc/ts-and-lchan-fsm-lifecycle.msc b/doc/ts-and-lchan-fsm-lifecycle.msc new file mode 100644 index 0000000..79d32c5 --- /dev/null +++ b/doc/ts-and-lchan-fsm-lifecycle.msc @@ -0,0 +1,116 @@ +msc { + hscale=2; + bts [label="MS/BTS"], bsc[label="BSC"], bsc_ts[label="BSC timeslot FSM"], bsc_lchan[label="BSC lchan FSM"]; + + bsc box bsc [label="gsm_bts_alloc()"]; + bsc box bsc [label="bts->c0 = gsm_bts_trx_alloc()"]; + bsc -> bsc_ts; + bsc_ts box bsc_ts [label="trx->ts[*].fi = osmo_fsm_inst_alloc(timeslot_fsm)"]; + bsc_ts abox bsc_ts [label="TS_ST_NOT_INITIALIZED"]; + bsc -> bsc_lchan; + bsc_lchan box bsc_lchan [label="ts->lchan[*].ts = ts;\nts->lchan[*].nr = i;"]; + bsc_lchan box bsc_lchan [label="ts->lchan[*].fi = NULL"]; + bsc_ts note bsc_lchan [label="lchan_select() will only pick lchans from initialized timeslots of + the right pchan kind. lchan_select() shall OSMO_ASSERT(lchan->fi)."]; + ...; + ...; + + bts rbox bsc_lchan [label="reading config file"]; + ...; + bsc box bsc [label="timeslot N"]; + bsc box bsc [label="phys_chan_config X"]; + bsc_ts box bsc_ts [label="ts->pchan_from_config = X"]; + bsc_ts note bsc_ts [label="still TS_ST_NOT_INITIALIZED"]; + ...; + bsc box bsc [label="trx 1..*"]; + bsc box bsc [label="bts->trx_list add gsm_bts_trx_alloc()"]; + bsc_ts rbox bsc_lchan [label="same as for c0 above"]; + ...; + ...; + bts rbox bsc_lchan [label="Starting Operation"]; + bts => bsc_ts [label="OML Channel OPSTART ACK"]; + bsc_ts box bsc_ts [label="ts_on_oml_opstart()"]; + bsc_ts box bsc_ts [label="ts->pchan_on_init = pchan_from_config"]; + --- [label="IF dedicated TS"]; + bsc_ts box bsc_ts [label="ts->pchan = ts->pchan_on_init"]; + --- [label="ELSE: dyn TS"]; + bsc_ts box bsc_ts [label="ts->pchan = NONE"]; + --- [label="END: dyn TS"]; + bsc_ts note bsc_lchan [label="Normally, the lchan FSM never terminates. Logic dictates that + the lchan is a child of the timeslot FSM, but it's not actually of functional importance + beyond basic sanity. Parent term event: TS_EV_LCHAN_UNUSED"]; + bsc_ts box bsc_ts [label="Determine N = maximum number of lchans applicable to pchan_on_init"]; + bsc_ts -> bsc_lchan; + bsc_lchan box bsc_lchan [label="ts->lchan[all N].type = osmo_fsm_inst_alloc(lchan_fsm)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED\n(initial state)"]; + bsc_ts -> bsc_ts [label="ts_check_init()"]; + ...; + bsc -> bsc_ts [label="RSL bootstrapped"]; + bsc_ts -> bsc_ts [label="ts_check_init()"]; + ...; + bsc_ts box bsc_ts [label="ts_check_init()"]; + --- [label="as soon as both OML and RSL are ready:"]; + bsc_ts box bsc_ts [label="ts_on_init()"]; + bsc_ts abox bsc_ts [label="TS_ST_UNUSED"]; + --- [label="dyn TS"]; + bsc_ts box bsc_ts [label="onenter of TS_ST_UNUSED:"]; + bsc_ts abox bsc_ts [label="TS_ST_WAIT_PDCH_ACT"]; + ...; + bsc_ts abox bsc_ts [label="PDCH"]; + --- [label="END: dyn TS"]; + --- [label="END: OML and RSL ready"]; + ...; + bsc box bsc [label="lchan_select() picks an unused lchan"]; + bsc -> bsc_lchan [label="lchan_allocate()"]; + bsc_lchan -> bsc_ts [label="TS_EV_LCHAN_REQUESTED"]; + + --- [label="dyn TS"]; + bsc_ts note bsc_ts [label="possibly switch from PDCH...\n(see timeslot FSM)"]; + bsc_ts box bsc_ts [label="ts->pchan =\n requested GSM_PCHAN_XXX type"]; + ---; + + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bsc_lchan note bsc_lchan [label="RSL Chan Alloc and so fort..."]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + ...; + bsc -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_lchan note bsc_lchan [label="...RSL RF Chan Release..."]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + bsc_ts abox bsc_ts [label="TS_ST_UNUSED"]; + --- [label="dyn TS"]; + bsc_ts note bsc_ts [label="possibly switch to PDCH"]; + ---; + ...; + ...; + bts rbox bsc_lchan [label="BTS RSL is dropped"]; + bsc box bsc [label="ipaccess_drop_rsl()"]; + bsc -> bsc_ts [label="ts[*]:"]; + bsc_ts abox bsc_ts [label="TS_ST_NOT_INITIALIZED"]; + bsc_ts note bsc_lchan [label="If it's just the RSL being dropped, transition lchan FSMs to + LCHAN_ST_UNUSED, but keep them allocated. Unless OML is re-established, any vty pchan + modifications must not take effect."]; + bsc_ts -> bsc_lchan [label="lchan[*]:"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED (ignored)"]; + ...; + --- [label="when RSL comes back later:"]; + bsc -> bsc_ts [label="RSL bootstrapped"]; + bsc_ts box bsc_ts [label="ts_check_init()"]; + bsc_ts rbox bsc_ts [label="see ts_check_init() above"]; + ...; + ...; + bts rbox bsc_lchan [label="BTS OML is dropped"]; + bsc note bsc [label="As part of OML drop, RSL is also dropped:"]; + bsc box bsc [label="ipaccess_drop_rsl()"]; + bsc -> bsc_ts [label="ts[*]:"]; + bsc_ts abox bsc_ts [label="TS_ST_NOT_INITIALIZED"]; + bsc rbox bsc [label="see 'BTS RSL is dropped' above"]; + bsc -> bsc_ts [label="ts[*]:"]; + bsc_ts -> bsc_lchan [label="lchan[*]:"]; + bsc_lchan box bsc_lchan [label="osmo_fsm_inst_term()"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED (ignored)"]; + bsc_lchan box bsc_lchan [label="lchan->fi = NULL"]; + bsc rbox bsc [label="Continue at 'Starting Operation'"]; + +} -- To view, visit https://gerrit.osmocom.org/9489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936 Gerrit-Change-Number: 9489 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:26:46 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:26:46 +0000 Subject: Change in osmo-bsc[master]: tests: remove bssap_test In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9483 to look at the new patch set (#2). Change subject: tests: remove bssap_test ...................................................................... tests: remove bssap_test Rationale: - All it does is compose four Paging Requests and feed it into the osmo-bsc bssap_udt, and expects the cell identifier to be decoded properly. - To do so it employs a comparatively huge linking effort. This linking effort is becoming annoying in my ongoing work and is just not worth it. - We have comprehensive cell identifier tests in ttcn3, verifying that the proper cells are paged, and that actually for *all* cell identifier types. Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 --- M configure.ac M tests/Makefile.am D tests/bssap/Makefile.am D tests/bssap/bssap_test.c D tests/bssap/bssap_test.err D tests/bssap/bssap_test.ok M tests/testsuite.at 7 files changed, 0 insertions(+), 247 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/9483/2 -- To view, visit https://gerrit.osmocom.org/9483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 Gerrit-Change-Number: 9483 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:26:46 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:26:46 +0000 Subject: Change in osmo-bsc[master]: tests: remove channel_test In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9484 to look at the new patch set (#2). Change subject: tests: remove channel_test ...................................................................... tests: remove channel_test Rationale: channel_test is trivial and useless, probably only exists as a legacy from openbsc.git. - it tests two printf()s of "(bts=45,trx=0,ts=3,ss=4)", hardly useful. - it tests ts_subslots() behavior for dyn ts, which will soon be replaced by a most trivial mapping that does no longer need complex dyn ts state evaluation (when introducing the new timeslot FSM to handle dyn TS switchover). Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 --- M configure.ac M tests/Makefile.am D tests/channel/Makefile.am D tests/channel/channel_test.c D tests/channel/channel_test.ok M tests/testsuite.at 6 files changed, 0 insertions(+), 165 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/9484/2 -- To view, visit https://gerrit.osmocom.org/9484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 Gerrit-Change-Number: 9484 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:26:46 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:26:46 +0000 Subject: Change in osmo-bsc[master]: dissolve libbsc: move all to src/osmo-bsc, link .o files In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9481 to look at the new patch set (#2). Change subject: dissolve libbsc: move all to src/osmo-bsc, link .o files ...................................................................... dissolve libbsc: move all to src/osmo-bsc, link .o files Move all of libbsc/ into osmo-bsc/, and separate/move some implementations to allow linking from utils/* and ipaccess/* without pulling in unccessary dependencies. Some utilities use gsm_network and gsm_bts structs, which already include data structures for fairly advanced uses. Move initialization that only osmo-bsc needs into new bsc_network_init() and bsc_bts_alloc_register() functions, so that the leaner tools can use the old gsm_* versions without the need to link everything (e.g. handover and lchan alloc code). In some instances, there need to be stubs if to cut off linking "just before the RSL level" and prevent dependencies from creeping in. - abis_rsl_rcvmsg(): the only program currently interpreting RSL messages is osmo-bsc, the utils are merely concerned with OML, if at all. - paging_flush_bts(): ip.access nanobts models call this when the RSL link is dropped. Only osmo-bsc actually needs to do anything there. - on_gsm_ts_init(): the mechanism to trigger timeslot initialization is related to OML, while this action to take on init would pull in RSL dependencies. utils/ and ipaccess/ each have a stubs.c file to implement these stubs. Tests implement stubs inline where required. >From src/utils/, src/ipaccess/ and tests/*/, link in .o files from osmo-bsc/. In order for this to work, the osmo-bsc subdir must be built before the other source trees. (An alternative would be to include the .c files as sources, but that would re-compile them in every source tree. Not a large burden really, but unless linking .o files gives problems, let's have the quicker build.) Minor obvious cleanups creep in with this patch, I will not bother to name them individually now unless code review asks me to. Rationale: 1) libbsc has been separate to use it for osmo-nitb and osmo-bsc in the old openbsc.git. This is no longer required, and spreading over libbsc and osmo-bsc is distracting. 2) Recently, ridiculous linking requirements have made adding new functions cumbersome, because libbsc has started depending on osmo-bsc/*.c implementations: on gscon FSM and bssap functions. For example, neither bs11_config nor ipaccess-config nor bts_test need handover_cfg or BSSMAP message composition. It makes no sense to link the entire osmo-bsc to it, nor do we want to keep adding stubs to each linking realm. Change-Id: I36a586726f5818121abe54d25654819fc451d3bf --- M configure.ac M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bss.h M include/osmocom/bsc/chan_alloc.h D include/osmocom/bsc/common_bsc.h M include/osmocom/bsc/gsm_data.h M src/Makefile.am M src/ipaccess/Makefile.am M src/ipaccess/ipaccess-config.c A src/ipaccess/stubs.c D src/libbsc/Makefile.am D src/libbsc/bsc_init.c D src/libbsc/net_init.c M src/osmo-bsc/Makefile.am R src/osmo-bsc/a_reset.c A src/osmo-bsc/abis_bs11.c R src/osmo-bsc/abis_nm.c R src/osmo-bsc/abis_nm_ipaccess.c R src/osmo-bsc/abis_nm_vty.c R src/osmo-bsc/abis_om2000.c R src/osmo-bsc/abis_om2000_vty.c R src/osmo-bsc/abis_rsl.c R src/osmo-bsc/acc_ramp.c R src/osmo-bsc/arfcn_range_encode.c R src/osmo-bsc/bsc_api.c R src/osmo-bsc/bsc_ctrl_commands.c R src/osmo-bsc/bsc_ctrl_lookup.c R src/osmo-bsc/bsc_dyn_ts.c A src/osmo-bsc/bsc_init.c R src/osmo-bsc/bsc_rf_ctrl.c R src/osmo-bsc/bsc_rll.c R src/osmo-bsc/bsc_subscr_conn_fsm.c R src/osmo-bsc/bsc_subscriber.c R src/osmo-bsc/bsc_vty.c R src/osmo-bsc/bts_ericsson_rbs2000.c R src/osmo-bsc/bts_init.c R src/osmo-bsc/bts_ipaccess_nanobts.c R src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c R src/osmo-bsc/bts_nokia_site.c R src/osmo-bsc/bts_siemens_bs11.c R src/osmo-bsc/bts_sysmobts.c R src/osmo-bsc/bts_unknown.c R src/osmo-bsc/chan_alloc.c R src/osmo-bsc/e1_config.c R src/osmo-bsc/gsm_04_08_utils.c R src/osmo-bsc/gsm_04_80_utils.c R src/osmo-bsc/gsm_data.c R src/osmo-bsc/handover_cfg.c R src/osmo-bsc/handover_decision.c R src/osmo-bsc/handover_decision_2.c R src/osmo-bsc/handover_logic.c R src/osmo-bsc/handover_vty.c R src/osmo-bsc/meas_feed.c R src/osmo-bsc/meas_rep.c A src/osmo-bsc/net_init.c R src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c R src/osmo-bsc/paging.c R src/osmo-bsc/pcu_sock.c R src/osmo-bsc/penalty_timers.c R src/osmo-bsc/rest_octets.c R src/osmo-bsc/system_information.c M src/utils/Makefile.am M src/utils/bs11_config.c A src/utils/stubs.c M tests/abis/Makefile.am M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/subscr/Makefile.am 76 files changed, 1,059 insertions(+), 906 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9481/2 -- To view, visit https://gerrit.osmocom.org/9481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I36a586726f5818121abe54d25654819fc451d3bf Gerrit-Change-Number: 9481 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:26:48 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:26:48 +0000 Subject: Change in osmo-bsc[master]: bsc_test: drop "scan to MSC" code path Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9490 Change subject: bsc_test: drop "scan to MSC" code path ...................................................................... bsc_test: drop "scan to MSC" code path The TEST_SCAN_TO_MSC is completely unused, but still the code linked bsc_scan_bts_msg() for the unused code path. This is unlikely to ever be expanded. Remove TEST_SCAN_TO_MSC and reduce linking requirements. (I am this close to dropping the test entirely to avoid continuous linking annoyance, but ok, since nothing else tests timezones AFAIK, keeping it.) Change-Id: I27521950432e412f919cde811c9473557d0ec25e --- M tests/bsc/bsc_test.c 1 file changed, 0 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/90/9490/1 diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c index 106b08b..08d3760 100644 --- a/tests/bsc/bsc_test.c +++ b/tests/bsc/bsc_test.c @@ -43,7 +43,6 @@ enum test { TEST_SCAN_TO_BTS, - TEST_SCAN_TO_MSC, }; /* GSM 04.08 MM INFORMATION test message */ @@ -158,12 +157,6 @@ /* override timezone of msg coming from the MSC */ result = bsc_scan_msc_msg(conn, msg); break; - case TEST_SCAN_TO_MSC: - /* override timezone of msg coming from the BSC */ - /* FIXME: no test for this case is defined in - * test_scan_defs[], so this is never used. */ - result = bsc_scan_bts_msg(conn, msg); - break; default: abort(); break; -- To view, visit https://gerrit.osmocom.org/9490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I27521950432e412f919cde811c9473557d0ec25e Gerrit-Change-Number: 9490 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:35:42 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:35:42 +0000 Subject: Change in osmo-bsc[master]: dissolve libbsc: move all to src/osmo-bsc, link .o files In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9481 to look at the new patch set (#3). Change subject: dissolve libbsc: move all to src/osmo-bsc, link .o files ...................................................................... dissolve libbsc: move all to src/osmo-bsc, link .o files Move all of libbsc/ into osmo-bsc/, and separate/move some implementations to allow linking from utils/* and ipaccess/* without pulling in unccessary dependencies. Some utilities use gsm_network and gsm_bts structs, which already include data structures for fairly advanced uses. Move initialization that only osmo-bsc needs into new bsc_network_init() and bsc_bts_alloc_register() functions, so that the leaner tools can use the old gsm_* versions without the need to link everything (e.g. handover and lchan alloc code). In some instances, there need to be stubs if to cut off linking "just before the RSL level" and prevent dependencies from creeping in. - abis_rsl_rcvmsg(): the only program currently interpreting RSL messages is osmo-bsc, the utils are merely concerned with OML, if at all. - paging_flush_bts(): ip.access nanobts models call this when the RSL link is dropped. Only osmo-bsc actually needs to do anything there. - on_gsm_ts_init(): the mechanism to trigger timeslot initialization is related to OML, while this action to take on init would pull in RSL dependencies. utils/ and ipaccess/ each have a stubs.c file to implement these stubs. Tests implement stubs inline where required. >From src/utils/, src/ipaccess/ and tests/*/, link in .o files from osmo-bsc/. In order for this to work, the osmo-bsc subdir must be built before the other source trees. (An alternative would be to include the .c files as sources, but that would re-compile them in every source tree. Not a large burden really, but unless linking .o files gives problems, let's have the quicker build.) Minor obvious cleanups creep in with this patch, I will not bother to name them individually now unless code review asks me to. Rationale: 1) libbsc has been separate to use it for osmo-nitb and osmo-bsc in the old openbsc.git. This is no longer required, and spreading over libbsc and osmo-bsc is distracting. 2) Recently, ridiculous linking requirements have made adding new functions cumbersome, because libbsc has started depending on osmo-bsc/*.c implementations: on gscon FSM and bssap functions. For example, neither bs11_config nor ipaccess-config nor bts_test need handover_cfg or BSSMAP message composition. It makes no sense to link the entire osmo-bsc to it, nor do we want to keep adding stubs to each linking realm. Change-Id: I36a586726f5818121abe54d25654819fc451d3bf --- M configure.ac M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bss.h M include/osmocom/bsc/chan_alloc.h D include/osmocom/bsc/common_bsc.h M include/osmocom/bsc/gsm_data.h M src/Makefile.am M src/ipaccess/Makefile.am M src/ipaccess/ipaccess-config.c A src/ipaccess/stubs.c D src/libbsc/Makefile.am D src/libbsc/bsc_init.c D src/libbsc/net_init.c M src/osmo-bsc/Makefile.am R src/osmo-bsc/a_reset.c A src/osmo-bsc/abis_bs11.c R src/osmo-bsc/abis_nm.c R src/osmo-bsc/abis_nm_ipaccess.c R src/osmo-bsc/abis_nm_vty.c R src/osmo-bsc/abis_om2000.c R src/osmo-bsc/abis_om2000_vty.c R src/osmo-bsc/abis_rsl.c R src/osmo-bsc/acc_ramp.c R src/osmo-bsc/arfcn_range_encode.c R src/osmo-bsc/bsc_api.c R src/osmo-bsc/bsc_ctrl_commands.c R src/osmo-bsc/bsc_ctrl_lookup.c R src/osmo-bsc/bsc_dyn_ts.c A src/osmo-bsc/bsc_init.c R src/osmo-bsc/bsc_rf_ctrl.c R src/osmo-bsc/bsc_rll.c R src/osmo-bsc/bsc_subscr_conn_fsm.c R src/osmo-bsc/bsc_subscriber.c R src/osmo-bsc/bsc_vty.c R src/osmo-bsc/bts_ericsson_rbs2000.c R src/osmo-bsc/bts_init.c R src/osmo-bsc/bts_ipaccess_nanobts.c R src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c R src/osmo-bsc/bts_nokia_site.c R src/osmo-bsc/bts_siemens_bs11.c R src/osmo-bsc/bts_sysmobts.c R src/osmo-bsc/bts_unknown.c R src/osmo-bsc/chan_alloc.c R src/osmo-bsc/e1_config.c R src/osmo-bsc/gsm_04_08_utils.c R src/osmo-bsc/gsm_04_80_utils.c R src/osmo-bsc/gsm_data.c R src/osmo-bsc/handover_cfg.c R src/osmo-bsc/handover_decision.c R src/osmo-bsc/handover_decision_2.c R src/osmo-bsc/handover_logic.c R src/osmo-bsc/handover_vty.c R src/osmo-bsc/meas_feed.c R src/osmo-bsc/meas_rep.c A src/osmo-bsc/net_init.c R src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c R src/osmo-bsc/paging.c R src/osmo-bsc/pcu_sock.c R src/osmo-bsc/penalty_timers.c R src/osmo-bsc/rest_octets.c R src/osmo-bsc/system_information.c M src/utils/Makefile.am M src/utils/bs11_config.c A src/utils/stubs.c M tests/abis/Makefile.am M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/subscr/Makefile.am 76 files changed, 1,060 insertions(+), 906 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9481/3 -- To view, visit https://gerrit.osmocom.org/9481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I36a586726f5818121abe54d25654819fc451d3bf Gerrit-Change-Number: 9481 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 01:43:14 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 01:43:14 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9281 to look at the new patch set (#5). Change subject: assignment: signal assignment failure on chan act nack ...................................................................... assignment: signal assignment failure on chan act nack When the BTS responds with a Chan Act NACK, i.e. the lchan could not be activated, immediately signal Assignment Failure to the MSC (in handle_chan_nack()). In handle_chan_nack(), adjust log: instead of waiting for timeout, we now signal Assignment Failure. Cosmetic: in this file, the struct bsc_api* is typically named 'bsc', not 'api', so rename the arg. Drop misleading logging from bsc_assign_fail(): instead of transmitting the Assignment Failure message, it actually signals an FSM event. Leave logging of that to the FSM logging. Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 --- M src/osmo-bsc/bsc_api.c M src/osmo-bsc/osmo_bsc_api.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9281/5 -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 07:01:07 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 7 Jun 2018 07:01:07 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix typo In-Reply-To: References: Message-ID: dexter has submitted this change and it was merged. ( https://gerrit.osmocom.org/9475 ) Change subject: cosmetic: fix typo ...................................................................... cosmetic: fix typo Change-Id: I1df5ff642b3744771836dea82f9d0b4ad6749bc5 --- M include/osmocom/mgcp/mgcp_endp.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index a486dcd..9283373 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -66,7 +66,7 @@ /*!< Call identifier string (as supplied by the call agant) */ char *callid; - /*!< Local connection options (see mgcp_intermal.h) */ + /*!< Local connection options (see mgcp_internal.h) */ struct mgcp_lco local_options; /*!< List with connections active on this endpoint */ -- To view, visit https://gerrit.osmocom.org/9475 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1df5ff642b3744771836dea82f9d0b4ad6749bc5 Gerrit-Change-Number: 9475 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 09:14:46 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 09:14:46 +0000 Subject: Change in osmo-bts[master]: bts.c: Log name of RR msg type instead of value Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9491 Change subject: bts.c: Log name of RR msg type instead of value ...................................................................... bts.c: Log name of RR msg type instead of value Change-Id: Ia35e132e0b6532dfbf09bb33fe9328a9e3e16885 --- M src/common/bts.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/9491/1 diff --git a/src/common/bts.c b/src/common/bts.c index 54e5480..f0850c1 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -538,8 +538,8 @@ if (bts->agch_queue.length > hard_limit) { LOGP(DSUM, LOGL_ERROR, "AGCH: too many messages in queue, " - "refusing message type 0x%02x, length = %d/%d\n", - ((struct gsm48_imm_ass *)msgb_l3(msg))->msg_type, + "refusing message type %s, length = %d/%d\n", + gsm48_rr_msg_name(((struct gsm48_imm_ass *)msgb_l3(msg))->msg_type), bts->agch_queue.length, bts->agch_queue.max_length); bts->agch_queue.rejected_msgs++; -- To view, visit https://gerrit.osmocom.org/9491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia35e132e0b6532dfbf09bb33fe9328a9e3e16885 Gerrit-Change-Number: 9491 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 11:56:23 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 11:56:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Set L1CTL rxlev_exp as module parameter Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9492 Change subject: bts: Set L1CTL rxlev_exp as module parameter ...................................................................... bts: Set L1CTL rxlev_exp as module parameter Change-Id: If63e5c2d6abe1dd6dddd1a12e703ed069b940ab4 --- M bts/BTS_Tests.ttcn M library/L1CTL_PortType.ttcn M library/LAPDm_RAW_PT.ttcn 3 files changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/92/9492/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 36b1f9d..428eb21 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -56,6 +56,7 @@ integer mp_tolerance_rxlev := 3; charstring mp_ctrl_ip := "127.0.0.1"; integer mp_ctrl_port := 4238; + integer mp_rxlev_exp := 57; } type record of RslChannelNr ChannelNrs; @@ -396,7 +397,7 @@ } private function f_l1_tune(L1CTL_PT L1CTL) { - f_L1CTL_FBSB(L1CTL, { false, mp_trx0_arfcn }, CCCH_MODE_COMBINED); + f_L1CTL_FBSB(L1CTL, { false, mp_trx0_arfcn }, mp_rxlev_exp, CCCH_MODE_COMBINED); } private function f_trxc_connect() runs on ConnHdlr { diff --git a/library/L1CTL_PortType.ttcn b/library/L1CTL_PortType.ttcn index 51a3936..7ddf398 100644 --- a/library/L1CTL_PortType.ttcn +++ b/library/L1CTL_PortType.ttcn @@ -32,10 +32,10 @@ return len; } - function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) { + function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, integer rxlev_exp, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) { timer T := 15.0; for (var integer i := 0; i < 10; i := i+1) { - pt.send(ts_L1CTL_FBSB_REQ(arfcn, valueof(t_L1CTL_FBSB_F_ALL), 0, ccch_mode, 57)); + pt.send(ts_L1CTL_FBSB_REQ(arfcn, valueof(t_L1CTL_FBSB_F_ALL), 0, ccch_mode, rxlev_exp)); T.start alt { [] pt.receive(tr_L1CTL_FBSB_CONF(0)) { return; }; diff --git a/library/LAPDm_RAW_PT.ttcn b/library/LAPDm_RAW_PT.ttcn index bdfc50b..5ef1908 100644 --- a/library/LAPDm_RAW_PT.ttcn +++ b/library/LAPDm_RAW_PT.ttcn @@ -186,7 +186,7 @@ set_ph_state(PH_STATE_SEARCHING_BCH); /* send FB/SB req to sync to cell */ - f_L1CTL_FBSB(L1CTL, arfcn, mode); + f_L1CTL_FBSB(L1CTL, arfcn, 57, mode); set_ph_state(PH_STATE_BCH); } -- To view, visit https://gerrit.osmocom.org/9492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If63e5c2d6abe1dd6dddd1a12e703ed069b940ab4 Gerrit-Change-Number: 9492 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:17:57 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 12:17:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Set L1CTL rxlev_exp as module parameter In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9492 to look at the new patch set (#2). Change subject: bts: Set L1CTL rxlev_exp as module parameter ...................................................................... bts: Set L1CTL rxlev_exp as module parameter Change-Id: If63e5c2d6abe1dd6dddd1a12e703ed069b940ab4 --- M bts/BTS_Tests.ttcn M library/L1CTL_PortType.ttcn 2 files changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/92/9492/2 -- To view, visit https://gerrit.osmocom.org/9492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If63e5c2d6abe1dd6dddd1a12e703ed069b940ab4 Gerrit-Change-Number: 9492 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:47:43 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:47:43 +0000 Subject: Change in osmo-ci[master]: ansible: udhcpd: add systemd service file In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9447 ) Change subject: ansible: udhcpd: add systemd service file ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie373119a902a001f093599e289cadb8b2d290668 Gerrit-Change-Number: 9447 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:47:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:47:46 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:47:46 +0000 Subject: Change in osmo-ci[master]: ansible: udhcpd: add systemd service file In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9447 ) Change subject: ansible: udhcpd: add systemd service file ...................................................................... ansible: udhcpd: add systemd service file The udhcpd /etc/init.d/ script is racy and fails often. Change-Id: Ie373119a902a001f093599e289cadb8b2d290668 Fixes: OS#3311 --- A ansible/roles/udhcpd/files/udhcpd.service M ansible/roles/udhcpd/tasks/main.yml 2 files changed, 30 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/roles/udhcpd/files/udhcpd.service b/ansible/roles/udhcpd/files/udhcpd.service new file mode 100644 index 0000000..03c34c1 --- /dev/null +++ b/ansible/roles/udhcpd/files/udhcpd.service @@ -0,0 +1,13 @@ +[Unit] +Description=udhcpcd DHCP server +After=network-online.target +Wants=network-online.target + +[Service] +ExecStart=/usr/sbin/udhcpd -f +RestartSec=5 +Restart=always + +[Install] +WantedBy=multi-user.target + diff --git a/ansible/roles/udhcpd/tasks/main.yml b/ansible/roles/udhcpd/tasks/main.yml index 280a5ef..e444684 100644 --- a/ansible/roles/udhcpd/tasks/main.yml +++ b/ansible/roles/udhcpd/tasks/main.yml @@ -12,3 +12,20 @@ template: src: etc/udhcpd.conf dest: /etc/udhcpd.conf + +- name: copy systemd unit file + copy: + src: udhcpd.service + dest: /lib/systemd/system/udhcpd.service + register: udhcpdservice + +- name: systemctl daemon-reload + systemd: + daemon_reload: yes + when: udhcpdservice | changed + +- name: ensure the systemd service is installed + systemd: + name: udhcpd.service + state: started + enabled: yes -- To view, visit https://gerrit.osmocom.org/9447 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie373119a902a001f093599e289cadb8b2d290668 Gerrit-Change-Number: 9447 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:47:54 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:47:54 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: only check once the apt freshness In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9455 ) Change subject: ansible: gsm-tester: only check once the apt freshness ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I40462fed216b1c0844a41172001dd2aaf8a8d04c Gerrit-Change-Number: 9455 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:47:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:47:56 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:47:56 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: only check once the apt freshness In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9455 ) Change subject: ansible: gsm-tester: only check once the apt freshness ...................................................................... ansible: gsm-tester: only check once the apt freshness Change-Id: I40462fed216b1c0844a41172001dd2aaf8a8d04c --- M ansible/roles/gsm-tester/tasks/main.yml 1 file changed, 6 insertions(+), 10 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 2b00270..73eca40 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -1,11 +1,15 @@ --- # gsm tester would only need the libraries, not the dev packages. # But the name of the -dev packages are more stable over multiple release. + +- name: update apt + apt: + cache_valid_time: 3600 + update_cache: yes + - name: install osmocom runtime dependencies apt: name: "{{ item }}" - cache_valid_time: 3600 - update_cache: yes with_items: - build-essential - git @@ -35,20 +39,14 @@ apt: name: ofono state: build-dep - cache_valid_time: 3600 - update_cache: yes - name: install libqmi-glib a dependency of sysmocom ofono apt: name: libqmi-glib-dev - cache_valid_time: 3600 - update_cache: yes - name: install uhub dependencies apt: name: "{{ item }}" - cache_valid_time: 3600 - update_cache: yes with_items: - libusb-1.0-0-dev @@ -111,8 +109,6 @@ - name: install gsm tester dependencies apt: name: "{{ item }}" - cache_valid_time: 3600 - update_cache: yes with_items: - dbus - tcpdump -- To view, visit https://gerrit.osmocom.org/9455 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I40462fed216b1c0844a41172001dd2aaf8a8d04c Gerrit-Change-Number: 9455 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:48:16 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:48:16 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add missing python dependencies In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9456 ) Change subject: ansible: gsm-tester: add missing python dependencies ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0871df95a968f8f9e9318882c5397a16cba1814a Gerrit-Change-Number: 9456 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:48:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:48:17 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:48:17 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add missing python dependencies In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9456 ) Change subject: ansible: gsm-tester: add missing python dependencies ...................................................................... ansible: gsm-tester: add missing python dependencies Change-Id: I0871df95a968f8f9e9318882c5397a16cba1814a --- M ansible/roles/gsm-tester/tasks/main.yml 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 73eca40..1840769 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -131,6 +131,8 @@ with_items: - "git+https://github.com/podshumok/python-smpplib.git at master#egg=smpplib" - pydbus + - pyusb + - pysispm tags: [pip] - name: create group osmo-gsm-tester -- To view, visit https://gerrit.osmocom.org/9456 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0871df95a968f8f9e9318882c5397a16cba1814a Gerrit-Change-Number: 9456 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:48:27 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:48:27 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-network: start all network interfaces after addin... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9457 ) Change subject: ansible: gsm-tester-network: start all network interfaces after adding new ones ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I197dadb68cffeba4c451d2fbfe40075039a67cb8 Gerrit-Change-Number: 9457 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:48:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:48:28 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:48:28 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-network: start all network interfaces after addin... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9457 ) Change subject: ansible: gsm-tester-network: start all network interfaces after adding new ones ...................................................................... ansible: gsm-tester-network: start all network interfaces after adding new ones Change-Id: I197dadb68cffeba4c451d2fbfe40075039a67cb8 --- M ansible/roles/gsm-tester-network/tasks/main.yml 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/roles/gsm-tester-network/tasks/main.yml b/ansible/roles/gsm-tester-network/tasks/main.yml index c331b71..0a023a7 100644 --- a/ansible/roles/gsm-tester-network/tasks/main.yml +++ b/ansible/roles/gsm-tester-network/tasks/main.yml @@ -4,3 +4,8 @@ template: src: interface.j2 dest: /etc/network/interfaces.d/gsm-tester + register: gsm_tester_network_interface + +- name: start all network interface + command: ifup -a + when: gsm_tester_network_interface | changed -- To view, visit https://gerrit.osmocom.org/9457 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I197dadb68cffeba4c451d2fbfe40075039a67cb8 Gerrit-Change-Number: 9457 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:48:42 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:48:42 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add udev rule to allow jenkins to access sispm d... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9459 ) Change subject: ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 Gerrit-Change-Number: 9459 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:48:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:48:56 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:48:56 +0000 Subject: Change in osmo-ci[master]: ansible: setup-gsm-tester.yml: use role gsm-tester-bts In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9460 ) Change subject: ansible: setup-gsm-tester.yml: use role gsm-tester-bts ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 Gerrit-Change-Number: 9460 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 12:48:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:49:15 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:49:15 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-bts: remove role prefix in names In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9461 ) Change subject: ansible: gsm-tester-bts: remove role prefix in names ...................................................................... Patch Set 1: > Is this related to the previous commit changes? No -- To view, visit https://gerrit.osmocom.org/9461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 Gerrit-Change-Number: 9461 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 12:49:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:49:39 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:49:39 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: fix apt_repository tasks In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9462 ) Change subject: ansible: gsm-tester: fix apt_repository tasks ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icc97d9d2355f8922853d6b21cb8a95f532347031 Gerrit-Change-Number: 9462 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:49:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:50:58 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 12:50:58 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-bts: remove role prefix in names In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9461 ) Change subject: ansible: gsm-tester-bts: remove role prefix in names ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 Gerrit-Change-Number: 9461 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:50:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:51:46 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 7 Jun 2018 12:51:46 +0000 Subject: Change in osmo-bsc[master]: tests: remove bssap_test In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9483 ) Change subject: tests: remove bssap_test ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 Gerrit-Change-Number: 9483 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Jun 2018 12:51:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:52:43 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 7 Jun 2018 12:52:43 +0000 Subject: Change in osmo-bsc[master]: tests: remove channel_test In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9484 ) Change subject: tests: remove channel_test ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 Gerrit-Change-Number: 9484 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Jun 2018 12:52:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:55:01 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 7 Jun 2018 12:55:01 +0000 Subject: Change in osmo-bsc[master]: cosmetic: magic number: use RSL_ACT_ constant for chan act In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9485 ) Change subject: cosmetic: magic number: use RSL_ACT_ constant for chan act ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I64ac2a17634f18322828ee2aa2284b0513130488 Gerrit-Change-Number: 9485 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Jun 2018 12:55:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:20 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:20 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add udev rule to allow jenkins to access sispm d... In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9459 ) Change subject: ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 Gerrit-Change-Number: 9459 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:58:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:23 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:23 +0000 Subject: Change in osmo-ci[master]: ansible: setup-gsm-tester.yml: use role gsm-tester-bts In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9460 ) Change subject: ansible: setup-gsm-tester.yml: use role gsm-tester-bts ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 Gerrit-Change-Number: 9460 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 12:58:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:26 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:26 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-bts: remove role prefix in names In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9461 ) Change subject: ansible: gsm-tester-bts: remove role prefix in names ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 Gerrit-Change-Number: 9461 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:58:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:28 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:28 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: fix apt_repository tasks In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9462 ) Change subject: ansible: gsm-tester: fix apt_repository tasks ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icc97d9d2355f8922853d6b21cb8a95f532347031 Gerrit-Change-Number: 9462 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 12:58:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:30 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:30 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: add udev rule to allow jenkins to access sispm d... In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9459 ) Change subject: ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices ...................................................................... ansible: gsm-tester: add udev rule to allow jenkins to access sispm devices Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 --- A ansible/roles/gsm-tester/files/60-sispmctl.rules A ansible/roles/gsm-tester/handlers/main.yml M ansible/roles/gsm-tester/tasks/main.yml 3 files changed, 16 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Verified Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved diff --git a/ansible/roles/gsm-tester/files/60-sispmctl.rules b/ansible/roles/gsm-tester/files/60-sispmctl.rules new file mode 100644 index 0000000..4c1f562 --- /dev/null +++ b/ansible/roles/gsm-tester/files/60-sispmctl.rules @@ -0,0 +1,4 @@ +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd10", GROUP="osmo-gsm-tester", MODE="660" +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd11", GROUP="osmo-gsm-tester", MODE="660" +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd12", GROUP="osmo-gsm-tester", MODE="660" +SUBSYSTEM=="usb", ATTR{idVendor}=="04b4", ATTR{idProduct}=="fd13", GROUP="osmo-gsm-tester", MODE="660" diff --git a/ansible/roles/gsm-tester/handlers/main.yml b/ansible/roles/gsm-tester/handlers/main.yml new file mode 100644 index 0000000..fb1b9ca --- /dev/null +++ b/ansible/roles/gsm-tester/handlers/main.yml @@ -0,0 +1,6 @@ +--- + +- name: restart udev + service: + name: udev + state: restarted diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml index 1840769..954953d 100644 --- a/ansible/roles/gsm-tester/tasks/main.yml +++ b/ansible/roles/gsm-tester/tasks/main.yml @@ -245,3 +245,9 @@ - name: install sispmctl (usb power socket) apt: name: sispmctl + +- name: allow group osmo-gsm-tester to access sispm devices + copy: + src: 60-sispmctl.rules + dest: /etc/udev/rules.d/ + notify: restart udev -- To view, visit https://gerrit.osmocom.org/9459 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idd0426a8130046e7aacc02421440eb403bd88888 Gerrit-Change-Number: 9459 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:38 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:38 +0000 Subject: Change in osmo-ci[master]: ansible: setup-gsm-tester.yml: use role gsm-tester-bts In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9460 ) Change subject: ansible: setup-gsm-tester.yml: use role gsm-tester-bts ...................................................................... ansible: setup-gsm-tester.yml: use role gsm-tester-bts Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 --- M ansible/setup-gsm-tester.yml 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: lynxis lazus: Verified Harald Welte: Looks good to me, approved diff --git a/ansible/setup-gsm-tester.yml b/ansible/setup-gsm-tester.yml index 36c8287..02ebe0f 100644 --- a/ansible/setup-gsm-tester.yml +++ b/ansible/setup-gsm-tester.yml @@ -27,6 +27,11 @@ - gsm-tester - gsm-tester-modems + - name: gsm-tester-bts + tags: + - gsm-tester + - gsm-tester-bts + - name: gsm-tester-network bts_interface: enp2s0 tags: -- To view, visit https://gerrit.osmocom.org/9460 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7cf033605ad1da6c3ea887b5ba72507bcd6991c7 Gerrit-Change-Number: 9460 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:42 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:42 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester-bts: remove role prefix in names In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9461 ) Change subject: ansible: gsm-tester-bts: remove role prefix in names ...................................................................... ansible: gsm-tester-bts: remove role prefix in names The role is prefixed anyway by newer ansible's. No need to manual add it Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 --- M ansible/roles/gsm-tester-bts/tasks/main.yml 1 file changed, 9 insertions(+), 9 deletions(-) Approvals: lynxis lazus: Verified Harald Welte: Looks good to me, but someone else must approve Pau Espin Pedrol: Looks good to me, approved diff --git a/ansible/roles/gsm-tester-bts/tasks/main.yml b/ansible/roles/gsm-tester-bts/tasks/main.yml index a08670a..37d3139 100644 --- a/ansible/roles/gsm-tester-bts/tasks/main.yml +++ b/ansible/roles/gsm-tester-bts/tasks/main.yml @@ -1,19 +1,19 @@ --- -- name: gsm-tester-bts | update apt-cache +- name: update apt-cache apt: cache_valid_time: 3600 update_cache: yes -- name: gsm-tester-bts | ip.access install apt dependencies +- name: ip.access install apt dependencies apt: name: python3-usb -- name: gsm-tester-bts | ip.access install pip3 dependencies +- name: ip.access install pip3 dependencies pip: name: pysispm executable: pip3 -- name: gsm-tester-bts | usrp install apt dependecies +- name: usrp install apt dependecies apt: name: "{{ item }}" cache_valid_time: 3600 @@ -23,30 +23,30 @@ - uhd-host register: uhd_installed -- name: gsm-tester-bts | usrp download firmware +- name: usrp download firmware command: uhd_images_downloader args: creates: /usr/share/uhd/images when: uhd_installed | changed -- name: gsm-tester-bts | usrp allow jenkins to access +- name: usrp allow jenkins to access user: name: jenkins groups: usrp append: yes -- name: gsm-tester-bts | add apt-key of OBS network:osmocom:nightly +- name: add apt-key of OBS network:osmocom:nightly apt_key: data: "{{ lookup('file', 'Release.key') }}" state: present -- name: gsm-tester-bts | add apt-repo of OBS network:osmocom:nightly +- name: add apt-repo of OBS network:osmocom:nightly apt_repo: name: obs_network_osmocom_latest repo: "deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_{{ ansible_distribution_major_version }}.0/ ./" update_cache: yes -- name: gsm-tester-bts | install osmocom utilities +- name: install osmocom utilities apt: name: "{{ item }}" with_items: -- To view, visit https://gerrit.osmocom.org/9461 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4ef16b2e9ab594dd0f76baf43979e73b51282c14 Gerrit-Change-Number: 9461 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 12:58:45 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 12:58:45 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: fix apt_repository tasks In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9462 ) Change subject: ansible: gsm-tester: fix apt_repository tasks ...................................................................... ansible: gsm-tester: fix apt_repository tasks Mistyped filename and apt_repostory Change-Id: Icc97d9d2355f8922853d6b21cb8a95f532347031 --- M ansible/roles/gsm-tester-bts/tasks/main.yml 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: lynxis lazus: Verified Harald Welte: Looks good to me, approved diff --git a/ansible/roles/gsm-tester-bts/tasks/main.yml b/ansible/roles/gsm-tester-bts/tasks/main.yml index 37d3139..fa4bccd 100644 --- a/ansible/roles/gsm-tester-bts/tasks/main.yml +++ b/ansible/roles/gsm-tester-bts/tasks/main.yml @@ -41,8 +41,8 @@ state: present - name: add apt-repo of OBS network:osmocom:nightly - apt_repo: - name: obs_network_osmocom_latest + apt_repository: + filename: obs_network_osmocom_latest repo: "deb http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_{{ ansible_distribution_major_version }}.0/ ./" update_cache: yes -- To view, visit https://gerrit.osmocom.org/9462 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icc97d9d2355f8922853d6b21cb8a95f532347031 Gerrit-Change-Number: 9462 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:18:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 13:18:31 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9458 ) Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... Patch Set 2: > As far as I can see, build-dep only provides build time > dependencies, not runtime dependencies. but if you want to build your own ofono on the system, then you need the build time dependencies, right? OR are you implying we need the runtime deps, too? Then both of those must be provided -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 13:18:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:19:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 13:19:24 +0000 Subject: Change in osmo-bsc[master]: tests: remove bssap_test In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9483 ) Change subject: tests: remove bssap_test ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 Gerrit-Change-Number: 9483 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Jun 2018 13:19:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:19:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 13:19:47 +0000 Subject: Change in osmo-bsc[master]: tests: remove channel_test In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9484 ) Change subject: tests: remove channel_test ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 Gerrit-Change-Number: 9484 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Jun 2018 13:19:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:20:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 13:20:15 +0000 Subject: Change in osmo-bsc[master]: bsc_test: drop "scan to MSC" code path In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9490 ) Change subject: bsc_test: drop "scan to MSC" code path ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I27521950432e412f919cde811c9473557d0ec25e Gerrit-Change-Number: 9490 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 13:20:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:22:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 13:22:31 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9458 ) Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... Patch Set 2: Yes, both should be needed. -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 13:22:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:22:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 13:22:56 +0000 Subject: Change in osmo-bsc[master]: dissolve libbsc: move all to src/osmo-bsc, link .o files In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9481 ) Change subject: dissolve libbsc: move all to src/osmo-bsc, link .o files ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36a586726f5818121abe54d25654819fc451d3bf Gerrit-Change-Number: 9481 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 13:22:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:24:39 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:24:39 +0000 Subject: Change in osmo-ci[master]: gsm-tester/quad_modem_power_cycle.sh: add -n 1d50:4002 Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9493 Change subject: gsm-tester/quad_modem_power_cycle.sh: add -n 1d50:4002 ...................................................................... gsm-tester/quad_modem_power_cycle.sh: add -n 1d50:4002 uhubctl -p 123456 -a 1 is rejecting because uhubctl detects two hubs. Fixes the error message: Error: changing port state for multiple hubs at once is not supported. Use -l to limit operation to one hub! Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 --- M ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/93/9493/1 diff --git a/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh b/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh index 9262f97..626a04e 100755 --- a/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh +++ b/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh @@ -1,9 +1,9 @@ #!/bin/sh set -ex -uhubctl -p 123456 -a 0 +uhubctl -p 123456 -a 0 -n 1d50:4002 # give a lot of time to discharge capacitors on the board sleep 20 -uhubctl -p 123456 -a 1 +uhubctl -p 123456 -a 1 -n 1d50:4002 attempts=30 while [ "x$(uhubctl | grep -e 05c6 -e 1199 -c)" != "x{{ gsm_modems }}" ]; do attempts=$(($attempts - 1)) -- To view, visit https://gerrit.osmocom.org/9493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 Gerrit-Change-Number: 9493 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:24:40 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:24:40 +0000 Subject: Change in osmo-ci[master]: ansible: chanage production gsm_modems to 3 Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9494 Change subject: ansible: chanage production gsm_modems to 3 ...................................................................... ansible: chanage production gsm_modems to 3 In the production setup, there are only 3 valid modems. Moving the variable into the host_vars so they can have different amount of modem between rnd & prod. Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f --- M ansible/host_vars/osmo-gsm-tester-prod.yml M ansible/host_vars/osmo-gsm-tester-rnd.yml M ansible/setup-gsm-tester.yml 3 files changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/94/9494/1 diff --git a/ansible/host_vars/osmo-gsm-tester-prod.yml b/ansible/host_vars/osmo-gsm-tester-prod.yml index e87d8fb..2f9068e 100644 --- a/ansible/host_vars/osmo-gsm-tester-prod.yml +++ b/ansible/host_vars/osmo-gsm-tester-prod.yml @@ -4,3 +4,6 @@ ip: 10.42.42.53 - mac: 00:02:95:00:5a:a4 ip: 10.42.42.54 + +# how many modems are connected via a quadmodem? +gsm_modems: 3 diff --git a/ansible/host_vars/osmo-gsm-tester-rnd.yml b/ansible/host_vars/osmo-gsm-tester-rnd.yml index b524752..2e9b0b7 100644 --- a/ansible/host_vars/osmo-gsm-tester-rnd.yml +++ b/ansible/host_vars/osmo-gsm-tester-rnd.yml @@ -2,3 +2,6 @@ udhcpd_static_leases: - mac: 00:02:95:00:41:b3 ip: 10.42.42.53 + +# how many modems are connected via a quadmodem? +gsm_modems: 4 diff --git a/ansible/setup-gsm-tester.yml b/ansible/setup-gsm-tester.yml index 02ebe0f..99cc3e4 100644 --- a/ansible/setup-gsm-tester.yml +++ b/ansible/setup-gsm-tester.yml @@ -17,8 +17,6 @@ - curl roles: - name: gsm-tester - # how many modems are connected via a quadmodem? - gsm_modems: 4 tags: - gsm-tester -- To view, visit https://gerrit.osmocom.org/9494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f Gerrit-Change-Number: 9494 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:26:21 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:26:21 +0000 Subject: Change in osmo-ci[master]: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9493 ) Change subject: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" ...................................................................... anisble: gsm-tester: uhubctl: add "-n 1d50:4002" uhubctl -p 123456 -a 1 is rejecting because uhubctl detects two hubs. Selecting only one hub. Fixes the error message: Error: changing port state for multiple hubs at once is not supported. Use -l to limit operation to one hub! Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 --- M ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/93/9493/2 -- To view, visit https://gerrit.osmocom.org/9493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 Gerrit-Change-Number: 9493 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:26:21 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:26:21 +0000 Subject: Change in osmo-ci[master]: ansible: chanage production gsm_modems to 3 In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9494 ) Change subject: ansible: chanage production gsm_modems to 3 ...................................................................... ansible: chanage production gsm_modems to 3 In the production setup, there are only 3 valid modems. Moving the variable into the host_vars so they can have different amount of modem between rnd & prod. Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f --- M ansible/host_vars/osmo-gsm-tester-prod.yml M ansible/host_vars/osmo-gsm-tester-rnd.yml M ansible/setup-gsm-tester.yml 3 files changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/94/9494/2 -- To view, visit https://gerrit.osmocom.org/9494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f Gerrit-Change-Number: 9494 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:26:48 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:26:48 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: change production gsm_modems to 3 In-Reply-To: References: Message-ID: lynxis lazus has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/9494 ) Change subject: ansible: gsm-tester: change production gsm_modems to 3 ...................................................................... ansible: gsm-tester: change production gsm_modems to 3 In the production setup, there are only 3 valid modems. Moving the variable into the host_vars so they can have different amount of modem between rnd & prod. Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f --- M ansible/host_vars/osmo-gsm-tester-prod.yml M ansible/host_vars/osmo-gsm-tester-rnd.yml M ansible/setup-gsm-tester.yml 3 files changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/94/9494/3 -- To view, visit https://gerrit.osmocom.org/9494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f Gerrit-Change-Number: 9494 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:27:23 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 13:27:23 +0000 Subject: Change in osmo-ci[master]: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9493 ) Change subject: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 Gerrit-Change-Number: 9493 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 13:27:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:29:01 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 13:29:01 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: change production gsm_modems to 3 In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9494 ) Change subject: ansible: gsm-tester: change production gsm_modems to 3 ...................................................................... Patch Set 3: Code-Review+2 As a reference, there are actually 4 modems plugged into Prod, but somehow Linux only finds 3 of them. We need to investigate why is the (I think) EC20 modem not listed there. -- To view, visit https://gerrit.osmocom.org/9494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f Gerrit-Change-Number: 9494 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 13:29:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:30:04 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:30:04 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9458 ) Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... Patch Set 2: Code-Review-2 I would abandon this patch for now. The only problem which can occur is, that ofono is installed after "our" ofono has been installed. So ofono is overwriting our ofono.service file. -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 13:30:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:31:50 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 13:31:50 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9458 ) Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... Patch Set 2: Can we add a dependency to install our ofono after the regular one is installed? -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 13:31:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:34:39 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:34:39 +0000 Subject: Change in osmo-ci[master]: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9493 ) Change subject: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" ...................................................................... Patch Set 2: The clean way would be installing only the runtime libaries -- To view, visit https://gerrit.osmocom.org/9493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 Gerrit-Change-Number: 9493 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 13:34:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:42:36 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:42:36 +0000 Subject: Change in osmo-ci[master]: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9493 ) Change subject: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" ...................................................................... Patch Set 2: > The clean way would be installing only the runtime libaries This comment went wrong. Please ignore it, it's meant for a different commit. -- To view, visit https://gerrit.osmocom.org/9493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 Gerrit-Change-Number: 9493 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 07 Jun 2018 13:42:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:42:50 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 13:42:50 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: remove ofono from the dependencies In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9458 ) Change subject: ansible: gsm-tester: remove ofono from the dependencies ...................................................................... Patch Set 2: > Can we add a dependency to install our ofono after the regular one > is installed? The clean way would be installing only the runtime libaries -- To view, visit https://gerrit.osmocom.org/9458 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id679e3fb165441b357a5ff11f240f4792dcd9dc8 Gerrit-Change-Number: 9458 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 13:42:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:48:10 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 13:48:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: update expected results: bsc, sgsn Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9495 Change subject: update expected results: bsc, sgsn ...................................................................... update expected results: bsc, sgsn Change-Id: Icc8bb648b3c79b2e29450ca38dd95bad1d2d09aa --- M bsc/expected-results.xml M sgsn/expected-results.xml 2 files changed, 26 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/95/9495/1 diff --git a/bsc/expected-results.xml b/bsc/expected-results.xml index a6f59fd..969660e 100644 --- a/bsc/expected-results.xml +++ b/bsc/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -19,12 +19,7 @@ - - Received unexpected ASSIGNMENT FAIL - BSC_Tests.ttcn:MASKED BSC_Tests control part - BSC_Tests.ttcn:MASKED TC_assignment_sign testcase - - + @@ -90,4 +85,13 @@ + + + + + + + + + diff --git a/sgsn/expected-results.xml b/sgsn/expected-results.xml index b60c25c..1949199 100644 --- a/sgsn/expected-results.xml +++ b/sgsn/expected-results.xml @@ -32,14 +32,23 @@ + + Unexpected GMM Detach Request + SGSN_Tests.ttcn:MASKED SGSN_Tests control part + SGSN_Tests.ttcn:MASKED TC_hlr_location_cancel_request_update testcase + + + + Dynamic test case error: Guard timer has expired. Execution of current test case will be interrupted. + + + Dynamic test case error: Guard timer has expired. Execution of current test case will be interrupted. + + - - Dynamic test case error: Error message was received from MC: The connect operation refers to test component with component reference 77, which has already terminated. - - - Dynamic test case error: Error message was received from MC: The connect operation refers to test component with component reference 83, which has already terminated. - + + -- To view, visit https://gerrit.osmocom.org/9495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icc8bb648b3c79b2e29450ca38dd95bad1d2d09aa Gerrit-Change-Number: 9495 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:48:26 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 13:48:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: update expected results: bsc, sgsn In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9495 ) Change subject: update expected results: bsc, sgsn ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icc8bb648b3c79b2e29450ca38dd95bad1d2d09aa Gerrit-Change-Number: 9495 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 13:48:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 13:48:30 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 13:48:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: update expected results: bsc, sgsn In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/9495 ) Change subject: update expected results: bsc, sgsn ...................................................................... update expected results: bsc, sgsn Change-Id: Icc8bb648b3c79b2e29450ca38dd95bad1d2d09aa --- M bsc/expected-results.xml M sgsn/expected-results.xml 2 files changed, 26 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified Neels Hofmeyr: Looks good to me, approved diff --git a/bsc/expected-results.xml b/bsc/expected-results.xml index a6f59fd..969660e 100644 --- a/bsc/expected-results.xml +++ b/bsc/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -19,12 +19,7 @@ - - Received unexpected ASSIGNMENT FAIL - BSC_Tests.ttcn:MASKED BSC_Tests control part - BSC_Tests.ttcn:MASKED TC_assignment_sign testcase - - + @@ -90,4 +85,13 @@ + + + + + + + + + diff --git a/sgsn/expected-results.xml b/sgsn/expected-results.xml index b60c25c..1949199 100644 --- a/sgsn/expected-results.xml +++ b/sgsn/expected-results.xml @@ -32,14 +32,23 @@ + + Unexpected GMM Detach Request + SGSN_Tests.ttcn:MASKED SGSN_Tests control part + SGSN_Tests.ttcn:MASKED TC_hlr_location_cancel_request_update testcase + + + + Dynamic test case error: Guard timer has expired. Execution of current test case will be interrupted. + + + Dynamic test case error: Guard timer has expired. Execution of current test case will be interrupted. + + - - Dynamic test case error: Error message was received from MC: The connect operation refers to test component with component reference 77, which has already terminated. - - - Dynamic test case error: Error message was received from MC: The connect operation refers to test component with component reference 83, which has already terminated. - + + -- To view, visit https://gerrit.osmocom.org/9495 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icc8bb648b3c79b2e29450ca38dd95bad1d2d09aa Gerrit-Change-Number: 9495 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 14:55:53 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 14:55:53 +0000 Subject: Change in libosmocore[master]: fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9496 Change subject: fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR ...................................................................... fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR Change-Id: Icca23940791f97fa64dbc3f2734270b99f9550c1 --- M include/osmocom/gsm/gsm0808_utils.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/96/9496/1 diff --git a/include/osmocom/gsm/gsm0808_utils.h b/include/osmocom/gsm/gsm0808_utils.h index 6555734..242bce9 100644 --- a/include/osmocom/gsm/gsm0808_utils.h +++ b/include/osmocom/gsm/gsm0808_utils.h @@ -147,7 +147,7 @@ case GSM48_CMODE_SPEECH_AMR: switch (type) { case GSM_LCHAN_TCH_F: - return GSM0808_PERM_HR3; + return GSM0808_PERM_FR3; case GSM_LCHAN_TCH_H: return GSM0808_PERM_HR3; default: -- To view, visit https://gerrit.osmocom.org/9496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icca23940791f97fa64dbc3f2734270b99f9550c1 Gerrit-Change-Number: 9496 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 15:00:11 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 15:00:11 +0000 Subject: Change in libosmocore[master]: fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9496 ) Change subject: fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR ...................................................................... Patch Set 1: Code-Review+2 obvious-triviality +2 -- To view, visit https://gerrit.osmocom.org/9496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icca23940791f97fa64dbc3f2734270b99f9550c1 Gerrit-Change-Number: 9496 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Thu, 07 Jun 2018 15:00:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 15:00:22 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 15:00:22 +0000 Subject: Change in libosmocore[master]: fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/9496 ) Change subject: fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR ...................................................................... fix gsm0808_permitted_speech(): don't return HR3 for TCH_F + AMR Change-Id: Icca23940791f97fa64dbc3f2734270b99f9550c1 --- M include/osmocom/gsm/gsm0808_utils.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Neels Hofmeyr: Looks good to me, approved diff --git a/include/osmocom/gsm/gsm0808_utils.h b/include/osmocom/gsm/gsm0808_utils.h index 6555734..242bce9 100644 --- a/include/osmocom/gsm/gsm0808_utils.h +++ b/include/osmocom/gsm/gsm0808_utils.h @@ -147,7 +147,7 @@ case GSM48_CMODE_SPEECH_AMR: switch (type) { case GSM_LCHAN_TCH_F: - return GSM0808_PERM_HR3; + return GSM0808_PERM_FR3; case GSM_LCHAN_TCH_H: return GSM0808_PERM_HR3; default: -- To view, visit https://gerrit.osmocom.org/9496 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icca23940791f97fa64dbc3f2734270b99f9550c1 Gerrit-Change-Number: 9496 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 15:16:28 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Thu, 7 Jun 2018 15:16:28 +0000 Subject: Change in osmo-bsc[master]: increment 'paging responded' counter for active paging only Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9497 Change subject: increment 'paging responded' counter for active paging only ...................................................................... increment 'paging responded' counter for active paging only Only count paging responses which can be mapped to an active paging. Unsolicited paging responses which do not correspond to an active paging would increment the 'paging response' counter. This means the number of paging attempts could be smaller than the number of paging responses, which can look confusing in the 'show statistics' VTY command. Change-Id: I7cfc7c29fb7570d41e3ac23cca17f5b98b303506 Related: OS#66 --- M src/libbsc/paging.c 1 file changed, 12 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/97/9497/1 diff --git a/src/libbsc/paging.c b/src/libbsc/paging.c index cdcae51..d6bff2a 100644 --- a/src/libbsc/paging.c +++ b/src/libbsc/paging.c @@ -352,11 +352,12 @@ * \param[in] bts BTS on which we shall stop paging * \param[in] bsub subscriber which we shall stop paging * \param[in] conn connection to the subscriber (if any) - * \param[in] msg message received from subscrbier (if any) */ + * \param[in] msg message received from subscrbier (if any) + * \returns 0 if an active paging request was stopped, an error code otherwise. */ /* we consciously ignore the type of the request here */ -static void _paging_request_stop(struct gsm_bts *bts, struct bsc_subscr *bsub, - struct gsm_subscriber_connection *conn, - struct msgb *msg) +static int _paging_request_stop(struct gsm_bts *bts, struct bsc_subscr *bsub, + struct gsm_subscriber_connection *conn, + struct msgb *msg) { struct gsm_bts_paging_state *bts_entry = &bts->paging; struct gsm_paging_request *req, *req2; @@ -370,9 +371,11 @@ paging_remove_request(&bts->paging, req); LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Stop paging %s\n", bts->nr, bsc_subscr_name(bsub)); - break; + return 0; } } + + return -ENOENT; } /*! Stop paging on all other bts' @@ -391,9 +394,10 @@ /* Stop this first and dispatch the request */ if (_bts) { - _paging_request_stop(_bts, bsub, conn, msg); - rate_ctr_inc(&_bts->bts_ctrs->ctr[BTS_CTR_PAGING_RESPONDED]); - rate_ctr_inc(&_bts->network->bsc_ctrs->ctr[BSC_CTR_PAGING_RESPONDED]); + if (_paging_request_stop(_bts, bsub, conn, msg) == 0) { + rate_ctr_inc(&_bts->bts_ctrs->ctr[BTS_CTR_PAGING_RESPONDED]); + rate_ctr_inc(&_bts->network->bsc_ctrs->ctr[BSC_CTR_PAGING_RESPONDED]); + } } /* Make sure to cancel this everywhere else */ -- To view, visit https://gerrit.osmocom.org/9497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7cfc7c29fb7570d41e3ac23cca17f5b98b303506 Gerrit-Change-Number: 9497 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 15:17:13 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 15:17:13 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of filter "| changed" Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9498 Change subject: ansible: fix deprecation of filter "| changed" ...................................................................... ansible: fix deprecation of filter "| changed" "| changed" filter will be removed in ansible 2.9 Change-Id: Idf11d54d60b78733ed212f04940cee15b3a55400 --- M ansible/roles/gsm-tester-bts/tasks/main.yml M ansible/roles/gsm-tester-network/tasks/main.yml M ansible/roles/udhcpd/tasks/main.yml 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/98/9498/1 diff --git a/ansible/roles/gsm-tester-bts/tasks/main.yml b/ansible/roles/gsm-tester-bts/tasks/main.yml index fa4bccd..e979605 100644 --- a/ansible/roles/gsm-tester-bts/tasks/main.yml +++ b/ansible/roles/gsm-tester-bts/tasks/main.yml @@ -27,7 +27,7 @@ command: uhd_images_downloader args: creates: /usr/share/uhd/images - when: uhd_installed | changed + when: uhd_installed is changed - name: usrp allow jenkins to access user: diff --git a/ansible/roles/gsm-tester-network/tasks/main.yml b/ansible/roles/gsm-tester-network/tasks/main.yml index 0a023a7..210bf1e 100644 --- a/ansible/roles/gsm-tester-network/tasks/main.yml +++ b/ansible/roles/gsm-tester-network/tasks/main.yml @@ -8,4 +8,4 @@ - name: start all network interface command: ifup -a - when: gsm_tester_network_interface | changed + when: gsm_tester_network_interface is changed diff --git a/ansible/roles/udhcpd/tasks/main.yml b/ansible/roles/udhcpd/tasks/main.yml index e444684..e1e7b36 100644 --- a/ansible/roles/udhcpd/tasks/main.yml +++ b/ansible/roles/udhcpd/tasks/main.yml @@ -22,7 +22,7 @@ - name: systemctl daemon-reload systemd: daemon_reload: yes - when: udhcpdservice | changed + when: udhcpdservice is changed - name: ensure the systemd service is installed systemd: -- To view, visit https://gerrit.osmocom.org/9498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idf11d54d60b78733ed212f04940cee15b3a55400 Gerrit-Change-Number: 9498 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 15:17:14 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 7 Jun 2018 15:17:14 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of "include:" Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9499 Change subject: ansible: fix deprecation of "include:" ...................................................................... ansible: fix deprecation of "include:" "include:" has been deprecated in favour of "include_tasks:". Change-Id: I6e1bb11e9392f7da9ed554c37f9625daa0950308 --- M ansible/roles/osmocom-jenkins-slave/tasks/main.yml 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/99/9499/1 diff --git a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml index 215c988..f76489c 100644 --- a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml +++ b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml @@ -1,7 +1,7 @@ --- - name: install jenkins packages - include: debian.yml + include_tasks: debian.yml when: ansible_distribution == 'Debian' - name: install build utilities @@ -100,11 +100,11 @@ key: "{{ lookup('file', 'jenkins.osmocom.org.pub') }}" - name: include generic slave - include: generic-slave.yml + include_tasks: generic-slave.yml when: generic_slave - name: install ttcn3 dependencies - include: ttcn3-slave.yml + include_tasks: ttcn3-slave.yml when: ttcn3_slave and ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch' - name: copy .gitconfig -- To view, visit https://gerrit.osmocom.org/9499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6e1bb11e9392f7da9ed554c37f9625daa0950308 Gerrit-Change-Number: 9499 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 15:19:02 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 15:19:02 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of filter "| changed" In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9498 ) Change subject: ansible: fix deprecation of filter "| changed" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idf11d54d60b78733ed212f04940cee15b3a55400 Gerrit-Change-Number: 9498 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 15:19:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 15:19:38 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Jun 2018 15:19:38 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of "include:" In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9499 ) Change subject: ansible: fix deprecation of "include:" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6e1bb11e9392f7da9ed554c37f9625daa0950308 Gerrit-Change-Number: 9499 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Jun 2018 15:19:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:04:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:04:56 +0000 Subject: Change in osmo-bsc[master]: increment 'paging responded' counter for active paging only In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9497 ) Change subject: increment 'paging responded' counter for active paging only ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7cfc7c29fb7570d41e3ac23cca17f5b98b303506 Gerrit-Change-Number: 9497 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:04:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:04:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:04:57 +0000 Subject: Change in osmo-bsc[master]: increment 'paging responded' counter for active paging only In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9497 ) Change subject: increment 'paging responded' counter for active paging only ...................................................................... increment 'paging responded' counter for active paging only Only count paging responses which can be mapped to an active paging. Unsolicited paging responses which do not correspond to an active paging would increment the 'paging response' counter. This means the number of paging attempts could be smaller than the number of paging responses, which can look confusing in the 'show statistics' VTY command. Change-Id: I7cfc7c29fb7570d41e3ac23cca17f5b98b303506 Related: OS#66 --- M src/libbsc/paging.c 1 file changed, 12 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libbsc/paging.c b/src/libbsc/paging.c index cdcae51..d6bff2a 100644 --- a/src/libbsc/paging.c +++ b/src/libbsc/paging.c @@ -352,11 +352,12 @@ * \param[in] bts BTS on which we shall stop paging * \param[in] bsub subscriber which we shall stop paging * \param[in] conn connection to the subscriber (if any) - * \param[in] msg message received from subscrbier (if any) */ + * \param[in] msg message received from subscrbier (if any) + * \returns 0 if an active paging request was stopped, an error code otherwise. */ /* we consciously ignore the type of the request here */ -static void _paging_request_stop(struct gsm_bts *bts, struct bsc_subscr *bsub, - struct gsm_subscriber_connection *conn, - struct msgb *msg) +static int _paging_request_stop(struct gsm_bts *bts, struct bsc_subscr *bsub, + struct gsm_subscriber_connection *conn, + struct msgb *msg) { struct gsm_bts_paging_state *bts_entry = &bts->paging; struct gsm_paging_request *req, *req2; @@ -370,9 +371,11 @@ paging_remove_request(&bts->paging, req); LOGP(DPAG, LOGL_DEBUG, "(bts=%d) Stop paging %s\n", bts->nr, bsc_subscr_name(bsub)); - break; + return 0; } } + + return -ENOENT; } /*! Stop paging on all other bts' @@ -391,9 +394,10 @@ /* Stop this first and dispatch the request */ if (_bts) { - _paging_request_stop(_bts, bsub, conn, msg); - rate_ctr_inc(&_bts->bts_ctrs->ctr[BTS_CTR_PAGING_RESPONDED]); - rate_ctr_inc(&_bts->network->bsc_ctrs->ctr[BSC_CTR_PAGING_RESPONDED]); + if (_paging_request_stop(_bts, bsub, conn, msg) == 0) { + rate_ctr_inc(&_bts->bts_ctrs->ctr[BTS_CTR_PAGING_RESPONDED]); + rate_ctr_inc(&_bts->network->bsc_ctrs->ctr[BSC_CTR_PAGING_RESPONDED]); + } } /* Make sure to cancel this everywhere else */ -- To view, visit https://gerrit.osmocom.org/9497 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7cfc7c29fb7570d41e3ac23cca17f5b98b303506 Gerrit-Change-Number: 9497 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:05:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:05:42 +0000 Subject: Change in osmo-bsc[master]: tests: remove bssap_test In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9483 ) Change subject: tests: remove bssap_test ...................................................................... tests: remove bssap_test Rationale: - All it does is compose four Paging Requests and feed it into the osmo-bsc bssap_udt, and expects the cell identifier to be decoded properly. - To do so it employs a comparatively huge linking effort. This linking effort is becoming annoying in my ongoing work and is just not worth it. - We have comprehensive cell identifier tests in ttcn3, verifying that the proper cells are paged, and that actually for *all* cell identifier types. Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 --- M configure.ac M tests/Makefile.am D tests/bssap/Makefile.am D tests/bssap/bssap_test.c D tests/bssap/bssap_test.err D tests/bssap/bssap_test.ok M tests/testsuite.at 7 files changed, 0 insertions(+), 247 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index bcf890c..b0e17c5 100644 --- a/configure.ac +++ b/configure.ac @@ -181,7 +181,6 @@ tests/abis/Makefile tests/subscr/Makefile tests/nanobts_omlattr/Makefile - tests/bssap/Makefile tests/handover/Makefile doc/Makefile doc/examples/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index 20368ee..7bbef99 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -5,7 +5,6 @@ abis \ subscr \ nanobts_omlattr \ - bssap \ handover \ $(NULL) diff --git a/tests/bssap/Makefile.am b/tests/bssap/Makefile.am deleted file mode 100644 index 30a9246..0000000 --- a/tests/bssap/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOSIGTRAN_CFLAGS) \ - $(COVERAGE_CFLAGS) \ - $(LIBOSMOMGCPCLIENT_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - bssap_test.ok \ - bssap_test.err \ - $(NULL) - -noinst_PROGRAMS = \ - bssap_test \ - $(NULL) - -bssap_test_SOURCES = \ - bssap_test.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_bssap.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_sigtran.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_filter.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_grace.c \ - $(NULL) - -bssap_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBOSMOMGCPCLIENT_LIBS) \ - $(NULL) - -bssap_test_LDFLAGS = \ - -Wl,--wrap=bsc_grace_paging_request \ - $(NULL) - -.PHONY: update_exp -update_exp: - $(builddir)/bssap_test >$(srcdir)/bssap_test.ok 2>$(srcdir)/bssap_test.err diff --git a/tests/bssap/bssap_test.c b/tests/bssap/bssap_test.c deleted file mode 100644 index c9e7075..0000000 --- a/tests/bssap/bssap_test.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * (C) 2017 by sysmocom - s.f.m.c. GmbH - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include - -#include -#include -#include -#include -#include -#include -#include - -struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) -{ - struct msgb *msg = msgb_alloc(size, label); - unsigned char *rc; - msg->l2h = msg->l3h = msg->head; - rc = msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg))); - OSMO_ASSERT(rc == msg->l2h); - return msg; -} - -uint16_t gl_expect_lac = 0; - -/* override, requires '-Wl,--wrap=bsc_grace_paging_request' */ -int __real_bsc_grace_paging_request(enum signal_rf rf_policy, struct bsc_subscr *subscr, int chan_needed, - struct bsc_msc_data *msc, struct gsm_bts *bts); -int __wrap_bsc_grace_paging_request(enum signal_rf rf_policy, struct bsc_subscr *subscr, int chan_needed, - struct bsc_msc_data *msc, struct gsm_bts *bts) -{ - if (subscr->lac == GSM_LAC_RESERVED_ALL_BTS) - fprintf(stderr, "BSC paging started on entire BSS (%u)\n", subscr->lac); - else - fprintf(stderr, "BSC paging started with LAC %u\n", subscr->lac); - OSMO_ASSERT(gl_expect_lac == subscr->lac); - return 1; /* pretend one BTS was paged */ -} - -struct { - const char *msg; - uint16_t expect_lac; - int expect_rc; -} cell_identifier_tests[] = { - { - "001652080859512069000743940904010844601a03050065", - /* ^^^^^^ Cell Identifier List: LAC */ - 0x65, 0 - }, - { - "001452080859512069000743940904010844601a0106", - /* ^^ Cell Identifier List: BSS */ - GSM_LAC_RESERVED_ALL_BTS, 0 - }, - { - "001952080859512069000743940904010844601a060415f5490065", - /* ^^^^^^^^^^^^ Cell Identifier List: LAI */ - GSM_LAC_RESERVED_ALL_BTS, 0 - }, - { - "001952080859512069000743940904010844601a060400f1100065", - /* ^^^^^^^^^^^^ Cell Identifier List: LAI */ - 0x65, 0 - }, -}; - -struct gsm_network *bsc_gsmnet; - -void test_cell_identifier() -{ - int i; - int rc; - struct bsc_msc_data *msc; - struct gsm_bts *bts; - - bsc_gsmnet = bsc_network_init(NULL); - bsc_gsmnet->bsc_data->rf_ctrl = talloc_zero(NULL, struct osmo_bsc_rf); - bsc_gsmnet->bsc_data->rf_ctrl->policy = S_RF_ON; - - msc = talloc_zero(bsc_gsmnet, struct bsc_msc_data); - msc->network = bsc_gsmnet; - - bts = gsm_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_UNKNOWN, 0); - if (bts == NULL) { - fprintf(stderr, "gsm_bts_alloc_register() returned NULL\n"); - return; - } - - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - - for (i = 0; i < ARRAY_SIZE(cell_identifier_tests); i++) { - struct msgb *msg; - fprintf(stderr, "\n%d:\n", i); - msg = msgb_from_hex("test_cell_identifier", 1024, cell_identifier_tests[i].msg); - - gl_expect_lac = cell_identifier_tests[i].expect_lac; - bts->location_area_code = (gl_expect_lac == GSM_LAC_RESERVED_ALL_BTS ? 0 : gl_expect_lac); - rc = bsc_handle_udt(msc, msg, msgb_l2len(msg)); - - fprintf(stderr, "bsc_handle_udt() returned %d\n", rc); - OSMO_ASSERT(rc == cell_identifier_tests[i].expect_rc); - - msgb_free(msg); - } -} - -static const struct log_info_cat log_categories[] = { - [DMSC] = { - .name = "DMSC", - .description = "Mobile Switching Center", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, - [DREF] = { - .name = "DREF", - .description = "Reference Counting", - .enabled = 0, .loglevel = LOGL_DEBUG, - }, -}; - -static const struct log_info log_info = { - .cat = log_categories, - .num_cat = ARRAY_SIZE(log_categories), -}; - -int main(int argc, char **argv) -{ - void *tall_ctx = talloc_named_const(NULL, 1, "bssap_test"); - msgb_talloc_ctx_init(tall_ctx, 0); - osmo_init_logging2(tall_ctx, &log_info); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_timestamp(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - log_set_print_category(osmo_stderr_target, 1); - - test_cell_identifier(); - - return 0; -} - -struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { - OSMO_ASSERT(0); -} - -int bsc_sccplite_rx_ctrl(struct osmo_ss7_asp *asp, struct msgb *msg) { - OSMO_ASSERT(0); -} diff --git a/tests/bssap/bssap_test.err b/tests/bssap/bssap_test.err deleted file mode 100644 index 8ae3b22..0000000 --- a/tests/bssap/bssap_test.err +++ /dev/null @@ -1,27 +0,0 @@ - -0: -DMSC Rx MSC UDT: 00 16 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 03 05 00 65 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging request from MSC BTS: 0 IMSI: '515029600703449' TMSI: '0x1084460/17319008' LAC: 0x65 -BSC paging started with LAC 101 -bsc_handle_udt() returned 0 - -1: -DMSC Rx MSC UDT: 00 14 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 01 06 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging request from MSC BTS: 0 IMSI: '515029600703449' TMSI: '0x1084460/17319008' LAC: 0xfffe -BSC paging started on entire BSS (65534) -bsc_handle_udt() returned 0 - -2: -DMSC Rx MSC UDT: 00 19 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 06 04 15 f5 49 00 65 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging IMSI 515029600703449: MCC-MNC in Cell Identifier List (515-94) do not match our network (001-01) -bsc_handle_udt() returned 0 - -3: -DMSC Rx MSC UDT: 00 19 52 08 08 59 51 20 69 00 07 43 94 09 04 01 08 44 60 1a 06 04 00 f1 10 00 65 -DMSC Rx MSC UDT BSSMAP PAGING -DMSC Paging request from MSC BTS: 0 IMSI: '515029600703449' TMSI: '0x1084460/17319008' LAC: 0x65 -BSC paging started with LAC 101 -bsc_handle_udt() returned 0 diff --git a/tests/bssap/bssap_test.ok b/tests/bssap/bssap_test.ok deleted file mode 100644 index e69de29..0000000 --- a/tests/bssap/bssap_test.ok +++ /dev/null diff --git a/tests/testsuite.at b/tests/testsuite.at index 07bd85f..974af89 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -38,13 +38,6 @@ AT_CHECK([$abs_top_builddir/tests/nanobts_omlattr/nanobts_omlattr_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([bssap]) -AT_KEYWORDS([bssap]) -cat $abs_srcdir/bssap/bssap_test.ok > expout -cat $abs_srcdir/bssap/bssap_test.err > experr -AT_CHECK([$abs_top_builddir/tests/bssap/bssap_test], [], [expout], [experr]) -AT_CLEANUP - AT_SETUP([handover test 0]) AT_KEYWORDS([handover]) cat $abs_srcdir/handover/handover_test.ok > expout -- To view, visit https://gerrit.osmocom.org/9483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I07cf23b66de36cfa1142a11b9f85e9c0190ee314 Gerrit-Change-Number: 9483 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:05:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:05:42 +0000 Subject: Change in osmo-bsc[master]: tests: remove channel_test In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9484 ) Change subject: tests: remove channel_test ...................................................................... tests: remove channel_test Rationale: channel_test is trivial and useless, probably only exists as a legacy from openbsc.git. - it tests two printf()s of "(bts=45,trx=0,ts=3,ss=4)", hardly useful. - it tests ts_subslots() behavior for dyn ts, which will soon be replaced by a most trivial mapping that does no longer need complex dyn ts state evaluation (when introducing the new timeslot FSM to handle dyn TS switchover). Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 --- M configure.ac M tests/Makefile.am D tests/channel/Makefile.am D tests/channel/channel_test.c D tests/channel/channel_test.ok M tests/testsuite.at 6 files changed, 0 insertions(+), 165 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index b0e17c5..62a7dd0 100644 --- a/configure.ac +++ b/configure.ac @@ -176,7 +176,6 @@ tests/Makefile tests/atlocal tests/gsm0408/Makefile - tests/channel/Makefile tests/bsc/Makefile tests/abis/Makefile tests/subscr/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index 7bbef99..95d836b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,7 +1,6 @@ SUBDIRS = \ bsc \ gsm0408 \ - channel \ abis \ subscr \ nanobts_omlattr \ diff --git a/tests/channel/Makefile.am b/tests/channel/Makefile.am deleted file mode 100644 index f641f60..0000000 --- a/tests/channel/Makefile.am +++ /dev/null @@ -1,31 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - channel_test.ok \ - $(NULL) - -noinst_PROGRAMS = \ - channel_test \ - $(NULL) - -channel_test_SOURCES = \ - channel_test.c \ - $(NULL) - -channel_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(NULL) diff --git a/tests/channel/channel_test.c b/tests/channel/channel_test.c deleted file mode 100644 index e8f6cd9..0000000 --- a/tests/channel/channel_test.c +++ /dev/null @@ -1,124 +0,0 @@ -/* - * (C) 2009 by Holger Hans Peter Freyther - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include - -#include - -#include -#include - -#include -#include -#include - -void test_bts_debug_print(void) -{ - struct gsm_network *network; - struct gsm_bts *bts; - struct gsm_bts_trx *trx; - - printf("Testing the lchan printing:"); - - /* Create a dummy network */ - network = bsc_network_init(tall_bsc_ctx); - if (!network) - exit(1); - /* Add a BTS with some reasonanbly non-zero id */ - bts = gsm_bts_alloc(network, 45); - /* Add a second TRX to test on multiple TRXs */ - gsm_bts_trx_alloc(bts); - - llist_for_each_entry(trx, &bts->trx_list, list) { - char *name = gsm_lchan_name(&trx->ts[3].lchan[4]); - - if (name) - printf(" %s", name); - else - printf("NULL name"); - } - printf("\n"); -} - - -void test_dyn_ts_subslots(void) -{ - struct gsm_bts_trx_ts ts; - - printf("Testing subslot numbers for pchan types\n"); - - ts.pchan = GSM_PCHAN_TCH_F; - OSMO_ASSERT(ts_subslots(&ts) == 1); - - ts.pchan = GSM_PCHAN_TCH_H; - OSMO_ASSERT(ts_subslots(&ts) == 2); - - ts.pchan = GSM_PCHAN_PDCH; - OSMO_ASSERT(ts_subslots(&ts) == 0); - - ts.pchan = GSM_PCHAN_TCH_F_PDCH; - ts.flags = 0; /* TCH_F mode */ - OSMO_ASSERT(ts_subslots(&ts) == 1); - ts.flags = TS_F_PDCH_ACTIVE; - OSMO_ASSERT(ts_subslots(&ts) == 0); - - ts.pchan = GSM_PCHAN_TCH_F_TCH_H_PDCH; - ts.dyn.pchan_is = GSM_PCHAN_TCH_F; - OSMO_ASSERT(ts_subslots(&ts) == 1); - ts.dyn.pchan_is = GSM_PCHAN_TCH_H; - OSMO_ASSERT(ts_subslots(&ts) == 2); - ts.dyn.pchan_is = GSM_PCHAN_PDCH; - OSMO_ASSERT(ts_subslots(&ts) == 0); -} - -static const struct log_info_cat log_categories[] = { -}; - -static const struct log_info log_info = { - .cat = log_categories, - .num_cat = ARRAY_SIZE(log_categories), -}; - -int main(int argc, char **argv) -{ - osmo_init_logging2(NULL, &log_info); - - test_dyn_ts_subslots(); - test_bts_debug_print(); - - return EXIT_SUCCESS; -} - -void sms_alloc() {} -void sms_free() {} -void gsm48_secure_channel() {} -void vty_out() {} - -void ipa_client_conn_clear_queue() {} -void ipa_client_conn_close() {} -void ipa_client_conn_create() {} -void ipa_client_conn_destroy() {} -void ipa_client_conn_open() {} -void ipa_client_conn_send() {} -void ipa_msg_push_header() {} -void ipaccess_bts_handle_ccm() {} -struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *network) { return NULL; } - -struct tlv_definition nm_att_tlvdef; diff --git a/tests/channel/channel_test.ok b/tests/channel/channel_test.ok deleted file mode 100644 index 81d6569..0000000 --- a/tests/channel/channel_test.ok +++ /dev/null @@ -1,2 +0,0 @@ -Testing subslot numbers for pchan types -Testing the lchan printing: (bts=45,trx=0,ts=3,ss=4) (bts=45,trx=1,ts=3,ss=4) diff --git a/tests/testsuite.at b/tests/testsuite.at index 974af89..515ffa0 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -14,12 +14,6 @@ AT_CHECK([$abs_top_builddir/tests/subscr/bsc_subscr_test], [], [expout], [experr]) AT_CLEANUP -AT_SETUP([channel]) -AT_KEYWORDS([channel]) -cat $abs_srcdir/channel/channel_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/channel/channel_test], [], [expout], [ignore]) -AT_CLEANUP - AT_SETUP([abis]) AT_KEYWORDS([abis]) cat $abs_srcdir/abis/abis_test.ok > expout -- To view, visit https://gerrit.osmocom.org/9484 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib2232da8e7fa964b92492d7b778320401dc97703 Gerrit-Change-Number: 9484 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:05:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:05:42 +0000 Subject: Change in osmo-bsc[master]: bsc_test: drop "scan to MSC" code path In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9490 ) Change subject: bsc_test: drop "scan to MSC" code path ...................................................................... bsc_test: drop "scan to MSC" code path The TEST_SCAN_TO_MSC is completely unused, but still the code linked bsc_scan_bts_msg() for the unused code path. This is unlikely to ever be expanded. Remove TEST_SCAN_TO_MSC and reduce linking requirements. (I am this close to dropping the test entirely to avoid continuous linking annoyance, but ok, since nothing else tests timezones AFAIK, keeping it.) Change-Id: I27521950432e412f919cde811c9473557d0ec25e --- M tests/bsc/bsc_test.c 1 file changed, 0 insertions(+), 7 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c index 106b08b..08d3760 100644 --- a/tests/bsc/bsc_test.c +++ b/tests/bsc/bsc_test.c @@ -43,7 +43,6 @@ enum test { TEST_SCAN_TO_BTS, - TEST_SCAN_TO_MSC, }; /* GSM 04.08 MM INFORMATION test message */ @@ -158,12 +157,6 @@ /* override timezone of msg coming from the MSC */ result = bsc_scan_msc_msg(conn, msg); break; - case TEST_SCAN_TO_MSC: - /* override timezone of msg coming from the BSC */ - /* FIXME: no test for this case is defined in - * test_scan_defs[], so this is never used. */ - result = bsc_scan_bts_msg(conn, msg); - break; default: abort(); break; -- To view, visit https://gerrit.osmocom.org/9490 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I27521950432e412f919cde811c9473557d0ec25e Gerrit-Change-Number: 9490 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:06:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:06:05 +0000 Subject: Change in osmo-bsc[master]: remove struct bsc_api In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9482 ) Change subject: remove struct bsc_api ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3fd5888c63a0b4f95520a498320aa105a6d60579 Gerrit-Change-Number: 9482 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:06:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:06:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:06:15 +0000 Subject: Change in osmo-bsc[master]: cosmetic: magic number: use RSL_ACT_ constant for chan act In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9485 ) Change subject: cosmetic: magic number: use RSL_ACT_ constant for chan act ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I64ac2a17634f18322828ee2aa2284b0513130488 Gerrit-Change-Number: 9485 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Jun 2018 17:06:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:07:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:07:53 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9281 ) Change subject: assignment: signal assignment failure on chan act nack ...................................................................... Patch Set 5: (2 comments) https://gerrit.osmocom.org/#/c/9281/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9281/1//COMMIT_MSG at 16 PS1, Line 16: Cosmetic: in this file, the struct bsc_api* is typically named 'bsc', not : 'api', so rename the arg. I guess you can remove that from the commitlog now. https://gerrit.osmocom.org/#/c/9281/5//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9281/5//COMMIT_MSG at 16 PS5, Line 16: Cosmetic: in this file, the struct bsc_api* is typically named 'bsc', not : 'api', so rename the arg. I guess that can be removed now that bsc_api is gone -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 07 Jun 2018 17:07:53 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:08:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:08:16 +0000 Subject: Change in osmo-bsc[master]: log: fix logging in rsl_rx_chan_act_nack() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9282 ) Change subject: log: fix logging in rsl_rx_chan_act_nack() ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd2772b21ef3a2ff5af11b7c92dff0ecb4d87ff0 Gerrit-Change-Number: 9282 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:08:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:08:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:08:27 +0000 Subject: Change in osmo-bsc[master]: log: assignment: add two logs on unexpected lchan release In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9283 ) Change subject: log: assignment: add two logs on unexpected lchan release ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib61125ebc41e55dc4a6595db8c8559c62b3ed2c0 Gerrit-Change-Number: 9283 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:08:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:08:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:08:43 +0000 Subject: Change in osmo-bsc[master]: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9284 ) Change subject: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 Gerrit-Change-Number: 9284 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:08:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:08:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:08:59 +0000 Subject: Change in osmo-bsc[master]: cosmetic: penalty timers: constify, tweak doc In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9285 ) Change subject: cosmetic: penalty timers: constify, tweak doc ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I28addc9a16a4c81978290303d368f630a8334228 Gerrit-Change-Number: 9285 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:08:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:09:17 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:09:17 +0000 Subject: Change in osmo-bsc[master]: dissolve libbsc: move all to src/osmo-bsc, link .o files In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9481 to look at the new patch set (#4). Change subject: dissolve libbsc: move all to src/osmo-bsc, link .o files ...................................................................... dissolve libbsc: move all to src/osmo-bsc, link .o files Move all of libbsc/ into osmo-bsc/, and separate/move some implementations to allow linking from utils/* and ipaccess/* without pulling in unccessary dependencies. Some utilities use gsm_network and gsm_bts structs, which already include data structures for fairly advanced uses. Move initialization that only osmo-bsc needs into new bsc_network_init() and bsc_bts_alloc_register() functions, so that the leaner tools can use the old gsm_* versions without the need to link everything (e.g. handover and lchan alloc code). In some instances, there need to be stubs if to cut off linking "just before the RSL level" and prevent dependencies from creeping in. - abis_rsl_rcvmsg(): the only program currently interpreting RSL messages is osmo-bsc, the utils are merely concerned with OML, if at all. - paging_flush_bts(): ip.access nanobts models call this when the RSL link is dropped. Only osmo-bsc actually needs to do anything there. - on_gsm_ts_init(): the mechanism to trigger timeslot initialization is related to OML, while this action to take on init would pull in RSL dependencies. utils/ and ipaccess/ each have a stubs.c file to implement these stubs. Tests implement stubs inline where required. >From src/utils/, src/ipaccess/ and tests/*/, link in .o files from osmo-bsc/. In order for this to work, the osmo-bsc subdir must be built before the other source trees. (An alternative would be to include the .c files as sources, but that would re-compile them in every source tree. Not a large burden really, but unless linking .o files gives problems, let's have the quicker build.) Minor obvious cleanups creep in with this patch, I will not bother to name them individually now unless code review asks me to. Rationale: 1) libbsc has been separate to use it for osmo-nitb and osmo-bsc in the old openbsc.git. This is no longer required, and spreading over libbsc and osmo-bsc is distracting. 2) Recently, ridiculous linking requirements have made adding new functions cumbersome, because libbsc has started depending on osmo-bsc/*.c implementations: on gscon FSM and bssap functions. For example, neither bs11_config nor ipaccess-config nor bts_test need handover_cfg or BSSMAP message composition. It makes no sense to link the entire osmo-bsc to it, nor do we want to keep adding stubs to each linking realm. Change-Id: I36a586726f5818121abe54d25654819fc451d3bf --- M configure.ac M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bss.h M include/osmocom/bsc/chan_alloc.h D include/osmocom/bsc/common_bsc.h M include/osmocom/bsc/gsm_data.h M src/Makefile.am M src/ipaccess/Makefile.am M src/ipaccess/ipaccess-config.c A src/ipaccess/stubs.c D src/libbsc/Makefile.am D src/libbsc/bsc_init.c D src/libbsc/net_init.c M src/osmo-bsc/Makefile.am R src/osmo-bsc/a_reset.c A src/osmo-bsc/abis_bs11.c R src/osmo-bsc/abis_nm.c R src/osmo-bsc/abis_nm_ipaccess.c R src/osmo-bsc/abis_nm_vty.c R src/osmo-bsc/abis_om2000.c R src/osmo-bsc/abis_om2000_vty.c R src/osmo-bsc/abis_rsl.c R src/osmo-bsc/acc_ramp.c R src/osmo-bsc/arfcn_range_encode.c R src/osmo-bsc/bsc_api.c R src/osmo-bsc/bsc_ctrl_commands.c R src/osmo-bsc/bsc_ctrl_lookup.c R src/osmo-bsc/bsc_dyn_ts.c A src/osmo-bsc/bsc_init.c R src/osmo-bsc/bsc_rf_ctrl.c R src/osmo-bsc/bsc_rll.c R src/osmo-bsc/bsc_subscr_conn_fsm.c R src/osmo-bsc/bsc_subscriber.c R src/osmo-bsc/bsc_vty.c R src/osmo-bsc/bts_ericsson_rbs2000.c R src/osmo-bsc/bts_init.c R src/osmo-bsc/bts_ipaccess_nanobts.c R src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c R src/osmo-bsc/bts_nokia_site.c R src/osmo-bsc/bts_siemens_bs11.c R src/osmo-bsc/bts_sysmobts.c R src/osmo-bsc/bts_unknown.c R src/osmo-bsc/chan_alloc.c R src/osmo-bsc/e1_config.c R src/osmo-bsc/gsm_04_08_utils.c R src/osmo-bsc/gsm_04_80_utils.c R src/osmo-bsc/gsm_data.c R src/osmo-bsc/handover_cfg.c R src/osmo-bsc/handover_decision.c R src/osmo-bsc/handover_decision_2.c R src/osmo-bsc/handover_logic.c R src/osmo-bsc/handover_vty.c R src/osmo-bsc/meas_feed.c R src/osmo-bsc/meas_rep.c A src/osmo-bsc/net_init.c R src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c R src/osmo-bsc/paging.c R src/osmo-bsc/pcu_sock.c R src/osmo-bsc/penalty_timers.c R src/osmo-bsc/rest_octets.c R src/osmo-bsc/system_information.c M src/utils/Makefile.am M src/utils/bs11_config.c A src/utils/stubs.c M tests/abis/Makefile.am M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/subscr/Makefile.am 76 files changed, 1,060 insertions(+), 906 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9481/4 -- To view, visit https://gerrit.osmocom.org/9481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I36a586726f5818121abe54d25654819fc451d3bf Gerrit-Change-Number: 9481 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:09:17 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:09:17 +0000 Subject: Change in osmo-bsc[master]: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9284 to look at the new patch set (#6). Change subject: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() ...................................................................... use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() The guts of bssap_speech_from_lchan() and lchan_to_chosen_channel() have been moved to libosmocore; call those instead. The return value of bssap_speech_from_lchan() used to be -1 on error, now the error value is 0. The only caller did not handle -1 properly, but fed it directly to a uint8_t. On gsm0808_chosen_channel() error, log the error. Proper handling is missing. Fixing the error handling in send_ass_compl() is a separate issue: currently it is limited to logging, there is no way to return an error yet, nor any actions to take on error. Depends: Icca23940791f97fa64dbc3f2734270b99f9550c1 (libosmocore) Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 7 insertions(+), 84 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/9284/6 -- To view, visit https://gerrit.osmocom.org/9284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 Gerrit-Change-Number: 9284 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:09:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:09:52 +0000 Subject: Change in osmo-bsc[master]: cosmetic: bsc_subscr_alloc: log initial get In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9286 ) Change subject: cosmetic: bsc_subscr_alloc: log initial get ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9286 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia72f8010b7b2e1ca44e3b005c0f2c05f3eeae8d5 Gerrit-Change-Number: 9286 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:09:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:10:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:10:08 +0000 Subject: Change in osmo-bsc[master]: gscon: put subscriber a little later In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9287 ) Change subject: gscon: put subscriber a little later ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9287 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa528b58842a02509bfe0af6915c64bd67058bcd Gerrit-Change-Number: 9287 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:10:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:10:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:10:48 +0000 Subject: Change in osmo-bsc[master]: try to pick up subsrc IMSI on l3-compl In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9288 ) Change subject: try to pick up subsrc IMSI on l3-compl ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3b696a0c0932e3abcb682ba231db65755d8c27a6 Gerrit-Change-Number: 9288 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:10:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:11:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:11:15 +0000 Subject: Change in osmo-bsc[master]: store subscriber identity on paging In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9289 ) Change subject: store subscriber identity on paging ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9289 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0ab7bedfe693bb4e42a04fb0585b94a730ff2d9b Gerrit-Change-Number: 9289 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Thu, 07 Jun 2018 17:11:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:11:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:11:24 +0000 Subject: Change in osmo-bsc[master]: cosmetic: handover_test: add IMSI to subscr for logging In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9290 ) Change subject: cosmetic: handover_test: add IMSI to subscr for logging ...................................................................... Patch Set 6: Verified+1 -- To view, visit https://gerrit.osmocom.org/9290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52fa8f3183c93ed362d8252d20daf00c60a117c8 Gerrit-Change-Number: 9290 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:11:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:11:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:11:27 +0000 Subject: Change in osmo-bsc[master]: cosmetic: handover_test: add IMSI to subscr for logging In-Reply-To: References: Message-ID: Harald Welte has removed a vote on this change. Change subject: cosmetic: handover_test: add IMSI to subscr for logging ...................................................................... Removed Verified+1 by Harald Welte -- To view, visit https://gerrit.osmocom.org/9290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: deleteVote Gerrit-Change-Id: I52fa8f3183c93ed362d8252d20daf00c60a117c8 Gerrit-Change-Number: 9290 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:11:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:11:42 +0000 Subject: Change in osmo-bsc[master]: doc: tweak msc charts on Assignment/Handover: act_timer In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9486 ) Change subject: doc: tweak msc charts on Assignment/Handover: act_timer ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6205e43c227652432548c5c99bed5a197c095da2 Gerrit-Change-Number: 9486 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:11:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:11:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:11:55 +0000 Subject: Change in osmo-bsc[master]: doc: add lchan-release.msc In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9487 ) Change subject: doc: add lchan-release.msc ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibcf2326cbc5a5f3f249ae15564825c83b5a063c8 Gerrit-Change-Number: 9487 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:11:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:12:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:12:07 +0000 Subject: Change in osmo-bsc[master]: doc: add ms-channel-request.msc In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9488 ) Change subject: doc: add ms-channel-request.msc ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iab22b8ae85a1a54d2f4002733e6068356368101b Gerrit-Change-Number: 9488 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:12:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:13:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:13:27 +0000 Subject: Change in osmo-bsc[master]: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9284 ) Change subject: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 Gerrit-Change-Number: 9284 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:13:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:13:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:13:48 +0000 Subject: Change in osmo-bsc[master]: dissolve libbsc: move all to src/osmo-bsc, link .o files In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9481 ) Change subject: dissolve libbsc: move all to src/osmo-bsc, link .o files ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36a586726f5818121abe54d25654819fc451d3bf Gerrit-Change-Number: 9481 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:13:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:14:08 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Thu, 7 Jun 2018 17:14:08 +0000 Subject: Change in osmo-sgsn[master]: add a test for OS#3178 (invalid unitdata message) Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9500 Change subject: add a test for OS#3178 (invalid unitdata message) ...................................................................... add a test for OS#3178 (invalid unitdata message) Add a test which reproduces the parsing problem. Whether this problem is due to an invalid message or a parser bug is yet to be determined. Until then, this test helps with analyzing the problem further. Change-Id: I39189701a57c785ffdacc3ae26d7aa93bb06cde6 Related: OS#3178 --- M tests/gbproxy/gbproxy_test.c 1 file changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/00/9500/1 diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index f9a1c6b..e6bb2e6 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -4927,6 +4927,33 @@ cleanup_test(); } +/* See OS#3178 "gbproxy: failed to parse invalid BSSGP-UNITDATA message" */ +static void test_gbproxy_parse_bssgp_unitdata() +{ + const char *hex = "0000239401e155cfea000004088872f4801018009c4000800e000601c0416c4338"; + struct msgb *msg = msgb_alloc(1034, "bssgp_unitdata"); + struct gprs_gb_parse_context parse_ctx; + int rc; + + memset(&parse_ctx, 0, sizeof(parse_ctx)); + + OSMO_ASSERT(msg); + msgb_bssgph(msg) = msg->head; + msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg))); + + parse_ctx.to_bss = 0; + parse_ctx.peer_nsei = msgb_nsei(msg); + + /* TODO: Determine whether our parser or the message is wrong. */ + + rc = gprs_gb_parse_bssgp(msg->data, msg->len, &parse_ctx); + if (!rc) { + fprintf(stderr, "%s: Failed to parse message %s\n", __func__, msgb_hexdump(msg)); + } + + msgb_free(msg); +} + static struct log_info_cat gprs_categories[] = { [DGPRS] = { .name = "DGPRS", @@ -4985,6 +5012,7 @@ test_gbproxy_keep_info(); test_gbproxy_tlli_expire(); test_gbproxy_stored_messages(); + test_gbproxy_parse_bssgp_unitdata(); gbprox_reset(&gbcfg); /* gbprox_reset() frees the rate_ctr, but re-allocates it again. */ rate_ctr_group_free(gbcfg.ctrg); -- To view, visit https://gerrit.osmocom.org/9500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I39189701a57c785ffdacc3ae26d7aa93bb06cde6 Gerrit-Change-Number: 9500 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:14:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:14:26 +0000 Subject: Change in osmo-bsc[master]: cosmetic: gscon: undup code: add common assignment_failed() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9280 ) Change subject: cosmetic: gscon: undup code: add common assignment_failed() ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1ce10a3ead286cdb6ad529fc293b6cecd151cc9a Gerrit-Change-Number: 9280 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:14:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:15:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:15:08 +0000 Subject: Change in osmo-bts[master]: bts.c: Log name of RR msg type instead of value In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9491 ) Change subject: bts.c: Log name of RR msg type instead of value ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia35e132e0b6532dfbf09bb33fe9328a9e3e16885 Gerrit-Change-Number: 9491 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:15:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:15:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:15:10 +0000 Subject: Change in osmo-bts[master]: bts.c: Log name of RR msg type instead of value In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9491 ) Change subject: bts.c: Log name of RR msg type instead of value ...................................................................... bts.c: Log name of RR msg type instead of value Change-Id: Ia35e132e0b6532dfbf09bb33fe9328a9e3e16885 --- M src/common/bts.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/bts.c b/src/common/bts.c index 54e5480..f0850c1 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -538,8 +538,8 @@ if (bts->agch_queue.length > hard_limit) { LOGP(DSUM, LOGL_ERROR, "AGCH: too many messages in queue, " - "refusing message type 0x%02x, length = %d/%d\n", - ((struct gsm48_imm_ass *)msgb_l3(msg))->msg_type, + "refusing message type %s, length = %d/%d\n", + gsm48_rr_msg_name(((struct gsm48_imm_ass *)msgb_l3(msg))->msg_type), bts->agch_queue.length, bts->agch_queue.max_length); bts->agch_queue.rejected_msgs++; -- To view, visit https://gerrit.osmocom.org/9491 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia35e132e0b6532dfbf09bb33fe9328a9e3e16885 Gerrit-Change-Number: 9491 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:15:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:15:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Set L1CTL rxlev_exp as module parameter In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9492 ) Change subject: bts: Set L1CTL rxlev_exp as module parameter ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If63e5c2d6abe1dd6dddd1a12e703ed069b940ab4 Gerrit-Change-Number: 9492 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 07 Jun 2018 17:15:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:15:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Jun 2018 17:15:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Set L1CTL rxlev_exp as module parameter In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9492 ) Change subject: bts: Set L1CTL rxlev_exp as module parameter ...................................................................... bts: Set L1CTL rxlev_exp as module parameter Change-Id: If63e5c2d6abe1dd6dddd1a12e703ed069b940ab4 --- M bts/BTS_Tests.ttcn M library/L1CTL_PortType.ttcn 2 files changed, 4 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 36b1f9d..25ee3a2 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -56,6 +56,7 @@ integer mp_tolerance_rxlev := 3; charstring mp_ctrl_ip := "127.0.0.1"; integer mp_ctrl_port := 4238; + integer mp_rxlev_exp := 57; } type record of RslChannelNr ChannelNrs; @@ -396,7 +397,7 @@ } private function f_l1_tune(L1CTL_PT L1CTL) { - f_L1CTL_FBSB(L1CTL, { false, mp_trx0_arfcn }, CCCH_MODE_COMBINED); + f_L1CTL_FBSB(L1CTL, { false, mp_trx0_arfcn }, CCCH_MODE_COMBINED, mp_rxlev_exp); } private function f_trxc_connect() runs on ConnHdlr { diff --git a/library/L1CTL_PortType.ttcn b/library/L1CTL_PortType.ttcn index 51a3936..ba9c2b5 100644 --- a/library/L1CTL_PortType.ttcn +++ b/library/L1CTL_PortType.ttcn @@ -32,10 +32,10 @@ return len; } - function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED) { + function f_L1CTL_FBSB(L1CTL_PT pt, Arfcn arfcn, L1ctlCcchMode ccch_mode := CCCH_MODE_COMBINED, integer rxlev_exp := 57) { timer T := 15.0; for (var integer i := 0; i < 10; i := i+1) { - pt.send(ts_L1CTL_FBSB_REQ(arfcn, valueof(t_L1CTL_FBSB_F_ALL), 0, ccch_mode, 57)); + pt.send(ts_L1CTL_FBSB_REQ(arfcn, valueof(t_L1CTL_FBSB_F_ALL), 0, ccch_mode, rxlev_exp)); T.start alt { [] pt.receive(tr_L1CTL_FBSB_CONF(0)) { return; }; -- To view, visit https://gerrit.osmocom.org/9492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If63e5c2d6abe1dd6dddd1a12e703ed069b940ab4 Gerrit-Change-Number: 9492 Gerrit-PatchSet: 3 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:17:51 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:17:51 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9281 to look at the new patch set (#7). Change subject: assignment: signal assignment failure on chan act nack ...................................................................... assignment: signal assignment failure on chan act nack When the BTS responds with a Chan Act NACK, i.e. the lchan could not be activated, immediately signal Assignment Failure to the MSC (in handle_chan_nack()). In handle_chan_nack(), adjust log: instead of waiting for timeout, we now signal Assignment Failure. Drop misleading logging from bsc_assign_fail(): instead of transmitting the Assignment Failure message, it actually signals an FSM event. Leave logging of that to the FSM logging. Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 --- M src/osmo-bsc/bsc_api.c M src/osmo-bsc/osmo_bsc_api.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9281/7 -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: log: fix logging in rsl_rx_chan_act_nack() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9282 to look at the new patch set (#7). Change subject: log: fix logging in rsl_rx_chan_act_nack() ...................................................................... log: fix logging in rsl_rx_chan_act_nack() In each code path within rsl_rx_chan_act_nack(), do separate logging of the NACK to ensure proper termination of each log line. When receiving a Chan Act NACK, we possibly mixed a LOGP() within an unterminated other LOGP() that had not been ended with a LOGPC() yet. Change-Id: Icd2772b21ef3a2ff5af11b7c92dff0ecb4d87ff0 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 9 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/82/9282/7 -- To view, visit https://gerrit.osmocom.org/9282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Icd2772b21ef3a2ff5af11b7c92dff0ecb4d87ff0 Gerrit-Change-Number: 9282 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: log: assignment: add two logs on unexpected lchan release In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9283 to look at the new patch set (#7). Change subject: log: assignment: add two logs on unexpected lchan release ...................................................................... log: assignment: add two logs on unexpected lchan release Change-Id: Ib61125ebc41e55dc4a6595db8c8559c62b3ed2c0 --- M src/osmo-bsc/bsc_api.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/83/9283/7 -- To view, visit https://gerrit.osmocom.org/9283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib61125ebc41e55dc4a6595db8c8559c62b3ed2c0 Gerrit-Change-Number: 9283 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9284 to look at the new patch set (#7). Change subject: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() ...................................................................... use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() The guts of bssap_speech_from_lchan() and lchan_to_chosen_channel() have been moved to libosmocore; call those instead. The return value of bssap_speech_from_lchan() used to be -1 on error, now the error value is 0. The only caller did not handle -1 properly, but fed it directly to a uint8_t. On gsm0808_chosen_channel() error, log the error. Proper handling is missing. Fixing the error handling in send_ass_compl() is a separate issue: currently it is limited to logging, there is no way to return an error yet, nor any actions to take on error. Depends: Icca23940791f97fa64dbc3f2734270b99f9550c1 (libosmocore) Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 7 insertions(+), 84 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/84/9284/7 -- To view, visit https://gerrit.osmocom.org/9284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 Gerrit-Change-Number: 9284 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: cosmetic: penalty timers: constify, tweak doc In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9285 to look at the new patch set (#7). Change subject: cosmetic: penalty timers: constify, tweak doc ...................................................................... cosmetic: penalty timers: constify, tweak doc Change-Id: I28addc9a16a4c81978290303d368f630a8334228 --- M include/osmocom/bsc/penalty_timers.h M src/osmo-bsc/penalty_timers.c 2 files changed, 15 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/85/9285/7 -- To view, visit https://gerrit.osmocom.org/9285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I28addc9a16a4c81978290303d368f630a8334228 Gerrit-Change-Number: 9285 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: cosmetic: bsc_subscr_alloc: log initial get In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9286 to look at the new patch set (#7). Change subject: cosmetic: bsc_subscr_alloc: log initial get ...................................................................... cosmetic: bsc_subscr_alloc: log initial get Instead of silently setting the use count to 1, instead increment with an explicit bsc_subsct_get(), which then logs the event along with the place that created the subscriber. Change-Id: Ia72f8010b7b2e1ca44e3b005c0f2c05f3eeae8d5 --- M src/osmo-bsc/bsc_subscriber.c M tests/subscr/bsc_subscr_test.err 2 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/9286/7 -- To view, visit https://gerrit.osmocom.org/9286 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ia72f8010b7b2e1ca44e3b005c0f2c05f3eeae8d5 Gerrit-Change-Number: 9286 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: gscon: put subscriber a little later In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9287 to look at the new patch set (#7). Change subject: gscon: put subscriber a little later ...................................................................... gscon: put subscriber a little later Keep the bsc_subscr associated with the conn as long as possible, to benefit logging, which then contains the subscriber identity (if any). Change-Id: Ifa528b58842a02509bfe0af6915c64bd67058bcd --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/9287/7 -- To view, visit https://gerrit.osmocom.org/9287 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifa528b58842a02509bfe0af6915c64bd67058bcd Gerrit-Change-Number: 9287 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: try to pick up subsrc IMSI on l3-compl In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9288 to look at the new patch set (#7). Change subject: try to pick up subsrc IMSI on l3-compl ...................................................................... try to pick up subsrc IMSI on l3-compl This is a tiny step towards being aware of a connection's subscriber identity. Iff the Layer 3 Complete message contains an IMSI, associate a bsc_subscr with the conn, so that subsequent logging and possibly meas_feed contains the IMSI. For any L3 Complete using TMSI, this has no effect whatsoever. Related: OS#2969 Change-Id: I3b696a0c0932e3abcb682ba231db65755d8c27a6 --- M src/osmo-bsc/osmo_bsc_api.c 1 file changed, 16 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/9288/7 -- To view, visit https://gerrit.osmocom.org/9288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3b696a0c0932e3abcb682ba231db65755d8c27a6 Gerrit-Change-Number: 9288 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: store subscriber identity on paging In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9289 to look at the new patch set (#7). Change subject: store subscriber identity on paging ...................................................................... store subscriber identity on paging Another small step towards being aware of the subscriber identity. Any connection initiated by paging will subsequently log the subscriber's identity -- of course not necessarily the IMSI, if paging was done by TMSI. This is only for Paging, not the Paging Response; for that see, L3 Complete. Related: OS#2969 Change-Id: I0ab7bedfe693bb4e42a04fb0585b94a730ff2d9b --- M src/osmo-bsc/paging.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/9289/7 -- To view, visit https://gerrit.osmocom.org/9289 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0ab7bedfe693bb4e42a04fb0585b94a730ff2d9b Gerrit-Change-Number: 9289 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: cosmetic: handover_test: add IMSI to subscr for logging In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9290 to look at the new patch set (#7). Change subject: cosmetic: handover_test: add IMSI to subscr for logging ...................................................................... cosmetic: handover_test: add IMSI to subscr for logging Change-Id: I52fa8f3183c93ed362d8252d20daf00c60a117c8 --- M tests/handover/handover_test.c 1 file changed, 11 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/90/9290/7 -- To view, visit https://gerrit.osmocom.org/9290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I52fa8f3183c93ed362d8252d20daf00c60a117c8 Gerrit-Change-Number: 9290 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: doc: tweak msc charts on Assignment/Handover: act_timer In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9486 to look at the new patch set (#6). Change subject: doc: tweak msc charts on Assignment/Handover: act_timer ...................................................................... doc: tweak msc charts on Assignment/Handover: act_timer Change-Id: I6205e43c227652432548c5c99bed5a197c095da2 --- M doc/assignment.msc M doc/handover.msc 2 files changed, 17 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/86/9486/6 -- To view, visit https://gerrit.osmocom.org/9486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6205e43c227652432548c5c99bed5a197c095da2 Gerrit-Change-Number: 9486 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: doc: add lchan-release.msc In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9487 to look at the new patch set (#6). Change subject: doc: add lchan-release.msc ...................................................................... doc: add lchan-release.msc Change-Id: Ibcf2326cbc5a5f3f249ae15564825c83b5a063c8 --- M doc/Makefile.am A doc/lchan-release.msc 2 files changed, 150 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/87/9487/6 -- To view, visit https://gerrit.osmocom.org/9487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibcf2326cbc5a5f3f249ae15564825c83b5a063c8 Gerrit-Change-Number: 9487 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: doc: add ms-channel-request.msc In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9488 to look at the new patch set (#6). Change subject: doc: add ms-channel-request.msc ...................................................................... doc: add ms-channel-request.msc Change-Id: Iab22b8ae85a1a54d2f4002733e6068356368101b --- M doc/Makefile.am A doc/ms-channel-request.msc 2 files changed, 64 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/9488/6 -- To view, visit https://gerrit.osmocom.org/9488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iab22b8ae85a1a54d2f4002733e6068356368101b Gerrit-Change-Number: 9488 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: doc: charts: illustrate new plan for ts and lchans In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9489 to look at the new patch set (#6). Change subject: doc: charts: illustrate new plan for ts and lchans ...................................................................... doc: charts: illustrate new plan for ts and lchans Add lchan and timeslot FSM charts to illustrate planning of how osmo-bsc should handle lchan assignment and release. Modify assignment, handover, lchan-release charts according to the new plan. Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936 --- M doc/Makefile.am M doc/assignment.msc A doc/handover-inter-bsc-mo.msc A doc/handover-inter-bsc-mt.msc M doc/handover.msc A doc/lchan-fsm.dot M doc/lchan-release.msc A doc/lchan.msc M doc/ms-channel-request.msc A doc/timeslot-fsm.dot A doc/timeslot.msc A doc/ts-and-lchan-fsm-lifecycle.msc 12 files changed, 1,098 insertions(+), 466 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/89/9489/6 -- To view, visit https://gerrit.osmocom.org/9489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936 Gerrit-Change-Number: 9489 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: cosmetic: gscon: drop odd use of OSMO_STRINGIFY In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9292 to look at the new patch set (#2). Change subject: cosmetic: gscon: drop odd use of OSMO_STRINGIFY ...................................................................... cosmetic: gscon: drop odd use of OSMO_STRINGIFY Do not invoke OSMO_STRINGIFY() with arbitrary names, just quote instead. The idea was that OSMO_STRINGIFY() avoids typos by ensuring well-defined names are stringified, but this highlights that OSMO_STRINGIFY() is in fact usable with completely arbitrary arguments and actually lacks the validation part :/ Change-Id: I458cd2cd0d6ddb0e6db3bb8d546a20336ae8c5f1 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 14 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/92/9292/2 -- To view, visit https://gerrit.osmocom.org/9292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I458cd2cd0d6ddb0e6db3bb8d546a20336ae8c5f1 Gerrit-Change-Number: 9292 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:37 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:37 +0000 Subject: Change in osmo-bsc[master]: HO: introduce T7, T8, T101 timers In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9291 to look at the new patch set (#2). Change subject: HO: introduce T7, T8, T101 timers ...................................................................... HO: introduce T7, T8, T101 timers Will be used in upcoming inter-BSC handover. Change-Id: If9ecccc793426d214019f299b19d6ffa5a186546 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c 3 files changed, 20 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/91/9291/2 -- To view, visit https://gerrit.osmocom.org/9291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If9ecccc793426d214019f299b19d6ffa5a186546 Gerrit-Change-Number: 9291 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:47 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:47 +0000 Subject: Change in osmo-bsc[master]: todo marker Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9501 Change subject: todo marker ...................................................................... todo marker Change-Id: Ie3f9e10d41e62284c6ae3c54acf475f3fa324d47 --- M src/osmo-bsc/bsc_api.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/01/9501/1 diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 218f1a1..e0a23eb 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -588,6 +588,7 @@ return -1; } lchan->conn->lchan = lchan; + /* remember: make lchan->la_fsm child of conn fsm */ /* fwd via bsc_api to send COMPLETE L3 INFO to MSC */ rc = bsc_compl_l3(lchan->conn, msg, 0); -- To view, visit https://gerrit.osmocom.org/9501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie3f9e10d41e62284c6ae3c54acf475f3fa324d47 Gerrit-Change-Number: 9501 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:47 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:47 +0000 Subject: Change in osmo-bsc[master]: doc: copy current charts to doc/old/ for later reference Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9502 Change subject: doc: copy current charts to doc/old/ for later reference ...................................................................... doc: copy current charts to doc/old/ for later reference Change-Id: Iac18f12529d5961a66e4853dc3a93636eb499127 --- M configure.ac M doc/Makefile.am A doc/old/Makefile.am A doc/old/assignment.msc A doc/old/handover.msc A doc/old/lchan-release.msc A doc/old/ms-channel-request.msc 7 files changed, 587 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/02/9502/1 diff --git a/configure.ac b/configure.ac index 25bcad7..96d4c5a 100644 --- a/configure.ac +++ b/configure.ac @@ -182,4 +182,5 @@ tests/handover/Makefile doc/Makefile doc/examples/Makefile + doc/old/Makefile Makefile) diff --git a/doc/Makefile.am b/doc/Makefile.am index ca0470d..c11cb08 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,5 +1,6 @@ SUBDIRS = \ examples \ + old \ $(NULL) msc: \ diff --git a/doc/old/Makefile.am b/doc/old/Makefile.am new file mode 100644 index 0000000..52680ec --- /dev/null +++ b/doc/old/Makefile.am @@ -0,0 +1,13 @@ +msc: \ + $(builddir)/handover.png \ + $(builddir)/assignment.png \ + $(builddir)/lchan-release.png \ + $(builddir)/ms-channel-request.png \ + $(NULL) + +$(builddir)/%.png: $(srcdir)/%.msc + mscgen -T png -o $@ $< + +.PHONY: poll +poll: + while true; do $(MAKE) msc; sleep 1; done diff --git a/doc/old/assignment.msc b/doc/old/assignment.msc new file mode 100644 index 0000000..d470d01 --- /dev/null +++ b/doc/old/assignment.msc @@ -0,0 +1,190 @@ +msc { + hscale=3; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw[label="MGW"], msc_[label="MSC"]; + + ms note msc_ [label="lchan allocation sequence for BSSMAP Assignment Request"]; + + bsc <= msc_ [label="BSSMAP Assignment Request"]; + bsc box bsc [label="bssmap_handle_assignm_req()"]; + bsc -> bsc_gscon [label="GSCON_EV_A_ASSIGNMENT_CMD"]; + + --- [label="is the chan_mode a speech mode?"]; + + bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_BTS (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp => mgw [label="CRCX (for BTS)"]; + bsc_mgcp abox bsc_mgcp [label="ST_CRCX (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_gscon note bsc_mgcp [label="two timeouts running in parallel"]; + bsc_gscon note bsc_mgcp [label="note: #define MGCP_MGW_TIMEOUT exists twice, + once in libosmo-mgcp-client, + once in bsc_subscr_conn_fsm.c"]; + bsc_mgcp -> bsc_gscon [label="mgcp_conn_create() exits"]; + bsc_gscon -> bsc [label="bssmap_handle_assignm_req() exits"]; + ...; + --- [label="On Timeout"]; + bsc_gscon note bsc_gscon [label="The conn FSM likely timeouts first"]; + bsc_gscon => msc_ [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_mgcp note bsc_mgcp [label="The MGCP FSM will timeout right after that, and terminate itself, + emitting the parent_term event set upon mgcp_conn_create():"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS is handled by the conn FSM allstate + handler. It sets conn->user_plane.fi_bts = NULL. There is code + that would emit a BSSMAP Assignment Failure, but not in + ST_ACTIVE"]; + --- [label="end: 'On Timeout'"]; + ...; + + bsc_mgcp <= mgw [label="CRCX OK (for BTS)"]; + bsc_mgcp box bsc_mgcp [label="libosmo-mgcp-client fsm_crcx_resp_cb()"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_CRCX_RESP_BTS"]; + --- [label="end: 'is the chan_mode a speech mode?'"]; + + bsc_gscon note bsc_gscon [label="for mode=sign, we're still handling GSCON_EV_A_ASSIGNMENT_CMD; + for speech mode, we're handling GSCON_EV_MGW_CRCX_RESP_BTS"]; + bsc <- bsc_gscon [label="gsm0808_assign_req()"]; + + bsc box bsc [label="lchan_alloc(): pick available lchan"]; + bsc box bsc [label="rsl_chan_activate_lchan()"]; + + --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; + bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; + bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; + bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + ...; + bts note bsc_gscon [linecolor="red", + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; + ...; + bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; + bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; + bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; + bts <= bsc [label="RSL Chan Activ"]; + --- [label="else (no dyn TS switchover)"]; + + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; + bts <= bsc [label="RSL Chan Activ"]; + bsc -> bsc_gscon [label="gsm0808_assign_req() returns"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + ---; + + ...; + --- [label="On Timeout"]; + bsc_gscon => msc_ [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon note bsc_mgcp [linecolor="red", + label="The mgcp FSM from CRCX above apparently lacks a cleanup action for this case. + It should be cleaned up eventually when the conn is torn down, but we should + release RTP endpoints as soon as possible."]; + --- [label="end: 'On Timeout'"]; + ...; + + bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; + bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; + bsc box bsc [label="bsc_api.c handle_chan_ack()"]; + ms <= bsc [label="RR Assignment Command"]; + + ...; + ms note bsc_gscon [label="We rely on the overall conn FSM ST_WAIT_ASS_COMPL timeout."]; + ...; + + ms => bsc [label="RR Assignment Complete"]; + bsc box bsc [label="handle_ass_compl()"]; + --- [label="Release old lchan"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; + bsc box bsc [label="rsl_release_sapis_from(start=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI except link_id=0"]; + bsc box bsc [label="rsl_release_request(link_id=0)"]; + bts <= bsc [label="RSL Release Request (Local End) for link_id=0"]; + bsc box bsc [label="_lchan_handle_release() returns here, the remaining release is asynchronous; + see `End: 'Release old lchan'` below."]; + ...; + bts note bsc_gscon [linecolor="red", + label="There seems to be no timer watching over RSL Release Request!"]; + ...; + bts => bsc [label="RSL Release Confirm..."]; + bts => bsc [label="...for each SAPI and link_id=0"]; + bsc abox bsc [label="start T3111"]; + ...; + bsc box bsc [label="T3111 expires"]; + bsc abox bsc [label="Start lchan->act_timer with lchan_deact_tmr_cb"]; + bts <= bsc [label="RSL RF Channel Release"]; + ...; + --- [label="On timeout"]; + bsc box bsc [label="lchan_deact_tmr_cb()"]; + bsc box bsc [label="rsl_lchan_mark_broken(): state=LCHAN_S_BROKEN"]; + bsc box bsc [label="lchan_free()"]; + bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; + bsc box bsc [label="bsc_api.c handle_release()"]; + bsc box bsc [label="bsc->assign_fail()"]; + bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; + bsc note bsc_gscon [linecolor="orange", + label="The name 'RR_ASS_FAIL' might suggest the event means an actual RR Assignment + Failure message being received. Maybe this should be called GSCON_EV_ASSIGNMENT_ERROR."]; + ...; + bsc box bsc [label="bsc->clear_request()"]; + bsc box bsc [label="bsc_clear_request encodes a BSSMAP Clear Request message and passes it on + to the conn FSM as data argument via:"]; + bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP"]; + bsc_gscon => msc_ [label="BSSMAP Clear Request"]; + bsc note bsc_gscon [linecolor="red", + label="Instead of sending an arbitrary message, the conn FSM should + be explicitly instructed to clear the connection, to be able + to notice if the MSC failed to respond to the Clear Request. + Currently, this relies on the MSC responding with a Clear + Command, hopefully, some time later."]; + --- [label="End: 'On timeout'"]; + ...; + bts => bsc [label="RSL RF Channel Release Ack"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop lchan->T3111"]; + --- [label="End: 'Release old lchan'"]; + bsc box bsc [label="still in handle_ass_compl()"]; + bsc note bsc [label="officially take over new lchan: conn->lchan = conn->secondary_lchan"]; + --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; + bts <= bsc [label="IPACC CRCX"]; + ---; + bsc -> bsc [label="handle_ass_compl() calls bsc_api->assign_compl()"]; + --- [label="is BTS using IPA Abis? (osmo-bts, ip.access) && conn->user_plane.rtp_ip"]; + bsc box bsc [label="bsc_assign_compl()"]; + bsc note bsc [label="set ass_compl.valid = true, + postponing GSCON_EV_RR_ASS_COMPL until after the + IPACC MDCX ACK received in osmo_bsc_audio.c"]; + bsc box bsc [label="exit early: bsc_assign_compl()"]; + bsc box bsc [label="exit early: handle_ass_compl()"]; + bsc box bsc [label="osmo_bsc_audio.c"]; + bts => bsc [label="IPACC CRCX ACK"]; + bts <= bsc [label="IPACC MDCX"]; + bts => bsc [label="IPACC MDCX ACK"]; + bsc box bsc [label="handle_abisip_signal()"]; + bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_COMPL"]; + --- [label="else"]; + bsc box bsc [label="bsc_assign_compl()"]; + bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_COMPL"]; + --- ; + + --- [label="is chan_mode a speech mode?"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_MDCX_BTS"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; + bsc_mgcp note bsc_mgcp [label="same mgcp FSM as above, for BTS side"]; + bsc_mgcp => mgw [label="MDCX (for BTS)"]; + bsc_mgcp <= mgw [label="MDCX OK"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_MSC"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp note bsc_mgcp [label="second mgcp FSM for MSC side"]; + bsc_mgcp => mgw [label="CRCX (for MSC)"]; + bsc_mgcp <= mgw [label="CRCX OK (for MSC)"]; + bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_CRCX_RESP_MSC"]; + ---; + + bsc_gscon => msc_ [label="BSSMAP Assignment Complete"]; + + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; +} diff --git a/doc/old/handover.msc b/doc/old/handover.msc new file mode 100644 index 0000000..8862dd9 --- /dev/null +++ b/doc/old/handover.msc @@ -0,0 +1,170 @@ +# Handover between cells, intra-BSC +msc { + hscale=3; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw[label="MGW"]; + + ms note mgw [label="intra-BSC Handover sequence"]; + + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc box bsc [label="bsc_handover_start(): init conn->ho"]; + bsc -> bsc_gscon [label="GSCON_EV_HO_START"]; + bsc <- bsc_gscon [label="bsc_handover_start_gscon()"]; + + bsc box bsc [label="lchan_alloc(): pick available lchan"]; + bsc box bsc [label="rsl_chan_activate_lchan()"]; + + --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; + bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; + bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; + bsc -> bsc_gscon [label="bsc_handover_start_gscon() returns early"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; + ...; + bts note bsc_gscon [linecolor="red", + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; + ...; + bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; + bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; + bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + bts <= bsc [label="RSL Chan Activ"]; + --- [label="else (no dyn TS switchover)"]; + + bts <= bsc [label="RSL Chan Activ"]; + bsc -> bsc_gscon [label="bsc_handover_start_gscon() returns"]; + ---; + bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; + + ...; + bts note bsc_gscon [linecolor="red", + label="There seems to be no timer watching out for RSL Chan Activ ACK/NACK!"]; + ...; + bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; + bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; + bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; + bsc box bsc [label="ho_chan_activ_ack()"]; + bsc note bsc [label="gsm48_send_ho_cmd()"]; + ms <= bsc [label="RR Handover Command"]; + bsc abox bsc [label="start T3103"]; + --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; + bts <= bsc [label="IPACC CRCX"]; + bsc -> bsc [label="ho_chan_activ_ack() returns"]; + bts note bsc [linecolor="red", + label="There seems to be no timer watching over IPACC CRCX ACK/NACK! + If no response is received, we simply ignore that fact and carry on as if + everything was fine."]; + ...; + bts note bsc [label="The IPACC CRCX and MDCX ACKs may come back at any time: + before or after the Handover Detect, before or after Handover Complete."]; + bts note bsc_mgcp [linecolor="red", + label="The CRCX ACK contains vital information for routing the RTP stream. + If the CRCX ACK were very slow, we would not know which RTP/RTPC ports + to point the MGW at, below at mgcp_conn_modify()! + Even though this being unrealistic, we must make sure to receive a CRCX ACK."]; + ...; + bsc box bsc [label="osmo_bsc_audio.c"]; + bts => bsc [label="IPACC CRCX ACK"]; + bts <= bsc [label="IPACC MDCX"]; + ...; + bts note bsc [linecolor="red", + label="There seems to be no timer watching over IPACC MDCX ACK/NACK! + If no response is received, we simply ignore that fact and carry on as if + everything was fine."]; + ...; + bts => bsc [label="IPACC MDCX ACK"]; + bts note bsc [label="IPACC MDCX ACK triggers no events or actions"]; + ---; + + ...; + ms => bsc [label="RR Handover Detect"]; + bsc -> bsc [label="S_LCHAN_HANDOVER_DETECT"]; + bsc box bsc [label="ho_rsl_detect(): no action, only logging"]; + bsc note bsc_gscon [label="Handover Detect triggers no events or actions"]; + bsc note bsc_gscon [linecolor="red", + label="upon Handover Detect, we should already start re-routing the RTP! + Instead we wait for Handover Complete."]; + + ...; + ms => bsc [label="RR Handover Complete"]; + bsc -> bsc [label="S_LCHAN_HANDOVER_COMPL"]; + bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; + bsc box bsc [label="ho_gsm48_ho_compl()"]; + bsc box bsc [label="stop T3103"]; + bts note bsc_gscon [label="If anything goes wrong from this point on, we will not move back + to the old lchan: would be pointless after Handover Complete."]; + bsc note bsc [label="officially take over new lchan: conn->lchan = ho->new_lchan"]; + + --- [label="Release old lchan"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; + bsc box bsc [label="rsl_release_sapis_from(start=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI except link_id=0"]; + bsc box bsc [label="rsl_release_request(link_id=0)"]; + bts <= bsc [label="RSL Release Request (Local End) for link_id=0"]; + bsc box bsc [label="_lchan_handle_release() returns here, the remaining release is asynchronous; + see `End: 'Release old lchan'` below."]; + ...; + bts note bsc_gscon [linecolor="red", + label="There seems to be no timer watching over RSL Release Request!"]; + ...; + bts => bsc [label="RSL Release Confirm..."]; + bts => bsc [label="...for each SAPI and link_id=0"]; + bsc abox bsc [label="start T3111"]; + ...; + bsc box bsc [label="T3111 expires"]; + bsc abox bsc [label="Start lchan->act_timer with lchan_deact_tmr_cb"]; + bts <= bsc [label="RSL RF Channel Release"]; + ...; + --- [label="On timeout"]; + bsc box bsc [label="lchan_deact_tmr_cb()"]; + bsc box bsc [label="rsl_lchan_mark_broken(): state=LCHAN_S_BROKEN"]; + bsc box bsc [label="lchan_free()"]; + bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; + bsc box bsc [label="bsc_api.c handle_release()"]; + bsc box bsc [label="bsc->clear_request()"]; + bsc box bsc [label="bsc_clear_request encodes a BSSMAP Clear Request message and passes it on + to the conn FSM as data argument via:"]; + bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP"]; + bsc_gscon rbox bsc_gscon [label="BSSMAP Clear Request to MSC"]; + bsc note bsc_gscon [linecolor="red", + label="During Handover, we actually release the entire conn just because we failed to + gracefully release the old lchan. That is obviously nonsense."]; + bsc note bsc [label="Stop T3101 (but was not active in this code path)"]; + bsc -> bsc [label="S_CHALLOC_FREED"]; + --- [label="End: 'On timeout'"]; + ...; + bts => bsc [label="RSL RF Channel Release Ack"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop lchan->T3111"]; + ---; + + bsc box bsc [label="still in ho_gsm48_ho_compl()"]; + bsc note bsc [label="handover_free(), conn->ho = NULL"]; + bsc -> bsc_gscon [label="GSCON_EV_HO_COMPL"]; + bsc note bsc_gscon [linecolor="orange", + label="Handover information is cleared before signalling the conn FSM. + That means the conn FSM cannot possibly log sensible information about exactly + which Handover has just completed."]; + + bsc_gscon abox bsc_gscon [label="ST_WAIT_MDCX_BTS_HO + (MGCP_MGW_TIMEOUT=4s with MGCP_MGW_HO_TIMEOUT_TIMER_NR)"]; + + bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; + bsc_mgcp note bsc_mgcp [label="mgcp FSM that was established for old lchan, for BTS side"]; + bsc_mgcp => mgw [label="MDCX (for BTS)"]; + ...; + bsc_gscon note mgw [ + label="If we get no MDCX ACK, the MGCP FSM terminates, and emits GSCON_EV_MGW_FAIL_BTS. + Besides invalidating the MGCP FSM pointer, this event has no + effect in ST_WAIT_MDCX_BTS_HO, and we rely on above conn FSM + timeout instead."]; + bsc_gscon note bsc_gscon [linecolor="red", + label="A timeout of ST_WAIT_MDCX_BTS_HO simply transitions back to ST_ACTIVE! + Even though the MGW failed, we carry on as if everything were fine."]; + ...; + bsc_mgcp <= mgw [label="MDCX OK"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; +} diff --git a/doc/old/lchan-release.msc b/doc/old/lchan-release.msc new file mode 100644 index 0000000..f75b559 --- /dev/null +++ b/doc/old/lchan-release.msc @@ -0,0 +1,149 @@ +msc { + hscale=2; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + + ms note bsc_gscon [label="various lchan release scenarios"]; + + + ms rbox bsc_gscon [label="IF BSC releases, from BSSMAP Clear Request"]; + bsc note bsc [label="lchan_release() may be called with sacch_deact=true or false. + Currently, the only time lchan_release(sacch_deact=true) is invoked is upon BSSMAP Clear + Command, i.e. when the MSC instructs to stop using an active lchan. + Some error handling code paths however directly invoke + rsl_rf_chan_release(error=1, SACCH_DEACTIVATE)."]; + + ---; + bsc_gscon note bsc_gscon [label="Rx: BSSMAP Clear Request from MSC"]; + bsc <- bsc_gscon [label="gsm0808_clear()"]; + bsc box bsc [label="lchan_release(sacch_deact=1)"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=1)"]; + bsc box bsc [label="rsl_release_sapis_from(start=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI, except link_id=0"]; + ms <= bsc [label="RR Channel Release"]; + ms note bsc [label="There is no ACK for RR Channel Release"]; + bsc box bsc [label="rsl_deact_sacch()"]; + bts <= bsc [label="RSL Deactivate SACCH"]; + bsc abox bsc [label="Start T3109 (net->T3109, t3109_expired())"]; + ...; + --- [label="If T3109 expires"]; + bsc box bsc [label="t3109_expired()"]; + bsc box bsc [label="rsl_rf_chan_release(error=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI, except link_id=0"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bts <= bsc [label="RSL RF Channel Release"]; + ---; + ...; + bsc rbox bsc [label="continue in the 'Common' part"]; + --- [label="END: 'BSSMAP Clear Request'"]; + ...; + ...; + + ms rbox bsc_gscon [label="IF BSC releases, from implicitly unused lchan"]; + bsc note bsc [label="The BSC may release old unused lchans after Handover, or release lchans + after some error condition."]; + bsc note bsc [label="BSC decides to release an unused lchan"]; + bsc box bsc [label="lchan_release(sacch_deact=0)"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for all SAPIs"]; + ...; + bts note bsc_gscon [linecolor="red", + label="There seems to be no timer watching over RSL Release Request!"]; + ...; + bts => bsc [label="RSL Release Confirm..."]; + bts => bsc [label="...for all SAPIs"]; + bsc rbox bsc [label="continue in the 'Common' part"]; + ---; + ...; + ...; + + ms rbox bsc_gscon [label="IF MS releases"]; + ms => bts [label="DISC"]; + bts => bsc [label="RLL Release Ind..."]; + bts => bsc [label="...for each SAPI"]; + bsc rbox bsc [label="continue in the 'Common' part"]; + ---; + ...; + ...; + ms rbox bsc_gscon [label="Common"]; + --- [label="for each SAPI (?)"]; + bts => bsc [label="RLL Release Confirm / RLL Release Ind"]; + bsc box bsc [label="abis_rsl_rx_rll()"]; + bsc box bsc [label="mark lchan->sapis[link_id] = LCHAN_SAPI_UNUSED"]; + bsc box bsc [label="rll_indication()"]; + bsc box bsc [label="for each bsc_rll_req matching this link_id: + disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; + bsc box bsc [label="rsl_handle_release()"]; + --- [label="IF all SAPIs are unused"]; + bsc box bsc [label="Stop T3109"]; + bsc note bsc [label="T3109 was started if the MSC requested the release"]; + bsc abox bsc [label="Start T3111 (net->T3111 value, t3111_expired())"]; + --- [label="END: all SAPIs are unused"]; + bsc -> bsc_gscon [label="GSCON_EV_RLL_REL_IND (only if RLL Release Ind)"]; + --- [label="END: for each SAPI"]; + + ...; + bsc box bsc [label="T3111 expires"]; + bsc box bsc [label="rsl_rf_chan_release()"]; + bsc box bsc [label="Stop T3109"]; + bsc note bsc [label="[If lchan->state is LCHAN_S_REL_ERR, don't do anything]"]; + bsc abox bsc [label="Start lchan->act_timer (4s, lchan_deact_tmr_cb())"]; + bts <= bsc [label="RSL RF Channel Release"]; + + ...; + --- [label="IF lchan->act_timer expires"]; + bsc box bsc [label="lchan_deact_tmr_cb()"]; + bsc box bsc [label="rsl_lchan_mark_broken(): lchan->state = LCHAN_S_BROKEN"]; + bsc box bsc [label="lchan_free() (see below)"]; + --- [label="END: 'lchan->act_timer expires'"]; + ...; + + bts => bsc [label="RSL RF Channel Release ACK"]; + bsc box bsc [label="rsl_rx_rf_chan_rel_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop T3111"]; + + --- [label="IF lchan->state == LCHAN_S_BROKEN"]; + bsc note bsc [label="If an ACK comes in late, for specific BTS models, we may choose to 'repair' + the lchan so that it is usable again, by calling do_lchan_free() directly (see below)."]; + bsc box bsc [label="rsl_rx_rf_chan_rel_ack() exits here and none of below actions happen. + The lchan remains LCHAN_S_BROKEN indefinitely."]; + --- [label="END: lchan->state == LCHAN_S_BROKEN"]; + bsc box bsc [label="do_lchan_free()"]; + --- [label="IF lchan->state == LCHAN_S_REL_ERR"]; + bsc note bsc [label="If release failed, we take the lchan back into operation after due + timeout"]; + bsc abox bsc [label="Start lchan->error_timer (T3111+2, error_timeout_cb())"]; + bsc note bsc [label="do_lchan_free() continues, async:"]; + ...; + bsc box bsc [label="error_timeout_cb()"]; + bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; + bsc box bsc [label="dyn TS: activate PDCH..."]; + --- [label="ELSE"]; + bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; + --- [label="END: lchan->state == LCHAN_S_REL_ERR"]; + bsc box bsc [label="lchan_free()"]; + --- [label="IF conn is still associated (and not dyn TS in switchover)"]; + bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; + bsc box bsc [label="handle_release()"]; + bsc box bsc [label="Stop T10"]; + bsc note bsc [linecolor=orange,label="conn->T10 is actually dead code, it is never started. + Instead, the conn FSM starts ST_WAIT_ASS_COMPL with a T10 value."]; + bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; + bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP: BSSMAP Clear Request"]; + bsc box bsc [label="bsc_clear_handover()"]; + bsc box bsc [label="Stop T3103"]; + bsc box bsc [label="free handover struct"]; + bsc box bsc [label="lchan->conn = NULL"]; + --- [label="END: 'conn is still associated'"]; + bsc box bsc [label="Stop T3101"]; + bsc note bsc [label="T3101 is started when sending an RR Immediate Assignment"]; + bsc -> bsc [label="S_CHALLOC_FREED"]; + bsc -> bsc [label="rll_lchan_signal()"]; + bsc box bsc [label="for each bsc_rll_req matching this lchan: + disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; +} diff --git a/doc/old/ms-channel-request.msc b/doc/old/ms-channel-request.msc new file mode 100644 index 0000000..c0ef60f --- /dev/null +++ b/doc/old/ms-channel-request.msc @@ -0,0 +1,63 @@ +msc { + hscale=3; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + + ms note bsc_gscon [label="lchan allocation sequence for RSL Channel Request"]; + + ms => bts [label="RR Channel Request"]; + bts => bsc [label="RSL Channel Request"]; + bsc box bsc [label="rsl_rx_chan_rqd()"]; + bsc note bsc [label="Obtain RACH data from Request: - Reference - Access Delay (TA) + - Request Reason - Channel Type"]; + bsc note bsc [label="If the reason is PDCH, the RACH Request is forwarded to PCU and BSC is no + longer concerned (rsl_rx_pchan_rqd())."]; + bsc note bsc [label="Always try to allocate an SDCCH regardless of the requested type, only if no + SDCCH is available, look for the actually requested channel type."]; + bsc box bsc [label="lchan_alloc(SDCCH, allow_bigger=0)"]; + + --- [label="IF no lchan is available (neither SDCCH nor requested type)"]; + bsc note bsc [label="Figure out T3122 value from bts->T3122, network->T3122 or + GSM_T3122_DEFAULT"]; + bsc box bsc [label="rsl_send_imm_ass_rej()"]; + bsc note bsc [label="..."]; + bts <= bsc [label="RR Immediate Assign Reject"]; + ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; + bsc note bsc [label="rsl_rx_pchan_rqd() exits, no channel is allocated."]; + ---; + + bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"]; + bsc abox bsc [label="Start lchan->act_timer (4s, lchan_act_tmr_cb())"]; + + bsc box bsc [label="rsl_chan_activate_lchan(RSL_ACT_INTRA_IMM_ASS)"]; + --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; + bsc box bsc [linecolor=red,label="Osmocom style dyn TS use the lchan->act_timer for an RSL RF + Channel Release, to release PDCH mode. This will actually overwrite above act_timer!"]; + bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; + bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; + bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + ...; + bts note bsc_gscon [linecolor="red", + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; + ...; + bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; + bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; + bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + ---; + + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; + bts <= bsc [label="RSL Chan Activ: Immediate Assignment"]; + ...; + bsc note bsc [label="Timeout of lchan->act_timer causes the + lchan->state to go to LCHAN_S_BROKEN, but no events or actions + are triggered."]; + ...; + bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; + bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK (has no effect)"]; + bsc note bsc [label="Since this was an Immediate Assignment, no further action is required on + behalf of the BSC. The MS is now free to use the lchan."]; +} -- To view, visit https://gerrit.osmocom.org/9502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iac18f12529d5961a66e4853dc3a93636eb499127 Gerrit-Change-Number: 9502 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:47 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:47 +0000 Subject: Change in osmo-bsc[master]: drop dead code: conn->T10, handled by gscon instead Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9503 Change subject: drop dead code: conn->T10, handled by gscon instead ...................................................................... drop dead code: conn->T10, handled by gscon instead Change-Id: Ief20cb0f46dd93f46dd765dca307724dc2b3487c --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_api.c 2 files changed, 0 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/03/9503/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 281f2d4..8f245c9 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -112,8 +112,6 @@ /* handover information, if a handover is pending for this conn. */ struct bsc_handover *ho; - /* timer for assignment handling */ - struct osmo_timer_list T10; /* the future allocated but not yet used lchan during ASSIGNMENT */ struct gsm_lchan *secondary_lchan; diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index e0a23eb..bb86986 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -327,9 +327,6 @@ return; } - /* swap channels */ - osmo_timer_del(&conn->T10); - lchan_release(conn->lchan, 0, RSL_REL_LOCAL_END); conn->lchan = conn->secondary_lchan; conn->secondary_lchan = NULL; @@ -374,7 +371,6 @@ } /* stop the timer and release it */ - osmo_timer_del(&conn->T10); if (conn->secondary_lchan) { lchan_release(conn->secondary_lchan, 0, RSL_REL_LOCAL_END); conn->secondary_lchan = NULL; @@ -533,7 +529,6 @@ handle_ass_fail(conn, msg); break; case GSM48_MT_RR_CHAN_MODE_MODIF_ACK: - osmo_timer_del(&conn->T10); rc = gsm48_rx_rr_modif_ack(msg); if (rc < 0) bsc_assign_fail(conn, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, NULL); @@ -646,8 +641,6 @@ conn->lchan = NULL; conn->secondary_lchan = NULL; - osmo_timer_del(&conn->T10); - return 0; } @@ -713,7 +706,6 @@ if (conn->secondary_lchan == lchan) { LOGPLCHAN(lchan, DMSC, LOGL_NOTICE, "lchan release on new lchan, Assignment failed\n"); - osmo_timer_del(&conn->T10); conn->secondary_lchan = NULL; bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, NULL); -- To view, visit https://gerrit.osmocom.org/9503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ief20cb0f46dd93f46dd765dca307724dc2b3487c Gerrit-Change-Number: 9503 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:20:48 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:20:48 +0000 Subject: Change in osmo-bsc[master]: make T10 configurable like the rest of them Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9504 Change subject: make T10 configurable like the rest of them ...................................................................... make T10 configurable like the rest of them Change-Id: I112c0db17d355d57eb08bc67121ccf49fbf53943 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c 4 files changed, 9 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/04/9504/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 8f245c9..5794617 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1185,6 +1185,7 @@ #define GSM_T3119_DEFAULT 10 #define GSM_T3122_DEFAULT 10 #define GSM_T3141_DEFAULT 10 +#define GSM_T10_DEFAULT 6 /* RR Assignment timeout, in seconds */ #define GSM_T7_DEFAULT 10 /* inter-BSC MO Handover first timeout, in seconds */ #define GSM_T8_DEFAULT 10 /* inter-BSC MO Handover second timeout, in seconds */ #define GSM_T101_DEFAULT 10 /* inter-BSC MT Handover timeout, in seconds */ @@ -1233,6 +1234,7 @@ int T3119; int T3122; int T3141; + int T10; /*< RR Assignment timeout, in seconds */ int T7; /*< inter-BSC handover MO timeout from Handover Required to Handover Command */ int T8; /*< inter-BSC handover MO timeout from Handover Command to final Clear*/ int T101; /*< inter-BSC handover MT timeout from Handover Request to Handover Accept */ diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index d2d2095..9c8dbda 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -45,9 +45,6 @@ #define MGCP_MGW_HO_TIMEOUT 4 /* in seconds */ #define MGCP_MGW_HO_TIMEOUT_TIMER_NR 2 -#define GSM0808_T10_TIMER_NR 10 -#define GSM0808_T10_VALUE 6 - #define ENDPOINT_ID "rtpbridge/*@mgw" enum gscon_fsm_states { @@ -447,7 +444,7 @@ return; } - osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, GSM0808_T10_VALUE, GSM0808_T10_TIMER_NR); + osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, conn->network->T10, 10); break; default: /* An unsupported channel is requested, so we have to @@ -534,7 +531,7 @@ return; } - osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, GSM0808_T10_VALUE, GSM0808_T10_TIMER_NR); + osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, conn->network->T10, 10); break; case GSCON_EV_MO_DTAP: forward_dtap(conn, (struct msgb *)data, fi); @@ -1050,7 +1047,7 @@ * gscon_cleanup() above) */ osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); break; - case GSM0808_T10_TIMER_NR: /* Assignment Failed */ + case 10: /* Assignment Failed */ assignment_failed(fi, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE); break; case MGCP_MGW_TIMEOUT_TIMER_NR: /* Assignment failed (no response from MGW) */ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 837f431..57c5363 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1001,6 +1001,7 @@ VTY_OUT_TIMER(3119); VTY_OUT_TIMER(3122); VTY_OUT_TIMER(3141); + VTY_OUT_TIMER(10); VTY_OUT_TIMER(7); VTY_OUT_TIMER(8); VTY_OUT_TIMER(101); @@ -1921,6 +1922,7 @@ DECLARE_TIMER(3119, "Currently not used") DECLARE_TIMER(3122, "Default waiting time (seconds) after IMM ASS REJECT") DECLARE_TIMER(3141, "Currently not used") +DECLARE_TIMER(10, "Assignment Command timeout in seconds") DECLARE_TIMER(7, "Set the outgoing inter-BSC Handover timeout, from Handover Required to Handover Command") DECLARE_TIMER(8, "Set the outgoing inter-BSC Handover timeout, from Handover Command to final Clear") DECLARE_TIMER(101, "Set the incoming inter-BSC Handover timeout, from Handover Request to Accept") @@ -4849,6 +4851,7 @@ install_element(GSMNET_NODE, &cfg_net_T3119_cmd); install_element(GSMNET_NODE, &cfg_net_T3122_cmd); install_element(GSMNET_NODE, &cfg_net_T3141_cmd); + install_element(GSMNET_NODE, &cfg_net_T10_cmd); install_element(GSMNET_NODE, &cfg_net_T7_cmd); install_element(GSMNET_NODE, &cfg_net_T8_cmd); install_element(GSMNET_NODE, &cfg_net_T101_cmd); diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 5a48988..3ee35fe 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -64,6 +64,7 @@ net->T3119 = GSM_T3119_DEFAULT; net->T3122 = GSM_T3122_DEFAULT; net->T3141 = GSM_T3141_DEFAULT; + net->T10 = GSM_T10_DEFAULT; net->T7 = GSM_T7_DEFAULT; net->T8 = GSM_T8_DEFAULT; net->T101 = GSM_T101_DEFAULT; -- To view, visit https://gerrit.osmocom.org/9504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I112c0db17d355d57eb08bc67121ccf49fbf53943 Gerrit-Change-Number: 9504 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:21:12 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:21:12 +0000 Subject: Change in osmo-bsc[master]: todo marker In-Reply-To: References: Message-ID: Neels Hofmeyr has abandoned this change. ( https://gerrit.osmocom.org/9501 ) Change subject: todo marker ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/9501 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Ie3f9e10d41e62284c6ae3c54acf475f3fa324d47 Gerrit-Change-Number: 9501 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:21:19 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:21:19 +0000 Subject: Change in osmo-bsc[master]: doc: copy current charts to doc/old/ for later reference In-Reply-To: References: Message-ID: Neels Hofmeyr has abandoned this change. ( https://gerrit.osmocom.org/9502 ) Change subject: doc: copy current charts to doc/old/ for later reference ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/9502 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Iac18f12529d5961a66e4853dc3a93636eb499127 Gerrit-Change-Number: 9502 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:23:05 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:23:05 +0000 Subject: Change in osmo-bsc[master]: HO: introduce T7, T8, T101 timers In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9291 ) Change subject: HO: introduce T7, T8, T101 timers ...................................................................... Patch Set 3: Code-Review+2 trivial rebase, re-adding +2 -- To view, visit https://gerrit.osmocom.org/9291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If9ecccc793426d214019f299b19d6ffa5a186546 Gerrit-Change-Number: 9291 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Thu, 07 Jun 2018 17:23:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 7 17:23:18 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Jun 2018 17:23:18 +0000 Subject: Change in osmo-bsc[master]: cosmetic: gscon: drop odd use of OSMO_STRINGIFY In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9292 ) Change subject: cosmetic: gscon: drop odd use of OSMO_STRINGIFY ...................................................................... Patch Set 2: Code-Review+2 trivial rebase, re-adding +2 -- To view, visit https://gerrit.osmocom.org/9292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I458cd2cd0d6ddb0e6db3bb8d546a20336ae8c5f1 Gerrit-Change-Number: 9292 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Thu, 07 Jun 2018 17:23:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 03:36:13 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Jun 2018 03:36:13 +0000 Subject: Change in osmo-bsc[master]: dissolve libbsc: move all to src/osmo-bsc, link .o files In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/9481 ) Change subject: dissolve libbsc: move all to src/osmo-bsc, link .o files ...................................................................... dissolve libbsc: move all to src/osmo-bsc, link .o files Move all of libbsc/ into osmo-bsc/, and separate/move some implementations to allow linking from utils/* and ipaccess/* without pulling in unccessary dependencies. Some utilities use gsm_network and gsm_bts structs, which already include data structures for fairly advanced uses. Move initialization that only osmo-bsc needs into new bsc_network_init() and bsc_bts_alloc_register() functions, so that the leaner tools can use the old gsm_* versions without the need to link everything (e.g. handover and lchan alloc code). In some instances, there need to be stubs if to cut off linking "just before the RSL level" and prevent dependencies from creeping in. - abis_rsl_rcvmsg(): the only program currently interpreting RSL messages is osmo-bsc, the utils are merely concerned with OML, if at all. - paging_flush_bts(): ip.access nanobts models call this when the RSL link is dropped. Only osmo-bsc actually needs to do anything there. - on_gsm_ts_init(): the mechanism to trigger timeslot initialization is related to OML, while this action to take on init would pull in RSL dependencies. utils/ and ipaccess/ each have a stubs.c file to implement these stubs. Tests implement stubs inline where required. >From src/utils/, src/ipaccess/ and tests/*/, link in .o files from osmo-bsc/. In order for this to work, the osmo-bsc subdir must be built before the other source trees. (An alternative would be to include the .c files as sources, but that would re-compile them in every source tree. Not a large burden really, but unless linking .o files gives problems, let's have the quicker build.) Minor obvious cleanups creep in with this patch, I will not bother to name them individually now unless code review asks me to. Rationale: 1) libbsc has been separate to use it for osmo-nitb and osmo-bsc in the old openbsc.git. This is no longer required, and spreading over libbsc and osmo-bsc is distracting. 2) Recently, ridiculous linking requirements have made adding new functions cumbersome, because libbsc has started depending on osmo-bsc/*.c implementations: on gscon FSM and bssap functions. For example, neither bs11_config nor ipaccess-config nor bts_test need handover_cfg or BSSMAP message composition. It makes no sense to link the entire osmo-bsc to it, nor do we want to keep adding stubs to each linking realm. Change-Id: I36a586726f5818121abe54d25654819fc451d3bf --- M configure.ac M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/bss.h M include/osmocom/bsc/chan_alloc.h D include/osmocom/bsc/common_bsc.h M include/osmocom/bsc/gsm_data.h M src/Makefile.am M src/ipaccess/Makefile.am M src/ipaccess/ipaccess-config.c A src/ipaccess/stubs.c D src/libbsc/Makefile.am D src/libbsc/bsc_init.c D src/libbsc/net_init.c M src/osmo-bsc/Makefile.am R src/osmo-bsc/a_reset.c A src/osmo-bsc/abis_bs11.c R src/osmo-bsc/abis_nm.c R src/osmo-bsc/abis_nm_ipaccess.c R src/osmo-bsc/abis_nm_vty.c R src/osmo-bsc/abis_om2000.c R src/osmo-bsc/abis_om2000_vty.c R src/osmo-bsc/abis_rsl.c R src/osmo-bsc/acc_ramp.c R src/osmo-bsc/arfcn_range_encode.c R src/osmo-bsc/bsc_api.c R src/osmo-bsc/bsc_ctrl_commands.c R src/osmo-bsc/bsc_ctrl_lookup.c R src/osmo-bsc/bsc_dyn_ts.c A src/osmo-bsc/bsc_init.c R src/osmo-bsc/bsc_rf_ctrl.c R src/osmo-bsc/bsc_rll.c R src/osmo-bsc/bsc_subscr_conn_fsm.c R src/osmo-bsc/bsc_subscriber.c R src/osmo-bsc/bsc_vty.c R src/osmo-bsc/bts_ericsson_rbs2000.c R src/osmo-bsc/bts_init.c R src/osmo-bsc/bts_ipaccess_nanobts.c R src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c R src/osmo-bsc/bts_nokia_site.c R src/osmo-bsc/bts_siemens_bs11.c R src/osmo-bsc/bts_sysmobts.c R src/osmo-bsc/bts_unknown.c R src/osmo-bsc/chan_alloc.c R src/osmo-bsc/e1_config.c R src/osmo-bsc/gsm_04_08_utils.c R src/osmo-bsc/gsm_04_80_utils.c R src/osmo-bsc/gsm_data.c R src/osmo-bsc/handover_cfg.c R src/osmo-bsc/handover_decision.c R src/osmo-bsc/handover_decision_2.c R src/osmo-bsc/handover_logic.c R src/osmo-bsc/handover_vty.c R src/osmo-bsc/meas_feed.c R src/osmo-bsc/meas_rep.c A src/osmo-bsc/net_init.c R src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c R src/osmo-bsc/paging.c R src/osmo-bsc/pcu_sock.c R src/osmo-bsc/penalty_timers.c R src/osmo-bsc/rest_octets.c R src/osmo-bsc/system_information.c M src/utils/Makefile.am M src/utils/bs11_config.c A src/utils/stubs.c M tests/abis/Makefile.am M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/Makefile.am M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c M tests/subscr/Makefile.am 76 files changed, 1,060 insertions(+), 906 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 62a7dd0..25bcad7 100644 --- a/configure.ac +++ b/configure.ac @@ -168,7 +168,6 @@ include/osmocom/Makefile include/osmocom/bsc/Makefile src/Makefile - src/libbsc/Makefile src/libfilter/Makefile src/osmo-bsc/Makefile src/ipaccess/Makefile diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 0987be9..5fa39eb 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -12,7 +12,6 @@ bss.h \ bts_ipaccess_nanobts_omlattr.h \ chan_alloc.h \ - common_bsc.h \ ctrl.h \ debug.h \ e1_config.h \ diff --git a/include/osmocom/bsc/bss.h b/include/osmocom/bsc/bss.h index 9891f5f..ecb68d6 100644 --- a/include/osmocom/bsc/bss.h +++ b/include/osmocom/bsc/bss.h @@ -7,7 +7,6 @@ /* start and stop network */ extern int bsc_network_alloc(void); -extern int bsc_network_configure(const char *cfg_file); extern int bsc_shutdown_net(struct gsm_network *net); /* register all supported BTS */ diff --git a/include/osmocom/bsc/chan_alloc.h b/include/osmocom/bsc/chan_alloc.h index 98568a5..f3aec9d 100644 --- a/include/osmocom/bsc/chan_alloc.h +++ b/include/osmocom/bsc/chan_alloc.h @@ -45,7 +45,6 @@ void network_chan_load(struct pchan_load *pl, struct gsm_network *net); void bts_update_t3122_chan_load(struct gsm_bts *bts); -bool trx_is_usable(const struct gsm_bts_trx *trx); bool ts_is_usable(const struct gsm_bts_trx_ts *ts); #endif /* _CHAN_ALLOC_H */ diff --git a/include/osmocom/bsc/common_bsc.h b/include/osmocom/bsc/common_bsc.h deleted file mode 100644 index c23d20c..0000000 --- a/include/osmocom/bsc/common_bsc.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#include - -struct gsm_network *bsc_network_init(void *ctx); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index b1fceb3..a8d1f92 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -997,6 +997,8 @@ }; +struct gsm_network *gsm_network_init(void *ctx); + struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num); struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); @@ -1378,9 +1380,8 @@ struct gsm_subscriber_connection *msc_subscr_con_allocate(struct gsm_network *network); void msc_subscr_con_free(struct gsm_subscriber_connection *conn); -struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, - enum gsm_bts_type type, - uint8_t bsic); +struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, enum gsm_bts_type type, uint8_t bsic); +struct gsm_bts *bsc_bts_alloc_register(struct gsm_network *net, enum gsm_bts_type type, uint8_t bsic); void set_ts_e1link(struct gsm_bts_trx_ts *ts, uint8_t e1_nr, uint8_t e1_ts, uint8_t e1_ts_ss); @@ -1418,4 +1419,8 @@ void gsm_trx_mark_all_ts_uninitialized(struct gsm_bts_trx *trx); void gsm_bts_mark_all_ts_uninitialized(struct gsm_bts *bts); +bool trx_is_usable(const struct gsm_bts_trx *trx); + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts); + #endif /* _GSM_DATA_H */ diff --git a/src/Makefile.am b/src/Makefile.am index fc9bf8e..6c63eea 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,15 +19,9 @@ $(COVERAGE_LDFLAGS) \ $(NULL) -# Libraries SUBDIRS = \ - libbsc \ libfilter \ - $(NULL) - -# Programs -SUBDIRS += \ + osmo-bsc \ utils \ ipaccess \ - osmo-bsc \ $(NULL) diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index 0f9045f..2c6282d 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -33,31 +33,37 @@ $(NULL) abisip_find_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ $(OSMO_LIBS) \ $(NULL) abisip_find_SOURCES = \ abisip-find.c \ + stubs.c \ $(NULL) ipaccess_config_SOURCES = \ ipaccess-config.c \ ipaccess-firmware.c \ network_listen.c \ + stubs.c \ $(NULL) # FIXME: resolve the bogus dependencies patched around here: ipaccess_config_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ $(OSMO_LIBS) \ $(NULL) ipaccess_proxy_SOURCES = \ ipaccess-proxy.c \ + stubs.c \ + $(top_srcdir)/src/osmo-bsc/gsm_data.c \ $(NULL) ipaccess_proxy_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ $(OSMO_LIBS) \ $(NULL) diff --git a/src/ipaccess/ipaccess-config.c b/src/ipaccess/ipaccess-config.c index 2236063..079bae2 100644 --- a/src/ipaccess/ipaccess-config.c +++ b/src/ipaccess/ipaccess-config.c @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -54,6 +53,7 @@ #include #include #include +#include struct gsm_network *bsc_gsmnet; @@ -873,8 +873,6 @@ print_value_string(&ipa_test_strs[0], ARRAY_SIZE(ipa_test_strs)); } -extern void bts_model_nanobts_init(); - static const struct log_info_cat log_categories[] = { [DNM] = { .name = "DNM", @@ -898,6 +896,7 @@ int rc, option_index = 0, stream_id = 0xff; tall_ctx_config = talloc_named_const(NULL, 0, "ipaccess-config"); + tall_bsc_ctx = tall_ctx_config; msgb_talloc_ctx_init(tall_ctx_config, 0); osmo_init_logging2(tall_ctx_config, &log_info); @@ -1034,7 +1033,7 @@ libosmo_abis_init(tall_ctx_config); - bsc_gsmnet = bsc_network_init(tall_bsc_ctx); + bsc_gsmnet = gsm_network_init(tall_ctx_config); if (!bsc_gsmnet) exit(1); diff --git a/src/ipaccess/stubs.c b/src/ipaccess/stubs.c new file mode 100644 index 0000000..c52d52b --- /dev/null +++ b/src/ipaccess/stubs.c @@ -0,0 +1,43 @@ +/* Stubs required for linking */ + +/* (C) 2018 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +struct gsm_bts; +struct gsm_bts_trx_ts; +struct msgb; +struct bsc_msc_data; + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ + /* No TS init required here. */ + return true; +} + +int abis_rsl_rcvmsg(struct msgb *msg) +{ + /* No RSL handling here */ + return 0; +} + +void paging_flush_bts(struct gsm_bts *bts, struct bsc_msc_data *msc) +{ + /* No paging flushing */ +} diff --git a/src/libbsc/Makefile.am b/src/libbsc/Makefile.am deleted file mode 100644 index 2e44729..0000000 --- a/src/libbsc/Makefile.am +++ /dev/null @@ -1,70 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - -I$(top_builddir) \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOVTY_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOMGCP_CFLAGS) \ - $(LIBOSMOSIGTRAN_CFLAGS) \ - $(COVERAGE_CFLAGS) \ - $(LIBOSMOMGCPCLIENT_CFLAGS) \ - $(NULL) - -noinst_LIBRARIES = \ - libbsc.a \ - $(NULL) - -libbsc_a_SOURCES = \ - abis_nm.c \ - abis_nm_vty.c \ - abis_om2000.c \ - abis_om2000_vty.c \ - abis_rsl.c \ - a_reset.c \ - acc_ramp.c \ - bsc_rll.c \ - bsc_subscriber.c \ - paging.c \ - bts_ericsson_rbs2000.c \ - bts_ipaccess_nanobts.c \ - bts_siemens_bs11.c \ - bts_nokia_site.c \ - bts_unknown.c \ - bts_sysmobts.c \ - chan_alloc.c \ - gsm_data.c \ - handover_decision.c \ - handover_logic.c \ - meas_rep.c \ - pcu_sock.c \ - rest_octets.c \ - system_information.c \ - e1_config.c \ - bsc_api.c \ - bsc_vty.c \ - gsm_04_08_utils.c \ - gsm_04_80_utils.c \ - bsc_init.c \ - bts_init.c \ - bsc_rf_ctrl.c \ - arfcn_range_encode.c \ - bsc_ctrl_commands.c \ - bsc_ctrl_lookup.c \ - net_init.c \ - bsc_dyn_ts.c \ - bts_ipaccess_nanobts_omlattr.c \ - handover_vty.c \ - handover_cfg.c \ - penalty_timers.c \ - handover_decision_2.c \ - bsc_subscr_conn_fsm.c \ - meas_feed.c \ - osmo_bsc_lcls.c \ - $(NULL) - diff --git a/src/libbsc/bsc_init.c b/src/libbsc/bsc_init.c deleted file mode 100644 index 508a7f4..0000000 --- a/src/libbsc/bsc_init.c +++ /dev/null @@ -1,591 +0,0 @@ -/* A hackish minimal BSC (+MSC +HLR) implementation */ - -/* (C) 2008-2018 by Harald Welte - * (C) 2009 by Holger Hans Peter Freyther - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/* Callback function for NACK on the OML NM */ -static int oml_msg_nack(struct nm_nack_signal_data *nack) -{ - if (nack->mt == NM_MT_GET_ATTR_NACK) { - LOGP(DNM, LOGL_ERROR, "BTS%u does not support Get Attributes " - "OML message.\n", nack->bts->nr); - return 0; - } - - if (nack->mt == NM_MT_SET_BTS_ATTR_NACK) - LOGP(DNM, LOGL_ERROR, "Failed to set BTS attributes. That is fatal. " - "Was the bts type and frequency properly specified?\n"); - else - LOGP(DNM, LOGL_ERROR, "Got %s NACK going to drop the OML links.\n", - abis_nm_nack_name(nack->mt)); - - if (!nack->bts) { - LOGP(DNM, LOGL_ERROR, "Unknown bts. Can not drop it.\n"); - return 0; - } - - if (is_ipaccess_bts(nack->bts)) - ipaccess_drop_oml(nack->bts); - - return 0; -} - -/* Callback function to be called every time we receive a signal from NM */ -static int nm_sig_cb(unsigned int subsys, unsigned int signal, - void *handler_data, void *signal_data) -{ - struct nm_nack_signal_data *nack; - - switch (signal) { - case S_NM_NACK: - nack = signal_data; - return oml_msg_nack(nack); - default: - break; - } - return 0; -} - -int bsc_shutdown_net(struct gsm_network *net) -{ - struct gsm_bts *bts; - - llist_for_each_entry(bts, &net->bts_list, list) { - LOGP(DNM, LOGL_NOTICE, "shutting down OML for BTS %u\n", bts->nr); - osmo_signal_dispatch(SS_L_GLOBAL, S_GLOBAL_BTS_CLOSE_OM, bts); - } - - return 0; -} - -unsigned long long bts_uptime(const struct gsm_bts *bts) -{ - struct timespec tp; - - if (!bts->uptime || !bts->oml_link) { - LOGP(DNM, LOGL_ERROR, "BTS %u OML link uptime unavailable\n", bts->nr); - return 0; - } - - if (clock_gettime(CLOCK_MONOTONIC, &tp) != 0) { - LOGP(DNM, LOGL_ERROR, "BTS %u uptime computation failure: %s\n", bts->nr, strerror(errno)); - return 0; - } - - /* monotonic clock helps to ensure that the conversion is valid */ - return difftime(tp.tv_sec, bts->uptime); -} - -static int rsl_si(struct gsm_bts_trx *trx, enum osmo_sysinfo_type i, int si_len) -{ - struct gsm_bts *bts = trx->bts; - int rc, j; - - if (si_len) { - DEBUGP(DRR, "SI%s: %s\n", get_value_string(osmo_sitype_strs, i), - osmo_hexdump(GSM_BTS_SI(bts, i), GSM_MACBLOCK_LEN)); - } else - DEBUGP(DRR, "SI%s: OFF\n", get_value_string(osmo_sitype_strs, i)); - - switch (i) { - case SYSINFO_TYPE_5: - case SYSINFO_TYPE_5bis: - case SYSINFO_TYPE_5ter: - case SYSINFO_TYPE_6: - rc = rsl_sacch_filling(trx, osmo_sitype2rsl(i), - si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); - break; - case SYSINFO_TYPE_2quater: - if (si_len == 0) { - rc = rsl_bcch_info(trx, i, NULL, 0); - break; - } - rc = 0; - for (j = 0; j <= bts->si2q_count; j++) - rc = rsl_bcch_info(trx, i, (const uint8_t *)GSM_BTS_SI2Q(bts, j), GSM_MACBLOCK_LEN); - break; - default: - rc = rsl_bcch_info(trx, i, si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); - break; - } - - return rc; -} - -/* set all system information types for a TRX */ -int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx) -{ - int i, rc; - struct gsm_bts *bts = trx->bts; - uint8_t gen_si[_MAX_SYSINFO_TYPE], n_si = 0, n; - int si_len[_MAX_SYSINFO_TYPE]; - - bts->si_common.cell_sel_par.ms_txpwr_max_ccch = - ms_pwr_ctl_lvl(bts->band, bts->ms_max_power); - bts->si_common.cell_sel_par.neci = bts->network->neci; - - /* Zero/forget the state of the dynamically computed SIs, leeping the static ones */ - bts->si_valid = bts->si_mode_static; - - /* First, we determine which of the SI messages we actually need */ - - if (trx == bts->c0) { - /* 1...4 are always present on a C0 TRX */ - gen_si[n_si++] = SYSINFO_TYPE_1; - gen_si[n_si++] = SYSINFO_TYPE_2; - gen_si[n_si++] = SYSINFO_TYPE_2bis; - gen_si[n_si++] = SYSINFO_TYPE_2ter; - gen_si[n_si++] = SYSINFO_TYPE_2quater; - gen_si[n_si++] = SYSINFO_TYPE_3; - gen_si[n_si++] = SYSINFO_TYPE_4; - - /* 13 is always present on a C0 TRX of a GPRS BTS */ - if (bts->gprs.mode != BTS_GPRS_NONE) - gen_si[n_si++] = SYSINFO_TYPE_13; - } - - /* 5 and 6 are always present on every TRX */ - gen_si[n_si++] = SYSINFO_TYPE_5; - gen_si[n_si++] = SYSINFO_TYPE_5bis; - gen_si[n_si++] = SYSINFO_TYPE_5ter; - gen_si[n_si++] = SYSINFO_TYPE_6; - - /* Second, we generate the selected SI via RSL */ - - for (n = 0; n < n_si; n++) { - i = gen_si[n]; - /* Only generate SI if this SI is not in "static" (user-defined) mode */ - if (!(bts->si_mode_static & (1 << i))) { - /* Set SI as being valid. gsm_generate_si() might unset - * it, if SI is not required. */ - bts->si_valid |= (1 << i); - rc = gsm_generate_si(bts, i); - if (rc < 0) - goto err_out; - si_len[i] = rc; - } else { - if (i == SYSINFO_TYPE_5 || i == SYSINFO_TYPE_5bis - || i == SYSINFO_TYPE_5ter) - si_len[i] = 18; - else if (i == SYSINFO_TYPE_6) - si_len[i] = 11; - else - si_len[i] = 23; - } - } - - /* Third, we send the selected SI via RSL */ - - for (n = 0; n < n_si; n++) { - i = gen_si[n]; - /* if we don't currently have this SI, we send a zero-length - * RSL BCCH FILLING / SACCH FILLING * in order to deactivate - * the SI, in case it might have previously been active */ - if (!GSM_BTS_HAS_SI(bts, i)) - rc = rsl_si(trx, i, 0); - else - rc = rsl_si(trx, i, si_len[i]); - if (rc < 0) - return rc; - } - - /* Make sure the PCU is aware (in case anything GPRS related has - * changed in SI */ - pcu_info_update(bts); - - return 0; -err_out: - LOGP(DRR, LOGL_ERROR, "Cannot generate SI%s for BTS %u: error <%s>, " - "most likely a problem with neighbor cell list generation\n", - get_value_string(osmo_sitype_strs, i), bts->nr, strerror(-rc)); - return rc; -} - -/* set all system information types for a BTS */ -int gsm_bts_set_system_infos(struct gsm_bts *bts) -{ - struct gsm_bts_trx *trx; - - /* Generate a new ID */ - bts->bcch_change_mark += 1; - bts->bcch_change_mark %= 0x7; - - llist_for_each_entry(trx, &bts->trx_list, list) { - int rc; - - rc = gsm_bts_trx_set_system_infos(trx); - if (rc != 0) - return rc; - } - - return 0; -} - -/* Produce a MA as specified in 10.5.2.21 */ -static int generate_ma_for_ts(struct gsm_bts_trx_ts *ts) -{ - /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs - * and the MA */ - struct bitvec *cell_chan = &ts->trx->bts->si_common.cell_alloc; - struct bitvec *ts_arfcn = &ts->hopping.arfcns; - struct bitvec *ma = &ts->hopping.ma; - unsigned int num_cell_arfcns, bitnum, n_chan; - int i; - - /* re-set the MA to all-zero */ - ma->cur_bit = 0; - ts->hopping.ma_len = 0; - memset(ma->data, 0, ma->data_len); - - if (!ts->hopping.enabled) - return 0; - - /* count the number of ARFCNs in the cell channel allocation */ - num_cell_arfcns = 0; - for (i = 0; i < 1024; i++) { - if (bitvec_get_bit_pos(cell_chan, i)) - num_cell_arfcns++; - } - - /* pad it to octet-aligned number of bits */ - ts->hopping.ma_len = num_cell_arfcns / 8; - if (num_cell_arfcns % 8) - ts->hopping.ma_len++; - - n_chan = 0; - for (i = 0; i < 1024; i++) { - if (!bitvec_get_bit_pos(cell_chan, i)) - continue; - /* set the corresponding bit in the MA */ - bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; - if (bitvec_get_bit_pos(ts_arfcn, i)) - bitvec_set_bit_pos(ma, bitnum, 1); - else - bitvec_set_bit_pos(ma, bitnum, 0); - n_chan++; - } - - /* ARFCN 0 is special: It is coded last in the bitmask */ - if (bitvec_get_bit_pos(cell_chan, 0)) { - n_chan++; - /* set the corresponding bit in the MA */ - bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; - if (bitvec_get_bit_pos(ts_arfcn, 0)) - bitvec_set_bit_pos(ma, bitnum, 1); - else - bitvec_set_bit_pos(ma, bitnum, 0); - } - - return 0; -} - -static void bootstrap_rsl(struct gsm_bts_trx *trx) -{ - unsigned int i; - - LOGP(DRSL, LOGL_NOTICE, "bootstrapping RSL for BTS/TRX (%u/%u) " - "on ARFCN %u using MCC-MNC %s LAC=%u CID=%u BSIC=%u\n", - trx->bts->nr, trx->nr, trx->arfcn, - osmo_plmn_name(&bsc_gsmnet->plmn), - trx->bts->location_area_code, - trx->bts->cell_identity, trx->bts->bsic); - - if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { - rsl_nokia_si_begin(trx); - } - - /* - * Trigger ACC ramping before sending system information to BTS. - * This ensures that RACH control in system information is configured correctly. - * TRX 0 should be usable and unlocked, otherwise starting ACC ramping is pointless. - */ - if (trx_is_usable(trx) && trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) - acc_ramp_trigger(&trx->bts->acc_ramp); - - gsm_bts_trx_set_system_infos(trx); - - if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { - /* channel unspecific, power reduction in 2 dB steps */ - rsl_bs_power_control(trx, 0xFF, trx->max_power_red / 2); - rsl_nokia_si_end(trx); - } - - for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - struct gsm_bts_trx_ts *ts = &trx->ts[i]; - generate_ma_for_ts(ts); - gsm_ts_check_init(ts); - } -} - -/* Callback function to be called every time we receive a signal from INPUT */ -static int inp_sig_cb(unsigned int subsys, unsigned int signal, - void *handler_data, void *signal_data) -{ - struct input_signal_data *isd = signal_data; - struct gsm_bts_trx *trx = isd->trx; - int ts_no, lchan_no; - /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ - const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; - const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; - - /* we should not request more attributes than we're ready to handle */ - OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); - OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); - - if (subsys != SS_L_INPUT) - return -EINVAL; - - LOGP(DLMI, LOGL_DEBUG, "%s(): Input signal '%s' received\n", __func__, - get_value_string(e1inp_signal_names, signal)); - switch (signal) { - case S_L_INP_TEI_UP: - if (isd->link_type == E1INP_SIGN_OML) { - /* TODO: this is required for the Nokia BTS, hopping is configured - during OML, other MA is not set. */ - struct gsm_bts_trx *cur_trx; - /* was static in system_information.c */ - extern int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); - uint8_t ca[20]; - /* has to be called before generate_ma_for_ts to - set bts->si_common.cell_alloc */ - generate_cell_chan_list(ca, trx->bts); - - /* Request generic BTS-level attributes */ - abis_nm_get_attr(trx->bts, NM_OC_BTS, 0xFF, 0xFF, 0xFF, bts_attr, sizeof(bts_attr)); - - llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { - int i; - /* Request TRX-level attributes */ - abis_nm_get_attr(cur_trx->bts, NM_OC_BASEB_TRANSC, 0, cur_trx->nr, 0xFF, - trx_attr, sizeof(trx_attr)); - for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) - generate_ma_for_ts(&cur_trx->ts[i]); - } - } - if (isd->link_type == E1INP_SIGN_RSL) - bootstrap_rsl(trx); - break; - case S_L_INP_TEI_DN: - LOGP(DLMI, LOGL_ERROR, "Lost some E1 TEI link: %d %p\n", isd->link_type, trx); - - if (isd->link_type == E1INP_SIGN_OML) - rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_OML_FAIL]); - else if (isd->link_type == E1INP_SIGN_RSL) { - rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_RSL_FAIL]); - acc_ramp_abort(&trx->bts->acc_ramp); - } - - /* - * free all allocated channels. change the nm_state so the - * trx and trx_ts becomes unusable and chan_alloc.c can not - * allocate from it. - */ - for (ts_no = 0; ts_no < ARRAY_SIZE(trx->ts); ++ts_no) { - struct gsm_bts_trx_ts *ts = &trx->ts[ts_no]; - - for (lchan_no = 0; lchan_no < ARRAY_SIZE(ts->lchan); ++lchan_no) { - if (ts->lchan[lchan_no].state != LCHAN_S_NONE) - lchan_free(&ts->lchan[lchan_no]); - lchan_reset(&ts->lchan[lchan_no]); - } - } - - gsm_bts_mo_reset(trx->bts); - - abis_nm_clear_queue(trx->bts); - break; - default: - break; - } - - return 0; -} - -static int bootstrap_bts(struct gsm_bts *bts) -{ - int i, n; - - if (!bts->model) - return -EFAULT; - - if (bts->model->start && !bts->model->started) { - int ret = bts->model->start(bts->network); - if (ret < 0) - return ret; - - bts->model->started = true; - } - - /* FIXME: What about secondary TRX of a BTS? What about a BTS that has TRX - * in different bands? Why is 'band' a parameter of the BTS and not of the TRX? */ - switch (bts->band) { - case GSM_BAND_1800: - if (bts->c0->arfcn < 512 || bts->c0->arfcn > 885) { - LOGP(DNM, LOGL_ERROR, "GSM1800 channel must be between 512-885.\n"); - return -EINVAL; - } - break; - case GSM_BAND_1900: - if (bts->c0->arfcn < 512 || bts->c0->arfcn > 810) { - LOGP(DNM, LOGL_ERROR, "GSM1900 channel must be between 512-810.\n"); - return -EINVAL; - } - break; - case GSM_BAND_900: - if ((bts->c0->arfcn > 124 && bts->c0->arfcn < 955) || - bts->c0->arfcn > 1023) { - LOGP(DNM, LOGL_ERROR, "GSM900 channel must be between 0-124, 955-1023.\n"); - return -EINVAL; - } - break; - case GSM_BAND_850: - if (bts->c0->arfcn < 128 || bts->c0->arfcn > 251) { - LOGP(DNM, LOGL_ERROR, "GSM850 channel must be between 128-251.\n"); - return -EINVAL; - } - break; - default: - LOGP(DNM, LOGL_ERROR, "Unsupported frequency band.\n"); - return -EINVAL; - } - - /* Control Channel Description is set from vty/config */ - - /* T3212 is set from vty/config */ - - /* Set ccch config by looking at ts config */ - for (n=0, i=0; i<8; i++) - n += bts->c0->ts[i].pchan == GSM_PCHAN_CCCH ? 1 : 0; - - /* Indicate R99 MSC in SI3 */ - bts->si_common.chan_desc.mscr = 1; - - switch (n) { - case 0: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_C; - /* Limit reserved block to 2 on combined channel according to - 3GPP TS 44.018 Table 10.5.2.11.1 */ - if (bts->si_common.chan_desc.bs_ag_blks_res > 2) { - LOGP(DNM, LOGL_NOTICE, "CCCH is combined with SDCCHs, " - "reducing BS-AG-BLKS-RES value %d -> 2\n", - bts->si_common.chan_desc.bs_ag_blks_res); - bts->si_common.chan_desc.bs_ag_blks_res = 2; - } - break; - case 1: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_NC; - break; - case 2: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_2_NC; - break; - case 3: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_3_NC; - break; - case 4: - bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_4_NC; - break; - default: - LOGP(DNM, LOGL_ERROR, "Unsupported CCCH timeslot configuration\n"); - return -EINVAL; - } - - bts->si_common.cell_options.pwrc = 0; /* PWRC not set */ - - bts->si_common.cell_sel_par.acs = 0; - - bts->si_common.ncc_permitted = 0xff; - - bts->chan_load_samples_idx = 0; - - /* ACC ramping is initialized from vty/config */ - - /* Initialize the BTS state */ - gsm_bts_mo_reset(bts); - - return 0; -} - -int bsc_network_alloc(void) -{ - /* initialize our data structures */ - bsc_gsmnet = bsc_network_init(tall_bsc_ctx); - if (!bsc_gsmnet) - return -ENOMEM; - - return 0; -} - -int bsc_network_configure(const char *config_file) -{ - struct gsm_bts *bts; - int rc; - - rc = vty_read_config_file(config_file, NULL); - if (rc < 0) { - LOGP(DNM, LOGL_FATAL, "Failed to parse the config file: '%s'\n", config_file); - return rc; - } - - /* start telnet after reading config for vty_get_bind_addr() */ - rc = telnet_init_dynif(tall_bsc_ctx, bsc_gsmnet, vty_get_bind_addr(), - OSMO_VTY_PORT_NITB_BSC); - if (rc < 0) - return rc; - - osmo_signal_register_handler(SS_NM, nm_sig_cb, NULL); - osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); - - llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { - rc = bootstrap_bts(bts); - if (rc < 0) { - LOGP(DNM, LOGL_FATAL, "Error bootstrapping BTS\n"); - return rc; - } - rc = e1_reconfig_bts(bts); - if (rc < 0) { - LOGP(DNM, LOGL_FATAL, "Error enabling E1 input driver\n"); - return rc; - } - } - - return 0; -} diff --git a/src/libbsc/net_init.c b/src/libbsc/net_init.c deleted file mode 100644 index f03a2e1..0000000 --- a/src/libbsc/net_init.c +++ /dev/null @@ -1,117 +0,0 @@ -/* (C) 2008-2010 by Harald Welte - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include -#include -#include -#include -#include - -/* XXX hard-coded for now */ -#define T3122_CHAN_LOAD_SAMPLE_INTERVAL 1 /* in seconds */ - -static void update_t3122_chan_load_timer(void *data) -{ - struct gsm_network *net = data; - struct gsm_bts *bts; - - llist_for_each_entry(bts, &net->bts_list, list) - bts_update_t3122_chan_load(bts); - - /* Keep this timer ticking. */ - osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); -} - -struct gsm_network *bsc_network_init(void *ctx) -{ - struct gsm_network *net; - - net = talloc_zero(ctx, struct gsm_network); - if (!net) - return NULL; - - net->plmn = (struct osmo_plmn_id){ - .mcc = 1, - .mnc = 1, - }; - - net->dyn_ts_allow_tch_f = true; - - /* Permit a compile-time default of A5/3 and A5/1 */ - net->a5_encryption_mask = (1 << 3) | (1 << 1); - - /* Use 30 min periodic update interval as sane default */ - net->t3212 = 5; - - INIT_LLIST_HEAD(&net->subscr_conns); - - net->bsc_subscribers = talloc_zero(net, struct llist_head); - INIT_LLIST_HEAD(net->bsc_subscribers); - - net->bsc_data = talloc_zero(net, struct osmo_bsc_data); - if (!net->bsc_data) { - talloc_free(net); - return NULL; - } - - /* Init back pointer */ - net->bsc_data->auto_off_timeout = -1; - net->bsc_data->network = net; - INIT_LLIST_HEAD(&net->bsc_data->mscs); - - net->num_bts = 0; - net->T3101 = GSM_T3101_DEFAULT; - net->T3103 = GSM_T3103_DEFAULT; - net->T3105 = GSM_T3105_DEFAULT; - net->T3107 = GSM_T3107_DEFAULT; - net->T3109 = GSM_T3109_DEFAULT; - net->T3111 = GSM_T3111_DEFAULT; - net->T3113 = GSM_T3113_DEFAULT; - net->T3115 = GSM_T3115_DEFAULT; - net->T3117 = GSM_T3117_DEFAULT; - net->T3119 = GSM_T3119_DEFAULT; - net->T3122 = GSM_T3122_DEFAULT; - net->T3141 = GSM_T3141_DEFAULT; - - net->ho = ho_cfg_init(net, NULL); - net->hodec2.congestion_check_interval_s = HO_CFG_CONGESTION_CHECK_DEFAULT; - - INIT_LLIST_HEAD(&net->bts_list); - - /* - * At present all BTS in the network share one channel load timeout. - * If this becomes a problem for networks with a lot of BTS, this - * code could be refactored to run the timeout individually per BTS. - */ - osmo_timer_setup(&net->t3122_chan_load_timer, update_t3122_chan_load_timer, net); - osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); - - /* init statistics */ - net->bsc_ctrs = rate_ctr_group_alloc(net, &bsc_ctrg_desc, 0); - if (!net->bsc_ctrs) { - talloc_free(net); - return NULL; - } - - gsm_net_update_ctype(net); - - return net; -} - diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index cc96743..a459a92 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -26,21 +26,65 @@ $(NULL) osmo_bsc_SOURCES = \ - osmo_bsc_main.c \ - osmo_bsc_vty.c \ + a_reset.c \ + abis_nm.c \ + abis_nm_vty.c \ + abis_om2000.c \ + abis_om2000_vty.c \ + abis_rsl.c \ + acc_ramp.c \ + arfcn_range_encode.c \ + bsc_api.c \ + bsc_ctrl_commands.c \ + bsc_ctrl_lookup.c \ + bsc_dyn_ts.c \ + bsc_init.c \ + bsc_rf_ctrl.c \ + bsc_rll.c \ + bsc_subscr_conn_fsm.c \ + bsc_subscriber.c \ + bsc_vty.c \ + bts_ericsson_rbs2000.c \ + bts_init.c \ + bts_ipaccess_nanobts.c \ + bts_ipaccess_nanobts_omlattr.c \ + bts_nokia_site.c \ + bts_siemens_bs11.c \ + bts_sysmobts.c \ + bts_unknown.c \ + chan_alloc.c \ + e1_config.c \ + gsm_04_08_utils.c \ + gsm_04_80_utils.c \ + gsm_data.c \ + handover_cfg.c \ + handover_decision.c \ + handover_decision_2.c \ + handover_logic.c \ + handover_vty.c \ + meas_feed.c \ + meas_rep.c \ + net_init.c \ osmo_bsc_api.c \ + osmo_bsc_audio.c \ + osmo_bsc_bssap.c \ + osmo_bsc_ctrl.c \ + osmo_bsc_filter.c \ osmo_bsc_grace.c \ + osmo_bsc_lcls.c \ + osmo_bsc_main.c \ osmo_bsc_msc.c \ osmo_bsc_sigtran.c \ - osmo_bsc_filter.c \ - osmo_bsc_bssap.c \ - osmo_bsc_audio.c \ - osmo_bsc_ctrl.c \ + osmo_bsc_vty.c \ + paging.c \ + pcu_sock.c \ + penalty_timers.c \ + rest_octets.c \ + system_information.c \ $(NULL) osmo_bsc_LDADD = \ $(top_builddir)/src/libfilter/libfilter.a \ - $(top_builddir)/src/libbsc/libbsc.a \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOVTY_LIBS) \ diff --git a/src/libbsc/a_reset.c b/src/osmo-bsc/a_reset.c similarity index 100% rename from src/libbsc/a_reset.c rename to src/osmo-bsc/a_reset.c diff --git a/src/osmo-bsc/abis_bs11.c b/src/osmo-bsc/abis_bs11.c new file mode 100644 index 0000000..8b721fa --- /dev/null +++ b/src/osmo-bsc/abis_bs11.c @@ -0,0 +1,21 @@ +/* Siemens BS11 specific Abis implementations */ + +/* (C) 2008-2018 by Harald Welte + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + diff --git a/src/libbsc/abis_nm.c b/src/osmo-bsc/abis_nm.c similarity index 99% rename from src/libbsc/abis_nm.c rename to src/osmo-bsc/abis_nm.c index ea94d37..9dc1f62 100644 --- a/src/libbsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -164,13 +164,6 @@ static int abis_nm_rcvmsg_sw(struct msgb *mb); -bool nm_is_running(const struct gsm_nm_state *s) { - return (s->operational == NM_OPSTATE_ENABLED) && ( - (s->availability == NM_AVSTATE_OK) || - (s->availability == 0xff) - ); -} - /* Update the administrative state of a given object in our in-memory data * structures and send an event to the higher layer */ static int update_admstate(struct gsm_bts *bts, uint8_t obj_class, diff --git a/src/libbsc/abis_nm_ipaccess.c b/src/osmo-bsc/abis_nm_ipaccess.c similarity index 98% rename from src/libbsc/abis_nm_ipaccess.c rename to src/osmo-bsc/abis_nm_ipaccess.c index b822538..964b92e 100644 --- a/src/libbsc/abis_nm_ipaccess.c +++ b/src/osmo-bsc/abis_nm_ipaccess.c @@ -20,6 +20,8 @@ * */ +#include + /* A list of all the 'embedded' attributes of ip.access */ enum ipa_embedded_att { IPA_ATT_ARFCN_WHITELIST = 0x01, diff --git a/src/libbsc/abis_nm_vty.c b/src/osmo-bsc/abis_nm_vty.c similarity index 100% rename from src/libbsc/abis_nm_vty.c rename to src/osmo-bsc/abis_nm_vty.c diff --git a/src/libbsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c similarity index 100% rename from src/libbsc/abis_om2000.c rename to src/osmo-bsc/abis_om2000.c diff --git a/src/libbsc/abis_om2000_vty.c b/src/osmo-bsc/abis_om2000_vty.c similarity index 100% rename from src/libbsc/abis_om2000_vty.c rename to src/osmo-bsc/abis_om2000_vty.c diff --git a/src/libbsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c similarity index 98% rename from src/libbsc/abis_rsl.c rename to src/osmo-bsc/abis_rsl.c index 48cc39f..7bbde47 100644 --- a/src/libbsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -3033,38 +3033,8 @@ } /* Initial timeslot actions when a timeslot first comes into operation. */ -static bool gsm_ts_init(struct gsm_bts_trx_ts *ts) +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) { dyn_ts_init(ts); return true; } - -/* Trigger initial timeslot actions iff both OML and RSL are setup. */ -void gsm_ts_check_init(struct gsm_bts_trx_ts *ts) -{ - struct gsm_bts *bts = ts->trx->bts; - if (bts->model->oml_is_ts_ready - && !bts->model->oml_is_ts_ready(ts)) - return; - if (!ts->trx->rsl_link) - return; - if (ts->initialized) - return; - ts->initialized = gsm_ts_init(ts); -} - -void gsm_trx_mark_all_ts_uninitialized(struct gsm_bts_trx *trx) -{ - int i; - for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { - struct gsm_bts_trx_ts *ts = &trx->ts[i]; - ts->initialized = false; - } -} - -void gsm_bts_mark_all_ts_uninitialized(struct gsm_bts *bts) -{ - struct gsm_bts_trx *trx; - llist_for_each_entry(trx, &bts->trx_list, list) - gsm_trx_mark_all_ts_uninitialized(trx); -} diff --git a/src/libbsc/acc_ramp.c b/src/osmo-bsc/acc_ramp.c similarity index 100% rename from src/libbsc/acc_ramp.c rename to src/osmo-bsc/acc_ramp.c diff --git a/src/libbsc/arfcn_range_encode.c b/src/osmo-bsc/arfcn_range_encode.c similarity index 100% rename from src/libbsc/arfcn_range_encode.c rename to src/osmo-bsc/arfcn_range_encode.c diff --git a/src/libbsc/bsc_api.c b/src/osmo-bsc/bsc_api.c similarity index 100% rename from src/libbsc/bsc_api.c rename to src/osmo-bsc/bsc_api.c diff --git a/src/libbsc/bsc_ctrl_commands.c b/src/osmo-bsc/bsc_ctrl_commands.c similarity index 100% rename from src/libbsc/bsc_ctrl_commands.c rename to src/osmo-bsc/bsc_ctrl_commands.c diff --git a/src/libbsc/bsc_ctrl_lookup.c b/src/osmo-bsc/bsc_ctrl_lookup.c similarity index 100% rename from src/libbsc/bsc_ctrl_lookup.c rename to src/osmo-bsc/bsc_ctrl_lookup.c diff --git a/src/libbsc/bsc_dyn_ts.c b/src/osmo-bsc/bsc_dyn_ts.c similarity index 100% rename from src/libbsc/bsc_dyn_ts.c rename to src/osmo-bsc/bsc_dyn_ts.c diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c new file mode 100644 index 0000000..b6bd410 --- /dev/null +++ b/src/osmo-bsc/bsc_init.c @@ -0,0 +1,288 @@ +/* A hackish minimal BSC (+MSC +HLR) implementation */ + +/* (C) 2008-2018 by Harald Welte + * (C) 2009 by Holger Hans Peter Freyther + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +int bsc_shutdown_net(struct gsm_network *net) +{ + struct gsm_bts *bts; + + llist_for_each_entry(bts, &net->bts_list, list) { + LOGP(DNM, LOGL_NOTICE, "shutting down OML for BTS %u\n", bts->nr); + osmo_signal_dispatch(SS_L_GLOBAL, S_GLOBAL_BTS_CLOSE_OM, bts); + } + + return 0; +} + +unsigned long long bts_uptime(const struct gsm_bts *bts) +{ + struct timespec tp; + + if (!bts->uptime || !bts->oml_link) { + LOGP(DNM, LOGL_ERROR, "BTS %u OML link uptime unavailable\n", bts->nr); + return 0; + } + + if (clock_gettime(CLOCK_MONOTONIC, &tp) != 0) { + LOGP(DNM, LOGL_ERROR, "BTS %u uptime computation failure: %s\n", bts->nr, strerror(errno)); + return 0; + } + + /* monotonic clock helps to ensure that the conversion is valid */ + return difftime(tp.tv_sec, bts->uptime); +} + +static int rsl_si(struct gsm_bts_trx *trx, enum osmo_sysinfo_type i, int si_len) +{ + struct gsm_bts *bts = trx->bts; + int rc, j; + + if (si_len) { + DEBUGP(DRR, "SI%s: %s\n", get_value_string(osmo_sitype_strs, i), + osmo_hexdump(GSM_BTS_SI(bts, i), GSM_MACBLOCK_LEN)); + } else + DEBUGP(DRR, "SI%s: OFF\n", get_value_string(osmo_sitype_strs, i)); + + switch (i) { + case SYSINFO_TYPE_5: + case SYSINFO_TYPE_5bis: + case SYSINFO_TYPE_5ter: + case SYSINFO_TYPE_6: + rc = rsl_sacch_filling(trx, osmo_sitype2rsl(i), + si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); + break; + case SYSINFO_TYPE_2quater: + if (si_len == 0) { + rc = rsl_bcch_info(trx, i, NULL, 0); + break; + } + rc = 0; + for (j = 0; j <= bts->si2q_count; j++) + rc = rsl_bcch_info(trx, i, (const uint8_t *)GSM_BTS_SI2Q(bts, j), GSM_MACBLOCK_LEN); + break; + default: + rc = rsl_bcch_info(trx, i, si_len ? GSM_BTS_SI(bts, i) : NULL, si_len); + break; + } + + return rc; +} + +/* set all system information types for a TRX */ +int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx) +{ + int i, rc; + struct gsm_bts *bts = trx->bts; + uint8_t gen_si[_MAX_SYSINFO_TYPE], n_si = 0, n; + int si_len[_MAX_SYSINFO_TYPE]; + + bts->si_common.cell_sel_par.ms_txpwr_max_ccch = + ms_pwr_ctl_lvl(bts->band, bts->ms_max_power); + bts->si_common.cell_sel_par.neci = bts->network->neci; + + /* Zero/forget the state of the dynamically computed SIs, leeping the static ones */ + bts->si_valid = bts->si_mode_static; + + /* First, we determine which of the SI messages we actually need */ + + if (trx == bts->c0) { + /* 1...4 are always present on a C0 TRX */ + gen_si[n_si++] = SYSINFO_TYPE_1; + gen_si[n_si++] = SYSINFO_TYPE_2; + gen_si[n_si++] = SYSINFO_TYPE_2bis; + gen_si[n_si++] = SYSINFO_TYPE_2ter; + gen_si[n_si++] = SYSINFO_TYPE_2quater; + gen_si[n_si++] = SYSINFO_TYPE_3; + gen_si[n_si++] = SYSINFO_TYPE_4; + + /* 13 is always present on a C0 TRX of a GPRS BTS */ + if (bts->gprs.mode != BTS_GPRS_NONE) + gen_si[n_si++] = SYSINFO_TYPE_13; + } + + /* 5 and 6 are always present on every TRX */ + gen_si[n_si++] = SYSINFO_TYPE_5; + gen_si[n_si++] = SYSINFO_TYPE_5bis; + gen_si[n_si++] = SYSINFO_TYPE_5ter; + gen_si[n_si++] = SYSINFO_TYPE_6; + + /* Second, we generate the selected SI via RSL */ + + for (n = 0; n < n_si; n++) { + i = gen_si[n]; + /* Only generate SI if this SI is not in "static" (user-defined) mode */ + if (!(bts->si_mode_static & (1 << i))) { + /* Set SI as being valid. gsm_generate_si() might unset + * it, if SI is not required. */ + bts->si_valid |= (1 << i); + rc = gsm_generate_si(bts, i); + if (rc < 0) + goto err_out; + si_len[i] = rc; + } else { + if (i == SYSINFO_TYPE_5 || i == SYSINFO_TYPE_5bis + || i == SYSINFO_TYPE_5ter) + si_len[i] = 18; + else if (i == SYSINFO_TYPE_6) + si_len[i] = 11; + else + si_len[i] = 23; + } + } + + /* Third, we send the selected SI via RSL */ + + for (n = 0; n < n_si; n++) { + i = gen_si[n]; + /* if we don't currently have this SI, we send a zero-length + * RSL BCCH FILLING / SACCH FILLING * in order to deactivate + * the SI, in case it might have previously been active */ + if (!GSM_BTS_HAS_SI(bts, i)) + rc = rsl_si(trx, i, 0); + else + rc = rsl_si(trx, i, si_len[i]); + if (rc < 0) + return rc; + } + + /* Make sure the PCU is aware (in case anything GPRS related has + * changed in SI */ + pcu_info_update(bts); + + return 0; +err_out: + LOGP(DRR, LOGL_ERROR, "Cannot generate SI%s for BTS %u: error <%s>, " + "most likely a problem with neighbor cell list generation\n", + get_value_string(osmo_sitype_strs, i), bts->nr, strerror(-rc)); + return rc; +} + +/* set all system information types for a BTS */ +int gsm_bts_set_system_infos(struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + + /* Generate a new ID */ + bts->bcch_change_mark += 1; + bts->bcch_change_mark %= 0x7; + + llist_for_each_entry(trx, &bts->trx_list, list) { + int rc; + + rc = gsm_bts_trx_set_system_infos(trx); + if (rc != 0) + return rc; + } + + return 0; +} + +/* XXX hard-coded for now */ +#define T3122_CHAN_LOAD_SAMPLE_INTERVAL 1 /* in seconds */ + +static void update_t3122_chan_load_timer(void *data) +{ + struct gsm_network *net = data; + struct gsm_bts *bts; + + llist_for_each_entry(bts, &net->bts_list, list) + bts_update_t3122_chan_load(bts); + + /* Keep this timer ticking. */ + osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); +} + +static struct gsm_network *bsc_network_init(void *ctx) +{ + struct gsm_network *net = gsm_network_init(ctx); + + net->bsc_data = talloc_zero(net, struct osmo_bsc_data); + if (!net->bsc_data) { + talloc_free(net); + return NULL; + } + + /* Init back pointer */ + net->bsc_data->auto_off_timeout = -1; + net->bsc_data->network = net; + INIT_LLIST_HEAD(&net->bsc_data->mscs); + + net->ho = ho_cfg_init(net, NULL); + net->hodec2.congestion_check_interval_s = HO_CFG_CONGESTION_CHECK_DEFAULT; + + /* init statistics */ + net->bsc_ctrs = rate_ctr_group_alloc(net, &bsc_ctrg_desc, 0); + if (!net->bsc_ctrs) { + talloc_free(net); + return NULL; + } + + gsm_net_update_ctype(net); + + /* + * At present all BTS in the network share one channel load timeout. + * If this becomes a problem for networks with a lot of BTS, this + * code could be refactored to run the timeout individually per BTS. + */ + osmo_timer_setup(&net->t3122_chan_load_timer, update_t3122_chan_load_timer, net); + osmo_timer_schedule(&net->t3122_chan_load_timer, T3122_CHAN_LOAD_SAMPLE_INTERVAL, 0); + + return net; +} + +int bsc_network_alloc(void) +{ + /* initialize our data structures */ + bsc_gsmnet = bsc_network_init(tall_bsc_ctx); + if (!bsc_gsmnet) + return -ENOMEM; + + return 0; +} + +struct gsm_bts *bsc_bts_alloc_register(struct gsm_network *net, enum gsm_bts_type type, uint8_t bsic) +{ + struct gsm_bts *bts = gsm_bts_alloc_register(net, type, bsic); + + bts->ho = ho_cfg_init(bts, net->ho); + + return bts; +} diff --git a/src/libbsc/bsc_rf_ctrl.c b/src/osmo-bsc/bsc_rf_ctrl.c similarity index 100% rename from src/libbsc/bsc_rf_ctrl.c rename to src/osmo-bsc/bsc_rf_ctrl.c diff --git a/src/libbsc/bsc_rll.c b/src/osmo-bsc/bsc_rll.c similarity index 100% rename from src/libbsc/bsc_rll.c rename to src/osmo-bsc/bsc_rll.c diff --git a/src/libbsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c similarity index 100% rename from src/libbsc/bsc_subscr_conn_fsm.c rename to src/osmo-bsc/bsc_subscr_conn_fsm.c diff --git a/src/libbsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c similarity index 100% rename from src/libbsc/bsc_subscriber.c rename to src/osmo-bsc/bsc_subscriber.c diff --git a/src/libbsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c similarity index 99% rename from src/libbsc/bsc_vty.c rename to src/osmo-bsc/bsc_vty.c index 757a8a1..5d0feb6 100644 --- a/src/libbsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1945,7 +1945,7 @@ return CMD_WARNING; } else if (bts_nr == gsmnet->num_bts) { /* allocate a new one */ - bts = gsm_bts_alloc_register(gsmnet, GSM_BTS_TYPE_UNKNOWN, + bts = bsc_bts_alloc_register(gsmnet, GSM_BTS_TYPE_UNKNOWN, HARDCODED_BSIC); /* * Initalize bts->acc_ramp here. Else we could segfault while diff --git a/src/libbsc/bts_ericsson_rbs2000.c b/src/osmo-bsc/bts_ericsson_rbs2000.c similarity index 100% rename from src/libbsc/bts_ericsson_rbs2000.c rename to src/osmo-bsc/bts_ericsson_rbs2000.c diff --git a/src/libbsc/bts_init.c b/src/osmo-bsc/bts_init.c similarity index 100% rename from src/libbsc/bts_init.c rename to src/osmo-bsc/bts_init.c diff --git a/src/libbsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c similarity index 100% rename from src/libbsc/bts_ipaccess_nanobts.c rename to src/osmo-bsc/bts_ipaccess_nanobts.c diff --git a/src/libbsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c similarity index 100% rename from src/libbsc/bts_ipaccess_nanobts_omlattr.c rename to src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c diff --git a/src/libbsc/bts_nokia_site.c b/src/osmo-bsc/bts_nokia_site.c similarity index 100% rename from src/libbsc/bts_nokia_site.c rename to src/osmo-bsc/bts_nokia_site.c diff --git a/src/libbsc/bts_siemens_bs11.c b/src/osmo-bsc/bts_siemens_bs11.c similarity index 100% rename from src/libbsc/bts_siemens_bs11.c rename to src/osmo-bsc/bts_siemens_bs11.c diff --git a/src/libbsc/bts_sysmobts.c b/src/osmo-bsc/bts_sysmobts.c similarity index 100% rename from src/libbsc/bts_sysmobts.c rename to src/osmo-bsc/bts_sysmobts.c diff --git a/src/libbsc/bts_unknown.c b/src/osmo-bsc/bts_unknown.c similarity index 100% rename from src/libbsc/bts_unknown.c rename to src/osmo-bsc/bts_unknown.c diff --git a/src/libbsc/chan_alloc.c b/src/osmo-bsc/chan_alloc.c similarity index 98% rename from src/libbsc/chan_alloc.c rename to src/osmo-bsc/chan_alloc.c index 4eccff0..a24fbea 100644 --- a/src/libbsc/chan_alloc.c +++ b/src/osmo-bsc/chan_alloc.c @@ -65,18 +65,6 @@ return true; } -bool trx_is_usable(const struct gsm_bts_trx *trx) -{ - /* FIXME: How does this behave for BS-11 ? */ - if (is_ipaccess_bts(trx->bts)) { - if (!nm_is_running(&trx->mo.nm_state) || - !nm_is_running(&trx->bb_transc.mo.nm_state)) - return false; - } - - return true; -} - static int trx_count_free_ts(struct gsm_bts_trx *trx, enum gsm_phys_chan_config pchan) { struct gsm_bts_trx_ts *ts; diff --git a/src/libbsc/e1_config.c b/src/osmo-bsc/e1_config.c similarity index 100% rename from src/libbsc/e1_config.c rename to src/osmo-bsc/e1_config.c diff --git a/src/libbsc/gsm_04_08_utils.c b/src/osmo-bsc/gsm_04_08_utils.c similarity index 97% rename from src/libbsc/gsm_04_08_utils.c rename to src/osmo-bsc/gsm_04_08_utils.c index f30640f..5bfdf97 100644 --- a/src/libbsc/gsm_04_08_utils.c +++ b/src/osmo-bsc/gsm_04_08_utils.c @@ -302,26 +302,6 @@ cd->arfcn_lo = bts->c0->arfcn & 0xff; } -void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd, - const struct gsm_lchan *lchan) -{ - uint16_t arfcn = lchan->ts->trx->arfcn & 0x3ff; - - cd->chan_nr = gsm_lchan2chan_nr(lchan); - if (!lchan->ts->hopping.enabled) { - cd->h0.tsc = gsm_ts_tsc(lchan->ts); - cd->h0.h = 0; - cd->h0.arfcn_high = arfcn >> 8; - cd->h0.arfcn_low = arfcn & 0xff; - } else { - cd->h1.tsc = gsm_ts_tsc(lchan->ts); - cd->h1.h = 1; - cd->h1.maio_high = lchan->ts->hopping.maio >> 2; - cd->h1.maio_low = lchan->ts->hopping.maio & 0x03; - cd->h1.hsn = lchan->ts->hopping.hsn; - } -} - /*! \brief Encode a TS 04.08 multirate config LV according to 10.5.2.21aa * \param[out] lv caller-allocated buffer of 7 bytes. First octet is IS length * \param[in] mr multi-rate configuration to encode diff --git a/src/libbsc/gsm_04_80_utils.c b/src/osmo-bsc/gsm_04_80_utils.c similarity index 100% rename from src/libbsc/gsm_04_80_utils.c rename to src/osmo-bsc/gsm_04_80_utils.c diff --git a/src/libbsc/gsm_data.c b/src/osmo-bsc/gsm_data.c similarity index 93% rename from src/libbsc/gsm_data.c rename to src/osmo-bsc/gsm_data.c index ea2aea0..0f062d2 100644 --- a/src/libbsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -648,6 +648,10 @@ .initial_mcs = 6, }; +/* Initialize those parts that don't require osmo-bsc specific dependencies. + * This part is shared among the thin programs in osmo-bsc/src/utils/. + * osmo-bsc requires further initialization that pulls in more dependencies (see + * bsc_bts_alloc_register()). */ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num) { struct gsm_bts *bts = talloc_zero(net, struct gsm_bts); @@ -716,8 +720,6 @@ bts->bcch_change_mark = 1; bts->chan_load_avg = 0; - bts->ho = ho_cfg_init(bts, net->ho); - /* timer overrides */ bts->T3122 = 0; /* not overriden by default */ @@ -1232,3 +1234,72 @@ { return pchan_is_tch(ts_pchan(ts)); } + +bool trx_is_usable(const struct gsm_bts_trx *trx) +{ + /* FIXME: How does this behave for BS-11 ? */ + if (is_ipaccess_bts(trx->bts)) { + if (!nm_is_running(&trx->mo.nm_state) || + !nm_is_running(&trx->bb_transc.mo.nm_state)) + return false; + } + + return true; +} + +void gsm_trx_mark_all_ts_uninitialized(struct gsm_bts_trx *trx) +{ + int i; + for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { + struct gsm_bts_trx_ts *ts = &trx->ts[i]; + ts->initialized = false; + } +} + +void gsm_bts_mark_all_ts_uninitialized(struct gsm_bts *bts) +{ + struct gsm_bts_trx *trx; + llist_for_each_entry(trx, &bts->trx_list, list) + gsm_trx_mark_all_ts_uninitialized(trx); +} + +/* Trigger initial timeslot actions iff both OML and RSL are setup. */ +void gsm_ts_check_init(struct gsm_bts_trx_ts *ts) +{ + struct gsm_bts *bts = ts->trx->bts; + if (bts->model->oml_is_ts_ready + && !bts->model->oml_is_ts_ready(ts)) + return; + if (!ts->trx->rsl_link) + return; + if (ts->initialized) + return; + ts->initialized = on_gsm_ts_init(ts); +} + +void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd, + const struct gsm_lchan *lchan) +{ + uint16_t arfcn = lchan->ts->trx->arfcn & 0x3ff; + + cd->chan_nr = gsm_lchan2chan_nr(lchan); + if (!lchan->ts->hopping.enabled) { + cd->h0.tsc = gsm_ts_tsc(lchan->ts); + cd->h0.h = 0; + cd->h0.arfcn_high = arfcn >> 8; + cd->h0.arfcn_low = arfcn & 0xff; + } else { + cd->h1.tsc = gsm_ts_tsc(lchan->ts); + cd->h1.h = 1; + cd->h1.maio_high = lchan->ts->hopping.maio >> 2; + cd->h1.maio_low = lchan->ts->hopping.maio & 0x03; + cd->h1.hsn = lchan->ts->hopping.hsn; + } +} + +bool nm_is_running(const struct gsm_nm_state *s) { + return (s->operational == NM_OPSTATE_ENABLED) && ( + (s->availability == NM_AVSTATE_OK) || + (s->availability == 0xff) + ); +} diff --git a/src/libbsc/handover_cfg.c b/src/osmo-bsc/handover_cfg.c similarity index 100% rename from src/libbsc/handover_cfg.c rename to src/osmo-bsc/handover_cfg.c diff --git a/src/libbsc/handover_decision.c b/src/osmo-bsc/handover_decision.c similarity index 100% rename from src/libbsc/handover_decision.c rename to src/osmo-bsc/handover_decision.c diff --git a/src/libbsc/handover_decision_2.c b/src/osmo-bsc/handover_decision_2.c similarity index 100% rename from src/libbsc/handover_decision_2.c rename to src/osmo-bsc/handover_decision_2.c diff --git a/src/libbsc/handover_logic.c b/src/osmo-bsc/handover_logic.c similarity index 100% rename from src/libbsc/handover_logic.c rename to src/osmo-bsc/handover_logic.c diff --git a/src/libbsc/handover_vty.c b/src/osmo-bsc/handover_vty.c similarity index 100% rename from src/libbsc/handover_vty.c rename to src/osmo-bsc/handover_vty.c diff --git a/src/libbsc/meas_feed.c b/src/osmo-bsc/meas_feed.c similarity index 100% rename from src/libbsc/meas_feed.c rename to src/osmo-bsc/meas_feed.c diff --git a/src/libbsc/meas_rep.c b/src/osmo-bsc/meas_rep.c similarity index 100% rename from src/libbsc/meas_rep.c rename to src/osmo-bsc/meas_rep.c diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c new file mode 100644 index 0000000..db84e2a --- /dev/null +++ b/src/osmo-bsc/net_init.c @@ -0,0 +1,69 @@ +/* (C) 2008-2010 by Harald Welte + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include + +/* Initialize the bare minimum of struct gsm_network, minimizing required dependencies. + * This part is shared among the thin programs in osmo-bsc/src/utils/. + * osmo-bsc requires further initialization that pulls in more dependencies (see bsc_network_init()). */ +struct gsm_network *gsm_network_init(void *ctx) +{ + struct gsm_network *net = talloc_zero(ctx, struct gsm_network); + if (!net) + return NULL; + + net->plmn = (struct osmo_plmn_id){ + .mcc = 1, + .mnc = 1, + }; + + net->dyn_ts_allow_tch_f = true; + + /* Permit a compile-time default of A5/3 and A5/1 */ + net->a5_encryption_mask = (1 << 3) | (1 << 1); + + /* Use 30 min periodic update interval as sane default */ + net->t3212 = 5; + + INIT_LLIST_HEAD(&net->subscr_conns); + + net->bsc_subscribers = talloc_zero(net, struct llist_head); + INIT_LLIST_HEAD(net->bsc_subscribers); + + INIT_LLIST_HEAD(&net->bts_list); + net->num_bts = 0; + net->T3101 = GSM_T3101_DEFAULT; + net->T3103 = GSM_T3103_DEFAULT; + net->T3105 = GSM_T3105_DEFAULT; + net->T3107 = GSM_T3107_DEFAULT; + net->T3109 = GSM_T3109_DEFAULT; + net->T3111 = GSM_T3111_DEFAULT; + net->T3113 = GSM_T3113_DEFAULT; + net->T3115 = GSM_T3115_DEFAULT; + net->T3117 = GSM_T3117_DEFAULT; + net->T3119 = GSM_T3119_DEFAULT; + net->T3122 = GSM_T3122_DEFAULT; + net->T3141 = GSM_T3141_DEFAULT; + + return net; +} diff --git a/src/libbsc/osmo_bsc_lcls.c b/src/osmo-bsc/osmo_bsc_lcls.c similarity index 100% rename from src/libbsc/osmo_bsc_lcls.c rename to src/osmo-bsc/osmo_bsc_lcls.c diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index fefc041..5c6a872 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -42,9 +42,15 @@ #include #include #include +#include +#include #include #include +#include +#include +#include +#include #include @@ -147,6 +153,369 @@ } } +/* Callback function for NACK on the OML NM */ +static int oml_msg_nack(struct nm_nack_signal_data *nack) +{ + if (nack->mt == NM_MT_GET_ATTR_NACK) { + LOGP(DNM, LOGL_ERROR, "BTS%u does not support Get Attributes " + "OML message.\n", nack->bts->nr); + return 0; + } + + if (nack->mt == NM_MT_SET_BTS_ATTR_NACK) + LOGP(DNM, LOGL_ERROR, "Failed to set BTS attributes. That is fatal. " + "Was the bts type and frequency properly specified?\n"); + else + LOGP(DNM, LOGL_ERROR, "Got %s NACK going to drop the OML links.\n", + abis_nm_nack_name(nack->mt)); + + if (!nack->bts) { + LOGP(DNM, LOGL_ERROR, "Unknown bts. Can not drop it.\n"); + return 0; + } + + if (is_ipaccess_bts(nack->bts)) + ipaccess_drop_oml(nack->bts); + + return 0; +} + +/* Callback function to be called every time we receive a signal from NM */ +static int nm_sig_cb(unsigned int subsys, unsigned int signal, + void *handler_data, void *signal_data) +{ + struct nm_nack_signal_data *nack; + + switch (signal) { + case S_NM_NACK: + nack = signal_data; + return oml_msg_nack(nack); + default: + break; + } + return 0; +} + +/* Produce a MA as specified in 10.5.2.21 */ +static int generate_ma_for_ts(struct gsm_bts_trx_ts *ts) +{ + /* we have three bitvecs: the per-timeslot ARFCNs, the cell chan ARFCNs + * and the MA */ + struct bitvec *cell_chan = &ts->trx->bts->si_common.cell_alloc; + struct bitvec *ts_arfcn = &ts->hopping.arfcns; + struct bitvec *ma = &ts->hopping.ma; + unsigned int num_cell_arfcns, bitnum, n_chan; + int i; + + /* re-set the MA to all-zero */ + ma->cur_bit = 0; + ts->hopping.ma_len = 0; + memset(ma->data, 0, ma->data_len); + + if (!ts->hopping.enabled) + return 0; + + /* count the number of ARFCNs in the cell channel allocation */ + num_cell_arfcns = 0; + for (i = 0; i < 1024; i++) { + if (bitvec_get_bit_pos(cell_chan, i)) + num_cell_arfcns++; + } + + /* pad it to octet-aligned number of bits */ + ts->hopping.ma_len = num_cell_arfcns / 8; + if (num_cell_arfcns % 8) + ts->hopping.ma_len++; + + n_chan = 0; + for (i = 0; i < 1024; i++) { + if (!bitvec_get_bit_pos(cell_chan, i)) + continue; + /* set the corresponding bit in the MA */ + bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; + if (bitvec_get_bit_pos(ts_arfcn, i)) + bitvec_set_bit_pos(ma, bitnum, 1); + else + bitvec_set_bit_pos(ma, bitnum, 0); + n_chan++; + } + + /* ARFCN 0 is special: It is coded last in the bitmask */ + if (bitvec_get_bit_pos(cell_chan, 0)) { + n_chan++; + /* set the corresponding bit in the MA */ + bitnum = (ts->hopping.ma_len * 8) - 1 - n_chan; + if (bitvec_get_bit_pos(ts_arfcn, 0)) + bitvec_set_bit_pos(ma, bitnum, 1); + else + bitvec_set_bit_pos(ma, bitnum, 0); + } + + return 0; +} + +static void bootstrap_rsl(struct gsm_bts_trx *trx) +{ + unsigned int i; + + LOGP(DRSL, LOGL_NOTICE, "bootstrapping RSL for BTS/TRX (%u/%u) " + "on ARFCN %u using MCC-MNC %s LAC=%u CID=%u BSIC=%u\n", + trx->bts->nr, trx->nr, trx->arfcn, + osmo_plmn_name(&bsc_gsmnet->plmn), + trx->bts->location_area_code, + trx->bts->cell_identity, trx->bts->bsic); + + if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { + rsl_nokia_si_begin(trx); + } + + /* + * Trigger ACC ramping before sending system information to BTS. + * This ensures that RACH control in system information is configured correctly. + * TRX 0 should be usable and unlocked, otherwise starting ACC ramping is pointless. + */ + if (trx_is_usable(trx) && trx->mo.nm_state.administrative == NM_STATE_UNLOCKED) + acc_ramp_trigger(&trx->bts->acc_ramp); + + gsm_bts_trx_set_system_infos(trx); + + if (trx->bts->type == GSM_BTS_TYPE_NOKIA_SITE) { + /* channel unspecific, power reduction in 2 dB steps */ + rsl_bs_power_control(trx, 0xFF, trx->max_power_red / 2); + rsl_nokia_si_end(trx); + } + + for (i = 0; i < ARRAY_SIZE(trx->ts); i++) { + struct gsm_bts_trx_ts *ts = &trx->ts[i]; + generate_ma_for_ts(ts); + gsm_ts_check_init(ts); + } +} + +/* Callback function to be called every time we receive a signal from INPUT */ +static int inp_sig_cb(unsigned int subsys, unsigned int signal, + void *handler_data, void *signal_data) +{ + struct input_signal_data *isd = signal_data; + struct gsm_bts_trx *trx = isd->trx; + int ts_no, lchan_no; + /* N. B: we rely on attribute order when parsing response in abis_nm_rx_get_attr_resp() */ + const uint8_t bts_attr[] = { NM_ATT_MANUF_ID, NM_ATT_SW_CONFIG, }; + const uint8_t trx_attr[] = { NM_ATT_MANUF_STATE, NM_ATT_SW_CONFIG, }; + + /* we should not request more attributes than we're ready to handle */ + OSMO_ASSERT(sizeof(bts_attr) < MAX_BTS_ATTR); + OSMO_ASSERT(sizeof(trx_attr) < MAX_BTS_ATTR); + + if (subsys != SS_L_INPUT) + return -EINVAL; + + LOGP(DLMI, LOGL_DEBUG, "%s(): Input signal '%s' received\n", __func__, + get_value_string(e1inp_signal_names, signal)); + switch (signal) { + case S_L_INP_TEI_UP: + if (isd->link_type == E1INP_SIGN_OML) { + /* TODO: this is required for the Nokia BTS, hopping is configured + during OML, other MA is not set. */ + struct gsm_bts_trx *cur_trx; + /* was static in system_information.c */ + extern int generate_cell_chan_list(uint8_t *chan_list, struct gsm_bts *bts); + uint8_t ca[20]; + /* has to be called before generate_ma_for_ts to + set bts->si_common.cell_alloc */ + generate_cell_chan_list(ca, trx->bts); + + /* Request generic BTS-level attributes */ + abis_nm_get_attr(trx->bts, NM_OC_BTS, 0xFF, 0xFF, 0xFF, bts_attr, sizeof(bts_attr)); + + llist_for_each_entry(cur_trx, &trx->bts->trx_list, list) { + int i; + /* Request TRX-level attributes */ + abis_nm_get_attr(cur_trx->bts, NM_OC_BASEB_TRANSC, 0, cur_trx->nr, 0xFF, + trx_attr, sizeof(trx_attr)); + for (i = 0; i < ARRAY_SIZE(cur_trx->ts); i++) + generate_ma_for_ts(&cur_trx->ts[i]); + } + } + if (isd->link_type == E1INP_SIGN_RSL) + bootstrap_rsl(trx); + break; + case S_L_INP_TEI_DN: + LOGP(DLMI, LOGL_ERROR, "Lost some E1 TEI link: %d %p\n", isd->link_type, trx); + + if (isd->link_type == E1INP_SIGN_OML) + rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_OML_FAIL]); + else if (isd->link_type == E1INP_SIGN_RSL) { + rate_ctr_inc(&trx->bts->bts_ctrs->ctr[BTS_CTR_BTS_RSL_FAIL]); + acc_ramp_abort(&trx->bts->acc_ramp); + } + + /* + * free all allocated channels. change the nm_state so the + * trx and trx_ts becomes unusable and chan_alloc.c can not + * allocate from it. + */ + for (ts_no = 0; ts_no < ARRAY_SIZE(trx->ts); ++ts_no) { + struct gsm_bts_trx_ts *ts = &trx->ts[ts_no]; + + for (lchan_no = 0; lchan_no < ARRAY_SIZE(ts->lchan); ++lchan_no) { + if (ts->lchan[lchan_no].state != LCHAN_S_NONE) + lchan_free(&ts->lchan[lchan_no]); + lchan_reset(&ts->lchan[lchan_no]); + } + } + + gsm_bts_mo_reset(trx->bts); + + abis_nm_clear_queue(trx->bts); + break; + default: + break; + } + + return 0; +} + +static int bootstrap_bts(struct gsm_bts *bts) +{ + int i, n; + + if (!bts->model) + return -EFAULT; + + if (bts->model->start && !bts->model->started) { + int ret = bts->model->start(bts->network); + if (ret < 0) + return ret; + + bts->model->started = true; + } + + /* FIXME: What about secondary TRX of a BTS? What about a BTS that has TRX + * in different bands? Why is 'band' a parameter of the BTS and not of the TRX? */ + switch (bts->band) { + case GSM_BAND_1800: + if (bts->c0->arfcn < 512 || bts->c0->arfcn > 885) { + LOGP(DNM, LOGL_ERROR, "GSM1800 channel must be between 512-885.\n"); + return -EINVAL; + } + break; + case GSM_BAND_1900: + if (bts->c0->arfcn < 512 || bts->c0->arfcn > 810) { + LOGP(DNM, LOGL_ERROR, "GSM1900 channel must be between 512-810.\n"); + return -EINVAL; + } + break; + case GSM_BAND_900: + if ((bts->c0->arfcn > 124 && bts->c0->arfcn < 955) || + bts->c0->arfcn > 1023) { + LOGP(DNM, LOGL_ERROR, "GSM900 channel must be between 0-124, 955-1023.\n"); + return -EINVAL; + } + break; + case GSM_BAND_850: + if (bts->c0->arfcn < 128 || bts->c0->arfcn > 251) { + LOGP(DNM, LOGL_ERROR, "GSM850 channel must be between 128-251.\n"); + return -EINVAL; + } + break; + default: + LOGP(DNM, LOGL_ERROR, "Unsupported frequency band.\n"); + return -EINVAL; + } + + /* Control Channel Description is set from vty/config */ + + /* T3212 is set from vty/config */ + + /* Set ccch config by looking at ts config */ + for (n=0, i=0; i<8; i++) + n += bts->c0->ts[i].pchan == GSM_PCHAN_CCCH ? 1 : 0; + + /* Indicate R99 MSC in SI3 */ + bts->si_common.chan_desc.mscr = 1; + + switch (n) { + case 0: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_C; + /* Limit reserved block to 2 on combined channel according to + 3GPP TS 44.018 Table 10.5.2.11.1 */ + if (bts->si_common.chan_desc.bs_ag_blks_res > 2) { + LOGP(DNM, LOGL_NOTICE, "CCCH is combined with SDCCHs, " + "reducing BS-AG-BLKS-RES value %d -> 2\n", + bts->si_common.chan_desc.bs_ag_blks_res); + bts->si_common.chan_desc.bs_ag_blks_res = 2; + } + break; + case 1: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_1_NC; + break; + case 2: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_2_NC; + break; + case 3: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_3_NC; + break; + case 4: + bts->si_common.chan_desc.ccch_conf = RSL_BCCH_CCCH_CONF_4_NC; + break; + default: + LOGP(DNM, LOGL_ERROR, "Unsupported CCCH timeslot configuration\n"); + return -EINVAL; + } + + bts->si_common.cell_options.pwrc = 0; /* PWRC not set */ + + bts->si_common.cell_sel_par.acs = 0; + + bts->si_common.ncc_permitted = 0xff; + + bts->chan_load_samples_idx = 0; + + /* ACC ramping is initialized from vty/config */ + + /* Initialize the BTS state */ + gsm_bts_mo_reset(bts); + + return 0; +} + +static int bsc_network_configure(const char *config_file) +{ + struct gsm_bts *bts; + int rc; + + rc = vty_read_config_file(config_file, NULL); + if (rc < 0) { + LOGP(DNM, LOGL_FATAL, "Failed to parse the config file: '%s'\n", config_file); + return rc; + } + + /* start telnet after reading config for vty_get_bind_addr() */ + rc = telnet_init_dynif(tall_bsc_ctx, bsc_gsmnet, vty_get_bind_addr(), + OSMO_VTY_PORT_NITB_BSC); + if (rc < 0) + return rc; + + osmo_signal_register_handler(SS_NM, nm_sig_cb, NULL); + osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL); + + llist_for_each_entry(bts, &bsc_gsmnet->bts_list, list) { + rc = bootstrap_bts(bts); + if (rc < 0) { + LOGP(DNM, LOGL_FATAL, "Error bootstrapping BTS\n"); + return rc; + } + rc = e1_reconfig_bts(bts); + if (rc < 0) { + LOGP(DNM, LOGL_FATAL, "Error enabling E1 input driver\n"); + return rc; + } + } + + return 0; +} + static int bsc_vty_go_parent(struct vty *vty) { switch (vty->node) { diff --git a/src/libbsc/paging.c b/src/osmo-bsc/paging.c similarity index 100% rename from src/libbsc/paging.c rename to src/osmo-bsc/paging.c diff --git a/src/libbsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c similarity index 100% rename from src/libbsc/pcu_sock.c rename to src/osmo-bsc/pcu_sock.c diff --git a/src/libbsc/penalty_timers.c b/src/osmo-bsc/penalty_timers.c similarity index 100% rename from src/libbsc/penalty_timers.c rename to src/osmo-bsc/penalty_timers.c diff --git a/src/libbsc/rest_octets.c b/src/osmo-bsc/rest_octets.c similarity index 100% rename from src/libbsc/rest_octets.c rename to src/osmo-bsc/rest_octets.c diff --git a/src/libbsc/system_information.c b/src/osmo-bsc/system_information.c similarity index 100% rename from src/libbsc/system_information.c rename to src/osmo-bsc/system_information.c diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 6e21ccc..543344b 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -46,15 +46,18 @@ bs11_config_SOURCES = \ bs11_config.c \ + stubs.c \ $(NULL) bs11_config_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/bts_siemens_bs11.o \ + $(top_builddir)/src/osmo-bsc/e1_config.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBOSMOMGCPCLIENT_LIBS) \ $(NULL) isdnsync_SOURCES = \ @@ -114,12 +117,14 @@ meas_json_SOURCES = \ meas_json.c \ + stubs.c \ $(NULL) meas_json_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ + $(LIBOSMOABIS_LIBS) \ $(NULL) meas_json_CFLAGS = \ diff --git a/src/utils/bs11_config.c b/src/utils/bs11_config.c index 8d4de01..ae307c7 100644 --- a/src/utils/bs11_config.c +++ b/src/utils/bs11_config.c @@ -32,7 +32,6 @@ #include -#include #include #include #include @@ -915,7 +914,7 @@ handle_options(argc, argv); bts_model_bs11_init(); - gsmnet = bsc_network_init(tall_bs11cfg_ctx); + gsmnet = gsm_network_init(tall_bs11cfg_ctx); if (!gsmnet) { fprintf(stderr, "Unable to allocate gsm network\n"); exit(1); diff --git a/src/utils/stubs.c b/src/utils/stubs.c new file mode 100644 index 0000000..624797f --- /dev/null +++ b/src/utils/stubs.c @@ -0,0 +1,36 @@ +/* Stubs required for linking */ + +/* (C) 2018 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +struct gsm_bts_trx_ts; +struct msgb; + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ + /* No TS init required here. */ + return true; +} + +int abis_rsl_rcvmsg(struct msgb *msg) +{ + /* No RSL handling here */ + return 0; +} diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index 8dc829f..60054d9 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -25,7 +25,9 @@ $(NULL) abis_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOGSM_LIBS) \ diff --git a/tests/abis/abis_test.c b/tests/abis/abis_test.c index faf9ea5..c6f29f5 100644 --- a/tests/abis/abis_test.c +++ b/tests/abis/abis_test.c @@ -186,3 +186,5 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) { return true; } diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index a436c27..a930629 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -28,11 +28,28 @@ bsc_test_SOURCES = \ bsc_test.c \ - $(top_srcdir)/src/osmo-bsc/osmo_bsc_filter.c \ $(NULL) bsc_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_rsl.o \ + $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ + $(top_builddir)/src/osmo-bsc/bsc_api.o \ + $(top_builddir)/src/osmo-bsc/bsc_dyn_ts.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_filter.o \ + $(top_builddir)/src/osmo-bsc/bsc_rll.o \ + $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ + $(top_builddir)/src/osmo-bsc/chan_alloc.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/handover_cfg.o \ + $(top_builddir)/src/osmo-bsc/handover_logic.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/paging.o \ + $(top_builddir)/src/osmo-bsc/pcu_sock.o \ + $(top_builddir)/src/osmo-bsc/rest_octets.o \ + $(top_builddir)/src/osmo-bsc/system_information.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOVTY_LIBS) \ diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c index 08d3760..3a99467 100644 --- a/tests/bsc/bsc_test.c +++ b/tests/bsc/bsc_test.c @@ -30,7 +30,6 @@ #include #include #include -#include #include #include @@ -123,7 +122,7 @@ { int i; - struct gsm_network *net = bsc_network_init(ctx); + struct gsm_network *net = gsm_network_init(ctx); struct gsm_bts *bts = gsm_bts_alloc(net, 0); struct bsc_msc_data *msc; struct gsm_subscriber_connection *conn; diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 9a74d44..6d10b9f 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -23,7 +23,11 @@ $(NULL) gsm0408_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/rest_octets.o \ + $(top_builddir)/src/osmo-bsc/system_information.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index a934806..9552fb1 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -24,7 +24,6 @@ #include #include -#include #include #include #include @@ -817,7 +816,7 @@ osmo_init_logging2(tall_bsc_ctx, &log_info); log_set_log_level(osmo_stderr_target, LOGL_INFO); - net = bsc_network_init(tall_bsc_ctx); + net = gsm_network_init(tall_bsc_ctx); if (!net) { printf("Network init failure.\n"); return EXIT_FAILURE; @@ -848,3 +847,8 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ + return true; +} diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 957bbee..07491d5 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -34,7 +34,35 @@ $(NULL) handover_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/a_reset.o \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/abis_rsl.o \ + $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ + $(top_builddir)/src/osmo-bsc/bsc_api.o \ + $(top_builddir)/src/osmo-bsc/bsc_dyn_ts.o \ + $(top_builddir)/src/osmo-bsc/bsc_init.o \ + $(top_builddir)/src/osmo-bsc/bsc_rll.o \ + $(top_builddir)/src/osmo-bsc/bsc_subscr_conn_fsm.o \ + $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/bts_sysmobts.o \ + $(top_builddir)/src/osmo-bsc/chan_alloc.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/handover_cfg.o \ + $(top_builddir)/src/osmo-bsc/handover_decision.o \ + $(top_builddir)/src/osmo-bsc/handover_decision_2.o \ + $(top_builddir)/src/osmo-bsc/handover_logic.o \ + $(top_builddir)/src/osmo-bsc/meas_rep.o \ + $(top_builddir)/src/osmo-bsc/osmo_bsc_lcls.o \ + $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/paging.o \ + $(top_builddir)/src/osmo-bsc/pcu_sock.o \ + $(top_builddir)/src/osmo-bsc/penalty_timers.o \ + $(top_builddir)/src/osmo-bsc/rest_octets.o \ + $(top_builddir)/src/osmo-bsc/system_information.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 82afbe5..26074a2 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -37,7 +37,6 @@ #include #include #include -#include #include #include #include @@ -202,7 +201,7 @@ struct e1inp_sign_link *rsl_link; int i; - bts = gsm_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_OSMOBTS, 0x3f); + bts = bsc_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_OSMOBTS, 0x3f); if (!bts) { printf("No resource for bts1\n"); return NULL; @@ -1347,8 +1346,8 @@ struct gsm_lchan *lchan[256]; int lchan_num = 0; int i; - int algorithm; struct bsc_api bsc_api = {}; + int algorithm; int test_case_i; int last_test_i; @@ -1373,8 +1372,7 @@ log_set_print_category_hex(osmo_stderr_target, 0); log_set_print_filename2(osmo_stderr_target, LOG_FILENAME_BASENAME); - /* Create a dummy network */ - bsc_gsmnet = bsc_network_init(ctx); + bsc_network_alloc(); if (!bsc_gsmnet) exit(1); diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index c2b2c3b..aa7045e 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -23,7 +23,9 @@ $(NULL) nanobts_omlattr_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/abis_nm.o \ + $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ + $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index 8e8626d..72dabe5 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -305,3 +305,6 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +bool on_gsm_ts_init(struct gsm_bts_trx_ts *ts) +{ return true; } diff --git a/tests/subscr/Makefile.am b/tests/subscr/Makefile.am index 8d14ebf..e56d142 100644 --- a/tests/subscr/Makefile.am +++ b/tests/subscr/Makefile.am @@ -31,7 +31,7 @@ $(NULL) bsc_subscr_test_LDADD = \ - $(top_builddir)/src/libbsc/libbsc.a \ + $(top_builddir)/src/osmo-bsc/bsc_subscriber.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ $(LIBOSMOGSM_LIBS) \ -- To view, visit https://gerrit.osmocom.org/9481 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I36a586726f5818121abe54d25654819fc451d3bf Gerrit-Change-Number: 9481 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 03:36:14 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Jun 2018 03:36:14 +0000 Subject: Change in osmo-bsc[master]: remove struct bsc_api In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/9482 ) Change subject: remove struct bsc_api ...................................................................... remove struct bsc_api struct bsc_api was used to provide an abstract API for both osmo-bsc and osmo-msc, between BSC and MSC. That's no longer needed, so get rid of it, to prevent code turbulences it creates for no reason. Change-Id: I3fd5888c63a0b4f95520a498320aa105a6d60579 --- M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_api.c M src/osmo-bsc/osmo_bsc_api.c M src/osmo-bsc/osmo_bsc_main.c M tests/bsc/bsc_test.c M tests/handover/handover_test.c 7 files changed, 86 insertions(+), 198 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_api.h b/include/osmocom/bsc/bsc_api.h index 06f8093..a90268b 100644 --- a/include/osmocom/bsc/bsc_api.h +++ b/include/osmocom/bsc/bsc_api.h @@ -8,43 +8,18 @@ #define BSC_API_CONN_POL_ACCEPT 0 #define BSC_API_CONN_POL_REJECT 1 -struct bsc_api { - /*! \brief BTS->MSC: tell MSC a SAPI was not established */ - void (*sapi_n_reject)(struct gsm_subscriber_connection *conn, int dlci); - /*! \brief MS->MSC: Tell MSC that ciphering has been enabled */ - void (*cipher_mode_compl)(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint8_t chosen_encr); - /*! \brief MS->MSC: New MM context with L3 payload */ - int (*compl_l3)(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint16_t chosen_channel); - /*! \brief MS->BSC/MSC: Um L3 message */ - void (*dtap)(struct gsm_subscriber_connection *conn, uint8_t link_id, - struct msgb *msg); - /*! \brief BSC->MSC: Assignment of lchan successful */ - void (*assign_compl)(struct gsm_subscriber_connection *conn, uint8_t rr_cause); - /*! \brief BSC->MSC: Assignment of lchan failed */ - void (*assign_fail)(struct gsm_subscriber_connection *conn, - uint8_t cause, uint8_t *rr_cause); - /*! \brief BSC->MSC: RR conn has been cleared */ - int (*clear_request)(struct gsm_subscriber_connection *conn, - uint32_t cause); - /*! \brief BSC->MSC: Classmark Update */ - void (*classmark_chg)(struct gsm_subscriber_connection *conn, - const uint8_t *cm2, uint8_t cm2_len, - const uint8_t *cm3, uint8_t cm3_len); +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci); +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr); +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel); +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg); +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause); +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause); +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause); +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len); +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate); - /** - * Configure the multirate setting on this channel. If it is - * not implemented AMR5.9 will be used. - */ - void (*mr_config)(struct gsm_subscriber_connection *conn, - struct gsm_lchan *lchan, int full_rate); - - /** Callback for additional actions during conn cleanup */ - void (*conn_cleanup)(struct gsm_subscriber_connection *conn); -}; - -int bsc_api_init(struct gsm_network *network, struct bsc_api *api); int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, int link_id, int allow_sacch); int gsm0808_assign_req(struct gsm_subscriber_connection *conn, int chan_mode, int full_rate); int gsm0808_cipher_mode(struct gsm_subscriber_connection *conn, int cipher, diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index a8d1f92..56cca16 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -256,7 +256,6 @@ struct gsm_lchan; struct osmo_rtp_socket; struct rtp_socket; -struct bsc_api; /* Network Management State */ struct gsm_nm_state { @@ -1217,8 +1216,6 @@ struct rate_ctr_group *bsc_ctrs; - struct bsc_api *bsc_api; - unsigned int num_bts; struct llist_head bts_list; diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 8ae781e..5334314 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -45,52 +45,9 @@ #define HO_DTAP_CACHE_MSGB_CB_ALLOW_SACCH 1 static void rll_ind_cb(struct gsm_lchan *, uint8_t, void *, enum bsc_rllr_ind); -static void send_sapi_reject(struct gsm_subscriber_connection *conn, int link_id); -static void handle_release(struct gsm_subscriber_connection *conn, struct bsc_api *bsc, struct gsm_lchan *lchan); -static void handle_chan_ack(struct gsm_subscriber_connection *conn, struct bsc_api *bsc, struct gsm_lchan *lchan); -static void handle_chan_nack(struct gsm_subscriber_connection *conn, struct bsc_api *bsc, struct gsm_lchan *lchan); - -/*! \brief Determine and apply AMR multi-rate configuration to lchan - * Determine which AMR multi-rate configuration to use and apply it to - * the lchan (so it can be communicated to BTS and MS during channel - * activation. - * \param[in] conn subscriber connection (used to resolve bsc_api) - * \param[out] lchan logical channel to which to apply mr config - * \param[in] full_rate whether to use full-rate (1) or half-rate (0) config - */ -static void handle_mr_config(struct gsm_subscriber_connection *conn, - struct gsm_lchan *lchan, int full_rate) -{ - struct bsc_api *api; - api = conn->network->bsc_api; - struct amr_multirate_conf *mr; - struct gsm48_multi_rate_conf *mr_conf; - - /* BSC api override for this method, used in OsmoBSC mode with - * bsc_mr_config() to use MSC-specific/specified configuration */ - if (api->mr_config) - return api->mr_config(conn, lchan, full_rate); - - /* NITB case: use the BTS-specic multi-rate configuration from - * the vty/configuration file */ - if (full_rate) - mr = &lchan->ts->trx->bts->mr_full; - else - mr = &lchan->ts->trx->bts->mr_half; - - mr_conf = (struct gsm48_multi_rate_conf *) mr->gsm48_ie; - mr_conf->ver = 1; - - /* default, if no AMR codec defined */ - if (!mr->gsm48_ie[1]) { - mr_conf->icmi = 1; - mr_conf->m5_90 = 1; - } - /* store encoded MR config IE lchan for both MS (uplink) and BTS - * (downlink) directions */ - gsm48_multirate_config(lchan->mr_ms_lv, mr, mr->ms_mode); - gsm48_multirate_config(lchan->mr_bts_lv, mr, mr->bts_mode); -} +static void handle_release(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); +static void handle_chan_ack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); +static void handle_chan_nack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); /* * Start a new assignment and make sure that it is completed within T10 either @@ -145,7 +102,7 @@ /* handle AMR correctly */ if (chan_mode == GSM48_CMODE_SPEECH_AMR) - handle_mr_config(conn, new_lchan, full_rate); + bsc_mr_config(conn, new_lchan, full_rate); if (rsl_chan_activate_lchan(new_lchan, 0x1, 0) < 0) { LOGPLCHAN(new_lchan, DHO, LOGL_ERROR, "could not activate channel\n"); @@ -202,12 +159,6 @@ } } -int bsc_api_init(struct gsm_network *network, struct bsc_api *api) -{ - network->bsc_api = api; - return 0; -} - /*! \brief process incoming 08.08 DTAP from MSC (send via BTS to MS) */ int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, int link_id, int allow_sacch) @@ -246,7 +197,7 @@ OBSC_LINKID_CB(msg) = link_id; if (rll_establish(msg->lchan, sapi, rll_ind_cb, msg) != 0) { msgb_free(msg); - send_sapi_reject(conn, link_id); + bsc_sapi_n_reject(conn, link_id); return -1; } return 0; @@ -306,9 +257,6 @@ { /* TODO: Add multirate configuration, make it work for more than audio. */ - struct bsc_api *api; - api = conn->network->bsc_api; - if (!chan_compat_with_mode(conn->lchan, chan_mode, full_rate)) { if (handle_new_assignment(conn, chan_mode, full_rate) != 0) goto error; @@ -319,7 +267,7 @@ return 1; if (chan_mode == GSM48_CMODE_SPEECH_AMR) - handle_mr_config(conn, conn->lchan, full_rate); + bsc_mr_config(conn, conn->lchan, full_rate); LOGPLCHAN(conn->lchan, DMSC, LOGL_NOTICE, "Sending ChanModify for speech: %s\n", @@ -331,7 +279,7 @@ return 0; error: - api->assign_fail(conn, 0, NULL); + bsc_assign_fail(conn, 0, NULL); return -1; } @@ -345,7 +293,6 @@ struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); - struct bsc_api *api = conn->network->bsc_api; enum gsm48_rr_cause cause; /* Expecting gsm48_hdr + cause value */ @@ -393,13 +340,12 @@ if (is_ipaccess_bts(conn_get_bts(conn)) && conn->lchan->tch_mode != GSM48_CMODE_SIGN) rsl_ipacc_crcx(conn->lchan); - api->assign_compl(conn, cause); + bsc_assign_compl(conn, cause); } static void handle_ass_fail(struct gsm_subscriber_connection *conn, struct msgb *msg) { - struct bsc_api *api = conn->network->bsc_api; uint8_t *rr_failure; struct gsm48_hdr *gh; @@ -446,15 +392,12 @@ rr_failure = &gh->data[0]; } - api->assign_fail(conn, - GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, - rr_failure); + bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, rr_failure); } static void handle_classmark_chg(struct gsm_subscriber_connection *conn, struct msgb *msg) { - struct bsc_api *api = msg->lchan->ts->trx->bts->network->bsc_api; struct gsm48_hdr *gh = msgb_l3(msg); unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); uint8_t cm2_len, cm3_len = 0; @@ -486,7 +429,7 @@ } DEBUGPC(DRR, "CM3(len=%u)\n", cm3_len); } - api->classmark_chg(conn, cm2, cm2_len, cm3, cm3_len); + bsc_cm_update(conn, cm2, cm2_len, cm3, cm3_len); } /* Chapter 9.1.16 Handover complete */ @@ -533,7 +476,6 @@ static void dispatch_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) { - struct bsc_api *api = msg->lchan->ts->trx->bts->network->bsc_api; struct gsm48_hdr *gh; uint8_t pdisc; uint8_t msg_type; @@ -582,9 +524,7 @@ handle_rr_ho_fail(msg); break; case GSM48_MT_RR_CIPH_M_COMPL: - if (api->cipher_mode_compl) - api->cipher_mode_compl(conn, msg, - conn->lchan->encr.alg_id); + bsc_cipher_mode_compl(conn, msg, conn->lchan->encr.alg_id); break; case GSM48_MT_RR_ASS_COMPL: handle_ass_compl(conn, msg); @@ -595,13 +535,10 @@ case GSM48_MT_RR_CHAN_MODE_MODIF_ACK: osmo_timer_del(&conn->T10); rc = gsm48_rx_rr_modif_ack(msg); - if (rc < 0) { - api->assign_fail(conn, - GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, - NULL); - } else if (rc >= 0) { - api->assign_compl(conn, 0); - } + if (rc < 0) + bsc_assign_fail(conn, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, NULL); + else + bsc_assign_compl(conn, 0); break; case GSM48_MT_RR_CLSM_CHG: handle_classmark_chg(conn, msg); @@ -609,8 +546,7 @@ case GSM48_MT_RR_APP_INFO: /* Passing RR APP INFO to MSC, not quite * according to spec */ - if (api->dtap) - api->dtap(conn, link_id, msg); + bsc_dtap(conn, link_id, msg); break; default: /* Drop unknown RR message */ @@ -621,8 +557,7 @@ } break; default: - if (api->dtap) - api->dtap(conn, link_id, msg); + bsc_dtap(conn, link_id, msg); break; } } @@ -631,7 +566,6 @@ int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id) { int rc; - struct bsc_api *api = msg->lchan->ts->trx->bts->network->bsc_api; struct gsm_lchan *lchan; lchan = msg->lchan; @@ -656,7 +590,7 @@ lchan->conn->lchan = lchan; /* fwd via bsc_api to send COMPLETE L3 INFO to MSC */ - rc = api->compl_l3(lchan->conn, msg, 0); + rc = bsc_compl_l3(lchan->conn, msg, 0); if (rc != BSC_API_CONN_POL_ACCEPT) { //osmo_fsm_inst_dispatch(lchan->conn->fi, FIXME, NULL); @@ -716,20 +650,6 @@ return 0; } -static void send_sapi_reject(struct gsm_subscriber_connection *conn, int link_id) -{ - struct bsc_api *api; - - if (!conn) - return; - - api = conn->network->bsc_api; - if (!api || !api->sapi_n_reject) - return; - - api->sapi_n_reject(conn, link_id); -} - static void rll_ind_cb(struct gsm_lchan *lchan, uint8_t link_id, void *_data, enum bsc_rllr_ind rllr_ind) { struct msgb *msg = _data; @@ -749,7 +669,7 @@ case BSC_RLLR_IND_REL_IND: case BSC_RLLR_IND_ERR_IND: case BSC_RLLR_IND_TIMEOUT: - send_sapi_reject(lchan->conn, OBSC_LINKID_CB(msg)); + bsc_sapi_n_reject(lchan->conn, OBSC_LINKID_CB(msg)); msgb_free(msg); break; } @@ -758,7 +678,6 @@ static int bsc_handle_lchan_signal(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { - struct bsc_api *bsc; struct gsm_lchan *lchan; struct lchan_signal_data *lchan_data; @@ -771,40 +690,33 @@ return 0; lchan = lchan_data->lchan; - bsc = lchan->ts->trx->bts->network->bsc_api; - if (!bsc) - return 0; switch (signal) { case S_LCHAN_UNEXPECTED_RELEASE: - handle_release(lchan->conn, bsc, lchan); + handle_release(lchan->conn, lchan); break; case S_LCHAN_ACTIVATE_ACK: - handle_chan_ack(lchan->conn, bsc, lchan); + handle_chan_ack(lchan->conn, lchan); break; case S_LCHAN_ACTIVATE_NACK: - handle_chan_nack(lchan->conn, bsc, lchan); + handle_chan_nack(lchan->conn, lchan); break; } return 0; } -static void handle_release(struct gsm_subscriber_connection *conn, - struct bsc_api *bsc, struct gsm_lchan *lchan) +static void handle_release(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan) { if (conn->secondary_lchan == lchan) { osmo_timer_del(&conn->T10); conn->secondary_lchan = NULL; - bsc->assign_fail(conn, - GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, - NULL); + bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, NULL); } /* clear the connection now */ - if (bsc->clear_request) - bsc->clear_request(conn, 0); + bsc_clear_request(conn, 0); /* now give up all channels */ if (conn->lchan == lchan) @@ -814,8 +726,7 @@ lchan->conn = NULL; } -static void handle_chan_ack(struct gsm_subscriber_connection *conn, - struct bsc_api *api, struct gsm_lchan *lchan) +static void handle_chan_ack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan) { if (conn->secondary_lchan != lchan) return; @@ -824,8 +735,7 @@ gsm48_send_rr_ass_cmd(conn->lchan, lchan, lchan->ms_power); } -static void handle_chan_nack(struct gsm_subscriber_connection *conn, - struct bsc_api *api, struct gsm_lchan *lchan) +static void handle_chan_nack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan) { if (conn->secondary_lchan != lchan) return; diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c index 8081ea4..51fbdd3 100644 --- a/src/osmo-bsc/osmo_bsc_api.c +++ b/src/osmo-bsc/osmo_bsc_api.c @@ -51,7 +51,6 @@ return true; } -static int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause); static int complete_layer3(struct gsm_subscriber_connection *conn, struct msgb *msg, struct bsc_msc_data *msc); @@ -135,12 +134,13 @@ return rc; } -static void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) +/*! BTS->MSC: tell MSC a SAPI was not established. */ +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) { int rc; struct msgb *resp; - if (!msc_connected(conn)) + if (!conn || !msc_connected(conn)) return; LOGP(DMSC, LOGL_NOTICE, "Tx MSC SAPI N REJECT DLCI=0x%02x\n", dlci); @@ -150,8 +150,8 @@ msgb_free(resp); } -static void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, - struct msgb *msg, uint8_t chosen_encr) +/*! MS->MSC: Tell MSC that ciphering has been enabled. */ +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr) { int rc; struct msgb *resp; @@ -210,12 +210,8 @@ bsc_send_ussd_release_complete(conn); } -/* - * Instruct to reserve data for a new connectiom, create the complete - * layer three message, send it to open the connection. - */ -static int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, - uint16_t chosen_channel) +/*! MS->MSC: New MM context with L3 payload. */ +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel) { struct bsc_msc_data *msc; @@ -367,7 +363,8 @@ } -static void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) +/*! MS->BSC/MSC: Um L3 message. */ +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) { int lu_cause; @@ -399,7 +396,8 @@ osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_MO_DTAP, msg); } -static void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) +/*! BSC->MSC: Assignment of lchan successful. */ +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) { if (!msc_connected(conn)) return; @@ -424,14 +422,15 @@ } } -static void bsc_assign_fail(struct gsm_subscriber_connection *conn, - uint8_t cause, uint8_t *rr_cause) +/*! BSC->MSC: Assignment of lchan failed. */ +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) { LOGP(DMSC, LOGL_INFO, "Tx MSC ASSIGN FAIL\n"); osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_RR_ASS_FAIL, NULL); } -static int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) +/*! BSC->MSC: RR conn has been cleared. */ +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) { int rc; struct msgb *resp; @@ -454,9 +453,10 @@ return 1; } -static void bsc_cm_update(struct gsm_subscriber_connection *conn, - const uint8_t *cm2, uint8_t cm2_len, - const uint8_t *cm3, uint8_t cm3_len) +/*! BSC->MSC: Classmark Update. */ +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len) { int rc; struct msgb *resp; @@ -470,8 +470,8 @@ msgb_free(resp); } -static void bsc_mr_config(struct gsm_subscriber_connection *conn, - struct gsm_lchan *lchan, int full_rate) +/*! Configure the multirate setting on this channel. */ +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate) { struct bsc_msc_data *msc; struct gsm48_multi_rate_conf *ms_conf, *bts_conf; @@ -511,20 +511,3 @@ /* now copy this into the bts structure */ memcpy(lchan->mr_bts_lv, lchan->mr_ms_lv, sizeof(lchan->mr_ms_lv)); } - -static struct bsc_api bsc_handler = { - .sapi_n_reject = bsc_sapi_n_reject, - .cipher_mode_compl = bsc_cipher_mode_compl, - .compl_l3 = bsc_compl_l3, - .dtap = bsc_dtap, - .assign_compl = bsc_assign_compl, - .assign_fail = bsc_assign_fail, - .clear_request = bsc_clear_request, - .classmark_chg = bsc_cm_update, - .mr_config = bsc_mr_config, -}; - -struct bsc_api *osmo_bsc_api() -{ - return &bsc_handler; -} diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 5c6a872..494f280 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -827,7 +827,6 @@ fprintf(stderr, "Bootstrapping the network failed. exiting.\n"); exit(1); } - bsc_api_init(bsc_gsmnet, osmo_bsc_api()); /* start control interface after reading config for * ctrl_vty_get_bind_addr() */ diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c index 3a99467..950eaf5 100644 --- a/tests/bsc/bsc_test.c +++ b/tests/bsc/bsc_test.c @@ -235,3 +235,17 @@ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net) { OSMO_ASSERT(0); } + +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) {} +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr) {} +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel) +{ return 0; } +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) {} +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) {} +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) {} +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) +{ return 0; } +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len) {} +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate) {} diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 26074a2..87e64ec 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -1346,7 +1346,6 @@ struct gsm_lchan *lchan[256]; int lchan_num = 0; int i; - struct bsc_api bsc_api = {}; int algorithm; int test_case_i; int last_test_i; @@ -1376,8 +1375,6 @@ if (!bsc_gsmnet) exit(1); - bsc_api_init(bsc_gsmnet, &bsc_api); - ho_set_algorithm(bsc_gsmnet->ho, 2); ho_set_ho_active(bsc_gsmnet->ho, true); ho_set_hodec2_as_active(bsc_gsmnet->ho, true); @@ -1695,3 +1692,16 @@ void trau_send_frame() {} int osmo_bsc_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg) { return 0; } int osmo_bsc_sigtran_open_conn(struct gsm_subscriber_connection *conn, struct msgb *msg) { return 0; } +void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci) {} +void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr) {} +int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel) +{ return 0; } +void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg) {} +void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause) {} +void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) {} +int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause) +{ return 0; } +void bsc_cm_update(struct gsm_subscriber_connection *conn, + const uint8_t *cm2, uint8_t cm2_len, + const uint8_t *cm3, uint8_t cm3_len) {} +void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate) {} -- To view, visit https://gerrit.osmocom.org/9482 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3fd5888c63a0b4f95520a498320aa105a6d60579 Gerrit-Change-Number: 9482 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 03:36:16 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Jun 2018 03:36:16 +0000 Subject: Change in osmo-bsc[master]: cosmetic: magic number: use RSL_ACT_ constant for chan act In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/9485 ) Change subject: cosmetic: magic number: use RSL_ACT_ constant for chan act ...................................................................... cosmetic: magic number: use RSL_ACT_ constant for chan act Change-Id: I64ac2a17634f18322828ee2aa2284b0513130488 --- M src/osmo-bsc/bsc_api.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 5334314..02a59cc 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -104,7 +104,7 @@ if (chan_mode == GSM48_CMODE_SPEECH_AMR) bsc_mr_config(conn, new_lchan, full_rate); - if (rsl_chan_activate_lchan(new_lchan, 0x1, 0) < 0) { + if (rsl_chan_activate_lchan(new_lchan, RSL_ACT_INTRA_NORM_ASS, 0) < 0) { LOGPLCHAN(new_lchan, DHO, LOGL_ERROR, "could not activate channel\n"); lchan_free(new_lchan); return -1; -- To view, visit https://gerrit.osmocom.org/9485 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I64ac2a17634f18322828ee2aa2284b0513130488 Gerrit-Change-Number: 9485 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 03:36:16 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Jun 2018 03:36:16 +0000 Subject: Change in osmo-bsc[master]: cosmetic: gscon: undup code: add common assignment_failed() In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/9280 ) Change subject: cosmetic: gscon: undup code: add common assignment_failed() ...................................................................... cosmetic: gscon: undup code: add common assignment_failed() Call one common function to signal Assignment Failure and transition back to ST_ACTIVE. Change-Id: I1ce10a3ead286cdb6ad529fc293b6cecd151cc9a --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 33 insertions(+), 36 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index bafe145..1172a78 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -448,6 +448,22 @@ return ep_name; } +#define assignment_failed(fi, cause) \ + _assignment_failed(fi, cause, __FILE__, __LINE__) +static void _assignment_failed(struct osmo_fsm_inst *fi, enum gsm0808_cause cause, + const char *file, int line) +{ + struct gsm_subscriber_connection *conn = fi->priv; + struct msgb *resp = NULL; + + LOGPFSMLSRC(fi, LOGL_ERROR, file, line, "Assignment failed: %s\n", gsm0808_cause_name(cause)); + + resp = gsm0808_create_assignment_failure(cause, NULL); + sigtran_send(conn, resp, fi); + if (fi->state != ST_ACTIVE) + osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); +} + /* We're on an active subscriber connection, passing DTAP back and forth */ static void gscon_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data) { @@ -486,8 +502,7 @@ mgcp_conn_create(conn->network->mgw.client, fi, GSCON_EV_MGW_FAIL_BTS, GSCON_EV_MGW_CRCX_RESP_BTS, &conn_peer); if (!conn->user_plane.fi_bts) { - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); - sigtran_send(conn, resp, fi); + assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); return; } break; @@ -505,8 +520,7 @@ send_ass_compl(conn->lchan, fi, false); return; } else if (rc != 0) { - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); - sigtran_send(conn, resp, fi); + assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); return; } @@ -521,8 +535,7 @@ conn->user_plane.full_rate); /* The requested channel mode is not supported */ - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP, NULL); - sigtran_send(conn, resp, fi); + assignment_failed(fi, GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP); break; } break; @@ -566,7 +579,6 @@ { struct gsm_subscriber_connection *conn = fi->priv; struct mgcp_conn_peer *conn_peer = NULL; - struct msgb *resp = NULL; int rc; switch (event) { @@ -576,9 +588,7 @@ /* Check if the MGW has assigned an enpoint to us, otherwise we * can not proceed. */ if (strlen(conn_peer->endpoint) <= 0) { - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); return; } @@ -597,9 +607,7 @@ conn->user_plane.rtp_ip = osmo_ntohl(inet_addr(conn_peer->addr)); rc = gsm0808_assign_req(conn, conn->user_plane.chan_mode, conn->user_plane.full_rate); if (rc != 0) { - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_RQSTED_SPEECH_VERSION_UNAVAILABLE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + assignment_failed(fi, GSM0808_CAUSE_RQSTED_SPEECH_VERSION_UNAVAILABLE); return; } @@ -627,7 +635,6 @@ struct gsm_lchan *lchan = conn->lchan; struct mgcp_conn_peer conn_peer; struct in_addr addr; - struct msgb *resp = NULL; int rc; switch (event) { @@ -652,9 +659,7 @@ osmo_fsm_inst_state_chg(fi, ST_WAIT_MDCX_BTS, MGCP_MGW_TIMEOUT, MGCP_MGW_TIMEOUT_TIMER_NR); rc = mgcp_conn_modify(conn->user_plane.fi_bts, GSCON_EV_MGW_MDCX_RESP_BTS, &conn_peer); if (rc != 0) { - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); return; } break; @@ -676,9 +681,12 @@ break; case GSCON_EV_RR_ASS_FAIL: - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_RQSTED_TERRESTRIAL_RESOURCE_UNAVAILABLE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + { + enum gsm0808_cause cause = GSM0808_CAUSE_RQSTED_TERRESTRIAL_RESOURCE_UNAVAILABLE; + if (data) + cause = *((enum gsm0808_cause*)data); + assignment_failed(fi, cause); + } break; case GSCON_EV_MO_DTAP: forward_dtap(conn, (struct msgb *)data, fi); @@ -701,7 +709,6 @@ struct gsm_subscriber_connection *conn = fi->priv; struct mgcp_conn_peer conn_peer; struct sockaddr_in *sin = NULL; - struct msgb *resp = NULL; switch (event) { case GSCON_EV_MGW_MDCX_RESP_BTS: @@ -732,9 +739,7 @@ GSCON_EV_MGW_FAIL_MSC, GSCON_EV_MGW_CRCX_RESP_MSC, &conn_peer); if (!conn->user_plane.fi_msc) { - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); return; } break; @@ -997,11 +1002,8 @@ * with an assignment failure */ OSMO_ASSERT(fi->state != ST_INIT && fi->state != ST_WAIT_CC); if (fi->state == ST_WAIT_CRCX_BTS || fi->state == ST_WAIT_ASS_CMPL || fi->state == ST_WAIT_MDCX_BTS - || fi->state == ST_WAIT_CRCX_MSC) { - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); - } + || fi->state == ST_WAIT_CRCX_MSC) + assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); break; case GSCON_EV_A_CLEAR_CMD: /* MSC tells us to cleanly shut down */ @@ -1111,7 +1113,6 @@ static int gscon_timer_cb(struct osmo_fsm_inst *fi) { struct gsm_subscriber_connection *conn = fi->priv; - struct msgb *resp = NULL; switch (fi->T) { case 993210: @@ -1127,14 +1128,10 @@ osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); break; case GSM0808_T10_TIMER_NR: /* Assignment Failed */ - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + assignment_failed(fi, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE); break; case MGCP_MGW_TIMEOUT_TIMER_NR: /* Assignment failed (no response from MGW) */ - resp = gsm0808_create_assignment_failure(GSM0808_CAUSE_EQUIPMENT_FAILURE, NULL); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); break; case MGCP_MGW_HO_TIMEOUT_TIMER_NR: /* Handover failed (no response from MGW) */ osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); -- To view, visit https://gerrit.osmocom.org/9280 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1ce10a3ead286cdb6ad529fc293b6cecd151cc9a Gerrit-Change-Number: 9280 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 03:48:28 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Jun 2018 03:48:28 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9281 to look at the new patch set (#8). Change subject: assignment: signal assignment failure on chan act nack ...................................................................... assignment: signal assignment failure on chan act nack When the BTS responds with a Chan Act NACK, i.e. the lchan could not be activated, immediately signal Assignment Failure to the MSC (in handle_chan_nack()). In handle_chan_nack(), adjust log: instead of waiting for timeout, we now signal Assignment Failure. Drop misleading logging from bsc_assign_fail(): instead of transmitting the Assignment Failure message, it actually signals an FSM event. Leave logging of that to the FSM logging. Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 --- M src/osmo-bsc/bsc_api.c M src/osmo-bsc/osmo_bsc_api.c 2 files changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9281/8 -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 03:49:33 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Jun 2018 03:49:33 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9281 ) Change subject: assignment: signal assignment failure on chan act nack ...................................................................... Patch Set 8: (2 comments) https://gerrit.osmocom.org/#/c/9281/7/src/osmo-bsc/osmo_bsc_api.c File src/osmo-bsc/osmo_bsc_api.c: https://gerrit.osmocom.org/#/c/9281/7/src/osmo-bsc/osmo_bsc_api.c at 428 PS7, Line 428: LOGPFSML(conn->fi, LOGL_ERROR, "Assignment failure: BSSMAP: '%s' from RR: '%s'\n", Ok, this still looks stupid. But actually there are numerous callers passing in interesting cause values. Instead of killing all of those, I'd actually like to keep them around until I'm through refactoring the lchan assignment, because I might get around to reporting those cause values properly instead of dropping them on the floor... https://gerrit.osmocom.org/#/c/9281/8/src/osmo-bsc/osmo_bsc_api.c File src/osmo-bsc/osmo_bsc_api.c: https://gerrit.osmocom.org/#/c/9281/8/src/osmo-bsc/osmo_bsc_api.c at 430 PS8, Line 430: osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_RR_ASS_FAIL, &cause); does this qualify for the right direction? -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 08 Jun 2018 03:49:33 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 10:16:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 10:16:00 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9281 ) Change subject: assignment: signal assignment failure on chan act nack ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Fri, 08 Jun 2018 10:16:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 10:17:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 10:17:13 +0000 Subject: Change in osmo-bsc[master]: drop dead code: conn->T10, handled by gscon instead In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9503 ) Change subject: drop dead code: conn->T10, handled by gscon instead ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ief20cb0f46dd93f46dd765dca307724dc2b3487c Gerrit-Change-Number: 9503 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 10:17:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 10:17:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 10:17:39 +0000 Subject: Change in osmo-bsc[master]: make T10 configurable like the rest of them In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9504 ) Change subject: make T10 configurable like the rest of them ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I112c0db17d355d57eb08bc67121ccf49fbf53943 Gerrit-Change-Number: 9504 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 10:17:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 10:20:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 10:20:52 +0000 Subject: Change in osmo-bsc[master]: doc: charts: illustrate new plan for ts and lchans In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9489 ) Change subject: doc: charts: illustrate new plan for ts and lchans ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936 Gerrit-Change-Number: 9489 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 10:20:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 10:22:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 10:22:40 +0000 Subject: Change in libosmocore[master]: fsm: Change semantics of LOGPFSML() log-level In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9420 ) Change subject: fsm: Change semantics of LOGPFSML() log-level ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a Gerrit-Change-Number: 9420 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Fri, 08 Jun 2018 10:22:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 10:22:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 10:22:41 +0000 Subject: Change in libosmocore[master]: fsm: Change semantics of LOGPFSML() log-level In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9420 ) Change subject: fsm: Change semantics of LOGPFSML() log-level ...................................................................... fsm: Change semantics of LOGPFSML() log-level The general idea about each osmo_fsm_instance having a separate log-level was to be able to selectively increase/show/enable logging for some FSM instances (e.g. of a particular subscriber) while maintaining normal logging verbosity for all other instances of the same FSM. The introduction of LOGPFSML() in Change-Id If295fdabb3f31a0fd9490d1e0df57794c75ae547 broke that idea, as it would use a compile-time log level, irrespective of the osmo_fsm_inst.log_level setting of the given instance. Let's combine the two: Use the explicit level stated at LOGPFSML(), _unless_ this instance has a higher log_level configured. This way, all FSMs should normally be created with osmo_fsm_inst.log_level == LOGL_DEBUG. At that point LOGPFSM() statements would be rendered at debug level, typically below the threshold of most logging configurations. Code that has explicit higher log levels like LOGPFSML(fi, LOGL_ERROR) would always be printed, as it is an error message. And if we now increase the osmo_fsm_inst.log_level, then even the normal LOGPFSM() statements would suddenly be logged at that higher level, selectively increasing log verbosity - like originally intended. Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a --- M include/osmocom/core/fsm.h 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index 67e00ad..9e1062f 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -120,7 +120,8 @@ void osmo_fsm_log_addr(bool log_addr); #define LOGPFSML(fi, level, fmt, args...) \ - LOGP((fi)->fsm->log_subsys, level, "%s{%s}: " fmt, \ + LOGP((fi)->fsm->log_subsys, OSMO_MAX(level, (fi)->log_level), \ + "%s{%s}: " fmt, \ osmo_fsm_inst_name(fi), \ osmo_fsm_state_name((fi)->fsm, (fi)->state), ## args) -- To view, visit https://gerrit.osmocom.org/9420 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1820f04d0c6f5d5ff08eb95b8c0e88764534491a Gerrit-Change-Number: 9420 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 10:24:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 10:24:26 +0000 Subject: Change in osmo-sgsn[master]: WIP: tests: remove gmm unit tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9258 ) Change subject: WIP: tests: remove gmm unit tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9258 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iac1c8854b5ea4aa03279990390ebc110c979aac2 Gerrit-Change-Number: 9258 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Fri, 08 Jun 2018 10:24:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 8 10:28:30 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 8 Jun 2018 10:28:30 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-ggsn_=C2=BB_--disable-gt?= =?UTF-8?Q?p-linux,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#505?= Message-ID: <33220108.388.1528453710129.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 33.90 KB...] - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/codec make[2]: Entering directory ' CC gsm610.lo CC gsm620.lo CC gsm660.lo CC gsm690.lo CC ecu_fr.lo CCLD libosmocodec.la make[3]: Entering directory ' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmocodec.la ' libtool: warning: relinking 'libosmocodec.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -version-info 1:0:1 -no-undefined -o libosmocodec.la -rpath gsm610.lo gsm620.lo gsm660.lo gsm690.lo ecu_fr.lo ../../src/libosmocore.la ) libtool: install: /usr/bin/install -c .libs/libosmocodec.so.0.1.0T libtool: install: (cd && { ln -s -f libosmocodec.so.0.1.0 libosmocodec.so.0 || { rm -f libosmocodec.so.0 && ln -s libosmocodec.so.0.1.0 libosmocodec.so.0; }; }) libtool: install: (cd && { ln -s -f libosmocodec.so.0.1.0 libosmocodec.so || { rm -f libosmocodec.so && ln -s libosmocodec.so.0.1.0 libosmocodec.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocodec.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/gsm make[2]: Entering directory ' GEN gsm0503_conv.c Generating convolutional codes... Generate 'xcch' definition Generate 'rach' definition Generate 'rach_ext' definition Generate 'sch' definition Generate 'cs2' definition Generate 'cs3' definition Generate 'cs2_np' definition Generate 'cs3_np' definition Generate 'tch_afs_12_2' definition Generate 'tch_afs_10_2' definition Generate 'tch_afs_7_95' definition Generate 'tch_afs_7_4' definition Generate 'tch_afs_6_7' definition Generate 'tch_afs_5_9' definition Generate 'tch_afs_5_15' definition Generate 'tch_afs_4_75' definition Generate 'tch_fr' definition Generate 'tch_hr' definition Generate 'tch_ahs_7_95' definition Generate 'tch_ahs_7_4' definition Generate 'tch_ahs_6_7' definition Generate 'tch_ahs_5_9' definition Generate 'tch_ahs_5_15' definition Generate 'tch_ahs_4_75' definition Generate 'mcs1_dl_hdr' definition Generate 'mcs1_ul_hdr' definition Generate 'mcs1' definition Generate 'mcs2' definition Generate 'mcs3' definition Generate 'mcs4' definition Generate 'mcs5_dl_hdr' definition Generate 'mcs5_ul_hdr' definition Generate 'mcs5' definition Generate 'mcs6' definition Generate 'mcs7_dl_hdr' definition Generate 'mcs7_ul_hdr' definition Generate 'mcs7' definition Generate 'mcs8' definition Generate 'mcs9' definition Generation complete. make install-am make[3]: Entering directory ' CC a5.lo CC rxlev_stat.lo CC tlv_parser.lo CC rsl.lo CC comp128.lo CC gsm48.lo CC comp128v23.lo CC gsm_utils.lo gsm_utils.c:112:9: note: #pragma message: including GnuTLS for getrandom fallback. #pragma message ("including GnuTLS for getrandom fallback.") ^~~~~~~ gsm_utils.c: In function ?osmo_get_rand_id?: gsm_utils.c:448:9: note: #pragma message: Using direct syscall access for getrandom(): consider upgrading to glibc >= 2.25 #pragma message ("Using direct syscall access for getrandom(): consider upgrading to glibc >= 2.25") ^~~~~~~ gsm_utils.c:456:9: note: #pragma message: Secure random failed: using GnuTLS fallback. #pragma message ("Secure random failed: using GnuTLS fallback.") ^~~~~~~ CC gsm48_ie.lo CC gsm0808.lo CC sysinfo.lo CC gprs_cipher_core.lo CC gprs_rlc.lo CC gsm0480.lo CC abis_nm.lo CC gsm0502.lo CC gsm0411_utils.lo CC gsm0411_smc.lo CC gsm0411_smr.lo CC gsm0414.lo CC lapd_core.lo CC lapdm.lo CC kasumi.lo CC gsm_04_08_gprs.lo CC auth_core.lo CC auth_comp128v1.lo CC auth_comp128v23.lo CC auth_milenage.lo CC gea.lo CC milenage/aes-internal.lo CC milenage/aes-internal-enc.lo CC milenage/milenage.lo CC gan.lo CC ipa.lo CC gsm0341.lo CC apn.lo CC gsup.lo CC gsm0503_conv.lo CC gprs_gea.lo CC oap.lo CC gsm0808_utils.lo CC gsm23003.lo CC mncc.lo CC bts_features.lo CC milenage/aes-encblock.lo CCLD libgsmint.la ar: `u' modifier ignored since `D' is the default (see `U') CCLD libosmogsm.la make[4]: Entering directory ' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmogsm.la ' libtool: warning: relinking 'libosmogsm.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -Wl,--version-script=./libosmogsm.map -version-info 9:0:0 -no-undefined -o libosmogsm.la -rpath libgsmint.la -ltalloc -lgnutls ) libtool: install: /usr/bin/install -c .libs/libosmogsm.so.9.0.0T libtool: install: (cd && { ln -s -f libosmogsm.so.9.0.0 libosmogsm.so.9 || { rm -f libosmogsm.so.9 && ln -s libosmogsm.so.9.0.0 libosmogsm.so.9; }; }) libtool: install: (cd && { ln -s -f libosmogsm.so.9.0.0 libosmogsm.so || { rm -f libosmogsm.so && ln -s libosmogsm.so.9.0.0 libosmogsm.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmogsm.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/coding make[2]: Entering directory ' CC gsm0503_interleaving.lo CC gsm0503_parity.lo CC gsm0503_coding.lo CC gsm0503_mapping.lo CC gsm0503_tables.lo CCLD libosmocoding.la make[3]: Entering directory ' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmocoding.la ' libtool: warning: relinking 'libosmocoding.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -Wl,--version-script=./libosmocoding.map -version-info 1:0:1 -no-undefined -ltalloc -o libosmocoding.la -rpath gsm0503_interleaving.lo gsm0503_mapping.lo gsm0503_tables.lo gsm0503_parity.lo gsm0503_coding.lo ../libosmocore.la ../gsm/libosmogsm.la ../codec/libosmocodec.la ) libtool: install: /usr/bin/install -c .libs/libosmocoding.so.0.1.0T libtool: install: (cd && { ln -s -f libosmocoding.so.0.1.0 libosmocoding.so.0 || { rm -f libosmocoding.so.0 && ln -s libosmocoding.so.0.1.0 libosmocoding.so.0; }; }) libtool: install: (cd && { ln -s -f libosmocoding.so.0.1.0 libosmocoding.so || { rm -f libosmocoding.so && ln -s libosmocoding.so.0.1.0 libosmocoding.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocoding.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/gb make[2]: Entering directory ' CC gprs_ns.lo CC gprs_ns_frgre.lo CC gprs_bssgp_util.lo CC gprs_ns_vty.lo CC gprs_bssgp_bss.lo CC gprs_bssgp.lo CC gprs_bssgp_vty.lo CC common_vty.lo malloc: .././dispose_cmd.c:249: assertion botched free: start and end chunk sizes differ Aborting.../bin/bash: line 2: 21622 Aborted /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -fno-strict-aliasing -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT gprs_ns_vty.lo -MD -MP -MF $depbase.Tpo -c -o gprs_ns_vty.lo gprs_ns_vty.c Makefile:485: recipe for target 'gprs_ns_vty.lo' failed make[2]: *** [gprs_ns_vty.lo] Error 134 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:604: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:903: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Jun 8 11:39:29 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 11:39:29 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid sending reset ack twice in a row Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9505 Change subject: bsc-nat: Avoid sending reset ack twice in a row ...................................................................... bsc-nat: Avoid sending reset ack twice in a row Fixes: 38a77d0098b21e14a42a91fd83bc8179b2978555 Change-Id: Iedf45a787d5e684b2f199e8e947da434fe75cf05 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/05/9505/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 38a29be..240286e 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1261,7 +1261,6 @@ /* if we filter out the reset send an ack to the BSC */ if (parsed->bssap == 0 && parsed->gsm_type == BSS_MAP_MSG_RESET) { send_reset_ack(bsc); - send_reset_ack(bsc); } else if (parsed->ipa_proto == IPAC_PROTO_IPACCESS) { /* do we know who is handling this? */ if (msg->l2h[0] == IPAC_MSGT_ID_RESP && msgb_l2len(msg) > 2) { -- To view, visit https://gerrit.osmocom.org/9505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iedf45a787d5e684b2f199e8e947da434fe75cf05 Gerrit-Change-Number: 9505 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 11:39:29 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 11:39:29 +0000 Subject: Change in openbsc[master]: bsc-nat: bsc_nat_filter_ipa: Improve documentation Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9506 Change subject: bsc-nat: bsc_nat_filter_ipa: Improve documentation ...................................................................... bsc-nat: bsc_nat_filter_ipa: Improve documentation Change-Id: I91b18aeb8bdc2a1b392474318b1df1b4b1fee5a3 --- M openbsc/src/osmo-bsc_nat/bsc_filter.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/06/9506/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_filter.c b/openbsc/src/osmo-bsc_nat/bsc_filter.c index 6a9e99f..ddfcdcb 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_filter.c +++ b/openbsc/src/osmo-bsc_nat/bsc_filter.c @@ -135,6 +135,8 @@ return parsed; } +/* Returns 0 if message is whitelisted (has to beforwarded by bsc-nat), 1 if +/* it's blacklisted (not to be forwarded) */ int bsc_nat_filter_ipa(int dir, struct msgb *msg, struct bsc_nat_parsed *parsed) { int i; @@ -177,7 +179,7 @@ } } - /* go through the whitelust now */ + /* go through the whitelist now */ for (i = 0; i < ARRAY_SIZE(white_list); ++i) { /* ignore the rule? */ if (white_list[i].filter_dir != FILTER_TO_BOTH -- To view, visit https://gerrit.osmocom.org/9506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I91b18aeb8bdc2a1b392474318b1df1b4b1fee5a3 Gerrit-Change-Number: 9506 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 11:39:30 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 11:39:30 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Remove unneeded goto Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9507 Change subject: bsc-nat: forward_sccp_to_msc: Remove unneeded goto ...................................................................... bsc-nat: forward_sccp_to_msc: Remove unneeded goto Change-Id: I1e98ef1dd410aa3e534666356a74590dac87b918 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/07/9507/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 240286e..b8cbb11 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1277,8 +1277,6 @@ if (TLVP_PRESENT(&tvp, IPAC_IDTAG_UNITNAME)) ipaccess_auth_bsc(&tvp, bsc); } - - goto exit2; } exit2: -- To view, visit https://gerrit.osmocom.org/9507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1e98ef1dd410aa3e534666356a74590dac87b918 Gerrit-Change-Number: 9507 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 11:39:30 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 11:39:30 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9508 Change subject: bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section ...................................................................... bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section exit3 is the same as exit2 with the addition of calling bsc_send_con_refuse(). Since exit3 path is only followed once, it's easier to call bsc_send_con_refuse() on that code path and remove exit3 entirely in order to simplify the function. Change-Id: I2ba0aeca1ee0fffd75019bfba37907f0b8015066 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 3 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/08/9508/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index b8cbb11..928dd4c 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1142,7 +1142,9 @@ if (imsi) bsc_nat_inform_reject(bsc, imsi); bsc_stat_reject(filter, bsc, 0); - goto exit3; + /* send a SCCP Connection Refused */ + bsc_send_con_refuse(bsc, parsed, con_type, &cause); + goto exit2; } if (!create_sccp_src_ref(bsc, parsed)) @@ -1285,15 +1287,6 @@ talloc_free(parsed); msgb_free(msg); return -1; - -exit3: - /* send a SCCP Connection Refused */ - if (imsi) - talloc_free(imsi); - bsc_send_con_refuse(bsc, parsed, con_type, &cause); - talloc_free(parsed); - msgb_free(msg); - return -1; } static int ipaccess_bsc_read_cb(struct osmo_fd *bfd) -- To view, visit https://gerrit.osmocom.org/9508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2ba0aeca1ee0fffd75019bfba37907f0b8015066 Gerrit-Change-Number: 9508 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 11:39:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 11:39:31 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authent... Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9509 Change subject: bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authenticated bsc ...................................................................... bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authenticated bsc variable "parsed" was not being freed in this case. By calling exit2 we make sure it is freed. Change-Id: Ifd0c145ff733fdfb2f6fcb32065de99ee951d106 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/09/9509/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 928dd4c..373ba97 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1124,8 +1124,7 @@ */ if (!bsc->authenticated) { LOGP(DNAT, LOGL_ERROR, "BSC is not authenticated.\n"); - msgb_free(msg); - return -1; + goto exit2; } -- To view, visit https://gerrit.osmocom.org/9509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifd0c145ff733fdfb2f6fcb32065de99ee951d106 Gerrit-Change-Number: 9509 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 11:39:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 11:39:31 +0000 Subject: Change in openbsc[master]: bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format ... Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9510 Change subject: bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format received ...................................................................... bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format received This commit changes behaviour to a (imho) better logic and is a preparation for follow-up commits to avoid heap-use-after-free error when closing the bsc connection. Previously, authentication would still not be accepted but the connection would be staying alive for a while until id_timeout timer triggers. Let's close the connection immediately instead, this way BSC side can see quickly something is wrong with what it is sending. Furthermore, this way the logic of the function is simplified: If auth goes well, conn is alive. If auth goes wrong, conn is closed. Change-Id: I972961b8967076c56c607f98c2360054144951e4 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/10/9510/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 373ba97..fb2ec83 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1038,12 +1038,14 @@ if (len <= 0) { LOGP(DNAT, LOGL_ERROR, "Token with length zero on fd: %d\n", bsc->write_queue.bfd.fd); + bsc_close_connection(bsc); return; } if (token[len - 1] != '\0') { LOGP(DNAT, LOGL_ERROR, "Token not null terminated on fd: %d\n", bsc->write_queue.bfd.fd); + bsc_close_connection(bsc); return; } -- To view, visit https://gerrit.osmocom.org/9510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I972961b8967076c56c607f98c2360054144951e4 Gerrit-Change-Number: 9510 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 11:39:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 11:39:31 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid heap-use-after-free on bsc auth failure Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9511 Change subject: bsc-nat: Avoid heap-use-after-free on bsc auth failure ...................................................................... bsc-nat: Avoid heap-use-after-free on bsc auth failure Previous to this patch, if ipaccess_auth_bsc() failed finding the requested auth token, it would call bsc_close_connection() on it. However, it would not report callers that the bsc conn was closed. Since ipaccess_auth_bsc is called in the following path: [osmo_wqueue_bfd_cb->ipaccess_bsc_read_cb->forward_sccp_to_msc->ipaccess_auth_bsc] It needs to notify the lower layers (wqueue) that the conn/osmo_fd has been freed an it should avoid keep using/forwarding it again. This patch fixes this issue by moving the conn closing one layer down the stack (from ipaccess_auth_bsc to forward_sccp_to_msc), and in there we now close the conn and provide required information to the callers. Fixes following Asan report: Unit_Name='foobar' <0015> openbsc/openbsc/src/osmo-bsc_nat/bsc_nat.c:1061 No bsc found for token 'foobar' len 6 on fd: 11. ================================================================= ==18946==ERROR: AddressSanitizer: heap-use-after-free on address 0x616001f8b81c at pc 0x7ffff6067540 bp 0x7fffffffe170 sp 0x7fffffffe168 READ of size 4 at 0x616001f8b81c thread T0 #0 0x7ffff606753f in osmo_wqueue_bfd_cb libosmocore/src/write_queue.c:65 #1 0x7ffff605206b in osmo_fd_disp_fds libosmocore/src/select.c:217 #2 0x7ffff6052305 in osmo_select_main libosmocore/src/select.c:257 #3 0x421c8e in main openbsc/openbsc/src/osmo-bsc_nat/bsc_nat.c:1714 #4 0x7ffff47ffb44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b44) #5 0x406438 (/bin/osmo-bsc_nat+0x406438) Fixes: SYS#4250 Change-Id: Ifb39a045b98bc2043a98a9787fc61cbcddc368e0 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 32 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/11/9511/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index fb2ec83..e912f60 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -958,21 +958,23 @@ talloc_free(connection); } -static void bsc_maybe_close(struct bsc_connection *bsc) +/* Returns true if bsc_close_connection() was called, false otherwise */ +static bool bsc_maybe_close(struct bsc_connection *bsc) { struct nat_sccp_connection *sccp; if (!bsc->nat->blocked) - return; + return false; /* are there any connections left */ llist_for_each_entry(sccp, &bsc->nat->sccp_connections, list_entry) if (sccp->bsc == bsc) - return; + return false; /* nothing left, close the BSC */ LOGP(DNAT, LOGL_NOTICE, "Cleaning up BSC %d in blocking mode.\n", bsc->cfg ? bsc->cfg->nr : -1); bsc_close_connection(bsc); + return true; } static void ipaccess_close_bsc(void *data) @@ -1021,7 +1023,8 @@ return osmo_constant_time_cmp(vec.res, key, 8) == 0; } -static void ipaccess_auth_bsc(struct tlv_parsed *tvp, struct bsc_connection *bsc) +/* Returns true if connection was successfully authenticated, false otherwise. */ +static bool ipaccess_auth_bsc(struct tlv_parsed *tvp, struct bsc_connection *bsc) { struct bsc_config *conf; const char *token = (const char *) TLVP_VAL(tvp, IPAC_IDTAG_UNITNAME); @@ -1032,21 +1035,19 @@ if (bsc->cfg) { LOGP(DNAT, LOGL_ERROR, "Reauth on fd %d bsc nr %d\n", bsc->write_queue.bfd.fd, bsc->cfg->nr); - return; + return true; } if (len <= 0) { LOGP(DNAT, LOGL_ERROR, "Token with length zero on fd: %d\n", bsc->write_queue.bfd.fd); - bsc_close_connection(bsc); - return; + return false; } if (token[len - 1] != '\0') { LOGP(DNAT, LOGL_ERROR, "Token not null terminated on fd: %d\n", bsc->write_queue.bfd.fd); - bsc_close_connection(bsc); - return; + return false; } /* @@ -1061,8 +1062,7 @@ LOGP(DNAT, LOGL_ERROR, "No bsc found for token '%s' len %d on fd: %d.\n", token, bsc->write_queue.bfd.fd, len); - bsc_close_connection(bsc); - return; + return false; } /* We have set a key and expect it to be present */ @@ -1070,8 +1070,7 @@ LOGP(DNAT, LOGL_ERROR, "Wrong key for bsc nr %d fd: %d.\n", conf->nr, bsc->write_queue.bfd.fd); - bsc_close_connection(bsc); - return; + return false; } rate_ctr_inc(&conf->stats.ctrg->ctr[BCFG_CTR_NET_RECONN]); @@ -1081,6 +1080,7 @@ LOGP(DNAT, LOGL_NOTICE, "Authenticated bsc nr: %d on fd %d\n", conf->nr, bsc->write_queue.bfd.fd); start_ping_pong(bsc); + return true; } static void handle_con_stats(struct nat_sccp_connection *con) @@ -1098,7 +1098,14 @@ rate_ctr_inc(&ctrg->ctr[id]); } -static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg) +/*! + * Forward messages to msc and verify received authentication messages. + * \param[in] bsc Pointer to bsc_connection structure from which the message was received. + * \param[in] msg The msg received to be forwarded to the msc. + * \param[out] bsc_conn_closed Whether bsc_close_connection(bsc) was called inside the function. + * \returns 0 on success, -1 on error. + */ +static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg, bool *bsc_conn_closed) { int con_filter = 0; char *imsi = NULL; @@ -1107,6 +1114,7 @@ int con_type; struct bsc_nat_parsed *parsed; struct bsc_filter_reject_cause cause; + *bsc_conn_closed = false; /* Parse and filter messages */ parsed = bsc_nat_parse(msg); @@ -1216,7 +1224,7 @@ con_filter = con->con_local; } remove_sccp_src_ref(bsc, msg, parsed); - bsc_maybe_close(bsc); + *bsc_conn_closed = bsc_maybe_close(bsc); break; case SCCP_MSG_TYPE_UDT: /* simply forward everything */ @@ -1277,8 +1285,12 @@ "message with malformed TLVs\n"); return ret; } - if (TLVP_PRESENT(&tvp, IPAC_IDTAG_UNITNAME)) - ipaccess_auth_bsc(&tvp, bsc); + if (TLVP_PRESENT(&tvp, IPAC_IDTAG_UNITNAME)) { + if (!ipaccess_auth_bsc(&tvp, bsc)) { + bsc_close_connection(bsc); + *bsc_conn_closed = true; + } + } } } @@ -1296,6 +1308,7 @@ struct msgb *msg = NULL; struct ipaccess_head *hh; struct ipaccess_head_ext *hh_ext; + bool fd_closed = false; int ret; ret = ipa_msg_recv_buffered(bfd->fd, &msg, &bsc->pending_msg); @@ -1344,8 +1357,8 @@ /* FIXME: Currently no PONG is sent to the BSC */ /* FIXME: Currently no ID ACK is sent to the BSC */ - forward_sccp_to_msc(bsc, msg); - return 0; + forward_sccp_to_msc(bsc, msg, &fd_closed); + return fd_closed ? -EBADF : 0; close_fd: bsc_close_connection(bsc); -- To view, visit https://gerrit.osmocom.org/9511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifb39a045b98bc2043a98a9787fc61cbcddc368e0 Gerrit-Change-Number: 9511 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 14:37:30 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 14:37:30 +0000 Subject: Change in osmo-bts[master]: bts.c: Add missing include for gsm48_rr_msg_name Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9512 Change subject: bts.c: Add missing include for gsm48_rr_msg_name ...................................................................... bts.c: Add missing include for gsm48_rr_msg_name It seems I somehow mischecked that the required include for gsm48_rr_msg_name was not yet present in the file. Fixes: 44a35902adde70b4e4696640f09f448ba44d51d2 Change-Id: Ia82bc6a5ff7e3989cf0b85ee689d0c3344720eda --- M src/common/bts.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/12/9512/1 diff --git a/src/common/bts.c b/src/common/bts.c index f0850c1..55f4b94 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include -- To view, visit https://gerrit.osmocom.org/9512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia82bc6a5ff7e3989cf0b85ee689d0c3344720eda Gerrit-Change-Number: 9512 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 14:37:32 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 14:37:32 +0000 Subject: Change in osmo-bts[master]: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 50 Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9513 Change subject: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 50 ...................................................................... bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 50 In a prod setup, complete channel saturation at the bsc was detected, and Immediate Assignments were not being answered by the MS once sent by the BTS. Further investigation showed that the BTS was all the time printing messages like this: "bts.c:540 AGCH: too many messages in queue, refusing message type 0x3f, length = 1001/10" So it seems the AGCH queue was becoming incredibly full (1000, hard limit triggered the log), while acgch_queue.max_length was set to 10. As a result, most probably the Immediate Assignments being sent to the MS are super old in time, and the MS doesn't known about them anymore once they are receivied, so no answer is sent back. Let's try to avoid that by decreasing the hard limit so we never reach that big queue_len scenario. Related: SYS#2695 Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd --- M src/common/bts.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/13/9513/1 diff --git a/src/common/bts.c b/src/common/bts.c index 55f4b94..1315a0a 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -533,7 +533,7 @@ int bts_agch_enqueue(struct gsm_bts *bts, struct msgb *msg) { - int hard_limit = 1000; + int hard_limit = 50; struct gsm48_imm_ass_rej *imm_ass_cmd = msgb_l3(msg); if (bts->agch_queue.length > hard_limit) { -- To view, visit https://gerrit.osmocom.org/9513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd Gerrit-Change-Number: 9513 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 14:37:33 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 14:37:33 +0000 Subject: Change in osmo-bts[master]: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9514 Change subject: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ ...................................................................... compact AGCH queue: Drop too msg diff than IMM_ASS_REJ We saw in a recent prod setup a BSC with saturated channels. Further investigation lead to a AGCH queue of 1000 (previous hard_limit) messages, most of them being regular IMM ASSIGN (non REJ). Hence, we also want to get rid of other messages in the AGCH queue (like regular IMM ASSIGN). Furthermore, In this scenario, sending IMM ASS REJ is as important as other messages given than nowadays we support dynamic wait indicatior (calculated based on chan load), which means if we reach the MS, we can tell it to wait for a long time to reach us again, which is desirable. Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb --- M src/common/bts.c 1 file changed, 0 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/14/9514/1 diff --git a/src/common/bts.c b/src/common/bts.c index 1315a0a..69acad2 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -615,11 +615,6 @@ struct gsm48_imm_ass *imm_ass_cmd = msgb_l3(msg); int p_drop; - if (imm_ass_cmd->msg_type != GSM48_MT_RR_IMM_ASS_REJ) - return; - - /* IMMEDIATE ASSIGN REJECT */ - p_drop = (bts->agch_queue.length - offs) * slope / max_len; if ((random() & 0xffff) >= p_drop) -- To view, visit https://gerrit.osmocom.org/9514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb Gerrit-Change-Number: 9514 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 14:37:33 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 14:37:33 +0000 Subject: Change in osmo-bts[master]: Send DELETE_IND when dropping Imm Assign pending message Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9515 Change subject: Send DELETE_IND when dropping Imm Assign pending message ...................................................................... Send DELETE_IND when dropping Imm Assign pending message This way we give the opportunity to the BSC to release the channel quicker, otherwise it has to wait until T3101 expires. Same procedure is already done in rsl.c rsl_rx_imm_ass() when we return an error (hard limit AGCH queue len reached) from bts_agch_enqueue(). Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a --- M include/osmo-bts/rsl.h M src/common/bts.c M src/common/rsl.c 3 files changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/15/9515/1 diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h index ddd756e..06d58a2 100644 --- a/include/osmo-bts/rsl.h +++ b/include/osmo-bts/rsl.h @@ -37,6 +37,7 @@ int rsl_tx_ccch_load_ind_pch(struct gsm_bts *bts, uint16_t paging_avail); int rsl_tx_ccch_load_ind_rach(struct gsm_bts *bts, uint16_t total, uint16_t busy, uint16_t access); +int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len); void cb_ts_disconnected(struct gsm_bts_trx_ts *ts); void cb_ts_connected(struct gsm_bts_trx_ts *ts); diff --git a/src/common/bts.c b/src/common/bts.c index 69acad2..a00c680 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -622,6 +622,8 @@ llist_del(&msg->list); bts->agch_queue.length--; + rsl_tx_delete_ind(bts, (uint8_t *)imm_ass_cmd, msgb_l3len(msg)); + rate_ctr_inc2(bts->ctrs, BTS_CTR_AGCH_DELETED); msgb_free(msg); bts->agch_queue.dropped_msgs++; diff --git a/src/common/rsl.c b/src/common/rsl.c index b5d0c2b..5d30ca7 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -427,7 +427,7 @@ } /* 8.5.4 DELETE INDICATION */ -static int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len) +int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len) { struct msgb *msg; -- To view, visit https://gerrit.osmocom.org/9515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a Gerrit-Change-Number: 9515 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 15:04:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 15:04:31 +0000 Subject: Change in osmo-bts[master]: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9513 to look at the new patch set (#2). Change subject: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 ...................................................................... bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 In a prod setup, complete channel saturation at the bsc was detected, and Immediate Assignments were not being answered by the MS once sent by the BTS. Further investigation showed that the BTS was all the time printing messages like this: "bts.c:540 AGCH: too many messages in queue, refusing message type 0x3f, length = 1001/10" So it seems the AGCH queue was becoming incredibly full (1000, hard limit triggered the log), while acgch_queue.max_length was set to 10. As a result, most probably the Immediate Assignments being sent to the MS are super old in time, and the MS doesn't known about them anymore once they are receivied, so no answer is sent back. Let's try to avoid that by decreasing the hard limit so we never reach that big queue_len scenario. The number 100 is selected from data gatherered in agch_test.c which prints a table of max_length values based on different setups. Some values can reach around 80 messages, so let's use a slightly bigger hard limit. Related: SYS#2695 Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd --- M src/common/bts.c M tests/agch/agch_test.ok 2 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/13/9513/2 -- To view, visit https://gerrit.osmocom.org/9513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd Gerrit-Change-Number: 9513 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 15:04:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Jun 2018 15:04:31 +0000 Subject: Change in osmo-bts[master]: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9514 to look at the new patch set (#2). Change subject: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ ...................................................................... compact AGCH queue: Drop too msg diff than IMM_ASS_REJ We saw in a recent prod setup a BSC with saturated channels. Further investigation lead to a AGCH queue of 1000 (previous hard_limit) messages, most of them being regular IMM ASSIGN (non REJ). Hence, we also want to get rid of other messages in the AGCH queue (like regular IMM ASSIGN). Furthermore, In this scenario, sending IMM ASS REJ is as important as other messages given than nowadays we support dynamic wait indicatior (calculated based on chan load), which means if we reach the MS, we can tell it to wait for a long time to reach us again, which is desirable. Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb --- M src/common/bts.c M tests/agch/agch_test.ok 2 files changed, 1 insertion(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/14/9514/2 -- To view, visit https://gerrit.osmocom.org/9514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb Gerrit-Change-Number: 9514 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:43 +0000 Subject: Change in osmo-bsc[master]: assignment: signal assignment failure on chan act nack In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9281 ) Change subject: assignment: signal assignment failure on chan act nack ...................................................................... assignment: signal assignment failure on chan act nack When the BTS responds with a Chan Act NACK, i.e. the lchan could not be activated, immediately signal Assignment Failure to the MSC (in handle_chan_nack()). In handle_chan_nack(), adjust log: instead of waiting for timeout, we now signal Assignment Failure. Drop misleading logging from bsc_assign_fail(): instead of transmitting the Assignment Failure message, it actually signals an FSM event. Leave logging of that to the FSM logging. Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 --- M src/osmo-bsc/bsc_api.c M src/osmo-bsc/osmo_bsc_api.c 2 files changed, 5 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 02a59cc..7aa0e36 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -740,9 +740,10 @@ if (conn->secondary_lchan != lchan) return; - LOGPLCHAN(lchan, DMSC, LOGL_ERROR, "Channel activation failed. Waiting for timeout now\n"); + LOGPLCHAN(lchan, DMSC, LOGL_ERROR, "Channel activation failed.\n"); conn->secondary_lchan->conn = NULL; conn->secondary_lchan = NULL; + bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, NULL); } static __attribute__((constructor)) void on_dso_load_bsc(void) diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c index 51fbdd3..f3c36c3 100644 --- a/src/osmo-bsc/osmo_bsc_api.c +++ b/src/osmo-bsc/osmo_bsc_api.c @@ -425,8 +425,9 @@ /*! BSC->MSC: Assignment of lchan failed. */ void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause) { - LOGP(DMSC, LOGL_INFO, "Tx MSC ASSIGN FAIL\n"); - osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_RR_ASS_FAIL, NULL); + LOGPFSML(conn->fi, LOGL_ERROR, "Assignment failure: BSSMAP: '%s' from RR: '%s'\n", + gsm0808_cause_name(cause), rr_cause ? rr_cause_name(*rr_cause) : "(none)"); + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_RR_ASS_FAIL, &cause); } /*! BSC->MSC: RR conn has been cleared. */ -- To view, visit https://gerrit.osmocom.org/9281 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib204b4a5272f9b7b60ca5f932cd8a4c857316270 Gerrit-Change-Number: 9281 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:44 +0000 Subject: Change in osmo-bsc[master]: log: fix logging in rsl_rx_chan_act_nack() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9282 ) Change subject: log: fix logging in rsl_rx_chan_act_nack() ...................................................................... log: fix logging in rsl_rx_chan_act_nack() In each code path within rsl_rx_chan_act_nack(), do separate logging of the NACK to ensure proper termination of each log line. When receiving a Chan Act NACK, we possibly mixed a LOGP() within an unterminated other LOGP() that had not been ended with a LOGPC() yet. Change-Id: Icd2772b21ef3a2ff5af11b7c92dff0ecb4d87ff0 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 9 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index 7bbde47..60b836d 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -1328,18 +1328,21 @@ return -1; } - LOGP(DRSL, LOGL_ERROR, "%s CHANNEL ACTIVATE NACK ", - gsm_lchan_name(msg->lchan)); - /* BTS has rejected channel activation ?!? */ - if (dh->ie_chan != RSL_IE_CHAN_NR) + if (dh->ie_chan != RSL_IE_CHAN_NR) { + LOGP(DRSL, LOGL_ERROR, "%s CHANNEL ACTIVATE NACK, and chan nr mismatches\n", + gsm_lchan_name(msg->lchan)); return -EINVAL; + } rsl_tlv_parse(&tp, dh->data, msgb_l2len(msg)-sizeof(*dh)); if (TLVP_PRESENT(&tp, RSL_IE_CAUSE)) { const uint8_t *cause = TLVP_VAL(&tp, RSL_IE_CAUSE); + LOGP(DRSL, LOGL_ERROR, "%s CHANNEL ACTIVATE NACK: ", + gsm_lchan_name(msg->lchan)); print_rsl_cause(LOGL_ERROR, cause, TLVP_LEN(&tp, RSL_IE_CAUSE)); + LOGPC(DRSL, LOGL_ERROR, "\n"); msg->lchan->error_cause = *cause; if (*cause != RSL_ERR_RCH_ALR_ACTV_ALLOC) { rsl_lchan_mark_broken(msg->lchan, "NACK on activation"); @@ -1347,11 +1350,11 @@ rsl_rf_chan_release(msg->lchan, 1, SACCH_DEACTIVATE); } else { + LOGP(DRSL, LOGL_ERROR, "%s CHANNEL ACTIVATE NACK, no cause IE\n", + gsm_lchan_name(msg->lchan)); rsl_lchan_mark_broken(msg->lchan, "NACK on activation no IE"); } - LOGPC(DRSL, LOGL_ERROR, "\n"); - send_lchan_signal(S_LCHAN_ACTIVATE_NACK, msg->lchan, NULL); return 0; } -- To view, visit https://gerrit.osmocom.org/9282 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icd2772b21ef3a2ff5af11b7c92dff0ecb4d87ff0 Gerrit-Change-Number: 9282 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:44 +0000 Subject: Change in osmo-bsc[master]: log: assignment: add two logs on unexpected lchan release In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9283 ) Change subject: log: assignment: add two logs on unexpected lchan release ...................................................................... log: assignment: add two logs on unexpected lchan release Change-Id: Ib61125ebc41e55dc4a6595db8c8559c62b3ed2c0 --- M src/osmo-bsc/bsc_api.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 7aa0e36..218f1a1 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -693,6 +693,7 @@ switch (signal) { case S_LCHAN_UNEXPECTED_RELEASE: + LOGPLCHAN(lchan, DMSC, LOGL_NOTICE, "S_LCHAN_UNEXPECTED_RELEASE\n"); handle_release(lchan->conn, lchan); break; case S_LCHAN_ACTIVATE_ACK: @@ -709,6 +710,8 @@ static void handle_release(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan) { if (conn->secondary_lchan == lchan) { + LOGPLCHAN(lchan, DMSC, LOGL_NOTICE, + "lchan release on new lchan, Assignment failed\n"); osmo_timer_del(&conn->T10); conn->secondary_lchan = NULL; -- To view, visit https://gerrit.osmocom.org/9283 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib61125ebc41e55dc4a6595db8c8559c62b3ed2c0 Gerrit-Change-Number: 9283 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:44 +0000 Subject: Change in osmo-bsc[master]: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9284 ) Change subject: use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() ...................................................................... use libosmocore's gsm0808_permitted_speech(), gsm0808_chosen_channel() The guts of bssap_speech_from_lchan() and lchan_to_chosen_channel() have been moved to libosmocore; call those instead. The return value of bssap_speech_from_lchan() used to be -1 on error, now the error value is 0. The only caller did not handle -1 properly, but fed it directly to a uint8_t. On gsm0808_chosen_channel() error, log the error. Proper handling is missing. Fixing the error handling in send_ass_compl() is a separate issue: currently it is limited to logging, there is no way to return an error yet, nor any actions to take on error. Depends: Icca23940791f97fa64dbc3f2734270b99f9550c1 (libosmocore) Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 7 insertions(+), 84 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 1172a78..b46eb94 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -143,88 +143,6 @@ LOGPFSML(fi, LOGL_ERROR, "Unable to deliver SCCP message!\n"); } - -/* See TS 48.008 3.2.2.11 Channel Type Octet 5 */ -static int bssap_speech_from_lchan(const struct gsm_lchan *lchan) -{ - switch (lchan->type) { - case GSM_LCHAN_TCH_H: - switch (lchan->tch_mode) { - case GSM48_CMODE_SPEECH_V1: - return 0x05; - case GSM48_CMODE_SPEECH_AMR: - return 0x25; - default: - return -1; - } - break; - case GSM_LCHAN_TCH_F: - switch (lchan->tch_mode) { - case GSM48_CMODE_SPEECH_V1: - return 0x01; - case GSM48_CMODE_SPEECH_EFR: - return 0x11; - case GSM48_CMODE_SPEECH_AMR: - return 0x21; - default: - return -1; - } - break; - default: - return -1; - } -} - -/* GSM 08.08 3.2.2.33 */ -static uint8_t lchan_to_chosen_channel(struct gsm_lchan *lchan) -{ - uint8_t channel_mode = 0, channel = 0; - - switch (lchan->tch_mode) { - case GSM48_CMODE_SPEECH_V1: - case GSM48_CMODE_SPEECH_EFR: - case GSM48_CMODE_SPEECH_AMR: - channel_mode = 0x9; - break; - case GSM48_CMODE_SIGN: - channel_mode = 0x8; - break; - case GSM48_CMODE_DATA_14k5: - channel_mode = 0xe; - break; - case GSM48_CMODE_DATA_12k0: - channel_mode = 0xb; - break; - case GSM48_CMODE_DATA_6k0: - channel_mode = 0xc; - break; - case GSM48_CMODE_DATA_3k6: - channel_mode = 0xd; - break; - } - - switch (lchan->type) { - case GSM_LCHAN_NONE: - channel = 0x0; - break; - case GSM_LCHAN_SDCCH: - channel = 0x1; - break; - case GSM_LCHAN_TCH_F: - channel = 0x8; - break; - case GSM_LCHAN_TCH_H: - channel = 0x9; - break; - case GSM_LCHAN_UNKNOWN: - default: - LOGP(DMSC, LOGL_ERROR, "Unknown lchan type: %p\n", lchan); - break; - } - - return channel_mode << 4 | channel; -} - /* Add the LCLS BSS Status IE to a BSSMAP message. We assume this is * called on a msgb that was returned by gsm0808_create_ass_compl() */ static void bssmap_add_lcls_status(struct msgb *msg, enum gsm0808_lcls_status status) @@ -265,6 +183,7 @@ struct gsm_subscriber_connection *conn; struct sockaddr_storage *addr_local = NULL; int perm_spch = 0; + uint8_t chosen_channel; conn = lchan->conn; OSMO_ASSERT(conn); @@ -276,7 +195,7 @@ /* Generate voice related fields */ if (voice) { - perm_spch = bssap_speech_from_lchan(lchan); + perm_spch = gsm0808_permitted_speech(lchan->type, lchan->tch_mode); switch (conn->sccp.msc->a.asp_proto) { case OSMO_SS7_ASP_PROT_IPA: /* don't add any AoIP specific fields. CIC allocated by MSC */ @@ -293,9 +212,13 @@ /* FIXME: AMR codec configuration must be derived from lchan1! */ } + chosen_channel = gsm0808_chosen_channel(lchan->tch_mode, lchan->type); + if (!chosen_channel) + LOGP(DMSC, LOGL_ERROR, "Unknown lchan type or TCH mode: %s\n", gsm_lchan_name(lchan)); + /* Generate message */ resp = gsm0808_create_ass_compl(lchan->abis_ip.ass_compl.rr_cause, - lchan_to_chosen_channel(lchan), + chosen_channel, lchan->encr.alg_id, perm_spch, addr_local, sc_ptr, NULL); -- To view, visit https://gerrit.osmocom.org/9284 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib5c940a9dae11c5e26d4b47fa9d95fef889ad2f6 Gerrit-Change-Number: 9284 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:45 +0000 Subject: Change in osmo-bsc[master]: cosmetic: penalty timers: constify, tweak doc In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9285 ) Change subject: cosmetic: penalty timers: constify, tweak doc ...................................................................... cosmetic: penalty timers: constify, tweak doc Change-Id: I28addc9a16a4c81978290303d368f630a8334228 --- M include/osmocom/bsc/penalty_timers.h M src/osmo-bsc/penalty_timers.c 2 files changed, 15 insertions(+), 10 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/penalty_timers.h b/include/osmocom/bsc/penalty_timers.h index 4b1dcce..3aae8a0 100644 --- a/include/osmocom/bsc/penalty_timers.h +++ b/include/osmocom/bsc/penalty_timers.h @@ -10,24 +10,29 @@ * returns an empty struct penalty_timers. */ struct penalty_timers *penalty_timers_init(void *ctx); -/* Add a penalty timer for a BTS. +/* Add a penalty timer for an arbitary object. + * Note: the ownership of for_object remains with the caller; it is handled as a mere void* value, so + * invalid pointers can be handled without problems, while common sense dictates that invalidated + * pointers (freed objects) should probably be removed from this list. More importantly, the pointer must + * match any pointers used to query penalty timers, so for_object should reference some global/singleton + * object that tends to stay around longer than the penalty timers. * param pt: penalty timers list as from penalty_timers_init(). * param for_object: arbitrary pointer reference to store a penalty timer for (passing NULL is possible, * but note that penalty_timers_clear() will clear all timers if given for_object=NULL). * param timeout: penalty time in seconds. */ -void penalty_timers_add(struct penalty_timers *pt, void *for_object, int timeout); +void penalty_timers_add(struct penalty_timers *pt, const void *for_object, int timeout); -/* Return the amount of penalty time remaining for a BTS. +/* Return the amount of penalty time remaining for an object. * param pt: penalty timers list as from penalty_timers_init(). * param for_object: arbitrary pointer reference to query penalty timers for. * returns seconds remaining until all penalty time has expired. */ -unsigned int penalty_timers_remaining(struct penalty_timers *pt, void *for_object); +unsigned int penalty_timers_remaining(struct penalty_timers *pt, const void *for_object); -/* Clear penalty timers for one or all BTS. +/* Clear penalty timers for one or all objects. * param pt: penalty timers list as from penalty_timers_init(). * param for_object: arbitrary pointer reference to clear penalty time for, * or NULL to clear all timers. */ -void penalty_timers_clear(struct penalty_timers *pt, void *for_object); +void penalty_timers_clear(struct penalty_timers *pt, const void *for_object); /* Free a struct as returned from penalty_timers_init(). * Clear all timers from the list, deallocate the list and set the pointer to NULL. diff --git a/src/osmo-bsc/penalty_timers.c b/src/osmo-bsc/penalty_timers.c index b80fec9..02cf246 100644 --- a/src/osmo-bsc/penalty_timers.c +++ b/src/osmo-bsc/penalty_timers.c @@ -34,7 +34,7 @@ struct penalty_timer { struct llist_head entry; - void *for_object; + const void *for_object; unsigned int timeout; }; @@ -55,7 +55,7 @@ return pt; } -void penalty_timers_add(struct penalty_timers *pt, void *for_object, int timeout) +void penalty_timers_add(struct penalty_timers *pt, const void *for_object, int timeout) { struct penalty_timer *timer; unsigned int now; @@ -89,7 +89,7 @@ llist_add_tail(&timer->entry, &pt->timers); } -unsigned int penalty_timers_remaining(struct penalty_timers *pt, void *for_object) +unsigned int penalty_timers_remaining(struct penalty_timers *pt, const void *for_object) { struct penalty_timer *timer; unsigned int now = time_now(); @@ -107,7 +107,7 @@ return max_remaining; } -void penalty_timers_clear(struct penalty_timers *pt, void *for_object) +void penalty_timers_clear(struct penalty_timers *pt, const void *for_object) { struct penalty_timer *timer, *timer2; llist_for_each_entry_safe(timer, timer2, &pt->timers, entry) { -- To view, visit https://gerrit.osmocom.org/9285 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I28addc9a16a4c81978290303d368f630a8334228 Gerrit-Change-Number: 9285 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:45 +0000 Subject: Change in osmo-bsc[master]: cosmetic: bsc_subscr_alloc: log initial get In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9286 ) Change subject: cosmetic: bsc_subscr_alloc: log initial get ...................................................................... cosmetic: bsc_subscr_alloc: log initial get Instead of silently setting the use count to 1, instead increment with an explicit bsc_subsct_get(), which then logs the event along with the place that created the subscriber. Change-Id: Ia72f8010b7b2e1ca44e3b005c0f2c05f3eeae8d5 --- M src/osmo-bsc/bsc_subscriber.c M tests/subscr/bsc_subscr_test.err 2 files changed, 5 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_subscriber.c b/src/osmo-bsc/bsc_subscriber.c index d9d90ba..65a660b 100644 --- a/src/osmo-bsc/bsc_subscriber.c +++ b/src/osmo-bsc/bsc_subscriber.c @@ -41,7 +41,6 @@ return NULL; llist_add_tail(&bsub->entry, list); - bsub->use_count = 1; return bsub; } @@ -92,7 +91,7 @@ return bsub; bsub = bsc_subscr_alloc(list); bsc_subscr_set_imsi(bsub, imsi); - return bsub; + return bsc_subscr_get(bsub); } struct bsc_subscr *bsc_subscr_find_or_create_by_tmsi(struct llist_head *list, @@ -104,7 +103,7 @@ return bsub; bsub = bsc_subscr_alloc(list); bsub->tmsi = tmsi; - return bsub; + return bsc_subscr_get(bsub); } const char *bsc_subscr_name(struct bsc_subscr *bsub) diff --git a/tests/subscr/bsc_subscr_test.err b/tests/subscr/bsc_subscr_test.err index a66317a..afc8bf7 100644 --- a/tests/subscr/bsc_subscr_test.err +++ b/tests/subscr/bsc_subscr_test.err @@ -1,5 +1,8 @@ +DREF BSC subscr IMSI:1234567890 usage increases to: 1 DREF BSC subscr IMSI:1234567890 usage increases to: 2 DREF BSC subscr IMSI:1234567890 usage decreases to: 1 +DREF BSC subscr IMSI:9876543210 usage increases to: 1 +DREF BSC subscr IMSI:5656565656 usage increases to: 1 DREF BSC subscr IMSI:1234567890 usage increases to: 2 DREF BSC subscr IMSI:1234567890 usage decreases to: 1 DREF BSC subscr IMSI:9876543210 usage increases to: 2 -- To view, visit https://gerrit.osmocom.org/9286 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia72f8010b7b2e1ca44e3b005c0f2c05f3eeae8d5 Gerrit-Change-Number: 9286 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:45 +0000 Subject: Change in osmo-bsc[master]: gscon: put subscriber a little later In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9287 ) Change subject: gscon: put subscriber a little later ...................................................................... gscon: put subscriber a little later Keep the bsc_subscr associated with the conn as long as possible, to benefit logging, which then contains the subscriber identity (if any). Change-Id: Ifa528b58842a02509bfe0af6915c64bd67058bcd --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index b46eb94..2ae4b33 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -995,12 +995,6 @@ conn->lchan = NULL; } - if (conn->bsub) { - LOGPFSML(fi, LOGL_DEBUG, "Putting bsc_subscr\n"); - bsc_subscr_put(conn->bsub); - conn->bsub = NULL; - } - if (conn->sccp.state != SUBSCR_SCCP_ST_NONE) { LOGPFSML(fi, LOGL_DEBUG, "Disconnecting SCCP\n"); struct bsc_msc_data *msc = conn->sccp.msc; @@ -1014,6 +1008,12 @@ penalty_timers_free(&conn->hodec2.penalty_timers); + if (conn->bsub) { + LOGPFSML(fi, LOGL_DEBUG, "Putting bsc_subscr\n"); + bsc_subscr_put(conn->bsub); + conn->bsub = NULL; + } + llist_del(&conn->entry); talloc_free(conn); fi->priv = NULL; -- To view, visit https://gerrit.osmocom.org/9287 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifa528b58842a02509bfe0af6915c64bd67058bcd Gerrit-Change-Number: 9287 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:45 +0000 Subject: Change in osmo-bsc[master]: try to pick up subsrc IMSI on l3-compl In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9288 ) Change subject: try to pick up subsrc IMSI on l3-compl ...................................................................... try to pick up subsrc IMSI on l3-compl This is a tiny step towards being aware of a connection's subscriber identity. Iff the Layer 3 Complete message contains an IMSI, associate a bsc_subscr with the conn, so that subsequent logging and possibly meas_feed contains the IMSI. For any L3 Complete using TMSI, this has no effect whatsoever. Related: OS#2969 Change-Id: I3b696a0c0932e3abcb682ba231db65755d8c27a6 --- M src/osmo-bsc/osmo_bsc_api.c 1 file changed, 16 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c index f3c36c3..a86b4f9 100644 --- a/src/osmo-bsc/osmo_bsc_api.c +++ b/src/osmo-bsc/osmo_bsc_api.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -258,8 +259,22 @@ return BSC_API_CONN_POL_REJECT; } - if (imsi) + /* TODO: also extract TMSI. We get an IMSI only when an initial L3 Complete comes in that + * contains an IMSI. We filter by IMSI. A TMSI identity is never returned here, see e.g. + * _cr_check_loc_upd() and other similar functions called from bsc_msg_filter_initial(). */ + if (imsi) { conn->filter_state.imsi = talloc_steal(conn, imsi); + if (conn->bsub) { + /* Already a subscriber on L3 Complete? Should never happen... */ + if (conn->bsub->imsi[0] + && strcmp(conn->bsub->imsi, imsi)) + LOGP(DMSC, LOGL_ERROR, "Subscriber's IMSI changes from %s to %s\n", + conn->bsub->imsi, imsi); + bsc_subscr_set_imsi(conn->bsub, imsi); + } else + conn->bsub = bsc_subscr_find_or_create_by_imsi(msc->network->bsc_subscribers, + imsi); + } conn->filter_state.con_type = con_type; /* check return value, if failed check msg for and send USSD */ -- To view, visit https://gerrit.osmocom.org/9288 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3b696a0c0932e3abcb682ba231db65755d8c27a6 Gerrit-Change-Number: 9288 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:46 +0000 Subject: Change in osmo-bsc[master]: store subscriber identity on paging In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9289 ) Change subject: store subscriber identity on paging ...................................................................... store subscriber identity on paging Another small step towards being aware of the subscriber identity. Any connection initiated by paging will subsequently log the subscriber's identity -- of course not necessarily the IMSI, if paging was done by TMSI. This is only for Paging, not the Paging Response; for that see, L3 Complete. Related: OS#2969 Change-Id: I0ab7bedfe693bb4e42a04fb0585b94a730ff2d9b --- M src/osmo-bsc/paging.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index d6bff2a..886d28b 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -391,6 +391,7 @@ struct gsm_bts *bts; log_set_context(LOG_CTX_BSC_SUBSCR, bsub); + conn->bsub = bsc_subscr_get(bsub); /* Stop this first and dispatch the request */ if (_bts) { -- To view, visit https://gerrit.osmocom.org/9289 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0ab7bedfe693bb4e42a04fb0585b94a730ff2d9b Gerrit-Change-Number: 9289 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:47 +0000 Subject: Change in osmo-bsc[master]: cosmetic: handover_test: add IMSI to subscr for logging In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9290 ) Change subject: cosmetic: handover_test: add IMSI to subscr for logging ...................................................................... cosmetic: handover_test: add IMSI to subscr for logging Change-Id: I52fa8f3183c93ed362d8252d20daf00c60a117c8 --- M tests/handover/handover_test.c 1 file changed, 11 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 87e64ec..769fd06 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -239,8 +239,12 @@ void create_conn(struct gsm_lchan *lchan) { + static unsigned int next_imsi = 0; + char imsi[sizeof(lchan->conn->bsub->imsi)]; + struct gsm_network *net = lchan->ts->trx->bts->network; struct gsm_subscriber_connection *conn; - conn = bsc_subscr_con_allocate(lchan->ts->trx->bts->network); + + conn = bsc_subscr_con_allocate(net); /* CAUTION HACK: When __real_mgcp_conn_modify() is called by the GSCON * FSM, then we need to know the reference to caller FSM (GSCON FSM). @@ -254,6 +258,12 @@ lchan->conn = conn; conn->lchan = lchan; + + /* Make up a new IMSI for this test, for logging the subscriber */ + next_imsi ++; + snprintf(imsi, sizeof(imsi), "%06u", next_imsi); + lchan->conn->bsub = bsc_subscr_find_or_create_by_imsi(net->bsc_subscribers, imsi); + /* kick the FSM from INIT through to the ACTIVE state */ osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CONN_REQ, NULL); osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CONN_CFM, NULL); -- To view, visit https://gerrit.osmocom.org/9290 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I52fa8f3183c93ed362d8252d20daf00c60a117c8 Gerrit-Change-Number: 9290 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:47 +0000 Subject: Change in osmo-bsc[master]: doc: tweak msc charts on Assignment/Handover: act_timer In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9486 ) Change subject: doc: tweak msc charts on Assignment/Handover: act_timer ...................................................................... doc: tweak msc charts on Assignment/Handover: act_timer Change-Id: I6205e43c227652432548c5c99bed5a197c095da2 --- M doc/assignment.msc M doc/handover.msc 2 files changed, 17 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/assignment.msc b/doc/assignment.msc index e2bdf84..d470d01 100644 --- a/doc/assignment.msc +++ b/doc/assignment.msc @@ -54,14 +54,17 @@ bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; ...; bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over Chan Release nor dyn TS switchover!"]; + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; ...; bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; bts <= bsc [label="RSL Chan Activ"]; --- [label="else (no dyn TS switchover)"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; bts <= bsc [label="RSL Chan Activ"]; bsc -> bsc_gscon [label="gsm0808_assign_req() returns"]; bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; @@ -79,6 +82,10 @@ ...; bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; + bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; bsc box bsc [label="bsc_api.c handle_chan_ack()"]; ms <= bsc [label="RR Assignment Command"]; @@ -135,6 +142,8 @@ --- [label="End: 'On timeout'"]; ...; bts => bsc [label="RSL RF Channel Release Ack"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop lchan->T3111"]; --- [label="End: 'Release old lchan'"]; bsc box bsc [label="still in handle_ass_compl()"]; bsc note bsc [label="officially take over new lchan: conn->lchan = conn->secondary_lchan"]; diff --git a/doc/handover.msc b/doc/handover.msc index e5e787c..8862dd9 100644 --- a/doc/handover.msc +++ b/doc/handover.msc @@ -20,7 +20,8 @@ bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; ...; bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over Chan Release nor dyn TS switchover!"]; + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; ...; bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; @@ -38,6 +39,9 @@ label="There seems to be no timer watching out for RSL Chan Activ ACK/NACK!"]; ...; bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; bsc box bsc [label="ho_chan_activ_ack()"]; @@ -132,6 +136,8 @@ --- [label="End: 'On timeout'"]; ...; bts => bsc [label="RSL RF Channel Release Ack"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop lchan->T3111"]; ---; bsc box bsc [label="still in ho_gsm48_ho_compl()"]; -- To view, visit https://gerrit.osmocom.org/9486 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6205e43c227652432548c5c99bed5a197c095da2 Gerrit-Change-Number: 9486 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:47 +0000 Subject: Change in osmo-bsc[master]: doc: add lchan-release.msc In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9487 ) Change subject: doc: add lchan-release.msc ...................................................................... doc: add lchan-release.msc Change-Id: Ibcf2326cbc5a5f3f249ae15564825c83b5a063c8 --- M doc/Makefile.am A doc/lchan-release.msc 2 files changed, 150 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/Makefile.am b/doc/Makefile.am index cc2e277..3c8c2e0 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -5,6 +5,7 @@ msc: \ $(builddir)/handover.png \ $(builddir)/assignment.png \ + $(builddir)/lchan-release.png \ $(NULL) $(builddir)/%.png: $(srcdir)/%.msc diff --git a/doc/lchan-release.msc b/doc/lchan-release.msc new file mode 100644 index 0000000..f75b559 --- /dev/null +++ b/doc/lchan-release.msc @@ -0,0 +1,149 @@ +msc { + hscale=2; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + + ms note bsc_gscon [label="various lchan release scenarios"]; + + + ms rbox bsc_gscon [label="IF BSC releases, from BSSMAP Clear Request"]; + bsc note bsc [label="lchan_release() may be called with sacch_deact=true or false. + Currently, the only time lchan_release(sacch_deact=true) is invoked is upon BSSMAP Clear + Command, i.e. when the MSC instructs to stop using an active lchan. + Some error handling code paths however directly invoke + rsl_rf_chan_release(error=1, SACCH_DEACTIVATE)."]; + + ---; + bsc_gscon note bsc_gscon [label="Rx: BSSMAP Clear Request from MSC"]; + bsc <- bsc_gscon [label="gsm0808_clear()"]; + bsc box bsc [label="lchan_release(sacch_deact=1)"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=1)"]; + bsc box bsc [label="rsl_release_sapis_from(start=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI, except link_id=0"]; + ms <= bsc [label="RR Channel Release"]; + ms note bsc [label="There is no ACK for RR Channel Release"]; + bsc box bsc [label="rsl_deact_sacch()"]; + bts <= bsc [label="RSL Deactivate SACCH"]; + bsc abox bsc [label="Start T3109 (net->T3109, t3109_expired())"]; + ...; + --- [label="If T3109 expires"]; + bsc box bsc [label="t3109_expired()"]; + bsc box bsc [label="rsl_rf_chan_release(error=1)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for each SAPI, except link_id=0"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bts <= bsc [label="RSL RF Channel Release"]; + ---; + ...; + bsc rbox bsc [label="continue in the 'Common' part"]; + --- [label="END: 'BSSMAP Clear Request'"]; + ...; + ...; + + ms rbox bsc_gscon [label="IF BSC releases, from implicitly unused lchan"]; + bsc note bsc [label="The BSC may release old unused lchans after Handover, or release lchans + after some error condition."]; + bsc note bsc [label="BSC decides to release an unused lchan"]; + bsc box bsc [label="lchan_release(sacch_deact=0)"]; + bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; + bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; + bts <= bsc [label="RSL Release Request (Local End)..."]; + bts <= bsc [label="...for all SAPIs"]; + ...; + bts note bsc_gscon [linecolor="red", + label="There seems to be no timer watching over RSL Release Request!"]; + ...; + bts => bsc [label="RSL Release Confirm..."]; + bts => bsc [label="...for all SAPIs"]; + bsc rbox bsc [label="continue in the 'Common' part"]; + ---; + ...; + ...; + + ms rbox bsc_gscon [label="IF MS releases"]; + ms => bts [label="DISC"]; + bts => bsc [label="RLL Release Ind..."]; + bts => bsc [label="...for each SAPI"]; + bsc rbox bsc [label="continue in the 'Common' part"]; + ---; + ...; + ...; + ms rbox bsc_gscon [label="Common"]; + --- [label="for each SAPI (?)"]; + bts => bsc [label="RLL Release Confirm / RLL Release Ind"]; + bsc box bsc [label="abis_rsl_rx_rll()"]; + bsc box bsc [label="mark lchan->sapis[link_id] = LCHAN_SAPI_UNUSED"]; + bsc box bsc [label="rll_indication()"]; + bsc box bsc [label="for each bsc_rll_req matching this link_id: + disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; + bsc box bsc [label="rsl_handle_release()"]; + --- [label="IF all SAPIs are unused"]; + bsc box bsc [label="Stop T3109"]; + bsc note bsc [label="T3109 was started if the MSC requested the release"]; + bsc abox bsc [label="Start T3111 (net->T3111 value, t3111_expired())"]; + --- [label="END: all SAPIs are unused"]; + bsc -> bsc_gscon [label="GSCON_EV_RLL_REL_IND (only if RLL Release Ind)"]; + --- [label="END: for each SAPI"]; + + ...; + bsc box bsc [label="T3111 expires"]; + bsc box bsc [label="rsl_rf_chan_release()"]; + bsc box bsc [label="Stop T3109"]; + bsc note bsc [label="[If lchan->state is LCHAN_S_REL_ERR, don't do anything]"]; + bsc abox bsc [label="Start lchan->act_timer (4s, lchan_deact_tmr_cb())"]; + bts <= bsc [label="RSL RF Channel Release"]; + + ...; + --- [label="IF lchan->act_timer expires"]; + bsc box bsc [label="lchan_deact_tmr_cb()"]; + bsc box bsc [label="rsl_lchan_mark_broken(): lchan->state = LCHAN_S_BROKEN"]; + bsc box bsc [label="lchan_free() (see below)"]; + --- [label="END: 'lchan->act_timer expires'"]; + ...; + + bts => bsc [label="RSL RF Channel Release ACK"]; + bsc box bsc [label="rsl_rx_rf_chan_rel_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="Stop T3111"]; + + --- [label="IF lchan->state == LCHAN_S_BROKEN"]; + bsc note bsc [label="If an ACK comes in late, for specific BTS models, we may choose to 'repair' + the lchan so that it is usable again, by calling do_lchan_free() directly (see below)."]; + bsc box bsc [label="rsl_rx_rf_chan_rel_ack() exits here and none of below actions happen. + The lchan remains LCHAN_S_BROKEN indefinitely."]; + --- [label="END: lchan->state == LCHAN_S_BROKEN"]; + bsc box bsc [label="do_lchan_free()"]; + --- [label="IF lchan->state == LCHAN_S_REL_ERR"]; + bsc note bsc [label="If release failed, we take the lchan back into operation after due + timeout"]; + bsc abox bsc [label="Start lchan->error_timer (T3111+2, error_timeout_cb())"]; + bsc note bsc [label="do_lchan_free() continues, async:"]; + ...; + bsc box bsc [label="error_timeout_cb()"]; + bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; + bsc box bsc [label="dyn TS: activate PDCH..."]; + --- [label="ELSE"]; + bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; + --- [label="END: lchan->state == LCHAN_S_REL_ERR"]; + bsc box bsc [label="lchan_free()"]; + --- [label="IF conn is still associated (and not dyn TS in switchover)"]; + bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; + bsc box bsc [label="handle_release()"]; + bsc box bsc [label="Stop T10"]; + bsc note bsc [linecolor=orange,label="conn->T10 is actually dead code, it is never started. + Instead, the conn FSM starts ST_WAIT_ASS_COMPL with a T10 value."]; + bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; + bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP: BSSMAP Clear Request"]; + bsc box bsc [label="bsc_clear_handover()"]; + bsc box bsc [label="Stop T3103"]; + bsc box bsc [label="free handover struct"]; + bsc box bsc [label="lchan->conn = NULL"]; + --- [label="END: 'conn is still associated'"]; + bsc box bsc [label="Stop T3101"]; + bsc note bsc [label="T3101 is started when sending an RR Immediate Assignment"]; + bsc -> bsc [label="S_CHALLOC_FREED"]; + bsc -> bsc [label="rll_lchan_signal()"]; + bsc box bsc [label="for each bsc_rll_req matching this lchan: + disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; +} -- To view, visit https://gerrit.osmocom.org/9487 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibcf2326cbc5a5f3f249ae15564825c83b5a063c8 Gerrit-Change-Number: 9487 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:48 +0000 Subject: Change in osmo-bsc[master]: doc: add ms-channel-request.msc In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9488 ) Change subject: doc: add ms-channel-request.msc ...................................................................... doc: add ms-channel-request.msc Change-Id: Iab22b8ae85a1a54d2f4002733e6068356368101b --- M doc/Makefile.am A doc/ms-channel-request.msc 2 files changed, 64 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/Makefile.am b/doc/Makefile.am index 3c8c2e0..5fe5674 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -6,6 +6,7 @@ $(builddir)/handover.png \ $(builddir)/assignment.png \ $(builddir)/lchan-release.png \ + $(builddir)/ms-channel-request.png \ $(NULL) $(builddir)/%.png: $(srcdir)/%.msc diff --git a/doc/ms-channel-request.msc b/doc/ms-channel-request.msc new file mode 100644 index 0000000..c0ef60f --- /dev/null +++ b/doc/ms-channel-request.msc @@ -0,0 +1,63 @@ +msc { + hscale=3; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + + ms note bsc_gscon [label="lchan allocation sequence for RSL Channel Request"]; + + ms => bts [label="RR Channel Request"]; + bts => bsc [label="RSL Channel Request"]; + bsc box bsc [label="rsl_rx_chan_rqd()"]; + bsc note bsc [label="Obtain RACH data from Request: - Reference - Access Delay (TA) + - Request Reason - Channel Type"]; + bsc note bsc [label="If the reason is PDCH, the RACH Request is forwarded to PCU and BSC is no + longer concerned (rsl_rx_pchan_rqd())."]; + bsc note bsc [label="Always try to allocate an SDCCH regardless of the requested type, only if no + SDCCH is available, look for the actually requested channel type."]; + bsc box bsc [label="lchan_alloc(SDCCH, allow_bigger=0)"]; + + --- [label="IF no lchan is available (neither SDCCH nor requested type)"]; + bsc note bsc [label="Figure out T3122 value from bts->T3122, network->T3122 or + GSM_T3122_DEFAULT"]; + bsc box bsc [label="rsl_send_imm_ass_rej()"]; + bsc note bsc [label="..."]; + bts <= bsc [label="RR Immediate Assign Reject"]; + ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; + bsc note bsc [label="rsl_rx_pchan_rqd() exits, no channel is allocated."]; + ---; + + bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"]; + bsc abox bsc [label="Start lchan->act_timer (4s, lchan_act_tmr_cb())"]; + + bsc box bsc [label="rsl_chan_activate_lchan(RSL_ACT_INTRA_IMM_ASS)"]; + --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; + bsc box bsc [linecolor=red,label="Osmocom style dyn TS use the lchan->act_timer for an RSL RF + Channel Release, to release PDCH mode. This will actually overwrite above act_timer!"]; + bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; + bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; + bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + ...; + bts note bsc_gscon [linecolor="red", + label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there + seems to be no timer watching over PDCH Deact!"]; + ...; + bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; + bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; + bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + ---; + + bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; + bts <= bsc [label="RSL Chan Activ: Immediate Assignment"]; + ...; + bsc note bsc [label="Timeout of lchan->act_timer causes the + lchan->state to go to LCHAN_S_BROKEN, but no events or actions + are triggered."]; + ...; + bts => bsc [label="RSL Chan Activ ACK"]; + bsc box bsc [label="rsl_rx_chan_act_ack()"]; + bsc box bsc [label="Stop lchan->act_timer"]; + bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; + bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK (has no effect)"]; + bsc note bsc [label="Since this was an Immediate Assignment, no further action is required on + behalf of the BSC. The MS is now free to use the lchan."]; +} -- To view, visit https://gerrit.osmocom.org/9488 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iab22b8ae85a1a54d2f4002733e6068356368101b Gerrit-Change-Number: 9488 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:48 +0000 Subject: Change in osmo-bsc[master]: doc: charts: illustrate new plan for ts and lchans In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9489 ) Change subject: doc: charts: illustrate new plan for ts and lchans ...................................................................... doc: charts: illustrate new plan for ts and lchans Add lchan and timeslot FSM charts to illustrate planning of how osmo-bsc should handle lchan assignment and release. Modify assignment, handover, lchan-release charts according to the new plan. Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936 --- M doc/Makefile.am M doc/assignment.msc A doc/handover-inter-bsc-mo.msc A doc/handover-inter-bsc-mt.msc M doc/handover.msc A doc/lchan-fsm.dot M doc/lchan-release.msc A doc/lchan.msc M doc/ms-channel-request.msc A doc/timeslot-fsm.dot A doc/timeslot.msc A doc/ts-and-lchan-fsm-lifecycle.msc 12 files changed, 1,098 insertions(+), 466 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/Makefile.am b/doc/Makefile.am index 5fe5674..ca0470d 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -7,11 +7,24 @@ $(builddir)/assignment.png \ $(builddir)/lchan-release.png \ $(builddir)/ms-channel-request.png \ + $(builddir)/timeslot.png \ + $(builddir)/lchan.png \ + $(builddir)/ts-and-lchan-fsm-lifecycle.png \ + $(builddir)/handover-inter-bsc-mo.png \ + $(builddir)/handover-inter-bsc-mt.png \ + $(NULL) + +dot: \ + $(builddir)/timeslot-fsm.png \ + $(builddir)/lchan-fsm.png \ $(NULL) $(builddir)/%.png: $(srcdir)/%.msc mscgen -T png -o $@ $< +$(builddir)/%.png: $(srcdir)/%.dot + dot -Tpng $< > $@ + .PHONY: poll poll: - while true; do $(MAKE) msc; sleep 1; done + while true; do $(MAKE) msc dot; sleep 1; done diff --git a/doc/assignment.msc b/doc/assignment.msc index d470d01..9f10ea1 100644 --- a/doc/assignment.msc +++ b/doc/assignment.msc @@ -1,190 +1,126 @@ msc { hscale=3; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw[label="MGW"], msc_[label="MSC"]; + ms [label="MS/BTS"], bsc_lchan[label="BSC lchan FSM"], + bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw_msc[label="MGW/MSC"]; - ms note msc_ [label="lchan allocation sequence for BSSMAP Assignment Request"]; + ms note mgw_msc [label="lchan allocation sequence for BSSMAP Assignment Request"]; - bsc <= msc_ [label="BSSMAP Assignment Request"]; - bsc box bsc [label="bssmap_handle_assignm_req()"]; - bsc -> bsc_gscon [label="GSCON_EV_A_ASSIGNMENT_CMD"]; + bsc_gscon <= mgw_msc [label="BSSMAP Assignment Request"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_LCHAN"]; - --- [label="is the chan_mode a speech mode?"]; + bsc_lchan <- bsc_gscon [label="lchan_select_by_chan_mode(chan_mode)"]; + |||; + --- [label="IF returned lchan is NULL"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + ---; + |||; + bsc_gscon box bsc_gscon [label="store lchan pointer in conn->lchan_for_assignment"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(FOR_ASSIGNMENT)"]; + ...; + |||; + --- [label="on lchan FSM error or timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: 'on error'"]; + ...; + ...; - bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_BTS (MGCP_MGW_TIMEOUT = 4s)"]; + --- [label="IF lchan FSM decides that it is an lchan for speech"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + --- [label="IF there is an MGW endpoint for the BTS already (conn->user_plane.fi_bts)"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="ELSE: no MGW endpoint for the BTS side yet"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_CRCX_BTS"]; + bsc_gscon box bsc_gscon [label="assignment_created_mgw_endpoint = true"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; - bsc_mgcp => mgw [label="CRCX (for BTS)"]; - bsc_mgcp abox bsc_mgcp [label="ST_CRCX (MGCP_MGW_TIMEOUT = 4s)"]; - bsc_gscon note bsc_mgcp [label="two timeouts running in parallel"]; - bsc_gscon note bsc_mgcp [label="note: #define MGCP_MGW_TIMEOUT exists twice, - once in libosmo-mgcp-client, - once in bsc_subscr_conn_fsm.c"]; - bsc_mgcp -> bsc_gscon [label="mgcp_conn_create() exits"]; - bsc_gscon -> bsc [label="bssmap_handle_assignm_req() exits"]; + bsc_mgcp abox bsc_mgcp [label="ST_CRCX_RESP (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_mgcp => mgw_msc [label="CRCX (for BTS)"]; + bsc_gscon note bsc_mgcp [label="conn FSM relies on mgcp FSM timeout"]; ...; --- [label="On Timeout"]; - bsc_gscon note bsc_gscon [label="The conn FSM likely timeouts first"]; - bsc_gscon => msc_ [label="BSSMAP Assignment Failure"]; - bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; - bsc_mgcp note bsc_mgcp [label="The MGCP FSM will timeout right after that, and terminate itself, - emitting the parent_term event set upon mgcp_conn_create():"]; + bsc_mgcp note bsc_mgcp [label="On timeouit, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS"]; bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS is handled by the conn FSM allstate - handler. It sets conn->user_plane.fi_bts = NULL. There is code - that would emit a BSSMAP Assignment Failure, but not in - ST_ACTIVE"]; - --- [label="end: 'On Timeout'"]; + handler. It sets conn->user_plane.fi_bts = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_lchan note bsc_gscon [label="conn FSM timeout handler exits and relies on the lchan FSM + signalling error, which should actually happen immediately:"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + --- [label="END: 'On Timeout'"]; ...; - bsc_mgcp <= mgw [label="CRCX OK (for BTS)"]; + bsc_mgcp <= mgw_msc [label="CRCX OK (for BTS)"]; bsc_mgcp box bsc_mgcp [label="libosmo-mgcp-client fsm_crcx_resp_cb()"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_CRCX_RESP_BTS"]; - --- [label="end: 'is the chan_mode a speech mode?'"]; - - bsc_gscon note bsc_gscon [label="for mode=sign, we're still handling GSCON_EV_A_ASSIGNMENT_CMD; - for speech mode, we're handling GSCON_EV_MGW_CRCX_RESP_BTS"]; - bsc <- bsc_gscon [label="gsm0808_assign_req()"]; - - bsc box bsc [label="lchan_alloc(): pick available lchan"]; - bsc box bsc [label="rsl_chan_activate_lchan()"]; - - --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; - bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; - bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; - bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_LCHAN"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="END: lchan FSM decides that it is an lchan for speech"]; ...; - bts note bsc_gscon [linecolor="red", - label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there - seems to be no timer watching over PDCH Deact!"]; ...; - bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; - bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; - bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; - bts <= bsc [label="RSL Chan Activ"]; - --- [label="else (no dyn TS switchover)"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; - bts <= bsc [label="RSL Chan Activ"]; - bsc -> bsc_gscon [label="gsm0808_assign_req() returns"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; - ---; - + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_COMPLETE\nT10, 6s"]; + ms <= bsc_gscon [label="RR Assignment"]; ...; --- [label="On Timeout"]; - bsc_gscon => msc_ [label="BSSMAP Assignment Failure"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_LCHAN_RELEASE"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + --- [label="IF assignment_created_mgw_endpoint == true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon note bsc_mgcp [label="If the MGW endpoint didn't exist before the Assignment, release + it now. If there was one before this, it is probably still in use by a previous lchan, so + keep it in place."]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; - bsc_gscon note bsc_mgcp [linecolor="red", - label="The mgcp FSM from CRCX above apparently lacks a cleanup action for this case. - It should be cleaned up eventually when the conn is torn down, but we should - release RTP endpoints as soon as possible."]; - --- [label="end: 'On Timeout'"]; + --- [label="END: 'On Timeout'"]; ...; - - bts => bsc [label="RSL Chan Activ ACK"]; - bsc box bsc [label="rsl_rx_chan_act_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; - bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; - bsc box bsc [label="bsc_api.c handle_chan_ack()"]; - ms <= bsc [label="RR Assignment Command"]; - - ...; - ms note bsc_gscon [label="We rely on the overall conn FSM ST_WAIT_ASS_COMPL timeout."]; - ...; - - ms => bsc [label="RR Assignment Complete"]; - bsc box bsc [label="handle_ass_compl()"]; - --- [label="Release old lchan"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; - bsc box bsc [label="rsl_release_sapis_from(start=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI except link_id=0"]; - bsc box bsc [label="rsl_release_request(link_id=0)"]; - bts <= bsc [label="RSL Release Request (Local End) for link_id=0"]; - bsc box bsc [label="_lchan_handle_release() returns here, the remaining release is asynchronous; - see `End: 'Release old lchan'` below."]; - ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over RSL Release Request!"]; - ...; - bts => bsc [label="RSL Release Confirm..."]; - bts => bsc [label="...for each SAPI and link_id=0"]; - bsc abox bsc [label="start T3111"]; - ...; - bsc box bsc [label="T3111 expires"]; - bsc abox bsc [label="Start lchan->act_timer with lchan_deact_tmr_cb"]; - bts <= bsc [label="RSL RF Channel Release"]; - ...; - --- [label="On timeout"]; - bsc box bsc [label="lchan_deact_tmr_cb()"]; - bsc box bsc [label="rsl_lchan_mark_broken(): state=LCHAN_S_BROKEN"]; - bsc box bsc [label="lchan_free()"]; - bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; - bsc box bsc [label="bsc_api.c handle_release()"]; - bsc box bsc [label="bsc->assign_fail()"]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; - bsc note bsc_gscon [linecolor="orange", - label="The name 'RR_ASS_FAIL' might suggest the event means an actual RR Assignment - Failure message being received. Maybe this should be called GSCON_EV_ASSIGNMENT_ERROR."]; - ...; - bsc box bsc [label="bsc->clear_request()"]; - bsc box bsc [label="bsc_clear_request encodes a BSSMAP Clear Request message and passes it on - to the conn FSM as data argument via:"]; - bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP"]; - bsc_gscon => msc_ [label="BSSMAP Clear Request"]; - bsc note bsc_gscon [linecolor="red", - label="Instead of sending an arbitrary message, the conn FSM should - be explicitly instructed to clear the connection, to be able - to notice if the MSC failed to respond to the Clear Request. - Currently, this relies on the MSC responding with a Clear - Command, hopefully, some time later."]; - --- [label="End: 'On timeout'"]; - ...; - bts => bsc [label="RSL RF Channel Release Ack"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="Stop lchan->T3111"]; - --- [label="End: 'Release old lchan'"]; - bsc box bsc [label="still in handle_ass_compl()"]; - bsc note bsc [label="officially take over new lchan: conn->lchan = conn->secondary_lchan"]; - --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; - bts <= bsc [label="IPACC CRCX"]; - ---; - bsc -> bsc [label="handle_ass_compl() calls bsc_api->assign_compl()"]; - --- [label="is BTS using IPA Abis? (osmo-bts, ip.access) && conn->user_plane.rtp_ip"]; - bsc box bsc [label="bsc_assign_compl()"]; - bsc note bsc [label="set ass_compl.valid = true, - postponing GSCON_EV_RR_ASS_COMPL until after the - IPACC MDCX ACK received in osmo_bsc_audio.c"]; - bsc box bsc [label="exit early: bsc_assign_compl()"]; - bsc box bsc [label="exit early: handle_ass_compl()"]; - bsc box bsc [label="osmo_bsc_audio.c"]; - bts => bsc [label="IPACC CRCX ACK"]; - bts <= bsc [label="IPACC MDCX"]; - bts => bsc [label="IPACC MDCX ACK"]; - bsc box bsc [label="handle_abisip_signal()"]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_COMPL"]; - --- [label="else"]; - bsc box bsc [label="bsc_assign_compl()"]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_COMPL"]; - --- ; - - --- [label="is chan_mode a speech mode?"]; + ms => bsc_gscon [label="RR Assignment Complete"]; + bsc_gscon -> bsc_lchan [label="OLD lchan: LCHAN_EV_LCHAN_RELEASE"]; + bsc_gscon box bsc_gscon [label="conn->lchan = conn->lchan_for_assignment"]; + --- [label="IF: chan_mode a speech mode?"]; bsc_gscon abox bsc_gscon [label="ST_WAIT_MDCX_BTS"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; bsc_mgcp note bsc_mgcp [label="same mgcp FSM as above, for BTS side"]; - bsc_mgcp => mgw [label="MDCX (for BTS)"]; - bsc_mgcp <= mgw [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_MDCX_RESP"]; + bsc_mgcp => mgw_msc [label="MDCX (for BTS)"]; + ...; + --- [label="On Timeout"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_MSC"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; bsc_mgcp note bsc_mgcp [label="second mgcp FSM for MSC side"]; - bsc_mgcp => mgw [label="CRCX (for MSC)"]; - bsc_mgcp <= mgw [label="CRCX OK (for MSC)"]; + bsc_mgcp => mgw_msc [label="CRCX (for MSC)"]; + ...; + --- [label="On Timeout"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="CRCX OK (for MSC)"]; bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_CRCX_RESP_MSC"]; - ---; + --- [label="END: chan_mode a speech mode?"]; - bsc_gscon => msc_ [label="BSSMAP Assignment Complete"]; + bsc_gscon => mgw_msc [label="BSSMAP Assignment Complete"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; } diff --git a/doc/handover-inter-bsc-mo.msc b/doc/handover-inter-bsc-mo.msc new file mode 100644 index 0000000..9aff7a7 --- /dev/null +++ b/doc/handover-inter-bsc-mo.msc @@ -0,0 +1,37 @@ +msc { + hscale=2; + ms [label="MS via BTS"], bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + msc_[label="MSC"]; + + ms note msc_ [label="inter-BSC Handover to another BSS"]; + + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="bsc_handover_start(): init conn->ho"]; + bsc_gscon -> bsc_gscon [label="GSCON_EV_HO_START (inter-BSC MO)"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MO_\nWAIT_HO_CMD\nT7"]; + bsc_gscon => msc_ [label="BSSMAP Handover Required"]; + ...; + --- [label="On Timeout"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_gscon <= msc_ [label="BSSMAP Handover Command"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MO_\nWAIT_CLEAR_CMD\nT8"]; + ms <= bsc_gscon [label="RR Handover Command"]; + ...; + --- [label="On Timeout"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="END: 'On Timeout'"]; + ...; + msc_ note msc_ [label="Remote BSS reported Handover Complete to the MSC, this connection has been + superseded."]; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon abox bsc_gscon [label="ST_CLEARING"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; +} diff --git a/doc/handover-inter-bsc-mt.msc b/doc/handover-inter-bsc-mt.msc new file mode 100644 index 0000000..88a52da --- /dev/null +++ b/doc/handover-inter-bsc-mt.msc @@ -0,0 +1,154 @@ +msc { + hscale=3; + ms [label="MS via BTS"], bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + bsc_mgcp[label="BSC mgcp FSM"], mgw_msc[label="MGW/MSC"]; + + ms note mgw_msc [label="inter-BSC Handover, from remote BSS"]; + + bsc_gscon <= mgw_msc [label="N-Connect: BSSMAP Handover Request"]; + bsc_gscon box bsc_gscon [label="bsc_subscr_con_allocate()"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_LCHAN"]; + bsc_gscon box bsc_gscon [label="lchan_select_by_chan_mode()"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_HANDOVER)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_TS_READY"]; + ...; + --- [label="on no lchan, lchan FSM error or timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: 'on error'"]; + ...; + + --- [label="IF lchan FSM decides that it is an lchan for speech"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_CRCX_BTS"]; + bsc_gscon box bsc_gscon [label="handover_created_mgw_endpoint = true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp => mgw_msc [label="CRCX (for BTS)"]; + bsc_mgcp abox bsc_mgcp [label="ST_CRCX_RESP (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_gscon note bsc_mgcp [label="conn FSM relies on mgcp FSM timeout"]; + ...; + --- [label="On Timeout"]; + bsc_mgcp note bsc_mgcp [label="On timeout, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS is handled by the conn FSM allstate + handler. It sets conn->user_plane.fi_bts = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_lchan note bsc_gscon [label="conn FSM error handler exits and relies on the lchan FSM + signalling error, which should actually happen immediately:"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: 'On Timeout'"]; + ...; + + bsc_mgcp <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_mgcp box bsc_mgcp [label="libosmo-mgcp-client fsm_crcx_resp_cb()"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_CRCX_RESP_BTS"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_ACTIV_ACK"]; + bsc_gscon note bsc_gscon [label="MSC-side CRCX needs from Handover Required the RTP IP address + and port of the MSC's MGW; from MGW CRCX ACK (BTS) the conn->user_plane.mgw_endpoint; The + Call-ID, which we actually derive from the SCCP connection ID"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_CRCX_MSC"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp note bsc_mgcp [label="second mgcp FSM for MSC side"]; + bsc_mgcp => mgw_msc [label="CRCX (for MSC)"]; + ...; + --- [label="On Timeout"]; + bsc_mgcp note bsc_mgcp [label="On timeout, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_MSC"]; + bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_MSC is handled by the conn FSM allstate + handler. It sets conn->user_plane.fi_msc = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete() (FSM for BTS)"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="CRCX OK (for MSC)"]; + bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_CRCX_RESP_MSC"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_LCHAN"]; + --- [label="END: chan_mode a speech mode?"]; + --- [label="END: lchan FSM decides that it is an lchan for speech"]; + ...; + ...; + + bsc_lchan note bsc_lchan [label="TODO: when does the MS send RLL Establish Ind? I guess like + this:"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_RLL_ESTABLISH"]; + ms => bsc_lchan [label="RLL Establish Ind"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_\nWAIT_HO_ACCEPT\nsanity timer?"]; + bsc_gscon box bsc_gscon [label="Compose RR Handover Command"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Request Acknowledge"]; + mgw_msc note mgw_msc [label="MSC forwards the RR HO Cmd to the remote BSS"]; + + ...; + --- [label="On timeout"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + --- [label="END: On timeout"]; + ...; + ms => bsc_gscon [label="RR Handover Accept"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Detect"]; + mgw_msc note mgw_msc [label="MSC switches call to new path"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_SABM\nT3105"]; + ...; + ms => bsc_gscon [label="SABM"]; + bsc_lchan note bsc_lchan [label="SABM: Layer 2 message containing ?"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_\nWAIT_MDCX_BTS\nT?"]; + bsc_lchan note bsc_lchan [label="TODO: what is UA?"]; + ms <= bsc_gscon [label="RR UA"]; + bsc_gscon note bsc_gscon [label="TODO: at what point do we know the information needed for BTS + MDCX?"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; + bsc_mgcp abox bsc_mgcp [label="ST_MDCX_RESP"]; + bsc_mgcp => mgw_msc [label="MDCX (for BTS)"]; + ...; + --- [label="Should the Handover Complete arrive early"]; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="handover_complete_received = true"]; + ---; + ...; + --- [label="On timeout of the mgcp FSM"]; + bsc_gscon note mgw_msc [label="MGCP FSM terminates"]; + bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_lchan note bsc_gscon [label="The phone has already taken on the new lchan, but now we happen + to not be able to use it. The only sensible thing is to end the conn."]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request\n(Equipment Failure)"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + --- [label="END: On timeout of the mgcp FSM"]; + ...; + bsc_mgcp <= mgw_msc [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; + --- [label="IF !handover_complete_received"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_MT_WAIT_HO_COMPL\nT?"]; + --- [label="ELSE"]; + bsc_gscon -> bsc_gscon [label="gscon_handover_post_complete()"]; + ---; + ...; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="gscon_handover_post_complete()"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover Complete"]; + bsc_gscon note bsc_gscon [label="handover_end(success), conn->ho = NULL"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; +} diff --git a/doc/handover.msc b/doc/handover.msc index 8862dd9..7529de6 100644 --- a/doc/handover.msc +++ b/doc/handover.msc @@ -1,170 +1,123 @@ # Handover between cells, intra-BSC msc { hscale=3; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"], bsc_mgcp[label="BSC mgcp FSM"], mgw[label="MGW"]; + ms [label="MS via BTS"], bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + bsc_mgcp[label="BSC mgcp FSM"], mgw_msc[label="MGW/MSC"]; - ms note mgw [label="intra-BSC Handover sequence"]; + ms note mgw_msc [label="intra-BSC Handover sequence"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; - bsc box bsc [label="bsc_handover_start(): init conn->ho"]; - bsc -> bsc_gscon [label="GSCON_EV_HO_START"]; - bsc <- bsc_gscon [label="bsc_handover_start_gscon()"]; - - bsc box bsc [label="lchan_alloc(): pick available lchan"]; - bsc box bsc [label="rsl_chan_activate_lchan()"]; - - --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; - bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; - bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; - bsc -> bsc_gscon [label="bsc_handover_start_gscon() returns early"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; + bsc_gscon box bsc_gscon [label="bsc_handover_start(): init conn->ho"]; + bsc_gscon -> bsc_gscon [label="GSCON_EV_HO_START (intra-BSC)"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_LCHAN"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_HANDOVER)"]; ...; - bts note bsc_gscon [linecolor="red", - label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there - seems to be no timer watching over PDCH Deact!"]; + --- [label="on lchan FSM error or timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: 'on error'"]; ...; - bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; - bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; - bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; - bts <= bsc [label="RSL Chan Activ"]; - --- [label="else (no dyn TS switchover)"]; + ...; - bts <= bsc [label="RSL Chan Activ"]; - bsc -> bsc_gscon [label="bsc_handover_start_gscon() returns"]; + --- [label="IF lchan FSM decides that it is an lchan for speech"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + --- [label="IF there is an MGW endpoint for the BTS already (conn->user_plane.fi_bts)"]; + bsc_gscon box bsc_gscon [label="handover_created_mgw_endpoint = false"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="ELSE: no MGW endpoint for the BTS side yet"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_CRCX_BTS"]; + bsc_gscon box bsc_gscon [label="handover_created_mgw_endpoint = true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_create()"]; + bsc_mgcp => mgw_msc [label="CRCX (for BTS)"]; + bsc_mgcp abox bsc_mgcp [label="ST_CRCX_RESP (MGCP_MGW_TIMEOUT = 4s)"]; + bsc_gscon note bsc_mgcp [label="conn FSM relies on mgcp FSM timeout"]; + ...; + --- [label="On Timeout"]; + bsc_mgcp note bsc_mgcp [label="On timeout, the MGCP FSM will terminate, emitting the parent_term + event set upon mgcp_conn_create():"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_gscon note bsc_gscon [label="GSCON_EV_MGW_FAIL_BTS is handled by the conn FSM allstate + handler. It sets conn->user_plane.fi_bts = NULL."]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_lchan note bsc_gscon [label="conn FSM error handler exits and relies on the lchan FSM + signalling error, which should actually happen immediately:"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="IF handover_created_mgw_endpoint == true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; ---; - bsc_gscon abox bsc_gscon [label="ST_WAIT_HO_COMPL (no timeout, relies on T3103 below)"]; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: 'On Timeout'"]; + ...; + bsc_mgcp <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_mgcp box bsc_mgcp [label="libosmo-mgcp-client fsm_crcx_resp_cb()"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; + bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_CRCX_RESP_BTS"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_LCHAN"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + --- [label="END: lchan FSM decides that it is an lchan for speech"]; ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching out for RSL Chan Activ ACK/NACK!"]; ...; - bts => bsc [label="RSL Chan Activ ACK"]; - bsc box bsc [label="rsl_rx_chan_act_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; - bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK"]; - bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; - bsc box bsc [label="ho_chan_activ_ack()"]; - bsc note bsc [label="gsm48_send_ho_cmd()"]; - ms <= bsc [label="RR Handover Command"]; - bsc abox bsc [label="start T3103"]; - --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; - bts <= bsc [label="IPACC CRCX"]; - bsc -> bsc [label="ho_chan_activ_ack() returns"]; - bts note bsc [linecolor="red", - label="There seems to be no timer watching over IPACC CRCX ACK/NACK! - If no response is received, we simply ignore that fact and carry on as if - everything was fine."]; - ...; - bts note bsc [label="The IPACC CRCX and MDCX ACKs may come back at any time: - before or after the Handover Detect, before or after Handover Complete."]; - bts note bsc_mgcp [linecolor="red", - label="The CRCX ACK contains vital information for routing the RTP stream. - If the CRCX ACK were very slow, we would not know which RTP/RTPC ports - to point the MGW at, below at mgcp_conn_modify()! - Even though this being unrealistic, we must make sure to receive a CRCX ACK."]; - ...; - bsc box bsc [label="osmo_bsc_audio.c"]; - bts => bsc [label="IPACC CRCX ACK"]; - bts <= bsc [label="IPACC MDCX"]; - ...; - bts note bsc [linecolor="red", - label="There seems to be no timer watching over IPACC MDCX ACK/NACK! - If no response is received, we simply ignore that fact and carry on as if - everything was fine."]; - ...; - bts => bsc [label="IPACC MDCX ACK"]; - bts note bsc [label="IPACC MDCX ACK triggers no events or actions"]; - ---; - ...; - ms => bsc [label="RR Handover Detect"]; - bsc -> bsc [label="S_LCHAN_HANDOVER_DETECT"]; - bsc box bsc [label="ho_rsl_detect(): no action, only logging"]; - bsc note bsc_gscon [label="Handover Detect triggers no events or actions"]; - bsc note bsc_gscon [linecolor="red", - label="upon Handover Detect, we should already start re-routing the RTP! - Instead we wait for Handover Complete."]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_DETECT\nT3103"]; + bsc_gscon box bsc_gscon [label="gsm48_send_ho_cmd()"]; + ms <= bsc_gscon [label="RR Handover Command"]; ...; - ms => bsc [label="RR Handover Complete"]; - bsc -> bsc [label="S_LCHAN_HANDOVER_COMPL"]; - bsc box bsc [label="handover_logic.c ho_logic_sig_cb()"]; - bsc box bsc [label="ho_gsm48_ho_compl()"]; - bsc box bsc [label="stop T3103"]; - bts note bsc_gscon [label="If anything goes wrong from this point on, we will not move back - to the old lchan: would be pointless after Handover Complete."]; - bsc note bsc [label="officially take over new lchan: conn->lchan = ho->new_lchan"]; - - --- [label="Release old lchan"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; - bsc box bsc [label="rsl_release_sapis_from(start=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI except link_id=0"]; - bsc box bsc [label="rsl_release_request(link_id=0)"]; - bts <= bsc [label="RSL Release Request (Local End) for link_id=0"]; - bsc box bsc [label="_lchan_handle_release() returns here, the remaining release is asynchronous; - see `End: 'Release old lchan'` below."]; - ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over RSL Release Request!"]; - ...; - bts => bsc [label="RSL Release Confirm..."]; - bts => bsc [label="...for each SAPI and link_id=0"]; - bsc abox bsc [label="start T3111"]; - ...; - bsc box bsc [label="T3111 expires"]; - bsc abox bsc [label="Start lchan->act_timer with lchan_deact_tmr_cb"]; - bts <= bsc [label="RSL RF Channel Release"]; - ...; --- [label="On timeout"]; - bsc box bsc [label="lchan_deact_tmr_cb()"]; - bsc box bsc [label="rsl_lchan_mark_broken(): state=LCHAN_S_BROKEN"]; - bsc box bsc [label="lchan_free()"]; - bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; - bsc box bsc [label="bsc_api.c handle_release()"]; - bsc box bsc [label="bsc->clear_request()"]; - bsc box bsc [label="bsc_clear_request encodes a BSSMAP Clear Request message and passes it on - to the conn FSM as data argument via:"]; - bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP"]; - bsc_gscon rbox bsc_gscon [label="BSSMAP Clear Request to MSC"]; - bsc note bsc_gscon [linecolor="red", - label="During Handover, we actually release the entire conn just because we failed to - gracefully release the old lchan. That is obviously nonsense."]; - bsc note bsc [label="Stop T3101 (but was not active in this code path)"]; - bsc -> bsc [label="S_CHALLOC_FREED"]; - --- [label="End: 'On timeout'"]; - ...; - bts => bsc [label="RSL RF Channel Release Ack"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="Stop lchan->T3111"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon box bsc_gscon [label="handover_end(fail)"]; + --- [label="IF handover_created_mgw_endpoint == true"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; ---; + ms note bsc_gscon [label="MS happily continues on the old lchan."]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + --- [label="END: On timeout"]; + ...; + ms => bsc_gscon [label="RR Handover Detect"]; - bsc box bsc [label="still in ho_gsm48_ho_compl()"]; - bsc note bsc [label="handover_free(), conn->ho = NULL"]; - bsc -> bsc_gscon [label="GSCON_EV_HO_COMPL"]; - bsc note bsc_gscon [linecolor="orange", - label="Handover information is cleared before signalling the conn FSM. - That means the conn FSM cannot possibly log sensible information about exactly - which Handover has just completed."]; - - bsc_gscon abox bsc_gscon [label="ST_WAIT_MDCX_BTS_HO - (MGCP_MGW_TIMEOUT=4s with MGCP_MGW_HO_TIMEOUT_TIMER_NR)"]; - + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_MDCX_BTS\ncontinue T3103"]; + bsc_gscon -> bsc_lchan [label="OLD lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_lchan note bsc_gscon [label="officially take over new lchan: conn->lchan = ho->new_lchan"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; bsc_mgcp note bsc_mgcp [label="mgcp FSM that was established for old lchan, for BTS side"]; - bsc_mgcp => mgw [label="MDCX (for BTS)"]; + bsc_mgcp abox bsc_mgcp [label="ST_MDCX_RESP"]; + bsc_mgcp => mgw_msc [label="MDCX (for BTS)"]; ...; - bsc_gscon note mgw [ - label="If we get no MDCX ACK, the MGCP FSM terminates, and emits GSCON_EV_MGW_FAIL_BTS. - Besides invalidating the MGCP FSM pointer, this event has no - effect in ST_WAIT_MDCX_BTS_HO, and we rely on above conn FSM - timeout instead."]; - bsc_gscon note bsc_gscon [linecolor="red", - label="A timeout of ST_WAIT_MDCX_BTS_HO simply transitions back to ST_ACTIVE! - Even though the MGW failed, we carry on as if everything were fine."]; + --- [label="Should the Handover Complete arrive early"]; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="handover_complete_received = true"]; + ---; ...; - bsc_mgcp <= mgw [label="MDCX OK"]; + --- [label="On timeout of the mgcp FSM"]; + bsc_gscon note mgw_msc [label="MGCP FSM terminates"]; + bsc_gscon <- bsc_mgcp [label="GSCON_EV_MGW_FAIL_BTS"]; + bsc_lchan note bsc_gscon [label="The phone has already taken on the new lchan, but now we happen + to not be able to use it. The only sensible thing is to end the conn."]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request\n(Equipment Failure)"]; + bsc_lchan <- bsc_gscon [label="NEW lchan: LCHAN_EV_RELEASE"]; + ms <=> bsc_lchan [label="release procedure (async)"]; + bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; + ...; + bsc_mgcp <= mgw_msc [label="MDCX OK"]; + bsc_mgcp abox bsc_mgcp [label="ST_READY"]; bsc_mgcp -> bsc_gscon [label="GSCON_EV_MGW_MDCX_RESP_BTS"]; + --- [label="IF !handover_complete_received"]; + bsc_gscon abox bsc_gscon [label="ST_HANDOVER_\nWAIT_COMPLETE\ncontinue T3103"]; + --- [label="ELSE"]; + bsc_gscon -> bsc_gscon [label="gscon_handover_post_complete()"]; + ---; + ...; + ms => bsc_gscon [label="RR Handover Complete"]; + bsc_gscon box bsc_gscon [label="gscon_handover_post_complete()"]; + bsc_gscon note bsc_gscon [label="handover_end(success), conn->ho = NULL"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; } diff --git a/doc/lchan-fsm.dot b/doc/lchan-fsm.dot new file mode 100644 index 0000000..dbb283c --- /dev/null +++ b/doc/lchan-fsm.dot @@ -0,0 +1,53 @@ +digraph G { +rankdir=TB; + + invisible [style="invisible"] + UNUSED [penwidth=3.0] + WAIT_TS_READY + WAIT_MGW_ENDPOINT_AVAILABLE + WAIT_ACTIV_ACK + WAIT_IPACC_CRCX_ACK + WAIT_IPACC_MDCX_ACK + WAIT_RLL_ESTABLISH + ACTIVE [penwidth=3.0] + WAIT_SAPIS_RELEASED + WAIT_BEFORE_RF_RELEASE + WAIT_RF_RELEASE_ACK + WAIT_AFTER_ERROR + BORKEN + + ts [label="timeslot FSM",shape=box3d]; + gscon [label="conn FSM",shape=box3d]; + + UNUSED -> WAIT_TS_READY [label="lchan_allocate()"] + WAIT_TS_READY -> WAIT_ACTIV_ACK + WAIT_ACTIV_ACK -> WAIT_RLL_ESTABLISH + WAIT_RLL_ESTABLISH -> WAIT_MGW_ENDPOINT_AVAILABLE [label="TCH"] + WAIT_MGW_ENDPOINT_AVAILABLE -> WAIT_IPACC_CRCX_ACK [label="IPACC BTS"] + WAIT_MGW_ENDPOINT_AVAILABLE -> ACTIVE + WAIT_IPACC_CRCX_ACK -> WAIT_IPACC_MDCX_ACK + WAIT_IPACC_MDCX_ACK -> ACTIVE + WAIT_RLL_ESTABLISH -> ACTIVE [label="non-TCH"]; + WAIT_RLL_ESTABLISH -> WAIT_RF_RELEASE_ACK [label="timeout",style=dashed,constraint=false] + + ACTIVE -> WAIT_SAPIS_RELEASED [label="LCHAN_EV_\nRELEASE"] + WAIT_SAPIS_RELEASED -> WAIT_BEFORE_RF_RELEASE + WAIT_SAPIS_RELEASED -> WAIT_RF_RELEASE_ACK [label="timeout",style=dashed,constraint=false] + + WAIT_BEFORE_RF_RELEASE -> WAIT_RF_RELEASE_ACK [label="T3111"] + WAIT_RF_RELEASE_ACK -> UNUSED + WAIT_RF_RELEASE_ACK -> WAIT_AFTER_ERROR [label="release was\ndue to error"] + WAIT_AFTER_ERROR -> UNUSED [label="T3111+2s"] + + WAIT_TS_READY -> ts [label="TS_EV_\nLCHAN_\nREQUESTED",style=dotted,penwidth=3] + UNUSED -> ts [label="TS_EV_\nLCHAN_\nUNUSED",style=dotted,penwidth=3] + ts -> WAIT_TS_READY [label="LCHAN_EV_\nTS_READY",style=dotted] + + WAIT_TS_READY -> UNUSED [label="error/timeout",style=dashed,constraint=false] + {WAIT_ACTIV_ACK,WAIT_RF_RELEASE_ACK} -> BORKEN [label="error/timeout",style=dashed] + {WAIT_MGW_ENDPOINT_AVAILABLE,WAIT_IPACC_CRCX_ACK,WAIT_IPACC_MDCX_ACK} -> WAIT_SAPIS_RELEASED [label=error,style=dashed] + + WAIT_TS_READY -> gscon [label="GSCON_EV_\nENSURE_\nMGW_ENDPOINT",style=dotted] + gscon -> WAIT_MGW_ENDPOINT_AVAILABLE [label="LCHAN_EV_\nMGW_ENDPOINT_\n{AVAILABLE,ERROR}",style=dotted] + +} diff --git a/doc/lchan-release.msc b/doc/lchan-release.msc index f75b559..017c9cf 100644 --- a/doc/lchan-release.msc +++ b/doc/lchan-release.msc @@ -1,149 +1,83 @@ msc { hscale=2; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_lchan[label="BSC lchan FSM"], + bsc_gscon[label="BSC conn FSM"], msc_[label="MSC"]; ms note bsc_gscon [label="various lchan release scenarios"]; - - ms rbox bsc_gscon [label="IF BSC releases, from BSSMAP Clear Request"]; - bsc note bsc [label="lchan_release() may be called with sacch_deact=true or false. - Currently, the only time lchan_release(sacch_deact=true) is invoked is upon BSSMAP Clear - Command, i.e. when the MSC instructs to stop using an active lchan. - Some error handling code paths however directly invoke - rsl_rf_chan_release(error=1, SACCH_DEACTIVATE)."]; - - ---; - bsc_gscon note bsc_gscon [label="Rx: BSSMAP Clear Request from MSC"]; - bsc <- bsc_gscon [label="gsm0808_clear()"]; - bsc box bsc [label="lchan_release(sacch_deact=1)"]; - bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=1)"]; - bsc box bsc [label="rsl_release_sapis_from(start=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI, except link_id=0"]; - ms <= bsc [label="RR Channel Release"]; - ms note bsc [label="There is no ACK for RR Channel Release"]; - bsc box bsc [label="rsl_deact_sacch()"]; - bts <= bsc [label="RSL Deactivate SACCH"]; - bsc abox bsc [label="Start T3109 (net->T3109, t3109_expired())"]; + ms rbox msc_ [label="MSC releases"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon abox bsc_gscon [label="ST_CLEARING"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; + bsc_gscon -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + --- [label="IF SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"]; + bts <= bsc_lchan [label="RSL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for each SAPI, except link_id=0"]; + ms <= bsc_lchan [label="RR Channel Release"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH",ID="if appropriate pchan"]; ...; - --- [label="If T3109 expires"]; - bsc box bsc [label="t3109_expired()"]; - bsc box bsc [label="rsl_rf_chan_release(error=1)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for each SAPI, except link_id=0"]; - bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; - bts <= bsc [label="RSL RF Channel Release"]; - ---; + bts => bsc_lchan [label="RSL Release ACKs"]; + --- [label="END: SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"]; + bsc_gscon note bsc_gscon [label="has already forgotten the lchan above."]; ...; - bsc rbox bsc [label="continue in the 'Common' part"]; - --- [label="END: 'BSSMAP Clear Request'"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; ...; ...; - ms rbox bsc_gscon [label="IF BSC releases, from implicitly unused lchan"]; - bsc note bsc [label="The BSC may release old unused lchans after Handover, or release lchans - after some error condition."]; - bsc note bsc [label="BSC decides to release an unused lchan"]; - bsc box bsc [label="lchan_release(sacch_deact=0)"]; - bsc box bsc [label="lchan->state = LCHAN_S_REL_REQ"]; - bsc box bsc [label="_lchan_handle_release(sacch_deact=0)"]; - bts <= bsc [label="RSL Release Request (Local End)..."]; - bts <= bsc [label="...for all SAPIs"]; + ms rbox msc_ [label="BSC releases, outside of conn FSM's flow"]; + bsc -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + --- [label="IF SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"]; + bts <= bsc_lchan [label="RSL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for each SAPI, except link_id=0"]; + ms <= bsc_lchan [label="RR Channel Release",ID="if conn is present"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH",ID="if appropriate pchan"]; ...; - bts note bsc_gscon [linecolor="red", - label="There seems to be no timer watching over RSL Release Request!"]; + bts => bsc_lchan [label="RSL Release ACKs"]; + --- [label="END: SAPIs besides SAPI[0] are active"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"]; + bsc_gscon note bsc_gscon [label="conn FSM notices that its primary lchan is gone"]; + bsc_gscon => msc_ [label="BSSMAP Clear Request"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; ...; - bts => bsc [label="RSL Release Confirm..."]; - bts => bsc [label="...for all SAPIs"]; - bsc rbox bsc [label="continue in the 'Common' part"]; - ---; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + ...; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon abox bsc_gscon [label="ST_CLEARING"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; ...; ...; - ms rbox bsc_gscon [label="IF MS releases"]; + ms rbox msc_ [label="MS releases"]; ms => bts [label="DISC"]; - bts => bsc [label="RLL Release Ind..."]; - bts => bsc [label="...for each SAPI"]; - bsc rbox bsc [label="continue in the 'Common' part"]; - ---; + bts => bsc_lchan [label="RLL Release Ind..."]; + bts => bsc_lchan [label="...for each SAPI"]; + bsc_lchan note bsc_lchan [label="The lchan FSM notices when all SAPIs have been released"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; ...; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\n4s"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN"]; + bsc_gscon note bsc_gscon [label="conn FSM notices that its primary lchan is gone"]; + bsc_gscon => msc_ [label="BSSMAP Clear Request"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CLEAR_CMD"]; ...; - ms rbox bsc_gscon [label="Common"]; - --- [label="for each SAPI (?)"]; - bts => bsc [label="RLL Release Confirm / RLL Release Ind"]; - bsc box bsc [label="abis_rsl_rx_rll()"]; - bsc box bsc [label="mark lchan->sapis[link_id] = LCHAN_SAPI_UNUSED"]; - bsc box bsc [label="rll_indication()"]; - bsc box bsc [label="for each bsc_rll_req matching this link_id: - disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; - bsc box bsc [label="rsl_handle_release()"]; - --- [label="IF all SAPIs are unused"]; - bsc box bsc [label="Stop T3109"]; - bsc note bsc [label="T3109 was started if the MSC requested the release"]; - bsc abox bsc [label="Start T3111 (net->T3111 value, t3111_expired())"]; - --- [label="END: all SAPIs are unused"]; - bsc -> bsc_gscon [label="GSCON_EV_RLL_REL_IND (only if RLL Release Ind)"]; - --- [label="END: for each SAPI"]; - + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; ...; - bsc box bsc [label="T3111 expires"]; - bsc box bsc [label="rsl_rf_chan_release()"]; - bsc box bsc [label="Stop T3109"]; - bsc note bsc [label="[If lchan->state is LCHAN_S_REL_ERR, don't do anything]"]; - bsc abox bsc [label="Start lchan->act_timer (4s, lchan_deact_tmr_cb())"]; - bts <= bsc [label="RSL RF Channel Release"]; - - ...; - --- [label="IF lchan->act_timer expires"]; - bsc box bsc [label="lchan_deact_tmr_cb()"]; - bsc box bsc [label="rsl_lchan_mark_broken(): lchan->state = LCHAN_S_BROKEN"]; - bsc box bsc [label="lchan_free() (see below)"]; - --- [label="END: 'lchan->act_timer expires'"]; - ...; - - bts => bsc [label="RSL RF Channel Release ACK"]; - bsc box bsc [label="rsl_rx_rf_chan_rel_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="Stop T3111"]; - - --- [label="IF lchan->state == LCHAN_S_BROKEN"]; - bsc note bsc [label="If an ACK comes in late, for specific BTS models, we may choose to 'repair' - the lchan so that it is usable again, by calling do_lchan_free() directly (see below)."]; - bsc box bsc [label="rsl_rx_rf_chan_rel_ack() exits here and none of below actions happen. - The lchan remains LCHAN_S_BROKEN indefinitely."]; - --- [label="END: lchan->state == LCHAN_S_BROKEN"]; - bsc box bsc [label="do_lchan_free()"]; - --- [label="IF lchan->state == LCHAN_S_REL_ERR"]; - bsc note bsc [label="If release failed, we take the lchan back into operation after due - timeout"]; - bsc abox bsc [label="Start lchan->error_timer (T3111+2, error_timeout_cb())"]; - bsc note bsc [label="do_lchan_free() continues, async:"]; - ...; - bsc box bsc [label="error_timeout_cb()"]; - bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; - bsc box bsc [label="dyn TS: activate PDCH..."]; - --- [label="ELSE"]; - bsc box bsc [label="lchan->state = LCHAN_S_NONE"]; - --- [label="END: lchan->state == LCHAN_S_REL_ERR"]; - bsc box bsc [label="lchan_free()"]; - --- [label="IF conn is still associated (and not dyn TS in switchover)"]; - bsc -> bsc [label="S_LCHAN_UNEXPECTED_RELEASE"]; - bsc box bsc [label="handle_release()"]; - bsc box bsc [label="Stop T10"]; - bsc note bsc [linecolor=orange,label="conn->T10 is actually dead code, it is never started. - Instead, the conn FSM starts ST_WAIT_ASS_COMPL with a T10 value."]; - bsc -> bsc_gscon [label="GSCON_EV_RR_ASS_FAIL"]; - bsc -> bsc_gscon [label="GSCON_EV_TX_SCCP: BSSMAP Clear Request"]; - bsc box bsc [label="bsc_clear_handover()"]; - bsc box bsc [label="Stop T3103"]; - bsc box bsc [label="free handover struct"]; - bsc box bsc [label="lchan->conn = NULL"]; - --- [label="END: 'conn is still associated'"]; - bsc box bsc [label="Stop T3101"]; - bsc note bsc [label="T3101 is started when sending an RR Immediate Assignment"]; - bsc -> bsc [label="S_CHALLOC_FREED"]; - bsc -> bsc [label="rll_lchan_signal()"]; - bsc box bsc [label="for each bsc_rll_req matching this lchan: - disable timer, call cb(BSC_RLLR_IND_REL_IND)"]; + bsc_gscon <= msc_ [label="BSSMAP Clear Command"]; + bsc_gscon => msc_ [label="BSSMAP Clear Complete"]; } diff --git a/doc/lchan.msc b/doc/lchan.msc new file mode 100644 index 0000000..9b7d663 --- /dev/null +++ b/doc/lchan.msc @@ -0,0 +1,306 @@ +msc { + hscale=2; + bts [label="MS/BTS"], bsc[label="BSC"], bsc_ts [label="BSC timeslot FSM"], + bsc_lchan[label="BSC lchan FSM"], bsc_gscon[label="BSC conn FSM"], + mgw_msc[label="MGW/MSC"]; + + bts box mgw_msc [label="lchan allocation sequence"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + + bts rbox mgw_msc [label="Channel Request from MS"]; + bts => bsc [label="RSL Channel Request"]; + bsc box bsc [label="lchan_select_by_type(chan_type)"]; + bsc -> bsc_lchan [label="lchan_activate(lchan, FOR_MS_CHANNEL_REQUEST)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + + bts rbox mgw_msc [label="Channel Request from BSSMAP Assignment"]; + bsc_gscon <= mgw_msc [label="BSSMAP Assignment request"]; + bsc_gscon box bsc_gscon [label="lchan_select_by_chan_mode(chan_mode)"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_ASSIGNMENT)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + + bts rbox mgw_msc [label="Channel Request from Handover Decision"]; + bsc note bsc [label="target lchan typically already chosen by Handover Decision"]; + bsc -> bsc_gscon [label="GSCON_EV_HO_START (intra-BSC)"]; + bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_HANDOVER)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + + bts rbox mgw_msc [label="Channel Request from intra-BSC-MT-Handover"]; + bsc_gscon <- mgw_msc [label="BSSMAP Handover Request"]; + bsc_gscon box bsc_gscon [label="lchan_select_by_chan_mode(chan_mode)"]; + bsc box bsc [label="lchan_activate(lchan, FOR_HANDOVER)"]; + bsc_lchan rbox bsc_lchan [label="Continue at\nlchan_activate()\n"]; + |||; + |||; + bts rbox mgw_msc [label="lchan_activate()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_\nWAIT_TS_READY\n(timeout: ? s, Tnnnn)"]; + |||; + |||; + --- [label="TCH?"]; + bsc_lchan note bsc_gscon [label="This is skipped when FOR_MS_CHANNEL_REQUEST. If the MS requests + a TCH lchan, and we end up actually giving it a TCH because no SDCCH are available, we + can not set up an RTP stream because there is not even an L3 conn yet."]; + bsc_lchan note bsc_gscon [label="The lchan FSM asks the conn FSM to have an MGW endpoint ready as + early as possible. Either the conn already has such MGW endpoint from a previous lchan, + in which case it immediately replies, or it requests one from the MGW, in which case we + wait for a response in 'TCH? (2)' below."]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_ENSURE_MGW_ENDPOINT"]; + --- [label="IF conn has user_plane.fi_bts in state ST_READY"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan box bsc_lchan [label="mgw_endpoint_available = true"]; + bsc_lchan note bsc_lchan [label="lchan_activate() continues"]; + --- [label="ELSE (no MGW endpoint available yet)"]; + bsc_gscon => mgw_msc [label="CRCX (for BTS) via mgcp_conn_create()"]; + bsc_gscon abox bsc_gscon [label="ST_WAIT_CRCX_BTS\n(timeout: ? s, Tnnnn)"]; + bsc_lchan <- bsc_gscon [label="(event dispatch returns)"]; + bsc_lchan note bsc_lchan [label="lchan_activate() continues"]; + ...; + bsc_gscon note bsc_gscon [label="async:"]; + bsc_gscon <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan box bsc_lchan [label="mgw_endpoint_available = true"]; + bsc_lchan note bsc_lchan [label="As soon as we reach LCHAN_ST_WAIT_MGW_ENDPOINT_AVAILABLE, this triggers + immedate action (s.b.), but until then, only the flag gets set to true."]; + ...; + --- [label="CRCX timeout"]; + bsc_gscon note bsc_gscon [label="conn FSM should fire on CRCX timeout"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; + bsc_gscon note bsc_gscon [label="conn FSM should not assume anything and wait for + GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan rbox bsc_lchan [label="Do 'On any error'"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + --- [label="END: 'TCH?'"]; + |||; + |||; + + bsc_lchan box bsc_lchan [label="lchan_activate() exits"]; + bsc_lchan note bsc_lchan [label="still in\nlchan_request()\nLCHAN_ST_WAIT_\nTS_READY"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED"]; + ...; + --- [label="on error from TS or timeout:"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_ERROR"]; + bsc_lchan rbox bsc_lchan [label="Do 'On any error'"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + ---; + ...; + bsc_ts abox bsc_ts [label="TS_ST_IN_USE"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bsc_lchan box bsc_lchan [label="lchan_fsm_\npre_lchan_activ()"]; + + |||; + |||; + bts rbox mgw_msc [label="mode FOR_MS_CHANNEL_REQUEST"]; + bts note bsc_lchan [label="This is the simple case where the MS requested a channel, and there is no + L3 conn to the MSC; no matter if this is SDDCH or a TCH channel type, we will not prepare + an RTP stream."]; + + bsc_lchan note bsc_lchan [label="still in lchan_fsm_\npre_lchan_activ()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nACTIV_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="RSL Chan Activ (RSL_ACT_INTRA_IMM_ASS)"]; + bts note bsc_lchan [label="If any errors occur from now on, we don't want to send an RR Immediate + Assignment Reject anymore."]; + bsc_lchan box bsc_lchan [label="sent_chan_activ = true"]; + ...; + --- [label="on timeout"]; + bsc_lchan rbox bsc_lchan [label="Continue at: 'On any error', 'unrecoverable'"]; + ---; + ...; + bts => bsc_lchan [label="RSL Chan Activ ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\nT3101"]; + bsc_lchan note bsc_lchan [label="Now the lchan is assigned, but has no L3 conn yet. On errors, + this will either go into graceful release or into broken state, but will not trigger any + events to a (non-existing) conn."]; + ...; + --- [label="on timeout"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_RF_RELEASE_ACK\n(T?, 4s)"]; + ---; + ...; + bts => bsc_lchan [label="RLL Establish Ind"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + |||; + |||; + bts rbox mgw_msc [label="modes FOR_ASSIGNMENT and FOR_HANDOVER"]; + + bsc_lchan note bsc_lchan [label="still in lchan_fsm_\npre_lchan_activ()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nACTIV_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="RSL Chan Activ (RSL_ACT_INTRA_NORM_ASS)",ID=FOR_ASSIGNMENT]; + bts <= bsc_lchan [label="RSL Chan Activ (RSL_ACT_INTER_ASYNC)",ID=FOR_HANDOVER]; + ...; + --- [label="on timeout"]; + bsc_lchan rbox bsc_lchan [label="Continue at: 'On any error', 'unrecoverable'"]; + ---; + bts => bsc_lchan [label="RSL Chan Activ ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\nT3101"]; + ...; + --- [label="on timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_lchan [label="lchan_fsm_pre_rf_release()"]; + ---; + ...; + bts => bsc_lchan [label="RLL Establish Indication"]; + |||; + + --- [label="TCH? (2)"]; + --- [label="mgw_endpoint_available == false?"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nMGW_ENDPOINT_\nAVAILABLE"]; + bsc_lchan note bsc_lchan [label="rely on conn FSM timeout; apply only a long sanity timeout."]; + ...; + bsc_gscon <= mgw_msc [label="CRCX OK (for BTS)"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_AVAILABLE"]; + bsc_lchan box bsc_lchan [label="mgw_endpoint_available = true"]; + bsc_lchan <- bsc_lchan [label="re-invoke lchan_fsm_pre_lchan_activ()"]; + --- [label="END: 'TCH? (2)'"]; + |||; + + --- [label="is BTS using IPA Abis? (osmo-bts, ip.access)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nIPACC_CRCX_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="IPACC CRCX"]; + ...; + --- [label="on timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_lchan [label="lchan_graceful_release()"]; + ---; + ...; + bts => bsc_lchan [label="IPACC CRCX ACK"]; + bts note bsc_lchan [label="The IPACC CRCX ACK tells us what port the IPA Abis based BTS has + assigned to this lchan. AoIP: we need to forward this to the MGW (BTS side) with an MDCX; + SCCPlite: we forward this to the MSC during BSSMAP Assignment Complete (TODO: is this + correct??)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nIPACC_MDCX_ACK\n(timeout: ? s, Tnnnn)"]; + bts <= bsc_lchan [label="IPACC MDCX"]; + bts note bsc_lchan [label="The IPACC MDCX tells IPA Abis based BTSes the IP address and RTP port + assigned by the BTS side of the MGW. AoIP: the MGW CRCX (BTS) must thus happen before + this; SCCPlite: the RTP port is already known from the timeslot+multiplex information."]; + ...; + --- [label="on timeout"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_lchan [label="lchan_graceful_release()"]; + ---; + ...; + bts => bsc_lchan [label="IPACC MDCX ACK"]; + --- [label="END: is BTS using IPA Abis? (osmo-bts, ip.access)"]; + |||; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + bsc_lchan box bsc_lchan [label="lchan_fsm_post_lchan_activ()"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; + bts <= bsc_gscon [label="RR Assignment",ID="BSSMAP Assignment Request"]; + bts <= bsc_gscon [label="RR Handover Command",ID="intra-BSC HO"]; + bsc_gscon => mgw_msc [label="BSSMAP Handover\nRequest Acknowledge",ID="inter-BSC-MT HO"]; + ...; + ---[label="On error"]; + bsc_lchan rbox bsc_lchan [label="Continue at 'When the lchan is no longer used'"]; + ---; + ...; + + bts => bsc_gscon [label="RR Assignment Complete",ID="BSSMAP Assignment Request"]; + bts => bsc_gscon [label="RR Handover Detect",ID="intra-BSC HO"]; + bts => bsc_gscon [label="RR Handover Accept",ID="inter-BSC-MT HO"]; + bsc_gscon note bsc_gscon [label="conn FSM takes care of MGW endpoints for BTS side (possibly + redirect) and MSC side (possibly create). More information in e.g. assignment.msc and + handover.msc"]; + + ...; + ...; + ...; + + bts rbox mgw_msc [label="When the lchan is no longer used"]; + --- [label="IF the MS or BTS release the lchan"]; + bts -> bsc_lchan [label="RLL Release Ind for SAPI=0"]; + --- [label="IF the BSC other than the conn FSM decides to release"]; + bsc -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + --- [label="IF the MSC or conn FSM release the lchan"]; + bsc_lchan <- bsc_gscon [label="LCHAN_EV_RELEASE"]; + ---; + bsc note bsc_gscon [label="The LCHAN_EV_RELEASE's data pointer possibly indicates an error + cause"]; + bsc_lchan note bsc_gscon [label="If the conn FSM requested a release, it probably has already + forgotten about this lchan. However, if the MS/BTS initiated the release, make sure the conn FSM + is informed:"]; + bsc_lchan box bsc_lchan [label="lchan_graceful_release()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nSAPIS_RELEASED\nT3109"]; + --- [label="TCH and got as far as Chan Activ Ack?"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH"]; + ---; + bts <= bsc_lchan [label="RLL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for all SAPIs except [0]"]; + |||; + --- [label="SAPI[0] in use?"]; + bsc_lchan note bsc_lchan [label="for bts->nokia.no_loc_rel_cnf we do not expect Release Confirm + messages and this state immediately advances to lchan_fsm_pre_rf_release()"]; + ...; + --- [label="on timeout"]; + bsc_lchan box bsc_lchan [label="Anyway try RF Channel Release, continue + with lchan_fsm_wait_before_rf_release()"]; + ---; + ...; + bts => bsc_lchan [label="RLL Release Confirm..."]; + bts => bsc_lchan [label="...for each SAPI except [0]"]; + bsc_lchan box bsc_lchan [label="Stay in\nLCHAN_ST_WAIT_\nSAPIS_RELEASED\nuntil only SAPI[0] remains active"]; + --- [label="END: 'SAPI[0] in use?'"]; + |||; + + bsc_lchan box bsc_lchan [label="lchan_fsm_wait_before_rf_release()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nBEFORE_RF_RELEASE\nT3111"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_FORGET_LCHAN (data=lchan)"]; + bsc_gscon note bsc_gscon [label="conn FSM immediately forgets about the lchan"]; + bsc_gscon => mgw_msc [label="BSSMAP Clear Request?"]; + ...; + bsc_lchan box bsc_lchan [label="T3111 expires"]; + bsc_lchan box bsc_lchan [label="lchan_fsm_pre_rf_release()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRF_RELEASE_ACK\nT3111"]; + bsc_lchan box bsc_lchan [label="for each bsc_rll_req matching this lchan: disable timer, call + cb(BSC_RLLR_IND_REL_IND)"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + --- [label="on timeout"]; + bsc_lchan rbox bsc_lchan [label="Continue at: 'On any error', 'unrecoverable'"]; + ---; + ...; + bts => bsc_lchan [label="RSL RF Channel Release Ack"]; + + bsc_lchan box bsc_lchan [label="lchan_fsm_post_rf_release()"]; + |||; + --- [label="IF an error cause was indicated on LCHAN_EV_RELEASE"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nAFTER_ERROR\n(timeout: T3111+2 s, T?)"]; + ...; + bsc_lchan box bsc_lchan [label="timer expires"]; + --- [label="END: 'an error cause was indicated on LCHAN_EV_RELEASE'"]; + |||; + bsc_lchan box bsc_lchan [label="lchan_fsm_release_complete()"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + bsc_ts abox bsc_ts [label="TS_ST_UNUSED"]; + |||; + |||; + + bts rbox mgw_msc [label="On any error"]; + |||; + --- [label="IF FOR_MS_CHANNEL_REQUEST && !sent_chan_activ"]; + bts <= bsc_lchan [label="RR Immediate Assign Reject"]; + |||; + --- [label="IF FOR_ASSIGNMENT or FOR_HANDOVER"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon note bsc_gscon [label="conn FSM shall immediately 'forget' the lchan"]; + bsc_gscon => mgw_msc [label="BSSMAP\nAssignment Failure",ID=FOR_ASSIGNMENT]; + bsc_gscon => mgw_msc [label="BSSMAP\nHandover Failure",ID="inter-BSC-MT HO"]; + ---; + |||; + --- [label="IF unrecoverable error"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_BORKEN"]; + bsc_lchan note bsc_lchan [label="The broken state usually stays around + until the BTS disconnects."]; + ...; + bts note bsc_lchan [label="If an ACK comes in late, for specific BTS models, we may choose to + 'repair' the lchan so that it is usable again."]; + bts -> bsc_lchan [label="Chan Release ACK"]; + bsc_lchan -> bsc_lchan [label="lchan_fsm_post_rf_release()"]; +} diff --git a/doc/ms-channel-request.msc b/doc/ms-channel-request.msc index c0ef60f..1c5b4bf 100644 --- a/doc/ms-channel-request.msc +++ b/doc/ms-channel-request.msc @@ -1,8 +1,8 @@ msc { - hscale=3; - ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_gscon[label="BSC conn FSM"]; + hscale=2; + ms [label="MS"], bts [label="BTS"], bsc[label="BSC"], bsc_lchan[label="BSC lchan FSM"]; - ms note bsc_gscon [label="lchan allocation sequence for RSL Channel Request"]; + ms note bsc_lchan [label="lchan allocation sequence for RSL Channel Request"]; ms => bts [label="RR Channel Request"]; bts => bsc [label="RSL Channel Request"]; @@ -13,51 +13,47 @@ longer concerned (rsl_rx_pchan_rqd())."]; bsc note bsc [label="Always try to allocate an SDCCH regardless of the requested type, only if no SDCCH is available, look for the actually requested channel type."]; - bsc box bsc [label="lchan_alloc(SDCCH, allow_bigger=0)"]; + bsc box bsc [label="lchan_select_by_type(SDCCH)"]; --- [label="IF no lchan is available (neither SDCCH nor requested type)"]; bsc note bsc [label="Figure out T3122 value from bts->T3122, network->T3122 or GSM_T3122_DEFAULT"]; - bsc box bsc [label="rsl_send_imm_ass_rej()"]; + bsc box bsc [label="rsl_send_imm_ass_rej(wait_ind=T3122)"]; bsc note bsc [label="..."]; bts <= bsc [label="RR Immediate Assign Reject"]; ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; bsc note bsc [label="rsl_rx_pchan_rqd() exits, no channel is allocated."]; - ---; + --- [label="END: no lchan is available"]; bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"]; - bsc abox bsc [label="Start lchan->act_timer (4s, lchan_act_tmr_cb())"]; - - bsc box bsc [label="rsl_chan_activate_lchan(RSL_ACT_INTRA_IMM_ASS)"]; - --- [label="is the chosen lchan on dynamic timeslot that is currently used as PDCH?"]; - bsc box bsc [linecolor=red,label="Osmocom style dyn TS use the lchan->act_timer for an RSL RF - Channel Release, to release PDCH mode. This will actually overwrite above act_timer!"]; - bts <= bsc [label="i) RSL RF Chan Release of PDCH (Osmocom dyn TS)"]; - bts <= bsc [label="OR ii) RSL PDCH Deact (ip.access dyn TS)"]; - bsc -> bsc_gscon [label="gsm0808_assign_req() returns early"]; - bsc_gscon abox bsc_gscon [label="ST_WAIT_ASS_COMPL (GSM0808_T10_VALUE=6s)"]; + bsc -> bsc_lchan [label="lchan_allocate(FOR_MS_CHANNEL_REQUEST)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_ACTIV_ACK\nT3103"]; + bsc_lchan note bsc_lchan [label="The lchan FSM knows that FOR_MS_CHANNEL_REQUEST is about + Immediate Assignment."]; + bts <= bsc_lchan [label="RSL Chan Activ (Immediate Assignment)"]; ...; - bts note bsc_gscon [linecolor="red", - label="Osmocom style dyn TS use lchan->act_timer to watch over RF Chan Release, but there - seems to be no timer watching over PDCH Deact!"]; - ...; - bts => bsc [label="i) RSL RF Chan Release ACK (Osmocom dyn TS)"]; - bts => bsc [label="OR ii) RSL PDCH Deact ACK (ip.access dyn TS)"]; - bsc box bsc [label="rsl_chan_activate_lchan() re-invoked"]; + --- [label="on any error"]; + bts <= bsc_lchan [label="RR Immediate Assign Reject"]; + ms <= bts [label="RR Immediate Assign Reject (possibly grouped with up to 4 others)"]; ---; - - bsc box bsc [label="lchan->state = LCHAN_S_ACT_REQ"]; - bts <= bsc [label="RSL Chan Activ: Immediate Assignment"]; ...; - bsc note bsc [label="Timeout of lchan->act_timer causes the - lchan->state to go to LCHAN_S_BROKEN, but no events or actions - are triggered."]; + bts => bsc_lchan [label="RSL Chan Activ ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\ncontinue T3103"]; ...; - bts => bsc [label="RSL Chan Activ ACK"]; - bsc box bsc [label="rsl_rx_chan_act_ack()"]; - bsc box bsc [label="Stop lchan->act_timer"]; - bsc box bsc [label="lchan->state = LCHAN_S_ACTIVE"]; - bsc -> bsc [label="S_LCHAN_ACTIVATE_ACK (has no effect)"]; - bsc note bsc [label="Since this was an Immediate Assignment, no further action is required on - behalf of the BSC. The MS is now free to use the lchan."]; + --- [label="on timeout"]; + bsc_lchan box bsc_lchan [label="lchan_error_release(deact_sacch=true)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_RF_RELEASE_ACK"]; + bts <= bsc_lchan [label="RLL Release Request (Local End)..."]; + bts <= bsc_lchan [label="...for all SAPIs including [0]"]; + bts <= bsc_lchan [label="RSL Deactivate SACCH"]; + bts <= bsc_lchan [label="RSL RF Channel Release"]; + ...; + bts => bsc_lchan [label="RSL RF Channel Release ACK"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_AFTER_ERROR"]; + ...; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + ---; + ms => bsc_lchan [label="RLL Establish Ind"]; + bsc_lchan box bsc_lchan [label="associate lchan FSM with new conn FSM"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; } diff --git a/doc/timeslot-fsm.dot b/doc/timeslot-fsm.dot new file mode 100644 index 0000000..79e56c9 --- /dev/null +++ b/doc/timeslot-fsm.dot @@ -0,0 +1,36 @@ +digraph G { +rankdir=TB; + + invisible [style="invisible"] + invisible2 [style="invisible"] + NOT_INITIALIZED + lchan [label="lchan FSM",shape=box3d]; + UNUSED + IN_USE + BORKEN + PDCH + WAIT_PDCH_ACT + WAIT_PDCH_DEACT + + invisible -> NOT_INITIALIZED [label="OML\nOpstart ACK",style=dotted] + invisible2 -> NOT_INITIALIZED [label="RSL\nbootstrapped",style=dotted] + + NOT_INITIALIZED -> UNUSED [label="OML+RSL ready"] + + UNUSED -> IN_USE [label="first\nlchan\nrequested\nby lchan\nFSM"] + IN_USE -> UNUSED [label="last lchan\nunused"] + + UNUSED -> PDCH [label="onenter:\ndedicated PDCH\nand GPRS\nis enabled"] + UNUSED -> WAIT_PDCH_ACT [label="onenter:\ndyn TS\nand GPRS\nis enabled"] + WAIT_PDCH_ACT -> PDCH [label="dyn TS:\nPDCH activated"] + + PDCH -> WAIT_PDCH_DEACT [label="dyn TS:\nlchan of specific\npchan requested"] + WAIT_PDCH_DEACT -> UNUSED [label="lchan\nunused\n(e.g. error)",style=dashed] + WAIT_PDCH_DEACT -> IN_USE [label="dyn TS:\nPDCH released"] + + lchan -> {UNUSED} [label="TS_EV_LCHAN_\nREQUESTED",style=dotted] + {IN_USE} -> lchan [label="LCHAN_EV_\nTS_READY",style=dotted] + lchan -> IN_USE [label="TS_EV_LCHAN_\nUNUSED",style=dotted] + + {WAIT_PDCH_ACT,WAIT_PDCH_DEACT} -> BORKEN [label=timeout,style=dashed] +} diff --git a/doc/timeslot.msc b/doc/timeslot.msc new file mode 100644 index 0000000..9a8c360 --- /dev/null +++ b/doc/timeslot.msc @@ -0,0 +1,98 @@ +msc { + hscale=2; + bts [label="MS/BTS"], bsc[label="BSC"], bsc_ts[label="BSC timeslot FSM"], bsc_lchan[label="BSC lchan FSM"]; + + bsc_ts abox bsc_ts [label="NOT_INITIALIZED (no timeout)"]; + + ...; + bsc note bsc_ts [label="OML and RSL may be established in any order"]; + bts => bsc_ts [label="OML: Channel OPSTART ACK"]; + bsc -> bsc_ts [label="RSL bootstrapped"]; + bsc_ts abox bsc_ts [label="UNUSED (no timeout)"]; + + |||; + bts rbox bsc_lchan [label="UNUSED, onenter"]; + bsc_ts abox bsc_ts [label="UNUSED"]; + --- [label="GPRS enabled?"]; + --- [label="IF: dedicated PDCH?"]; + bsc_ts abox bsc_ts [label="PDCH (no timeout)"]; + + |||; + --- [label="IF: dynamic timeslot"]; + bsc_ts abox bsc_ts [label="WAIT_PDCH_ACT (?s, Tnnnn)"]; + bts <= bsc_ts [label="RSL Chan Activ of PDCH",ID="Osmocom style"]; + bts <= bsc_ts [label="RSL PDCH Act",ID="ip.access style"]; + ...; + --- [label="timeout:"]; + bsc_ts abox bsc_ts [label="BORKEN"]; + ---; + ...; + bts => bsc_ts [label="RSL RF Chan Activ ACK",ID="Osmocom style"]; + bts => bsc_ts [label="RSL PDCH Act ACK",ID="ip.access style"]; + bsc_ts abox bsc_ts [label="PDCH (no timeout)"]; + + --- [label="END: GPRS enabled?"]; + ...; + ...; + + bts rbox bsc_lchan [label="UNUSED, on event"]; + bsc_ts abox bsc_ts [label="UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED (data=lchan)"]; + bsc_ts abox bsc_ts [label="IN_USE"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bts <= bsc_lchan [label="RSL Chan Activ (and so on)"]; + ...; + bts rbox bsc_lchan [label="IN_USE, second lchan"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED (data=lchan)"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bts <= bsc_lchan [label="RSL Chan Activ (and so on)"]; + ...; + ...; + bts rbox bsc_lchan [label="IN_USE, when lchan FSM releases (both regularly, or due to error)"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED (data=lchan)"]; + --- [label="IF all lchan->fi->state == LCHAN_ST_UNUSED"]; + bsc_ts abox bsc_ts [label="UNUSED"]; + ---; + ...; + ...; + + + bts rbox bsc_lchan [label="PDCH on lchan request"]; + bsc_ts note bsc_lchan [label="TS_EV_LCHAN_REQUESTED should only come in on + lchans where it makes sense, both from TS kind as well as not + conflicting with other users of the lchan."]; + + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_REQUESTED"]; + bsc_ts abox bsc_ts [label="WAIT_PDCH_DEACT (?s, Tnnnn)"]; + bts <= bsc_ts [label="RSL RF Chan Release of PDCH",ID="Osmocom style"]; + bts <= bsc_ts [label="RSL PDCH Deact",ID="ip.access style"]; + ...; + --- [label="timeout:"]; + bsc_ts abox bsc_ts [label="BORKEN"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_ERROR"]; + ---; + ...; + bts => bsc_ts [label="RSL RF Chan Release ACK",ID="Osmocom style"]; + bts => bsc_ts [label="RSL PDCH Deact ACK",ID="ip.access style"]; + --- [label="IF all lchan->fi->state == LCHAN_ST_UNUSED"]; + bsc_ts note bsc_lchan [label="If the lchan FSM decided to give up in the + meantime, nr of active lchans might have dropped back to zero."]; + bsc_ts abox bsc_ts [label="UNUSED"]; + bsc_ts note bsc_ts [label="onenter at UNUSED state will trigger back to + PDCH mode"]; + |||; + --- [label="IF at least one lchan->state != LCHAN_ST_UNUSED"]; + bsc_ts abox bsc_ts [label="IN_USE"]; + bsc_ts rbox bsc_ts [label="Continue at 'IN_USE' above"]; + ...; + ...; + + bts rbox bsc_lchan [label="on erratic event"]; + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_ERROR"]; + bsc_lchan box bsc_lchan [label="release lchan"]; + ...; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + bsc_ts note bsc_ts [label="log error but ignore"]; + ...; + +} diff --git a/doc/ts-and-lchan-fsm-lifecycle.msc b/doc/ts-and-lchan-fsm-lifecycle.msc new file mode 100644 index 0000000..79d32c5 --- /dev/null +++ b/doc/ts-and-lchan-fsm-lifecycle.msc @@ -0,0 +1,116 @@ +msc { + hscale=2; + bts [label="MS/BTS"], bsc[label="BSC"], bsc_ts[label="BSC timeslot FSM"], bsc_lchan[label="BSC lchan FSM"]; + + bsc box bsc [label="gsm_bts_alloc()"]; + bsc box bsc [label="bts->c0 = gsm_bts_trx_alloc()"]; + bsc -> bsc_ts; + bsc_ts box bsc_ts [label="trx->ts[*].fi = osmo_fsm_inst_alloc(timeslot_fsm)"]; + bsc_ts abox bsc_ts [label="TS_ST_NOT_INITIALIZED"]; + bsc -> bsc_lchan; + bsc_lchan box bsc_lchan [label="ts->lchan[*].ts = ts;\nts->lchan[*].nr = i;"]; + bsc_lchan box bsc_lchan [label="ts->lchan[*].fi = NULL"]; + bsc_ts note bsc_lchan [label="lchan_select() will only pick lchans from initialized timeslots of + the right pchan kind. lchan_select() shall OSMO_ASSERT(lchan->fi)."]; + ...; + ...; + + bts rbox bsc_lchan [label="reading config file"]; + ...; + bsc box bsc [label="timeslot N"]; + bsc box bsc [label="phys_chan_config X"]; + bsc_ts box bsc_ts [label="ts->pchan_from_config = X"]; + bsc_ts note bsc_ts [label="still TS_ST_NOT_INITIALIZED"]; + ...; + bsc box bsc [label="trx 1..*"]; + bsc box bsc [label="bts->trx_list add gsm_bts_trx_alloc()"]; + bsc_ts rbox bsc_lchan [label="same as for c0 above"]; + ...; + ...; + bts rbox bsc_lchan [label="Starting Operation"]; + bts => bsc_ts [label="OML Channel OPSTART ACK"]; + bsc_ts box bsc_ts [label="ts_on_oml_opstart()"]; + bsc_ts box bsc_ts [label="ts->pchan_on_init = pchan_from_config"]; + --- [label="IF dedicated TS"]; + bsc_ts box bsc_ts [label="ts->pchan = ts->pchan_on_init"]; + --- [label="ELSE: dyn TS"]; + bsc_ts box bsc_ts [label="ts->pchan = NONE"]; + --- [label="END: dyn TS"]; + bsc_ts note bsc_lchan [label="Normally, the lchan FSM never terminates. Logic dictates that + the lchan is a child of the timeslot FSM, but it's not actually of functional importance + beyond basic sanity. Parent term event: TS_EV_LCHAN_UNUSED"]; + bsc_ts box bsc_ts [label="Determine N = maximum number of lchans applicable to pchan_on_init"]; + bsc_ts -> bsc_lchan; + bsc_lchan box bsc_lchan [label="ts->lchan[all N].type = osmo_fsm_inst_alloc(lchan_fsm)"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED\n(initial state)"]; + bsc_ts -> bsc_ts [label="ts_check_init()"]; + ...; + bsc -> bsc_ts [label="RSL bootstrapped"]; + bsc_ts -> bsc_ts [label="ts_check_init()"]; + ...; + bsc_ts box bsc_ts [label="ts_check_init()"]; + --- [label="as soon as both OML and RSL are ready:"]; + bsc_ts box bsc_ts [label="ts_on_init()"]; + bsc_ts abox bsc_ts [label="TS_ST_UNUSED"]; + --- [label="dyn TS"]; + bsc_ts box bsc_ts [label="onenter of TS_ST_UNUSED:"]; + bsc_ts abox bsc_ts [label="TS_ST_WAIT_PDCH_ACT"]; + ...; + bsc_ts abox bsc_ts [label="PDCH"]; + --- [label="END: dyn TS"]; + --- [label="END: OML and RSL ready"]; + ...; + bsc box bsc [label="lchan_select() picks an unused lchan"]; + bsc -> bsc_lchan [label="lchan_allocate()"]; + bsc_lchan -> bsc_ts [label="TS_EV_LCHAN_REQUESTED"]; + + --- [label="dyn TS"]; + bsc_ts note bsc_ts [label="possibly switch from PDCH...\n(see timeslot FSM)"]; + bsc_ts box bsc_ts [label="ts->pchan =\n requested GSM_PCHAN_XXX type"]; + ---; + + bsc_ts -> bsc_lchan [label="LCHAN_EV_TS_READY"]; + bsc_lchan note bsc_lchan [label="RSL Chan Alloc and so fort..."]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_ACTIVE"]; + ...; + bsc -> bsc_lchan [label="LCHAN_EV_RELEASE"]; + bsc_lchan note bsc_lchan [label="...RSL RF Chan Release..."]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; + bsc_ts abox bsc_ts [label="TS_ST_UNUSED"]; + --- [label="dyn TS"]; + bsc_ts note bsc_ts [label="possibly switch to PDCH"]; + ---; + ...; + ...; + bts rbox bsc_lchan [label="BTS RSL is dropped"]; + bsc box bsc [label="ipaccess_drop_rsl()"]; + bsc -> bsc_ts [label="ts[*]:"]; + bsc_ts abox bsc_ts [label="TS_ST_NOT_INITIALIZED"]; + bsc_ts note bsc_lchan [label="If it's just the RSL being dropped, transition lchan FSMs to + LCHAN_ST_UNUSED, but keep them allocated. Unless OML is re-established, any vty pchan + modifications must not take effect."]; + bsc_ts -> bsc_lchan [label="lchan[*]:"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED (ignored)"]; + ...; + --- [label="when RSL comes back later:"]; + bsc -> bsc_ts [label="RSL bootstrapped"]; + bsc_ts box bsc_ts [label="ts_check_init()"]; + bsc_ts rbox bsc_ts [label="see ts_check_init() above"]; + ...; + ...; + bts rbox bsc_lchan [label="BTS OML is dropped"]; + bsc note bsc [label="As part of OML drop, RSL is also dropped:"]; + bsc box bsc [label="ipaccess_drop_rsl()"]; + bsc -> bsc_ts [label="ts[*]:"]; + bsc_ts abox bsc_ts [label="TS_ST_NOT_INITIALIZED"]; + bsc rbox bsc [label="see 'BTS RSL is dropped' above"]; + bsc -> bsc_ts [label="ts[*]:"]; + bsc_ts -> bsc_lchan [label="lchan[*]:"]; + bsc_lchan box bsc_lchan [label="osmo_fsm_inst_term()"]; + bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED (ignored)"]; + bsc_lchan box bsc_lchan [label="lchan->fi = NULL"]; + bsc rbox bsc [label="Continue at 'Starting Operation'"]; + +} -- To view, visit https://gerrit.osmocom.org/9489 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I18d60de5ee932c962aad0a532965a55d570bb936 Gerrit-Change-Number: 9489 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:48 +0000 Subject: Change in osmo-bsc[master]: cosmetic: gscon: drop odd use of OSMO_STRINGIFY In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9292 ) Change subject: cosmetic: gscon: drop odd use of OSMO_STRINGIFY ...................................................................... cosmetic: gscon: drop odd use of OSMO_STRINGIFY Do not invoke OSMO_STRINGIFY() with arbitrary names, just quote instead. The idea was that OSMO_STRINGIFY() avoids typos by ensuring well-defined names are stringified, but this highlights that OSMO_STRINGIFY() is in fact usable with completely arbitrary arguments and actually lacks the validation part :/ Change-Id: I458cd2cd0d6ddb0e6db3bb8d546a20336ae8c5f1 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 14 insertions(+), 14 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 2ae4b33..d2d2095 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -820,19 +820,19 @@ static const struct osmo_fsm_state gscon_fsm_states[] = { [ST_INIT] = { - .name = OSMO_STRINGIFY(INIT), + .name = "INIT", .in_event_mask = S(GSCON_EV_A_CONN_REQ) | S(GSCON_EV_A_CONN_IND), .out_state_mask = S(ST_WAIT_CC), .action = gscon_fsm_init, }, [ST_WAIT_CC] = { - .name = OSMO_STRINGIFY(WAIT_CC), + .name = "WAIT_CC", .in_event_mask = S(GSCON_EV_A_CONN_CFM), .out_state_mask = S(ST_ACTIVE), .action = gscon_fsm_wait_cc, }, [ST_ACTIVE] = { - .name = OSMO_STRINGIFY(ACTIVE), + .name = "ACTIVE", .in_event_mask = EV_TRANSPARENT_SCCP | S(GSCON_EV_A_ASSIGNMENT_CMD) | S(GSCON_EV_A_HO_REQ) | S(GSCON_EV_HO_START), .out_state_mask = S(ST_CLEARING) | S(ST_WAIT_CRCX_BTS) | S(ST_WAIT_ASS_CMPL) | @@ -840,31 +840,31 @@ .action = gscon_fsm_active, }, [ST_WAIT_CRCX_BTS] = { - .name = OSMO_STRINGIFY(WAIT_CRCX_BTS), + .name = "WAIT_CRCX_BTS", .in_event_mask = EV_TRANSPARENT_SCCP | S(GSCON_EV_MGW_CRCX_RESP_BTS), .out_state_mask = S(ST_ACTIVE) | S(ST_WAIT_ASS_CMPL), .action = gscon_fsm_wait_crcx_bts, }, [ST_WAIT_ASS_CMPL] = { - .name = OSMO_STRINGIFY(WAIT_ASS_CMPL), + .name = "WAIT_ASS_CMPL", .in_event_mask = EV_TRANSPARENT_SCCP | S(GSCON_EV_RR_ASS_COMPL) | S(GSCON_EV_RR_ASS_FAIL), .out_state_mask = S(ST_ACTIVE) | S(ST_WAIT_MDCX_BTS), .action = gscon_fsm_wait_ass_cmpl, }, [ST_WAIT_MDCX_BTS] = { - .name = OSMO_STRINGIFY(WAIT_MDCX_BTS), + .name = "WAIT_MDCX_BTS", .in_event_mask = EV_TRANSPARENT_SCCP | S(GSCON_EV_MGW_MDCX_RESP_BTS), .out_state_mask = S(ST_ACTIVE) | S(ST_WAIT_CRCX_MSC), .action = gscon_fsm_wait_mdcx_bts, }, [ST_WAIT_CRCX_MSC] = { - .name = OSMO_STRINGIFY(WAIT_CRCX_MSC), + .name = "WAIT_CRCX_MSC", .in_event_mask = EV_TRANSPARENT_SCCP | S(GSCON_EV_MGW_CRCX_RESP_MSC), .out_state_mask = S(ST_ACTIVE), .action = gscon_fsm_wait_crcx_msc, }, [ST_CLEARING] = { - .name = OSMO_STRINGIFY(CLEARING), + .name = "CLEARING", .in_event_mask = S(GSCON_EV_RSL_CLEAR_COMPL), .action = gscon_fsm_clearing, }, @@ -873,27 +873,27 @@ * program flow in handover_logic.c a bit and handle some of the logic * here? */ [ST_WAIT_MT_HO_ACC] = { - .name = OSMO_STRINGIFY(WAIT_MT_HO_ACC), + .name = "WAIT_MT_HO_ACC", }, [ST_WAIT_MT_HO_COMPL] = { - .name = OSMO_STRINGIFY(WAIT_MT_HO_COMPL), + .name = "WAIT_MT_HO_COMPL", }, [ST_WAIT_MO_HO_CMD] = { - .name = OSMO_STRINGIFY(WAIT_MO_HO_CMD), + .name = "WAIT_MO_HO_CMD", }, [ST_MO_HO_PROCEEDING] = { - .name = OSMO_STRINGIFY(MO_HO_PROCEEDING), + .name = "MO_HO_PROCEEDING", }, /* Internal handover */ [ST_WAIT_HO_COMPL] = { - .name = OSMO_STRINGIFY(WAIT_HO_COMPL), + .name = "WAIT_HO_COMPL", .in_event_mask = S(GSCON_EV_HO_COMPL) | S(GSCON_EV_HO_FAIL) | S(GSCON_EV_HO_TIMEOUT), .out_state_mask = S(ST_ACTIVE) | S(ST_WAIT_MDCX_BTS_HO) | S(ST_CLEARING), .action = gscon_fsm_wait_ho_compl, }, [ST_WAIT_MDCX_BTS_HO] = { - .name = OSMO_STRINGIFY(WAIT_MDCX_BTS_HO), + .name = "WAIT_MDCX_BTS_HO", .in_event_mask = EV_TRANSPARENT_SCCP | S(GSCON_EV_MGW_MDCX_RESP_BTS), .action = gscon_fsm_wait_mdcx_bts_ho, .out_state_mask = S(ST_ACTIVE), -- To view, visit https://gerrit.osmocom.org/9292 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I458cd2cd0d6ddb0e6db3bb8d546a20336ae8c5f1 Gerrit-Change-Number: 9292 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:48 +0000 Subject: Change in osmo-bsc[master]: HO: introduce T7, T8, T101 timers In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9291 ) Change subject: HO: introduce T7, T8, T101 timers ...................................................................... HO: introduce T7, T8, T101 timers Will be used in upcoming inter-BSC handover. Change-Id: If9ecccc793426d214019f299b19d6ffa5a186546 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c 3 files changed, 20 insertions(+), 1 deletion(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 56cca16..281f2d4 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1187,6 +1187,9 @@ #define GSM_T3119_DEFAULT 10 #define GSM_T3122_DEFAULT 10 #define GSM_T3141_DEFAULT 10 +#define GSM_T7_DEFAULT 10 /* inter-BSC MO Handover first timeout, in seconds */ +#define GSM_T8_DEFAULT 10 /* inter-BSC MO Handover second timeout, in seconds */ +#define GSM_T101_DEFAULT 10 /* inter-BSC MT Handover timeout, in seconds */ struct gsm_tz { int override; /* if 0, use system's time zone instead. */ @@ -1221,7 +1224,7 @@ /* timer values */ int T3101; - int T3103; + int T3103; /*< Handover timeout */ int T3105; int T3107; int T3109; @@ -1232,6 +1235,9 @@ int T3119; int T3122; int T3141; + int T7; /*< inter-BSC handover MO timeout from Handover Required to Handover Command */ + int T8; /*< inter-BSC handover MO timeout from Handover Command to final Clear*/ + int T101; /*< inter-BSC handover MT timeout from Handover Request to Handover Accept */ enum gsm_chan_t ctype_by_chreq[_NUM_CHREQ_T]; diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 5d0feb6..837f431 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1001,6 +1001,10 @@ VTY_OUT_TIMER(3119); VTY_OUT_TIMER(3122); VTY_OUT_TIMER(3141); + VTY_OUT_TIMER(7); + VTY_OUT_TIMER(8); + VTY_OUT_TIMER(101); + if (!gsmnet->dyn_ts_allow_tch_f) vty_out(vty, " dyn_ts_allow_tch_f 0%s", VTY_NEWLINE); if (gsmnet->tz.override != 0) { @@ -1917,6 +1921,9 @@ DECLARE_TIMER(3119, "Currently not used") DECLARE_TIMER(3122, "Default waiting time (seconds) after IMM ASS REJECT") DECLARE_TIMER(3141, "Currently not used") +DECLARE_TIMER(7, "Set the outgoing inter-BSC Handover timeout, from Handover Required to Handover Command") +DECLARE_TIMER(8, "Set the outgoing inter-BSC Handover timeout, from Handover Command to final Clear") +DECLARE_TIMER(101, "Set the incoming inter-BSC Handover timeout, from Handover Request to Accept") DEFUN_DEPRECATED(cfg_net_dtx, cfg_net_dtx_cmd, @@ -4842,6 +4849,9 @@ install_element(GSMNET_NODE, &cfg_net_T3119_cmd); install_element(GSMNET_NODE, &cfg_net_T3122_cmd); install_element(GSMNET_NODE, &cfg_net_T3141_cmd); + install_element(GSMNET_NODE, &cfg_net_T7_cmd); + install_element(GSMNET_NODE, &cfg_net_T8_cmd); + install_element(GSMNET_NODE, &cfg_net_T101_cmd); install_element(GSMNET_NODE, &cfg_net_dtx_cmd); install_element(GSMNET_NODE, &cfg_net_pag_any_tch_cmd); /* See also handover commands added on net level from handover_vty.c */ diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index db84e2a..5a48988 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -64,6 +64,9 @@ net->T3119 = GSM_T3119_DEFAULT; net->T3122 = GSM_T3122_DEFAULT; net->T3141 = GSM_T3141_DEFAULT; + net->T7 = GSM_T7_DEFAULT; + net->T8 = GSM_T8_DEFAULT; + net->T101 = GSM_T101_DEFAULT; return net; } -- To view, visit https://gerrit.osmocom.org/9291 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If9ecccc793426d214019f299b19d6ffa5a186546 Gerrit-Change-Number: 9291 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:49 +0000 Subject: Change in osmo-bsc[master]: drop dead code: conn->T10, handled by gscon instead In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9503 ) Change subject: drop dead code: conn->T10, handled by gscon instead ...................................................................... drop dead code: conn->T10, handled by gscon instead Change-Id: Ief20cb0f46dd93f46dd765dca307724dc2b3487c --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_api.c 2 files changed, 0 insertions(+), 10 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 281f2d4..8f245c9 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -112,8 +112,6 @@ /* handover information, if a handover is pending for this conn. */ struct bsc_handover *ho; - /* timer for assignment handling */ - struct osmo_timer_list T10; /* the future allocated but not yet used lchan during ASSIGNMENT */ struct gsm_lchan *secondary_lchan; diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 218f1a1..4cf11a4 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -327,9 +327,6 @@ return; } - /* swap channels */ - osmo_timer_del(&conn->T10); - lchan_release(conn->lchan, 0, RSL_REL_LOCAL_END); conn->lchan = conn->secondary_lchan; conn->secondary_lchan = NULL; @@ -374,7 +371,6 @@ } /* stop the timer and release it */ - osmo_timer_del(&conn->T10); if (conn->secondary_lchan) { lchan_release(conn->secondary_lchan, 0, RSL_REL_LOCAL_END); conn->secondary_lchan = NULL; @@ -533,7 +529,6 @@ handle_ass_fail(conn, msg); break; case GSM48_MT_RR_CHAN_MODE_MODIF_ACK: - osmo_timer_del(&conn->T10); rc = gsm48_rx_rr_modif_ack(msg); if (rc < 0) bsc_assign_fail(conn, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, NULL); @@ -645,8 +640,6 @@ conn->lchan = NULL; conn->secondary_lchan = NULL; - osmo_timer_del(&conn->T10); - return 0; } @@ -712,7 +705,6 @@ if (conn->secondary_lchan == lchan) { LOGPLCHAN(lchan, DMSC, LOGL_NOTICE, "lchan release on new lchan, Assignment failed\n"); - osmo_timer_del(&conn->T10); conn->secondary_lchan = NULL; bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE, NULL); -- To view, visit https://gerrit.osmocom.org/9503 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ief20cb0f46dd93f46dd765dca307724dc2b3487c Gerrit-Change-Number: 9503 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:16:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:16:49 +0000 Subject: Change in osmo-bsc[master]: make T10 configurable like the rest of them In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9504 ) Change subject: make T10 configurable like the rest of them ...................................................................... make T10 configurable like the rest of them Change-Id: I112c0db17d355d57eb08bc67121ccf49fbf53943 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/net_init.c 4 files changed, 9 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 8f245c9..5794617 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1185,6 +1185,7 @@ #define GSM_T3119_DEFAULT 10 #define GSM_T3122_DEFAULT 10 #define GSM_T3141_DEFAULT 10 +#define GSM_T10_DEFAULT 6 /* RR Assignment timeout, in seconds */ #define GSM_T7_DEFAULT 10 /* inter-BSC MO Handover first timeout, in seconds */ #define GSM_T8_DEFAULT 10 /* inter-BSC MO Handover second timeout, in seconds */ #define GSM_T101_DEFAULT 10 /* inter-BSC MT Handover timeout, in seconds */ @@ -1233,6 +1234,7 @@ int T3119; int T3122; int T3141; + int T10; /*< RR Assignment timeout, in seconds */ int T7; /*< inter-BSC handover MO timeout from Handover Required to Handover Command */ int T8; /*< inter-BSC handover MO timeout from Handover Command to final Clear*/ int T101; /*< inter-BSC handover MT timeout from Handover Request to Handover Accept */ diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index d2d2095..9c8dbda 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -45,9 +45,6 @@ #define MGCP_MGW_HO_TIMEOUT 4 /* in seconds */ #define MGCP_MGW_HO_TIMEOUT_TIMER_NR 2 -#define GSM0808_T10_TIMER_NR 10 -#define GSM0808_T10_VALUE 6 - #define ENDPOINT_ID "rtpbridge/*@mgw" enum gscon_fsm_states { @@ -447,7 +444,7 @@ return; } - osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, GSM0808_T10_VALUE, GSM0808_T10_TIMER_NR); + osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, conn->network->T10, 10); break; default: /* An unsupported channel is requested, so we have to @@ -534,7 +531,7 @@ return; } - osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, GSM0808_T10_VALUE, GSM0808_T10_TIMER_NR); + osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, conn->network->T10, 10); break; case GSCON_EV_MO_DTAP: forward_dtap(conn, (struct msgb *)data, fi); @@ -1050,7 +1047,7 @@ * gscon_cleanup() above) */ osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, NULL); break; - case GSM0808_T10_TIMER_NR: /* Assignment Failed */ + case 10: /* Assignment Failed */ assignment_failed(fi, GSM0808_CAUSE_RADIO_INTERFACE_FAILURE); break; case MGCP_MGW_TIMEOUT_TIMER_NR: /* Assignment failed (no response from MGW) */ diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 837f431..57c5363 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -1001,6 +1001,7 @@ VTY_OUT_TIMER(3119); VTY_OUT_TIMER(3122); VTY_OUT_TIMER(3141); + VTY_OUT_TIMER(10); VTY_OUT_TIMER(7); VTY_OUT_TIMER(8); VTY_OUT_TIMER(101); @@ -1921,6 +1922,7 @@ DECLARE_TIMER(3119, "Currently not used") DECLARE_TIMER(3122, "Default waiting time (seconds) after IMM ASS REJECT") DECLARE_TIMER(3141, "Currently not used") +DECLARE_TIMER(10, "Assignment Command timeout in seconds") DECLARE_TIMER(7, "Set the outgoing inter-BSC Handover timeout, from Handover Required to Handover Command") DECLARE_TIMER(8, "Set the outgoing inter-BSC Handover timeout, from Handover Command to final Clear") DECLARE_TIMER(101, "Set the incoming inter-BSC Handover timeout, from Handover Request to Accept") @@ -4849,6 +4851,7 @@ install_element(GSMNET_NODE, &cfg_net_T3119_cmd); install_element(GSMNET_NODE, &cfg_net_T3122_cmd); install_element(GSMNET_NODE, &cfg_net_T3141_cmd); + install_element(GSMNET_NODE, &cfg_net_T10_cmd); install_element(GSMNET_NODE, &cfg_net_T7_cmd); install_element(GSMNET_NODE, &cfg_net_T8_cmd); install_element(GSMNET_NODE, &cfg_net_T101_cmd); diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 5a48988..3ee35fe 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -64,6 +64,7 @@ net->T3119 = GSM_T3119_DEFAULT; net->T3122 = GSM_T3122_DEFAULT; net->T3141 = GSM_T3141_DEFAULT; + net->T10 = GSM_T10_DEFAULT; net->T7 = GSM_T7_DEFAULT; net->T8 = GSM_T8_DEFAULT; net->T101 = GSM_T101_DEFAULT; -- To view, visit https://gerrit.osmocom.org/9504 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I112c0db17d355d57eb08bc67121ccf49fbf53943 Gerrit-Change-Number: 9504 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:17:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:17:08 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid sending reset ack twice in a row In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9505 ) Change subject: bsc-nat: Avoid sending reset ack twice in a row ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iedf45a787d5e684b2f199e8e947da434fe75cf05 Gerrit-Change-Number: 9505 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:17:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:17:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:17:16 +0000 Subject: Change in openbsc[master]: bsc-nat: bsc_nat_filter_ipa: Improve documentation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9506 ) Change subject: bsc-nat: bsc_nat_filter_ipa: Improve documentation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I91b18aeb8bdc2a1b392474318b1df1b4b1fee5a3 Gerrit-Change-Number: 9506 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:17:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:17:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:17:26 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Remove unneeded goto In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9507 ) Change subject: bsc-nat: forward_sccp_to_msc: Remove unneeded goto ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e98ef1dd410aa3e534666356a74590dac87b918 Gerrit-Change-Number: 9507 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:17:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:17:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:17:45 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9508 ) Change subject: bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2ba0aeca1ee0fffd75019bfba37907f0b8015066 Gerrit-Change-Number: 9508 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:17:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:17:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:17:57 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authent... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9509 ) Change subject: bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authenticated bsc ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifd0c145ff733fdfb2f6fcb32065de99ee951d106 Gerrit-Change-Number: 9509 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:17:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:18:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:18:15 +0000 Subject: Change in openbsc[master]: bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format ... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9510 ) Change subject: bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format received ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I972961b8967076c56c607f98c2360054144951e4 Gerrit-Change-Number: 9510 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:18:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:18:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:18:57 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid heap-use-after-free on bsc auth failure In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9511 ) Change subject: bsc-nat: Avoid heap-use-after-free on bsc auth failure ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifb39a045b98bc2043a98a9787fc61cbcddc368e0 Gerrit-Change-Number: 9511 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:18:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:18:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:18:59 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid sending reset ack twice in a row In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9505 ) Change subject: bsc-nat: Avoid sending reset ack twice in a row ...................................................................... bsc-nat: Avoid sending reset ack twice in a row Fixes: 38a77d0098b21e14a42a91fd83bc8179b2978555 Change-Id: Iedf45a787d5e684b2f199e8e947da434fe75cf05 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 38a29be..240286e 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1261,7 +1261,6 @@ /* if we filter out the reset send an ack to the BSC */ if (parsed->bssap == 0 && parsed->gsm_type == BSS_MAP_MSG_RESET) { send_reset_ack(bsc); - send_reset_ack(bsc); } else if (parsed->ipa_proto == IPAC_PROTO_IPACCESS) { /* do we know who is handling this? */ if (msg->l2h[0] == IPAC_MSGT_ID_RESP && msgb_l2len(msg) > 2) { -- To view, visit https://gerrit.osmocom.org/9505 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iedf45a787d5e684b2f199e8e947da434fe75cf05 Gerrit-Change-Number: 9505 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:18:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:18:59 +0000 Subject: Change in openbsc[master]: bsc-nat: bsc_nat_filter_ipa: Improve documentation In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9506 ) Change subject: bsc-nat: bsc_nat_filter_ipa: Improve documentation ...................................................................... bsc-nat: bsc_nat_filter_ipa: Improve documentation Change-Id: I91b18aeb8bdc2a1b392474318b1df1b4b1fee5a3 --- M openbsc/src/osmo-bsc_nat/bsc_filter.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_filter.c b/openbsc/src/osmo-bsc_nat/bsc_filter.c index 6a9e99f..ddfcdcb 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_filter.c +++ b/openbsc/src/osmo-bsc_nat/bsc_filter.c @@ -135,6 +135,8 @@ return parsed; } +/* Returns 0 if message is whitelisted (has to beforwarded by bsc-nat), 1 if +/* it's blacklisted (not to be forwarded) */ int bsc_nat_filter_ipa(int dir, struct msgb *msg, struct bsc_nat_parsed *parsed) { int i; @@ -177,7 +179,7 @@ } } - /* go through the whitelust now */ + /* go through the whitelist now */ for (i = 0; i < ARRAY_SIZE(white_list); ++i) { /* ignore the rule? */ if (white_list[i].filter_dir != FILTER_TO_BOTH -- To view, visit https://gerrit.osmocom.org/9506 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I91b18aeb8bdc2a1b392474318b1df1b4b1fee5a3 Gerrit-Change-Number: 9506 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:19:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:19:00 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Remove unneeded goto In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9507 ) Change subject: bsc-nat: forward_sccp_to_msc: Remove unneeded goto ...................................................................... bsc-nat: forward_sccp_to_msc: Remove unneeded goto Change-Id: I1e98ef1dd410aa3e534666356a74590dac87b918 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 240286e..b8cbb11 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1277,8 +1277,6 @@ if (TLVP_PRESENT(&tvp, IPAC_IDTAG_UNITNAME)) ipaccess_auth_bsc(&tvp, bsc); } - - goto exit2; } exit2: -- To view, visit https://gerrit.osmocom.org/9507 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1e98ef1dd410aa3e534666356a74590dac87b918 Gerrit-Change-Number: 9507 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:19:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:19:00 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9508 ) Change subject: bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section ...................................................................... bsc-nat: forward_sccp_to_msc: Remove unneeded exit3 section exit3 is the same as exit2 with the addition of calling bsc_send_con_refuse(). Since exit3 path is only followed once, it's easier to call bsc_send_con_refuse() on that code path and remove exit3 entirely in order to simplify the function. Change-Id: I2ba0aeca1ee0fffd75019bfba37907f0b8015066 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 3 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index b8cbb11..928dd4c 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1142,7 +1142,9 @@ if (imsi) bsc_nat_inform_reject(bsc, imsi); bsc_stat_reject(filter, bsc, 0); - goto exit3; + /* send a SCCP Connection Refused */ + bsc_send_con_refuse(bsc, parsed, con_type, &cause); + goto exit2; } if (!create_sccp_src_ref(bsc, parsed)) @@ -1285,15 +1287,6 @@ talloc_free(parsed); msgb_free(msg); return -1; - -exit3: - /* send a SCCP Connection Refused */ - if (imsi) - talloc_free(imsi); - bsc_send_con_refuse(bsc, parsed, con_type, &cause); - talloc_free(parsed); - msgb_free(msg); - return -1; } static int ipaccess_bsc_read_cb(struct osmo_fd *bfd) -- To view, visit https://gerrit.osmocom.org/9508 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2ba0aeca1ee0fffd75019bfba37907f0b8015066 Gerrit-Change-Number: 9508 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:19:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:19:00 +0000 Subject: Change in openbsc[master]: bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authent... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9509 ) Change subject: bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authenticated bsc ...................................................................... bsc-nat: forward_sccp_to_msc: Fix memleak on receive from non authenticated bsc variable "parsed" was not being freed in this case. By calling exit2 we make sure it is freed. Change-Id: Ifd0c145ff733fdfb2f6fcb32065de99ee951d106 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 928dd4c..373ba97 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1124,8 +1124,7 @@ */ if (!bsc->authenticated) { LOGP(DNAT, LOGL_ERROR, "BSC is not authenticated.\n"); - msgb_free(msg); - return -1; + goto exit2; } -- To view, visit https://gerrit.osmocom.org/9509 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifd0c145ff733fdfb2f6fcb32065de99ee951d106 Gerrit-Change-Number: 9509 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:19:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:19:00 +0000 Subject: Change in openbsc[master]: bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format ... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9510 ) Change subject: bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format received ...................................................................... bsc-nat: ipaccess_auth_bsc: Close bsc conn immediately on bad format received This commit changes behaviour to a (imho) better logic and is a preparation for follow-up commits to avoid heap-use-after-free error when closing the bsc connection. Previously, authentication would still not be accepted but the connection would be staying alive for a while until id_timeout timer triggers. Let's close the connection immediately instead, this way BSC side can see quickly something is wrong with what it is sending. Furthermore, this way the logic of the function is simplified: If auth goes well, conn is alive. If auth goes wrong, conn is closed. Change-Id: I972961b8967076c56c607f98c2360054144951e4 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index 373ba97..fb2ec83 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1038,12 +1038,14 @@ if (len <= 0) { LOGP(DNAT, LOGL_ERROR, "Token with length zero on fd: %d\n", bsc->write_queue.bfd.fd); + bsc_close_connection(bsc); return; } if (token[len - 1] != '\0') { LOGP(DNAT, LOGL_ERROR, "Token not null terminated on fd: %d\n", bsc->write_queue.bfd.fd); + bsc_close_connection(bsc); return; } -- To view, visit https://gerrit.osmocom.org/9510 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I972961b8967076c56c607f98c2360054144951e4 Gerrit-Change-Number: 9510 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:19:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:19:01 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid heap-use-after-free on bsc auth failure In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9511 ) Change subject: bsc-nat: Avoid heap-use-after-free on bsc auth failure ...................................................................... bsc-nat: Avoid heap-use-after-free on bsc auth failure Previous to this patch, if ipaccess_auth_bsc() failed finding the requested auth token, it would call bsc_close_connection() on it. However, it would not report callers that the bsc conn was closed. Since ipaccess_auth_bsc is called in the following path: [osmo_wqueue_bfd_cb->ipaccess_bsc_read_cb->forward_sccp_to_msc->ipaccess_auth_bsc] It needs to notify the lower layers (wqueue) that the conn/osmo_fd has been freed an it should avoid keep using/forwarding it again. This patch fixes this issue by moving the conn closing one layer down the stack (from ipaccess_auth_bsc to forward_sccp_to_msc), and in there we now close the conn and provide required information to the callers. Fixes following Asan report: Unit_Name='foobar' <0015> openbsc/openbsc/src/osmo-bsc_nat/bsc_nat.c:1061 No bsc found for token 'foobar' len 6 on fd: 11. ================================================================= ==18946==ERROR: AddressSanitizer: heap-use-after-free on address 0x616001f8b81c at pc 0x7ffff6067540 bp 0x7fffffffe170 sp 0x7fffffffe168 READ of size 4 at 0x616001f8b81c thread T0 #0 0x7ffff606753f in osmo_wqueue_bfd_cb libosmocore/src/write_queue.c:65 #1 0x7ffff605206b in osmo_fd_disp_fds libosmocore/src/select.c:217 #2 0x7ffff6052305 in osmo_select_main libosmocore/src/select.c:257 #3 0x421c8e in main openbsc/openbsc/src/osmo-bsc_nat/bsc_nat.c:1714 #4 0x7ffff47ffb44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b44) #5 0x406438 (/bin/osmo-bsc_nat+0x406438) Fixes: SYS#4250 Change-Id: Ifb39a045b98bc2043a98a9787fc61cbcddc368e0 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 32 insertions(+), 19 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index fb2ec83..e912f60 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -958,21 +958,23 @@ talloc_free(connection); } -static void bsc_maybe_close(struct bsc_connection *bsc) +/* Returns true if bsc_close_connection() was called, false otherwise */ +static bool bsc_maybe_close(struct bsc_connection *bsc) { struct nat_sccp_connection *sccp; if (!bsc->nat->blocked) - return; + return false; /* are there any connections left */ llist_for_each_entry(sccp, &bsc->nat->sccp_connections, list_entry) if (sccp->bsc == bsc) - return; + return false; /* nothing left, close the BSC */ LOGP(DNAT, LOGL_NOTICE, "Cleaning up BSC %d in blocking mode.\n", bsc->cfg ? bsc->cfg->nr : -1); bsc_close_connection(bsc); + return true; } static void ipaccess_close_bsc(void *data) @@ -1021,7 +1023,8 @@ return osmo_constant_time_cmp(vec.res, key, 8) == 0; } -static void ipaccess_auth_bsc(struct tlv_parsed *tvp, struct bsc_connection *bsc) +/* Returns true if connection was successfully authenticated, false otherwise. */ +static bool ipaccess_auth_bsc(struct tlv_parsed *tvp, struct bsc_connection *bsc) { struct bsc_config *conf; const char *token = (const char *) TLVP_VAL(tvp, IPAC_IDTAG_UNITNAME); @@ -1032,21 +1035,19 @@ if (bsc->cfg) { LOGP(DNAT, LOGL_ERROR, "Reauth on fd %d bsc nr %d\n", bsc->write_queue.bfd.fd, bsc->cfg->nr); - return; + return true; } if (len <= 0) { LOGP(DNAT, LOGL_ERROR, "Token with length zero on fd: %d\n", bsc->write_queue.bfd.fd); - bsc_close_connection(bsc); - return; + return false; } if (token[len - 1] != '\0') { LOGP(DNAT, LOGL_ERROR, "Token not null terminated on fd: %d\n", bsc->write_queue.bfd.fd); - bsc_close_connection(bsc); - return; + return false; } /* @@ -1061,8 +1062,7 @@ LOGP(DNAT, LOGL_ERROR, "No bsc found for token '%s' len %d on fd: %d.\n", token, bsc->write_queue.bfd.fd, len); - bsc_close_connection(bsc); - return; + return false; } /* We have set a key and expect it to be present */ @@ -1070,8 +1070,7 @@ LOGP(DNAT, LOGL_ERROR, "Wrong key for bsc nr %d fd: %d.\n", conf->nr, bsc->write_queue.bfd.fd); - bsc_close_connection(bsc); - return; + return false; } rate_ctr_inc(&conf->stats.ctrg->ctr[BCFG_CTR_NET_RECONN]); @@ -1081,6 +1080,7 @@ LOGP(DNAT, LOGL_NOTICE, "Authenticated bsc nr: %d on fd %d\n", conf->nr, bsc->write_queue.bfd.fd); start_ping_pong(bsc); + return true; } static void handle_con_stats(struct nat_sccp_connection *con) @@ -1098,7 +1098,14 @@ rate_ctr_inc(&ctrg->ctr[id]); } -static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg) +/*! + * Forward messages to msc and verify received authentication messages. + * \param[in] bsc Pointer to bsc_connection structure from which the message was received. + * \param[in] msg The msg received to be forwarded to the msc. + * \param[out] bsc_conn_closed Whether bsc_close_connection(bsc) was called inside the function. + * \returns 0 on success, -1 on error. + */ +static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg, bool *bsc_conn_closed) { int con_filter = 0; char *imsi = NULL; @@ -1107,6 +1114,7 @@ int con_type; struct bsc_nat_parsed *parsed; struct bsc_filter_reject_cause cause; + *bsc_conn_closed = false; /* Parse and filter messages */ parsed = bsc_nat_parse(msg); @@ -1216,7 +1224,7 @@ con_filter = con->con_local; } remove_sccp_src_ref(bsc, msg, parsed); - bsc_maybe_close(bsc); + *bsc_conn_closed = bsc_maybe_close(bsc); break; case SCCP_MSG_TYPE_UDT: /* simply forward everything */ @@ -1277,8 +1285,12 @@ "message with malformed TLVs\n"); return ret; } - if (TLVP_PRESENT(&tvp, IPAC_IDTAG_UNITNAME)) - ipaccess_auth_bsc(&tvp, bsc); + if (TLVP_PRESENT(&tvp, IPAC_IDTAG_UNITNAME)) { + if (!ipaccess_auth_bsc(&tvp, bsc)) { + bsc_close_connection(bsc); + *bsc_conn_closed = true; + } + } } } @@ -1296,6 +1308,7 @@ struct msgb *msg = NULL; struct ipaccess_head *hh; struct ipaccess_head_ext *hh_ext; + bool fd_closed = false; int ret; ret = ipa_msg_recv_buffered(bfd->fd, &msg, &bsc->pending_msg); @@ -1344,8 +1357,8 @@ /* FIXME: Currently no PONG is sent to the BSC */ /* FIXME: Currently no ID ACK is sent to the BSC */ - forward_sccp_to_msc(bsc, msg); - return 0; + forward_sccp_to_msc(bsc, msg, &fd_closed); + return fd_closed ? -EBADF : 0; close_fd: bsc_close_connection(bsc); -- To view, visit https://gerrit.osmocom.org/9511 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifb39a045b98bc2043a98a9787fc61cbcddc368e0 Gerrit-Change-Number: 9511 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:19:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:19:12 +0000 Subject: Change in osmo-bts[master]: bts.c: Add missing include for gsm48_rr_msg_name In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9512 ) Change subject: bts.c: Add missing include for gsm48_rr_msg_name ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia82bc6a5ff7e3989cf0b85ee689d0c3344720eda Gerrit-Change-Number: 9512 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:19:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:19:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:19:34 +0000 Subject: Change in osmo-bts[master]: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9513 ) Change subject: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd Gerrit-Change-Number: 9513 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:19:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:20:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:20:08 +0000 Subject: Change in osmo-bts[master]: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9514 ) Change subject: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb Gerrit-Change-Number: 9514 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:20:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:25:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:25:13 +0000 Subject: Change in osmo-bts[master]: Send DELETE_IND when dropping Imm Assign pending message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9515 ) Change subject: Send DELETE_IND when dropping Imm Assign pending message ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9515/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9515/2//COMMIT_MSG at 14 PS2, Line 14: this clearly relates to, if not fixes OS#2990 https://osmocom.org/issues/2990 -- To view, visit https://gerrit.osmocom.org/9515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a Gerrit-Change-Number: 9515 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 08 Jun 2018 16:25:13 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:25:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:25:16 +0000 Subject: Change in osmo-bts[master]: bts.c: Add missing include for gsm48_rr_msg_name In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9512 ) Change subject: bts.c: Add missing include for gsm48_rr_msg_name ...................................................................... bts.c: Add missing include for gsm48_rr_msg_name It seems I somehow mischecked that the required include for gsm48_rr_msg_name was not yet present in the file. Fixes: 44a35902adde70b4e4696640f09f448ba44d51d2 Change-Id: Ia82bc6a5ff7e3989cf0b85ee689d0c3344720eda --- M src/common/bts.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/bts.c b/src/common/bts.c index f0850c1..55f4b94 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include -- To view, visit https://gerrit.osmocom.org/9512 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia82bc6a5ff7e3989cf0b85ee689d0c3344720eda Gerrit-Change-Number: 9512 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:25:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:25:17 +0000 Subject: Change in osmo-bts[master]: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9513 ) Change subject: bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 ...................................................................... bts_agch_enqueue: Decrease queue len hard_limit from 1000 to 100 In a prod setup, complete channel saturation at the bsc was detected, and Immediate Assignments were not being answered by the MS once sent by the BTS. Further investigation showed that the BTS was all the time printing messages like this: "bts.c:540 AGCH: too many messages in queue, refusing message type 0x3f, length = 1001/10" So it seems the AGCH queue was becoming incredibly full (1000, hard limit triggered the log), while acgch_queue.max_length was set to 10. As a result, most probably the Immediate Assignments being sent to the MS are super old in time, and the MS doesn't known about them anymore once they are receivied, so no answer is sent back. Let's try to avoid that by decreasing the hard limit so we never reach that big queue_len scenario. The number 100 is selected from data gatherered in agch_test.c which prints a table of max_length values based on different setups. Some values can reach around 80 messages, so let's use a slightly bigger hard limit. Related: SYS#2695 Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd --- M src/common/bts.c M tests/agch/agch_test.ok 2 files changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/bts.c b/src/common/bts.c index 55f4b94..4fa916c 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -533,7 +533,7 @@ int bts_agch_enqueue(struct gsm_bts *bts, struct msgb *msg) { - int hard_limit = 1000; + int hard_limit = 100; struct gsm48_imm_ass_rej *imm_ass_cmd = msgb_l3(msg); if (bts->agch_queue.length > hard_limit) { diff --git a/tests/agch/agch_test.ok b/tests/agch/agch_test.ok index 49173a3..4e0a9e1 100644 --- a/tests/agch/agch_test.ok +++ b/tests/agch/agch_test.ok @@ -18,6 +18,6 @@ 32 83 28 83 83 83 50 28 14 28 28 28 Testing AGCH messages queue handling. -AGCH filled: count 720, imm.ass 80, imm.ass.rej 640 (refs 640), queue limit 32, occupied 240, dropped 0, merged 480, rejected 0, ag-res 0, non-res 0 -AGCH drained: multiframes 32, imm.ass 80, imm.ass.rej 12 (refs 48), queue limit 32, occupied 0, dropped 148, merged 480, rejected 0, ag-res 31, non-res 61 +AGCH filled: count 720, imm.ass 80, imm.ass.rej 640 (refs 640), queue limit 32, occupied 101, dropped 0, merged 198, rejected 421, ag-res 0, non-res 0 +AGCH drained: multiframes 16, imm.ass 34, imm.ass.rej 12 (refs 42), queue limit 32, occupied 0, dropped 56, merged 198, rejected 421, ag-res 15, non-res 30 Success -- To view, visit https://gerrit.osmocom.org/9513 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I272798c959abec123776d2fa8dad5685ec512fbd Gerrit-Change-Number: 9513 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:25:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:25:17 +0000 Subject: Change in osmo-bts[master]: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9514 ) Change subject: compact AGCH queue: Drop too msg diff than IMM_ASS_REJ ...................................................................... compact AGCH queue: Drop too msg diff than IMM_ASS_REJ We saw in a recent prod setup a BSC with saturated channels. Further investigation lead to a AGCH queue of 1000 (previous hard_limit) messages, most of them being regular IMM ASSIGN (non REJ). Hence, we also want to get rid of other messages in the AGCH queue (like regular IMM ASSIGN). Furthermore, In this scenario, sending IMM ASS REJ is as important as other messages given than nowadays we support dynamic wait indicatior (calculated based on chan load), which means if we reach the MS, we can tell it to wait for a long time to reach us again, which is desirable. Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb --- M src/common/bts.c M tests/agch/agch_test.ok 2 files changed, 1 insertion(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/bts.c b/src/common/bts.c index 4fa916c..ae75b2c 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -615,11 +615,6 @@ struct gsm48_imm_ass *imm_ass_cmd = msgb_l3(msg); int p_drop; - if (imm_ass_cmd->msg_type != GSM48_MT_RR_IMM_ASS_REJ) - return; - - /* IMMEDIATE ASSIGN REJECT */ - p_drop = (bts->agch_queue.length - offs) * slope / max_len; if ((random() & 0xffff) >= p_drop) diff --git a/tests/agch/agch_test.ok b/tests/agch/agch_test.ok index 4e0a9e1..a506f45 100644 --- a/tests/agch/agch_test.ok +++ b/tests/agch/agch_test.ok @@ -19,5 +19,5 @@ 50 28 14 28 28 28 Testing AGCH messages queue handling. AGCH filled: count 720, imm.ass 80, imm.ass.rej 640 (refs 640), queue limit 32, occupied 101, dropped 0, merged 198, rejected 421, ag-res 0, non-res 0 -AGCH drained: multiframes 16, imm.ass 34, imm.ass.rej 12 (refs 42), queue limit 32, occupied 0, dropped 56, merged 198, rejected 421, ag-res 15, non-res 30 +AGCH drained: multiframes 4, imm.ass 2, imm.ass.rej 8 (refs 26), queue limit 32, occupied 0, dropped 92, merged 198, rejected 421, ag-res 3, non-res 6 Success -- To view, visit https://gerrit.osmocom.org/9514 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I022b8948da8be13fb8f4bc36e7c9dab11c35fddb Gerrit-Change-Number: 9514 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:25:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:25:37 +0000 Subject: Change in osmo-sgsn[master]: add a test for OS#3178 (invalid unitdata message) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9500 ) Change subject: add a test for OS#3178 (invalid unitdata message) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I39189701a57c785ffdacc3ae26d7aa93bb06cde6 Gerrit-Change-Number: 9500 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 16:25:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:25:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:25:38 +0000 Subject: Change in osmo-sgsn[master]: add a test for OS#3178 (invalid unitdata message) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9500 ) Change subject: add a test for OS#3178 (invalid unitdata message) ...................................................................... add a test for OS#3178 (invalid unitdata message) Add a test which reproduces the parsing problem. Whether this problem is due to an invalid message or a parser bug is yet to be determined. Until then, this test helps with analyzing the problem further. Change-Id: I39189701a57c785ffdacc3ae26d7aa93bb06cde6 Related: OS#3178 --- M tests/gbproxy/gbproxy_test.c 1 file changed, 28 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index f9a1c6b..e6bb2e6 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -4927,6 +4927,33 @@ cleanup_test(); } +/* See OS#3178 "gbproxy: failed to parse invalid BSSGP-UNITDATA message" */ +static void test_gbproxy_parse_bssgp_unitdata() +{ + const char *hex = "0000239401e155cfea000004088872f4801018009c4000800e000601c0416c4338"; + struct msgb *msg = msgb_alloc(1034, "bssgp_unitdata"); + struct gprs_gb_parse_context parse_ctx; + int rc; + + memset(&parse_ctx, 0, sizeof(parse_ctx)); + + OSMO_ASSERT(msg); + msgb_bssgph(msg) = msg->head; + msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg))); + + parse_ctx.to_bss = 0; + parse_ctx.peer_nsei = msgb_nsei(msg); + + /* TODO: Determine whether our parser or the message is wrong. */ + + rc = gprs_gb_parse_bssgp(msg->data, msg->len, &parse_ctx); + if (!rc) { + fprintf(stderr, "%s: Failed to parse message %s\n", __func__, msgb_hexdump(msg)); + } + + msgb_free(msg); +} + static struct log_info_cat gprs_categories[] = { [DGPRS] = { .name = "DGPRS", @@ -4985,6 +5012,7 @@ test_gbproxy_keep_info(); test_gbproxy_tlli_expire(); test_gbproxy_stored_messages(); + test_gbproxy_parse_bssgp_unitdata(); gbprox_reset(&gbcfg); /* gbprox_reset() frees the rate_ctr, but re-allocates it again. */ rate_ctr_group_free(gbcfg.ctrg); -- To view, visit https://gerrit.osmocom.org/9500 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I39189701a57c785ffdacc3ae26d7aa93bb06cde6 Gerrit-Change-Number: 9500 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 16:55:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 16:55:06 +0000 Subject: Change in osmo-bsc[master]: Ignore "dest" command in MSC node In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9433 to look at the new patch set (#4). Change subject: Ignore "dest" command in MSC node ...................................................................... Ignore "dest" command in MSC node In Change-Id I6b7354f3b23a26bb4eab12213ca3d3b614c8154f we removed the "dest" vty command, but we should simply ignore it and print a related warning during start. Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/9433/4 -- To view, visit https://gerrit.osmocom.org/9433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 Gerrit-Change-Number: 9433 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 17:03:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 17:03:31 +0000 Subject: Change in osmo-bsc[master]: Ignore "dest" command in MSC node In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9433 ) Change subject: Ignore "dest" command in MSC node ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 Gerrit-Change-Number: 9433 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 08 Jun 2018 17:03:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 17:03:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 17:03:33 +0000 Subject: Change in osmo-bsc[master]: Ignore "dest" command in MSC node In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9433 ) Change subject: Ignore "dest" command in MSC node ...................................................................... Ignore "dest" command in MSC node In Change-Id I6b7354f3b23a26bb4eab12213ca3d3b614c8154f we removed the "dest" vty command, but we should simply ignore it and print a related warning during start. Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 --- M src/osmo-bsc/osmo_bsc_vty.c 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index e6df7b3..3ed2238 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -881,6 +881,16 @@ ALIAS_DEPRECATED(cfg_net_msc_ping_time, cfg_net_msc_pong_time_cmd, "timeout-pong ARG", LEGACY_STR "-\n"); +DEFUN_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_dest_cmd, + "dest A.B.C.D <1-65000> <0-255>", LEGACY_STR "-\n" "-\n" "-\n") +{ + vty_out(vty, "%% dest config is deprecated and has no effect%s", VTY_NEWLINE); + return CMD_WARNING; +} + +ALIAS_DEPRECATED(cfg_net_msc_dest, cfg_net_msc_no_dest_cmd, + "no dest A.B.C.D <1-65000> <0-255>", NO_STR LEGACY_STR "-\n" "-\n" "-\n"); + int bsc_vty_init_extra(void) { struct gsm_network *net = bsc_gsmnet; @@ -906,6 +916,8 @@ install_element(MSC_NODE, &cfg_net_bsc_ci_cmd); install_element(MSC_NODE, &cfg_net_bsc_rtp_base_cmd); install_element(MSC_NODE, &cfg_net_bsc_codec_list_cmd); + install_element(MSC_NODE, &cfg_net_msc_dest_cmd); + install_element(MSC_NODE, &cfg_net_msc_no_dest_cmd); install_element(MSC_NODE, &cfg_net_msc_welcome_ussd_cmd); install_element(MSC_NODE, &cfg_net_msc_no_welcome_ussd_cmd); install_element(MSC_NODE, &cfg_net_msc_lost_ussd_cmd); -- To view, visit https://gerrit.osmocom.org/9433 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I531825061031918bbb1380e1b485b711e81bcd75 Gerrit-Change-Number: 9433 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 18:44:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 18:44:11 +0000 Subject: Change in libosmo-sccp[master]: Introduce osmo_ss7_register_rx_unknown_cb() for unknown PPID/StreamID In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9439 ) Change subject: Introduce osmo_ss7_register_rx_unknown_cb() for unknown PPID/StreamID ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 Gerrit-Change-Number: 9439 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 08 Jun 2018 18:44:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 18:47:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 18:47:43 +0000 Subject: Change in libosmo-sccp[master]: Introduce osmo_ss7_register_rx_unknown_cb() for unknown PPID/StreamID In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9439 ) Change subject: Introduce osmo_ss7_register_rx_unknown_cb() for unknown PPID/StreamID ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 Gerrit-Change-Number: 9439 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 08 Jun 2018 18:47:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 18:47:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 18:47:44 +0000 Subject: Change in libosmo-sccp[master]: Introduce osmo_ss7_register_rx_unknown_cb() for unknown PPID/StreamID In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9439 ) Change subject: Introduce osmo_ss7_register_rx_unknown_cb() for unknown PPID/StreamID ...................................................................... Introduce osmo_ss7_register_rx_unknown_cb() for unknown PPID/StreamID Applications may be interested in handling data for those SCTP PPID or IPA StreamID which libosmo-sigtran doesn't implement natively/internally. Let's add osmo_ss7_register_rx_unknown_cb() using which applications can register a call-back to implement whatever behaviour they'd want for those PPID/StreamIDs. Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 --- M include/osmocom/sigtran/osmo_ss7.h M src/ipa.c M src/osmo_ss7.c M src/xua_internal.h 4 files changed, 44 insertions(+), 13 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/sigtran/osmo_ss7.h b/include/osmocom/sigtran/osmo_ss7.h index fd3f103..a93c663 100644 --- a/include/osmocom/sigtran/osmo_ss7.h +++ b/include/osmocom/sigtran/osmo_ss7.h @@ -408,6 +408,17 @@ int osmo_ss7_asp_restart(struct osmo_ss7_asp *asp); int osmo_ss7_asp_use_default_lm(struct osmo_ss7_asp *asp, int log_level); +/*! Weak function to handle payload for unknown/unsupported PPID or IPA StreamID. + * This function can be overridden by application code to implement whatever handling + * it wants for such additional payloads/streams. + * \param[in] asp Application Server Process through which data was received + * \param[in] ppid_sid SCTP PPID (in sigtran case) or IPA Stream ID + * \param[in] msg Message buffer containing received data. Continues to be owned by caller! + * \return 0 on success; negative on error */ +typedef int osmo_ss7_asp_rx_unknown_cb(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg); + +void osmo_ss7_register_rx_unknown_cb(osmo_ss7_asp_rx_unknown_cb *cb); + #define LOGPASP(asp, subsys, level, fmt, args ...) \ LOGP(subsys, level, "asp-%s: " fmt, (asp)->cfg.name, ## args) diff --git a/src/ipa.c b/src/ipa.c index 9f04746..0e6f683 100644 --- a/src/ipa.c +++ b/src/ipa.c @@ -288,9 +288,7 @@ rc = ipa_rx_msg_sccp(asp, msg); break; default: - LOGPASP(asp, DLSS7, LOGL_DEBUG, "Unknown Stream ID 0x%02x: %s\n", - hh->proto, msgb_hexdump(msg)); - rc = -1; + rc = ss7_asp_rx_unknown(asp, hh->proto, msg); } return rc; diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 275469e..025c21c 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1450,11 +1450,8 @@ rc = sua_rx_msg(asp, msg); else if (ppid == M3UA_PPID && asp->cfg.proto == OSMO_SS7_ASP_PROT_M3UA) rc = m3ua_rx_msg(asp, msg); - else { - LOGPASP(asp, DLSS7, LOGL_NOTICE, "SCTP chunk for unknown PPID %u " - "received\n", ppid); - rc = 0; - } + else + rc = ss7_asp_rx_unknown(asp, ppid, msg); out: msgb_free(msg); @@ -1591,11 +1588,8 @@ rc = sua_rx_msg(asp, msg); else if (ppid == M3UA_PPID && asp->cfg.proto == OSMO_SS7_ASP_PROT_M3UA) rc = m3ua_rx_msg(asp, msg); - else { - LOGPASP(asp, DLSS7, LOGL_NOTICE, "SCTP chunk for unknown PPID %u " - "received\n", ppid); - rc = 0; - } + else + rc = ss7_asp_rx_unknown(asp, ppid, msg); out: msgb_free(msg); @@ -1918,3 +1912,29 @@ return OSMO_SS7_AS_TMOD_BCAST; } } + +static osmo_ss7_asp_rx_unknown_cb *g_osmo_ss7_asp_rx_unknown_cb; + +int ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg) +{ + if (g_osmo_ss7_asp_rx_unknown_cb) + return (*g_osmo_ss7_asp_rx_unknown_cb)(asp, ppid_mux, msg); + + switch(asp->cfg.proto) { + case OSMO_SS7_ASP_PROT_IPA: + LOGPASP(asp, DLSS7, LOGL_NOTICE, "Rx IPA for unknown Stream ID 0x%02x: %s\n", + ppid_mux, msgb_hexdump(msg)); + break; + default: + LOGPASP(asp, DLSS7, LOGL_NOTICE, "Rx SCTP chunk for unknown PPID %u: %s\n", + ppid_mux, msgb_hexdump(msg)); + break; + } + return 0; +} + +/*! Register a call-back function for unknown SCTP PPID / IPA Stream ID */ +void osmo_ss7_register_rx_unknown_cb(osmo_ss7_asp_rx_unknown_cb *cb) +{ + g_osmo_ss7_asp_rx_unknown_cb = cb; +} diff --git a/src/xua_internal.h b/src/xua_internal.h index 96bd153..d836fae 100644 --- a/src/xua_internal.h +++ b/src/xua_internal.h @@ -78,3 +78,5 @@ int osmo_sccp_addr_parse(struct osmo_sccp_addr *out, const uint8_t *addr, unsigned int addrlen); int osmo_sccp_addr_encode(struct msgb *msg, const struct osmo_sccp_addr *in); + +int ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg); -- To view, visit https://gerrit.osmocom.org/9439 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8616f914192000df0ec6547ff4ada80e0f9042a2 Gerrit-Change-Number: 9439 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 8 20:01:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Jun 2018 20:01:42 +0000 Subject: Change in osmo-bsc[master]: Explicitly register CTRL-over-IPA callback with libosmo-sigtran Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9516 Change subject: Explicitly register CTRL-over-IPA callback with libosmo-sigtran ...................................................................... Explicitly register CTRL-over-IPA callback with libosmo-sigtran In Change-Id OSI6b7354f3b23a26bb4eab12213ca3d3b614c8154f we introduced a function called osmo_ss7_asp_rx_unknown() which was supposed ot override a weak symbol in libosmo-sigtran. However, the related change in libosmo-sigtran (I8616f914192000df0ec6547ff4ada80e0f9042a2) was modified later on to use explicit registration of a call-back function instead of weak symbol override. Let's adopt the osmo-bsc code to make use of this explict call-back registration. Change-Id: Id5880ec90dfa00b29cbb0ffea8c8dd50e24742bd Related: OS#2012 --- M src/osmo-bsc/osmo_bsc_sigtran.c 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/16/9516/1 diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c index 608c3fb..72ee50f 100644 --- a/src/osmo-bsc/osmo_bsc_sigtran.c +++ b/src/osmo-bsc/osmo_bsc_sigtran.c @@ -409,6 +409,8 @@ /* Default point-code to be used as remote address (MSC) */ #define MSC_DEFAULT_PC "0.23.1" +static int asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg); + /* Initalize osmo sigtran backhaul */ int osmo_bsc_sigtran_init(struct llist_head *mscs) { @@ -419,6 +421,8 @@ char msc_name[32]; uint32_t default_pc; + osmo_ss7_register_rx_unknown_cb(&asp_rx_unknown); + OSMO_ASSERT(mscs); msc_list = mscs; @@ -515,7 +519,7 @@ /* this function receives all messages received on an ASP for a PPID / StreamID that * libosmo-sigtran doesn't know about, such as piggy-backed CTRL and/or MGCP */ -int osmo_ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg) +static int asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg) { struct ipaccess_head *iph; struct ipaccess_head_ext *iph_ext; -- To view, visit https://gerrit.osmocom.org/9516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id5880ec90dfa00b29cbb0ffea8c8dd50e24742bd Gerrit-Change-Number: 9516 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 8 20:42:02 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 8 Jun 2018 20:42:02 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_norma?= =?UTF-8?Q?l_:_master-osmo-ggsn_=C2=BB_--disabl?= =?UTF-8?Q?e-gtp-linux,a2=3Ddefault,a3=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#506?= In-Reply-To: <33220108.388.1528453710129.JavaMail.jenkins@jenkins.osmocom.org> References: <33220108.388.1528453710129.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <407707286.392.1528490522429.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Jun 8 21:59:03 2018 From: gerrit-no-reply at lists.osmocom.org (steve-m) Date: Fri, 8 Jun 2018 21:59:03 +0000 Subject: Change in osmocom-bb[master]: trf6151: Actually fix setting of uplink ARFCN Message-ID: steve-m has uploaded this change for review. ( https://gerrit.osmocom.org/9518 Change subject: trf6151: Actually fix setting of uplink ARFCN ...................................................................... trf6151: Actually fix setting of uplink ARFCN Some time ago a broken fix was committed which then has been reverted again in commit 17240037376169369b526ee8a8284961b85adbfa. The purpose of this line is to clear the uplink flag from the ARFCN. So far this worked because both gsm_arfcn2band() and gsm_arfcn2freq10() already do this internally. Change-Id: Ie8a05ffc0ddec53d7fd6a25e03ea285fb216df29 Signed-off-by: Steve Markgraf --- M src/target/firmware/rf/trf6151.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/18/9518/1 diff --git a/src/target/firmware/rf/trf6151.c b/src/target/firmware/rf/trf6151.c index 0a91009..9de2cc8 100644 --- a/src/target/firmware/rf/trf6151.c +++ b/src/target/firmware/rf/trf6151.c @@ -436,7 +436,7 @@ enum trf6151_gsm_band pll_band; uplink = !!(arfcn & ARFCN_UPLINK); - arfcn != ~ARFCN_UPLINK; + arfcn &= ~ARFCN_UPLINK; switch (gsm_arfcn2band(arfcn)) { case GSM_BAND_850: -- To view, visit https://gerrit.osmocom.org/9518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie8a05ffc0ddec53d7fd6a25e03ea285fb216df29 Gerrit-Change-Number: 9518 Gerrit-PatchSet: 1 Gerrit-Owner: steve-m -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Jun 9 00:55:03 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Jun 2018 00:55:03 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-iuh_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1336?= Message-ID: <612659941.394.1528505703701.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 778.59 KB...] A_SEQUENCE_OF(struct MemberL { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_MessageStructure.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberL { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_MessageStructure.h:27:23: warning: ?struct MemberL? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberL { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_MessageStructure.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberL { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:23: warning: ?struct MemberB? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberB { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberB { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:23: warning: ?struct MemberB? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberB { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberB { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:23: warning: ?struct MemberM? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberM { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberM { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:23: warning: ?struct MemberM? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberM { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberM { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:23: warning: ?struct MemberD? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberD { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberD { ^~~~~~~~~~~~~ In file included from ../include/osmocom/ranap/ranap_common.h:592:0, from ../include/osmocom/ranap/ranap_common_cn.h:5, from iu_client.c:37: ../include/osmocom/ranap/ranap_ies_defs.h:126:0: warning: "ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT" redefined #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 1) ../include/osmocom/ranap/ranap_ies_defs.h:125:0: note: this is the location of the previous definition #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:436:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 2) ../include/osmocom/ranap/ranap_ies_defs.h:434:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:437:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 3) ../include/osmocom/ranap/ranap_ies_defs.h:435:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 1) ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:23: warning: ?struct MemberD? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberD { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberD { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:23: warning: ?struct MemberD? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberD { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberD { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: ?struct MemberN? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberN { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberN { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:23: warning: ?struct MemberB? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberB { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberB { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: ?struct MemberN? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberN { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberN { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:23: warning: ?struct MemberB? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberB { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_RABParametersList.h:29:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberB { ^~~~~~~~~~~~~ In file included from ../include/osmocom/ranap/ranap_common.h:592:0, from ranap_encoder.c:7: ../include/osmocom/ranap/ranap_ies_defs.h:126:0: warning: "ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT" redefined #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 1) ../include/osmocom/ranap/ranap_ies_defs.h:125:0: note: this is the location of the previous definition #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:436:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 2) ../include/osmocom/ranap/ranap_ies_defs.h:434:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:437:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 3) ../include/osmocom/ranap/ranap_ies_defs.h:435:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 1) ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:23: warning: ?struct MemberD? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberD { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberD { ^~~~~~~~~~~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:23: warning: ?struct MemberD? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberD { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../include/osmocom/ranap/RANAP_UnsuccessfulLinking-IEs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberD { ^~~~~~~~~~~~~ In file included from ../include/osmocom/ranap/ranap_common.h:592:0, from ranap_common.c:26: ../include/osmocom/ranap/ranap_ies_defs.h:126:0: warning: "ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT" redefined #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 1) ../include/osmocom/ranap/ranap_ies_defs.h:125:0: note: this is the location of the previous definition #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:436:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 2) ../include/osmocom/ranap/ranap_ies_defs.h:434:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:437:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 3) ../include/osmocom/ranap/ranap_ies_defs.h:435:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 1) In file included from ../include/osmocom/ranap/ranap_common.h:592:0, from ranap_msg_factory.c:27: ../include/osmocom/ranap/ranap_ies_defs.h:126:0: warning: "ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT" redefined #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 1) ../include/osmocom/ranap/ranap_ies_defs.h:125:0: note: this is the location of the previous definition #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:436:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 2) ../include/osmocom/ranap/ranap_ies_defs.h:434:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:437:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 3) ../include/osmocom/ranap/ranap_ies_defs.h:435:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 1) In file included from ../include/osmocom/ranap/ranap_common.h:592:0, from ranap_decoder.c:7: ../include/osmocom/ranap/ranap_ies_defs.h:126:0: warning: "ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT" redefined #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 1) ../include/osmocom/ranap/ranap_ies_defs.h:125:0: note: this is the location of the previous definition #define ENHANCEDRELOCATIONCOMPLETEREQUESTIES_RANAP_EXTENDEDRNC_ID_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:436:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 2) ../include/osmocom/ranap/ranap_ies_defs.h:434:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_IUSIGNALLINGCONNECTIONIDENTIFIER_PRESENT (1 << 0) ../include/osmocom/ranap/ranap_ies_defs.h:437:0: warning: "RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT" redefined #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 3) ../include/osmocom/ranap/ranap_ies_defs.h:435:0: note: this is the location of the previous definition #define RANAP_ENHANCEDRELOCATIONINFORMATIONREQUESTIES_RANAP_GLOBALCN_ID_PRESENT (1 << 1) make[4]: Leaving directory ' Makefile:641: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory ' Makefile:453: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory ' Makefile:454: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:378: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sat Jun 9 06:22:36 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Jun 2018 06:22:36 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-iuh_=C2=BB_a1=3Dd?= =?UTF-8?Q?efault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1337?= In-Reply-To: <612659941.394.1528505703701.JavaMail.jenkins@jenkins.osmocom.org> References: <612659941.394.1528505703701.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <970114478.400.1528525356608.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sat Jun 9 12:01:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 12:01:07 +0000 Subject: Change in osmocom-bb[master]: trf6151: Actually fix setting of uplink ARFCN In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9518 ) Change subject: trf6151: Actually fix setting of uplink ARFCN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie8a05ffc0ddec53d7fd6a25e03ea285fb216df29 Gerrit-Change-Number: 9518 Gerrit-PatchSet: 1 Gerrit-Owner: steve-m Gerrit-Assignee: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 09 Jun 2018 12:01:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 12:01:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 12:01:11 +0000 Subject: Change in osmocom-bb[master]: trf6151: Actually fix setting of uplink ARFCN In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9518 ) Change subject: trf6151: Actually fix setting of uplink ARFCN ...................................................................... trf6151: Actually fix setting of uplink ARFCN Some time ago a broken fix was committed which then has been reverted again in commit 17240037376169369b526ee8a8284961b85adbfa. The purpose of this line is to clear the uplink flag from the ARFCN. So far this worked because both gsm_arfcn2band() and gsm_arfcn2freq10() already do this internally. Change-Id: Ie8a05ffc0ddec53d7fd6a25e03ea285fb216df29 Signed-off-by: Steve Markgraf --- M src/target/firmware/rf/trf6151.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/target/firmware/rf/trf6151.c b/src/target/firmware/rf/trf6151.c index 0a91009..9de2cc8 100644 --- a/src/target/firmware/rf/trf6151.c +++ b/src/target/firmware/rf/trf6151.c @@ -436,7 +436,7 @@ enum trf6151_gsm_band pll_band; uplink = !!(arfcn & ARFCN_UPLINK); - arfcn != ~ARFCN_UPLINK; + arfcn &= ~ARFCN_UPLINK; switch (gsm_arfcn2band(arfcn)) { case GSM_BAND_850: -- To view, visit https://gerrit.osmocom.org/9518 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie8a05ffc0ddec53d7fd6a25e03ea285fb216df29 Gerrit-Change-Number: 9518 Gerrit-PatchSet: 1 Gerrit-Owner: steve-m Gerrit-Assignee: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 12:01:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 12:01:19 +0000 Subject: Change in osmo-bsc[master]: Explicitly register CTRL-over-IPA callback with libosmo-sigtran In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9516 ) Change subject: Explicitly register CTRL-over-IPA callback with libosmo-sigtran ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id5880ec90dfa00b29cbb0ffea8c8dd50e24742bd Gerrit-Change-Number: 9516 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 09 Jun 2018 12:01:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 12:01:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 12:01:20 +0000 Subject: Change in osmo-bsc[master]: Explicitly register CTRL-over-IPA callback with libosmo-sigtran In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9516 ) Change subject: Explicitly register CTRL-over-IPA callback with libosmo-sigtran ...................................................................... Explicitly register CTRL-over-IPA callback with libosmo-sigtran In Change-Id OSI6b7354f3b23a26bb4eab12213ca3d3b614c8154f we introduced a function called osmo_ss7_asp_rx_unknown() which was supposed ot override a weak symbol in libosmo-sigtran. However, the related change in libosmo-sigtran (I8616f914192000df0ec6547ff4ada80e0f9042a2) was modified later on to use explicit registration of a call-back function instead of weak symbol override. Let's adopt the osmo-bsc code to make use of this explict call-back registration. Change-Id: Id5880ec90dfa00b29cbb0ffea8c8dd50e24742bd Related: OS#2012 --- M src/osmo-bsc/osmo_bsc_sigtran.c 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c index 608c3fb..72ee50f 100644 --- a/src/osmo-bsc/osmo_bsc_sigtran.c +++ b/src/osmo-bsc/osmo_bsc_sigtran.c @@ -409,6 +409,8 @@ /* Default point-code to be used as remote address (MSC) */ #define MSC_DEFAULT_PC "0.23.1" +static int asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg); + /* Initalize osmo sigtran backhaul */ int osmo_bsc_sigtran_init(struct llist_head *mscs) { @@ -419,6 +421,8 @@ char msc_name[32]; uint32_t default_pc; + osmo_ss7_register_rx_unknown_cb(&asp_rx_unknown); + OSMO_ASSERT(mscs); msc_list = mscs; @@ -515,7 +519,7 @@ /* this function receives all messages received on an ASP for a PPID / StreamID that * libosmo-sigtran doesn't know about, such as piggy-backed CTRL and/or MGCP */ -int osmo_ss7_asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg) +static int asp_rx_unknown(struct osmo_ss7_asp *asp, int ppid_mux, struct msgb *msg) { struct ipaccess_head *iph; struct ipaccess_head_ext *iph_ext; -- To view, visit https://gerrit.osmocom.org/9516 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id5880ec90dfa00b29cbb0ffea8c8dd50e24742bd Gerrit-Change-Number: 9516 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 12:02:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 12:02:32 +0000 Subject: Change in osmo-bts[master]: Send DELETE_IND when dropping Imm Assign pending message In-Reply-To: References: Message-ID: Harald Welte has uploaded a new patch set (#3) to the change originally created by Pau Espin Pedrol. ( https://gerrit.osmocom.org/9515 ) Change subject: Send DELETE_IND when dropping Imm Assign pending message ...................................................................... Send DELETE_IND when dropping Imm Assign pending message This way we give the opportunity to the BSC to release the channel quicker, otherwise it has to wait until T3101 expires. Same procedure is already done in rsl.c rsl_rx_imm_ass() when we return an error (hard limit AGCH queue len reached) from bts_agch_enqueue(). Related: OS#2990 Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a --- M include/osmo-bts/rsl.h M src/common/bts.c M src/common/rsl.c 3 files changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/15/9515/3 -- To view, visit https://gerrit.osmocom.org/9515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a Gerrit-Change-Number: 9515 Gerrit-PatchSet: 3 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 12:02:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 12:02:39 +0000 Subject: Change in osmo-bts[master]: Send DELETE_IND when dropping Imm Assign pending message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9515 ) Change subject: Send DELETE_IND when dropping Imm Assign pending message ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a Gerrit-Change-Number: 9515 Gerrit-PatchSet: 3 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 09 Jun 2018 12:02:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 12:02:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 12:02:40 +0000 Subject: Change in osmo-bts[master]: Send DELETE_IND when dropping Imm Assign pending message In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9515 ) Change subject: Send DELETE_IND when dropping Imm Assign pending message ...................................................................... Send DELETE_IND when dropping Imm Assign pending message This way we give the opportunity to the BSC to release the channel quicker, otherwise it has to wait until T3101 expires. Same procedure is already done in rsl.c rsl_rx_imm_ass() when we return an error (hard limit AGCH queue len reached) from bts_agch_enqueue(). Related: OS#2990 Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a --- M include/osmo-bts/rsl.h M src/common/bts.c M src/common/rsl.c 3 files changed, 4 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/rsl.h b/include/osmo-bts/rsl.h index ddd756e..06d58a2 100644 --- a/include/osmo-bts/rsl.h +++ b/include/osmo-bts/rsl.h @@ -37,6 +37,7 @@ int rsl_tx_ccch_load_ind_pch(struct gsm_bts *bts, uint16_t paging_avail); int rsl_tx_ccch_load_ind_rach(struct gsm_bts *bts, uint16_t total, uint16_t busy, uint16_t access); +int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len); void cb_ts_disconnected(struct gsm_bts_trx_ts *ts); void cb_ts_connected(struct gsm_bts_trx_ts *ts); diff --git a/src/common/bts.c b/src/common/bts.c index ae75b2c..bec611c 100644 --- a/src/common/bts.c +++ b/src/common/bts.c @@ -622,6 +622,8 @@ llist_del(&msg->list); bts->agch_queue.length--; + rsl_tx_delete_ind(bts, (uint8_t *)imm_ass_cmd, msgb_l3len(msg)); + rate_ctr_inc2(bts->ctrs, BTS_CTR_AGCH_DELETED); msgb_free(msg); bts->agch_queue.dropped_msgs++; diff --git a/src/common/rsl.c b/src/common/rsl.c index b5d0c2b..5d30ca7 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -427,7 +427,7 @@ } /* 8.5.4 DELETE INDICATION */ -static int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len) +int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len) { struct msgb *msg; -- To view, visit https://gerrit.osmocom.org/9515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a Gerrit-Change-Number: 9515 Gerrit-PatchSet: 3 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 15:46:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 15:46:15 +0000 Subject: Change in libosmocore[master]: vty: Don't dump deprecated commands in XML export Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9519 Change subject: vty: Don't dump deprecated commands in XML export ...................................................................... vty: Don't dump deprecated commands in XML export we don't want to include deprecated commands in our VTY reference manuals. Change-Id: I5e179c9dca297b8c4bdbdf4e0e5b1d69eecc4232 --- M src/vty/command.c 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/19/9519/1 diff --git a/src/vty/command.c b/src/vty/command.c index 24d8ea4..66cf6a8 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -679,7 +679,8 @@ elem = vector_slot(cnode->cmd_vector, j); if (!vty_command_is_common(elem)) continue; - vty_dump_element(elem, vty); + if (!elem->attr & CMD_ATTR_DEPRECATED) + vty_dump_element(elem, vty); } } vty_out(vty, " %s", VTY_NEWLINE); @@ -716,7 +717,8 @@ elem = vector_slot(cnode->cmd_vector, j); if (vty_command_is_common(elem)) continue; - vty_dump_element(elem, vty); + if (!elem->attr & CMD_ATTR_DEPRECATED) + vty_dump_element(elem, vty); } vty_out(vty, " %s", VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/9519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5e179c9dca297b8c4bdbdf4e0e5b1d69eecc4232 Gerrit-Change-Number: 9519 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 15:46:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 15:46:15 +0000 Subject: Change in libosmocore[master]: vty: Add logging_vty_add_deprecated_subsys Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9520 Change subject: vty: Add logging_vty_add_deprecated_subsys ...................................................................... vty: Add logging_vty_add_deprecated_subsys This function permits the user to register deprecated log categories, which will ensure that if log categories are removed from a program, old config files will still load. We simply dynamically allocate a cmd_element and install it at CFG_LOG_NODE. Not registering it at VIEW_NODE or ENABLE_NODE ensures that it's not accessible from the interactive VTY, but only from the config file / configure node. Change-Id: I171f62ea2dc565b3a6c3eecd27fb7853e2529598 --- M include/osmocom/vty/logging.h M src/vty/logging_vty.c 2 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/20/9520/1 diff --git a/include/osmocom/vty/logging.h b/include/osmocom/vty/logging.h index 1baa3f8..90c8fa1 100644 --- a/include/osmocom/vty/logging.h +++ b/include/osmocom/vty/logging.h @@ -7,5 +7,6 @@ struct log_info; void logging_vty_add_cmds(); +void logging_vty_add_deprecated_subsys(void *ctx, const char *name); struct vty; struct log_target *osmo_log_vty2tgt(struct vty *vty); diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 09d207a..8151fda 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -836,6 +836,27 @@ return 1; } +static int log_deprecated_func(struct cmd_element *cmd, struct vty *vty, int argc, const char *argv[]) +{ + vty_out(vty, "%% Ignoring deprecated '%s'%s", cmd->string, VTY_NEWLINE); + return CMD_WARNING; +} + +void logging_vty_add_deprecated_subsys(void *ctx, const char *name) +{ + struct cmd_element *cmd = talloc_zero(ctx, struct cmd_element); + OSMO_ASSERT(cmd); + cmd->string = talloc_asprintf(cmd, "logging level %s (everything|debug|info|notice|error|fatal)", + name); + printf("%s\n", cmd->string); + cmd->func = log_deprecated_func; + cmd->doc = "Set the log level for a specified category\n" + "Deprecated Category\n"; + cmd->attr = CMD_ATTR_DEPRECATED; + + install_element(CFG_LOG_NODE, cmd); +} + /*! Register logging related commands to the VTY. Call this once from * your application if you want to support those commands. */ void logging_vty_add_cmds() -- To view, visit https://gerrit.osmocom.org/9520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I171f62ea2dc565b3a6c3eecd27fb7853e2529598 Gerrit-Change-Number: 9520 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 15:46:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 15:46:43 +0000 Subject: Change in libosmocore[master]: vty: Add logging_vty_add_deprecated_subsys In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9520 ) Change subject: vty: Add logging_vty_add_deprecated_subsys ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I171f62ea2dc565b3a6c3eecd27fb7853e2529598 Gerrit-Change-Number: 9520 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Sat, 09 Jun 2018 15:46:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 15:52:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 15:52:46 +0000 Subject: Change in libosmocore[master]: vty: Don't dump deprecated commands in XML export In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9519 ) Change subject: vty: Don't dump deprecated commands in XML export ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5e179c9dca297b8c4bdbdf4e0e5b1d69eecc4232 Gerrit-Change-Number: 9519 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 09 Jun 2018 15:52:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 15:52:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 15:52:51 +0000 Subject: Change in libosmocore[master]: vty: Don't dump deprecated commands in XML export In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9519 ) Change subject: vty: Don't dump deprecated commands in XML export ...................................................................... vty: Don't dump deprecated commands in XML export we don't want to include deprecated commands in our VTY reference manuals. Change-Id: I5e179c9dca297b8c4bdbdf4e0e5b1d69eecc4232 --- M src/vty/command.c 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/vty/command.c b/src/vty/command.c index 24d8ea4..66cf6a8 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -679,7 +679,8 @@ elem = vector_slot(cnode->cmd_vector, j); if (!vty_command_is_common(elem)) continue; - vty_dump_element(elem, vty); + if (!elem->attr & CMD_ATTR_DEPRECATED) + vty_dump_element(elem, vty); } } vty_out(vty, " %s", VTY_NEWLINE); @@ -716,7 +717,8 @@ elem = vector_slot(cnode->cmd_vector, j); if (vty_command_is_common(elem)) continue; - vty_dump_element(elem, vty); + if (!elem->attr & CMD_ATTR_DEPRECATED) + vty_dump_element(elem, vty); } vty_out(vty, " %s", VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/9519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5e179c9dca297b8c4bdbdf4e0e5b1d69eecc4232 Gerrit-Change-Number: 9519 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 15:52:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 15:52:51 +0000 Subject: Change in libosmocore[master]: vty: Add logging_vty_add_deprecated_subsys In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9520 ) Change subject: vty: Add logging_vty_add_deprecated_subsys ...................................................................... vty: Add logging_vty_add_deprecated_subsys This function permits the user to register deprecated log categories, which will ensure that if log categories are removed from a program, old config files will still load. We simply dynamically allocate a cmd_element and install it at CFG_LOG_NODE. Not registering it at VIEW_NODE or ENABLE_NODE ensures that it's not accessible from the interactive VTY, but only from the config file / configure node. Change-Id: I171f62ea2dc565b3a6c3eecd27fb7853e2529598 --- M include/osmocom/vty/logging.h M src/vty/logging_vty.c 2 files changed, 22 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/vty/logging.h b/include/osmocom/vty/logging.h index 1baa3f8..90c8fa1 100644 --- a/include/osmocom/vty/logging.h +++ b/include/osmocom/vty/logging.h @@ -7,5 +7,6 @@ struct log_info; void logging_vty_add_cmds(); +void logging_vty_add_deprecated_subsys(void *ctx, const char *name); struct vty; struct log_target *osmo_log_vty2tgt(struct vty *vty); diff --git a/src/vty/logging_vty.c b/src/vty/logging_vty.c index 09d207a..8151fda 100644 --- a/src/vty/logging_vty.c +++ b/src/vty/logging_vty.c @@ -836,6 +836,27 @@ return 1; } +static int log_deprecated_func(struct cmd_element *cmd, struct vty *vty, int argc, const char *argv[]) +{ + vty_out(vty, "%% Ignoring deprecated '%s'%s", cmd->string, VTY_NEWLINE); + return CMD_WARNING; +} + +void logging_vty_add_deprecated_subsys(void *ctx, const char *name) +{ + struct cmd_element *cmd = talloc_zero(ctx, struct cmd_element); + OSMO_ASSERT(cmd); + cmd->string = talloc_asprintf(cmd, "logging level %s (everything|debug|info|notice|error|fatal)", + name); + printf("%s\n", cmd->string); + cmd->func = log_deprecated_func; + cmd->doc = "Set the log level for a specified category\n" + "Deprecated Category\n"; + cmd->attr = CMD_ATTR_DEPRECATED; + + install_element(CFG_LOG_NODE, cmd); +} + /*! Register logging related commands to the VTY. Call this once from * your application if you want to support those commands. */ void logging_vty_add_cmds() -- To view, visit https://gerrit.osmocom.org/9520 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I171f62ea2dc565b3a6c3eecd27fb7853e2529598 Gerrit-Change-Number: 9520 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 16:00:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 16:00:31 +0000 Subject: Change in osmo-bsc[master]: Remove unused logging subsystems DCC and DMGCP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9414 ) Change subject: Remove unused logging subsystems DCC and DMGCP ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib4f67bb00e1d5460e643717b53f6a4d81278dc5d Gerrit-Change-Number: 9414 Gerrit-PatchSet: 6 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 09 Jun 2018 16:00:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 16:00:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 16:00:32 +0000 Subject: Change in osmo-bsc[master]: Remove unused logging subsystems DCC and DMGCP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9414 ) Change subject: Remove unused logging subsystems DCC and DMGCP ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib4f67bb00e1d5460e643717b53f6a4d81278dc5d Gerrit-Change-Number: 9414 Gerrit-PatchSet: 6 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 09 Jun 2018 16:00:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 9 16:00:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Jun 2018 16:00:36 +0000 Subject: Change in osmo-bsc[master]: Remove unused logging subsystems DCC and DMGCP In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9414 ) Change subject: Remove unused logging subsystems DCC and DMGCP ...................................................................... Remove unused logging subsystems DCC and DMGCP We use the newly-introduced logging_vty_add_deprecated_subsys() from libosmovty to make sure old config files will still parse even after this change. Change-Id: Ib4f67bb00e1d5460e643717b53f6a4d81278dc5d --- M include/osmocom/bsc/debug.h M src/osmo-bsc/osmo_bsc_main.c 2 files changed, 4 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/debug.h b/include/osmocom/bsc/debug.h index 006b918..1133bf6 100644 --- a/include/osmocom/bsc/debug.h +++ b/include/osmocom/bsc/debug.h @@ -9,7 +9,6 @@ /* Debug Areas of the code */ enum { DRLL, - DCC, DMM, DRR, DRSL, @@ -17,7 +16,6 @@ DPAG, DMEAS, DMSC, - DMGCP, DHO, DHODEC, DREF, diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 494f280..8495608 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -44,6 +44,7 @@ #include #include #include +#include #include #include @@ -87,7 +88,7 @@ printf(" Some useful help...\n"); printf(" -h --help this text\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); - printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); + printf(" -d option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -c --config-file filename The config file to use.\n"); @@ -650,12 +651,6 @@ .color = "\033[1;31m", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DCC] = { - .name = "DCC", - .description = "Layer3 Call Control (CC)", - .color = "\033[1;32m", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DMM] = { .name = "DMM", .description = "Layer3 Mobility Management (MM)", @@ -696,11 +691,6 @@ .description = "Mobile Switching Center", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DMGCP] = { - .name = "DMGCP", - .description = "Media Gateway Control Protocol", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DHO] = { .name = "DHO", .description = "Hand-Over Process", @@ -808,6 +798,8 @@ bsc_vty_init(bsc_gsmnet); bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); ctrl_vty_init(tall_bsc_ctx); + logging_vty_add_deprecated_subsys(tall_bsc_ctx, "cc"); + logging_vty_add_deprecated_subsys(tall_bsc_ctx, "mgcp"); /* Initalize SS7 */ osmo_ss7_init(); -- To view, visit https://gerrit.osmocom.org/9414 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib4f67bb00e1d5460e643717b53f6a4d81278dc5d Gerrit-Change-Number: 9414 Gerrit-PatchSet: 6 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Jun 9 16:02:07 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Jun 2018 16:02:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-bts_=C2=BB_lc15, orig?= =?UTF-8?Q?in/nrw/litecell15,default,osmocom-master-debian9_#754?= Message-ID: <910990702.12.1528560127257.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 38.11 KB...] config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 0.11.0.46-11eb > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory ' GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc32gen.h make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h osmocom/core/signal.h osmocom/core/socket.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/plugin.h osmocom/core/msgfile.h osmocom/core/serial.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/vty/buffer.h osmocom/vty/command.h osmocom/vty/logging.h osmocom/vty/stats.h osmocom/vty/misc.h osmocom/vty/telnet_interface.h osmocom/vty/vector.h osmocom/vty/vty.h osmocom/vty/ports.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_rlc.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h osmocom/ctrl/control_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' GEN crc8gen.c GEN crc16gen.c GEN crc32gen.c GEN crc64gen.c make install-am make[3]: Entering directory ' CC timer_gettimeofday.lo CC select.lo CC msgb.lo CC timer.lo CC signal.lo CC timer_clockgettime.lo CC bits.lo CC bitvec.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC logging_gsmtap.lo CC rate_ctr.lo CC gsmtap_util.lo CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo CC strrb.lo CC loggingrb.lo CC crc8gen.lo CC crc16gen.lo CC crc32gen.lo CC crc64gen.lo CC macaddr.lo CC stat_item.lo CC stats.lo CC stats_statsd.lo CC prim.lo CC conv_acc.lo CC conv_acc_generic.lo CC sercomm.lo CC prbs.lo CC conv_acc_sse.lo CC isdnhdlc.lo CC conv_acc_sse_avx.lo CC plugin.lo CC msgfile.lo CC serial.lo CCLD libosmocore.la make[4]: Entering directory ' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../libtool --mode=install /usr/bin/install -c libosmocore.la ' libtool: install: /usr/bin/install -c .libs/libosmocore.so.10.0.0 libtool: install: (cd && { ln -s -f libosmocore.so.10.0.0 libosmocore.so.10 || { rm -f libosmocore.so.10 && ln -s libosmocore.so.10.0.0 libosmocore.so.10; }; }) libtool: install: (cd && { ln -s -f libosmocore.so.10.0.0 libosmocore.so || { rm -f libosmocore.so && ln -s libosmocore.so.10.0.0 libosmocore.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocore.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/vty make[2]: Entering directory ' CC buffer.lo CC command.lo CC vty.lo CC vector.lo CC logging_vty.lo CC telnet_interface.lo CC stats_vty.lo CC utils.lo CC fsm_vty.lo CC talloc_ctx_vty.lo CCLD libosmovty.la make[3]: Entering directory ' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmovty.la ' libtool: warning: relinking 'libosmovty.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -version-info 4:1:0 -no-undefined -o libosmovty.la -rpath buffer.lo command.lo vty.lo vector.lo utils.lo telnet_interface.lo logging_vty.lo stats_vty.lo fsm_vty.lo talloc_ctx_vty.lo ../../src/libosmocore.la -ltalloc ) libtool: install: /usr/bin/install -c .libs/libosmovty.so.4.0.1T libtool: install: (cd && { ln -s -f libosmovty.so.4.0.1 libosmovty.so.4 || { rm -f libosmovty.so.4 && ln -s libosmovty.so.4.0.1 libosmovty.so.4; }; }) libtool: install: (cd && { ln -s -f libosmovty.so.4.0.1 libosmovty.so || { rm -f libosmovty.so && ln -s libosmovty.so.4.0.1 libosmovty.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmovty.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/codec make[2]: Entering directory ' CC gsm690.lo CC gsm620.lo CC gsm660.lo CC gsm610.lo CC ecu_fr.lo /bin/bash: line 2: 32671 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT gsm620.lo -MD -MP -MF $depbase.Tpo -c -o gsm620.lo gsm620.c Makefile:461: recipe for target 'gsm620.lo' failed make[2]: *** [gsm620.lo] Error 139 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:604: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:903: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sat Jun 9 23:21:10 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Jun 2018 23:21:10 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-bts_=C2=BB_lc15, ?= =?UTF-8?Q?origin/nrw/litecell15,default,osmocom-master-debian9_#755?= In-Reply-To: <910990702.12.1528560127257.JavaMail.jenkins@jenkins.osmocom.org> References: <910990702.12.1528560127257.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <81020195.49.1528586470471.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sun Jun 10 10:17:14 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 10:17:14 +0000 Subject: Change in osmo-sgsn[master]: WIP: tests: remove gmm unit tests In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9258 ) Change subject: WIP: tests: remove gmm unit tests ...................................................................... Patch Set 1: According to the build/check log, it makes sense to update the 'sgsn_test.ok'. -- To view, visit https://gerrit.osmocom.org/9258 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iac1c8854b5ea4aa03279990390ebc110c979aac2 Gerrit-Change-Number: 9258 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 10 Jun 2018 10:17:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 10:18:15 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 10:18:15 +0000 Subject: Change in osmo-sgsn[master]: WIP: tests: remove gmm unit tests In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9258 ) Change subject: WIP: tests: remove gmm unit tests ...................................................................... Patch Set 1: Ah, Harald most likely meant -2... -- To view, visit https://gerrit.osmocom.org/9258 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iac1c8854b5ea4aa03279990390ebc110c979aac2 Gerrit-Change-Number: 9258 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 10 Jun 2018 10:18:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:27:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 13:27:17 +0000 Subject: Change in osmo-ci[master]: gerrit/gerrit: Add osmo-sysmon build verification Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9521 Change subject: gerrit/gerrit: Add osmo-sysmon build verification ...................................................................... gerrit/gerrit: Add osmo-sysmon build verification Change-Id: I41411123836d2713f833f78c5920cbbee695ed14 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/21/9521/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 89b98ed..f41b6ef 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -183,6 +183,7 @@ - osmocom-bb - osmo-tetra + - osmo-sysmon - osmo-ttcn3-hacks: repos_url: 'https://gerrit.osmocom.org/{repos}' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index cb61a82..e03434d 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -323,6 +323,7 @@ concurrent: true - osmocom-bb + - osmo-sysmon - rtl-sdr: email: laforge at gnumonks.org steve at steve-m.de -- To view, visit https://gerrit.osmocom.org/9521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I41411123836d2713f833f78c5920cbbee695ed14 Gerrit-Change-Number: 9521 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:27:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 13:27:17 +0000 Subject: Change in osmo-ci[master]: add "osmocom-workstation" role Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9522 Change subject: add "osmocom-workstation" role ...................................................................... add "osmocom-workstation" role this role can be used to provision developer workstations, which includes a git clone of all osmocom git repositories as well as development tools like valgrind, gdb, ccache, wireshark, ... Change-Id: I1a943079470db97f41c9c38318feb0716daa7cd5 --- A ansible/roles/osmocom-workstation/defaults/main.yml A ansible/roles/osmocom-workstation/tasks/git-repos.yml A ansible/roles/osmocom-workstation/tasks/main.yml A ansible/setup-desktop.yml 4 files changed, 181 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/22/9522/1 diff --git a/ansible/roles/osmocom-workstation/defaults/main.yml b/ansible/roles/osmocom-workstation/defaults/main.yml new file mode 100644 index 0000000..4a2b6d7 --- /dev/null +++ b/ansible/roles/osmocom-workstation/defaults/main.yml @@ -0,0 +1,4 @@ +--- + +osmocom_user: laforge +git_destination: "/home/{{ osmocom_user}}/projects/git" diff --git a/ansible/roles/osmocom-workstation/tasks/git-repos.yml b/ansible/roles/osmocom-workstation/tasks/git-repos.yml new file mode 100644 index 0000000..624162c --- /dev/null +++ b/ansible/roles/osmocom-workstation/tasks/git-repos.yml @@ -0,0 +1,123 @@ +--- + +- name: install osmocom git repos + become: yes + become_user: "{{ osmocom_user }}" + git: + repo: git://git.osmocom.org/{{ item }}.git + dest: "{{ git_destination }}/{{ item }}" + accept_hostkey: yes + force: no + recursive: no + with_items: + - libosmo-abis + - libosmo-dsp + - libosmo-netif + - libosmo-sccp + - libosmocore + - libsmpp34 + - openpcd + - osmo-sim-auth + - pysim + - sim/hello-stk + - sim/sim-tools + - simtrace + - simtrace2 + - libgtpnl + - libtelnet + - mncc-python + - octphy-2g-headers + - openbsc + - openggsn + - osmo-bsc + - osmo-bts + - osmo-e1-recorder + - osmo-ggsn + - osmo-gsm-manuals + - osmo-gtp-kernel + - osmo-hlr + - osmo-iuh + - osmo-mgw + - osmo-msc + - osmo-pcu + - osmo-rbs + - osmo-sgsn + - osmo-sip-connector + - osmo-trx + - osmocom-lcs + - dct3-gsmtap + - osmo-qcdiag + - osmocom-bb + - osmocom-docs + - ot290-gsmtap + #- quectel-experiments + - osmo-bts-amp + - osmo-e1-xcvr + - osmo-lea6t-gps + - osmo-nvs-gps + - osmo-ocxo + - osmo-small-hardware + - 3gpp-etsi-pdf-links + - artwork + - docker-playground + - gapk + - gen_ladder + - osmo-ci + - osmo-dev + - osmo-gsm-tester + - osmo-pcap + - osmo-sysmon + - osmo-tacdb + - osmo-ttcn3-hacks + - erlang/mgw_nat + - erlang/osmo_map + - erlang/osmo_sccp + - erlang/osmo_ss7 + - erlang/signerl + - osmo-map-masq + - meta-telephony + - osmo-abi-check + - python/osmo-python-tests + - gr-gsm + - gr-iqbal + - gr-osmosdr + - libusrp + - osmo-adsb-gen + - osmo-fl2k + - osmo-sdr + - rtl-sdr + - asn1c + - libasn1c + - libosmo-asn1-map + - libosmo-asn1-tcap + - libosmo-tcap + - libsua + - nplab/m3ua-testtool + - nplab/sua-testtool + - osmo-auc + - osmo-tcap-map + - osmo-tetra + + +- name: install sysmocom git repos + git: repo=git://git.sysmocom.de/{{ item }}.git + dest={{ git_destination }}/{{ item }} + accept_hostkey=yes + force=yes + recursive=no + with_items: + - sysmo-bts/layer1-api + - poky/meta-sysmocom-bsp + - rs-backup-suite + - sysmo-usim-tool + + +- name: install github git repos + git: repo=git://github.com/{{ item }}.git + dest={{ git_destination }}/{{ item }} + accept_hostkey=yes + force=yes + recursive=no + with_items: + - myriadrf/LimeSuite + - gustafj/vim-ttcn diff --git a/ansible/roles/osmocom-workstation/tasks/main.yml b/ansible/roles/osmocom-workstation/tasks/main.yml new file mode 100644 index 0000000..42d213f --- /dev/null +++ b/ansible/roles/osmocom-workstation/tasks/main.yml @@ -0,0 +1,32 @@ +--- + +- name: add user + user: + name: "{{ osmocom_user }}" + generate_ssh_key: yes + ssh_key_bits: 4096 + ssh_key_type: rsa + shell: /usr/bin/zsh + +- name: include git repos + include: git-repos.yml + +- name: install distribution packages + apt: + name: "{{ item }}" + cache_valid_time: 3600 + update_cache: yes + with_items: + - iceweasel + - vim + - evince + - valgrind + - gdb + - libc6-dbg + - wireshark + - tcpdump + - ccache + - gnupg + - openssh-client + - openssh-server + diff --git a/ansible/setup-desktop.yml b/ansible/setup-desktop.yml new file mode 100644 index 0000000..303a610 --- /dev/null +++ b/ansible/setup-desktop.yml @@ -0,0 +1,22 @@ +--- +- hosts: desktops + user: root + roles: + - name: docker + jenkins_user: osmocom-build + tags: + - docker + + - name: install-poky-sdk + jenkins_user: osmocom-build + tags: + - poky + + - name: osmocom-jenkins-slave + jenkins_user: osmocom-build + generic_slave: true + tags: + - jenkins-slave + + - name: osmocom-workstation + osmocom_user: laforge -- To view, visit https://gerrit.osmocom.org/9522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1a943079470db97f41c9c38318feb0716daa7cd5 Gerrit-Change-Number: 9522 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:27:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 13:27:39 +0000 Subject: Change in osmo-ci[master]: gerrit/gerrit: Add osmo-sysmon build verification In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9521 ) Change subject: gerrit/gerrit: Add osmo-sysmon build verification ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I41411123836d2713f833f78c5920cbbee695ed14 Gerrit-Change-Number: 9521 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 10 Jun 2018 13:27:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:28:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 13:28:11 +0000 Subject: Change in osmo-ci[master]: add "osmocom-workstation" role In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9522 ) Change subject: add "osmocom-workstation" role ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1a943079470db97f41c9c38318feb0716daa7cd5 Gerrit-Change-Number: 9522 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 10 Jun 2018 13:28:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:28:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 13:28:12 +0000 Subject: Change in osmo-ci[master]: gerrit/gerrit: Add osmo-sysmon build verification In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9521 ) Change subject: gerrit/gerrit: Add osmo-sysmon build verification ...................................................................... gerrit/gerrit: Add osmo-sysmon build verification Change-Id: I41411123836d2713f833f78c5920cbbee695ed14 --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 89b98ed..f41b6ef 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -183,6 +183,7 @@ - osmocom-bb - osmo-tetra + - osmo-sysmon - osmo-ttcn3-hacks: repos_url: 'https://gerrit.osmocom.org/{repos}' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index cb61a82..e03434d 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -323,6 +323,7 @@ concurrent: true - osmocom-bb + - osmo-sysmon - rtl-sdr: email: laforge at gnumonks.org steve at steve-m.de -- To view, visit https://gerrit.osmocom.org/9521 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I41411123836d2713f833f78c5920cbbee695ed14 Gerrit-Change-Number: 9521 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:28:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 13:28:12 +0000 Subject: Change in osmo-ci[master]: add "osmocom-workstation" role In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9522 ) Change subject: add "osmocom-workstation" role ...................................................................... add "osmocom-workstation" role this role can be used to provision developer workstations, which includes a git clone of all osmocom git repositories as well as development tools like valgrind, gdb, ccache, wireshark, ... Change-Id: I1a943079470db97f41c9c38318feb0716daa7cd5 --- A ansible/roles/osmocom-workstation/defaults/main.yml A ansible/roles/osmocom-workstation/tasks/git-repos.yml A ansible/roles/osmocom-workstation/tasks/main.yml A ansible/setup-desktop.yml 4 files changed, 181 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/roles/osmocom-workstation/defaults/main.yml b/ansible/roles/osmocom-workstation/defaults/main.yml new file mode 100644 index 0000000..4a2b6d7 --- /dev/null +++ b/ansible/roles/osmocom-workstation/defaults/main.yml @@ -0,0 +1,4 @@ +--- + +osmocom_user: laforge +git_destination: "/home/{{ osmocom_user}}/projects/git" diff --git a/ansible/roles/osmocom-workstation/tasks/git-repos.yml b/ansible/roles/osmocom-workstation/tasks/git-repos.yml new file mode 100644 index 0000000..624162c --- /dev/null +++ b/ansible/roles/osmocom-workstation/tasks/git-repos.yml @@ -0,0 +1,123 @@ +--- + +- name: install osmocom git repos + become: yes + become_user: "{{ osmocom_user }}" + git: + repo: git://git.osmocom.org/{{ item }}.git + dest: "{{ git_destination }}/{{ item }}" + accept_hostkey: yes + force: no + recursive: no + with_items: + - libosmo-abis + - libosmo-dsp + - libosmo-netif + - libosmo-sccp + - libosmocore + - libsmpp34 + - openpcd + - osmo-sim-auth + - pysim + - sim/hello-stk + - sim/sim-tools + - simtrace + - simtrace2 + - libgtpnl + - libtelnet + - mncc-python + - octphy-2g-headers + - openbsc + - openggsn + - osmo-bsc + - osmo-bts + - osmo-e1-recorder + - osmo-ggsn + - osmo-gsm-manuals + - osmo-gtp-kernel + - osmo-hlr + - osmo-iuh + - osmo-mgw + - osmo-msc + - osmo-pcu + - osmo-rbs + - osmo-sgsn + - osmo-sip-connector + - osmo-trx + - osmocom-lcs + - dct3-gsmtap + - osmo-qcdiag + - osmocom-bb + - osmocom-docs + - ot290-gsmtap + #- quectel-experiments + - osmo-bts-amp + - osmo-e1-xcvr + - osmo-lea6t-gps + - osmo-nvs-gps + - osmo-ocxo + - osmo-small-hardware + - 3gpp-etsi-pdf-links + - artwork + - docker-playground + - gapk + - gen_ladder + - osmo-ci + - osmo-dev + - osmo-gsm-tester + - osmo-pcap + - osmo-sysmon + - osmo-tacdb + - osmo-ttcn3-hacks + - erlang/mgw_nat + - erlang/osmo_map + - erlang/osmo_sccp + - erlang/osmo_ss7 + - erlang/signerl + - osmo-map-masq + - meta-telephony + - osmo-abi-check + - python/osmo-python-tests + - gr-gsm + - gr-iqbal + - gr-osmosdr + - libusrp + - osmo-adsb-gen + - osmo-fl2k + - osmo-sdr + - rtl-sdr + - asn1c + - libasn1c + - libosmo-asn1-map + - libosmo-asn1-tcap + - libosmo-tcap + - libsua + - nplab/m3ua-testtool + - nplab/sua-testtool + - osmo-auc + - osmo-tcap-map + - osmo-tetra + + +- name: install sysmocom git repos + git: repo=git://git.sysmocom.de/{{ item }}.git + dest={{ git_destination }}/{{ item }} + accept_hostkey=yes + force=yes + recursive=no + with_items: + - sysmo-bts/layer1-api + - poky/meta-sysmocom-bsp + - rs-backup-suite + - sysmo-usim-tool + + +- name: install github git repos + git: repo=git://github.com/{{ item }}.git + dest={{ git_destination }}/{{ item }} + accept_hostkey=yes + force=yes + recursive=no + with_items: + - myriadrf/LimeSuite + - gustafj/vim-ttcn diff --git a/ansible/roles/osmocom-workstation/tasks/main.yml b/ansible/roles/osmocom-workstation/tasks/main.yml new file mode 100644 index 0000000..42d213f --- /dev/null +++ b/ansible/roles/osmocom-workstation/tasks/main.yml @@ -0,0 +1,32 @@ +--- + +- name: add user + user: + name: "{{ osmocom_user }}" + generate_ssh_key: yes + ssh_key_bits: 4096 + ssh_key_type: rsa + shell: /usr/bin/zsh + +- name: include git repos + include: git-repos.yml + +- name: install distribution packages + apt: + name: "{{ item }}" + cache_valid_time: 3600 + update_cache: yes + with_items: + - iceweasel + - vim + - evince + - valgrind + - gdb + - libc6-dbg + - wireshark + - tcpdump + - ccache + - gnupg + - openssh-client + - openssh-server + diff --git a/ansible/setup-desktop.yml b/ansible/setup-desktop.yml new file mode 100644 index 0000000..303a610 --- /dev/null +++ b/ansible/setup-desktop.yml @@ -0,0 +1,22 @@ +--- +- hosts: desktops + user: root + roles: + - name: docker + jenkins_user: osmocom-build + tags: + - docker + + - name: install-poky-sdk + jenkins_user: osmocom-build + tags: + - poky + + - name: osmocom-jenkins-slave + jenkins_user: osmocom-build + generic_slave: true + tags: + - jenkins-slave + + - name: osmocom-workstation + osmocom_user: laforge -- To view, visit https://gerrit.osmocom.org/9522 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1a943079470db97f41c9c38318feb0716daa7cd5 Gerrit-Change-Number: 9522 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:39:02 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 13:39:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: test USSD-request during an active call In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9471 ) Change subject: msc/USSD: test USSD-request during an active call ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 Gerrit-Change-Number: 9471 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 10 Jun 2018 13:39:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:39:06 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 13:39:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add unknown request code testcase In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9470 ) Change subject: msc/USSD: add unknown request code testcase ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a3fcaafc37972a38c13722f0b511ea5e1e3fbd8 Gerrit-Change-Number: 9470 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 10 Jun 2018 13:39:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:40:09 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 13:40:09 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: use connection ref-counting and transactions In-Reply-To: References: Message-ID: Hello Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7699 to look at the new patch set (#2). Change subject: libmsc/ussd.c: use connection ref-counting and transactions ...................................................................... libmsc/ussd.c: use connection ref-counting and transactions A subscriber may have a few active transactions at the same time. For example, one can receive SMS messages during a call, or during an active SS/USSD session. We already have connection ref-counting and transactions for CC and SMS, so let's also use both for SS/USSD. Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 --- M src/libmsc/transaction.c M src/libmsc/ussd.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 8 files changed, 248 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/99/7699/2 -- To view, visit https://gerrit.osmocom.org/7699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 Gerrit-Change-Number: 7699 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 13:40:10 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 13:40:10 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: FIX: properly indicate errors Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9523 Change subject: libmsc/ussd.c: FIX: properly indicate errors ...................................................................... libmsc/ussd.c: FIX: properly indicate errors There are error and problem codes defined by GSM TS 04.80: - Error codes are used when a message is structured correctly, but something is wrong in context of the current operation. Usually they are carried by 'Return Error' component. - Problem codes are used when something is wrong with the message structure, or with carried values. They are carried by 'Reject' component. There are three groups of them (see table 3.13): - General Problem Codes (table 3.14), - Invoke Problem Codes (table 3.15), - Return Result Problem Codes (table 3.16), - Return Error Problem Codes (table 3.17). The first group is general purpose, and can be sent in response to any kind of message, excluding 'Reject' itself. Other ones are bound to specific component types, such as 'Invoke', 'Return Result' and 'Return Error'. For some reason, a 'Reject' component with the general problem code 'GSM_0480_GEN_PROB_CODE_UNRECOGNISED' was always used in OsmoMSC. Even when the message structure is correct. Let's properly indicate errors in the following way: - 'Reject' with GSM_0480_GEN_PROB_CODE_UNRECOGNISED when the gsm0480_decode_ss_request() fails to decode a message. It can only return 0 or 1, so it's hard to guess which exact part of message caused the error. - 'Return Error' with GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION when the operation code is not related to USSD. - 'Return Error' with GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE when the requested USSD code is unhandled (not supported). There is a TTCN-3 testcase for this: https://gerrit.osmocom.org/9470/ Change-Id: I800e7ec98dc9d0bca2d45a8b8255d60253d63e14 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/ussd.c 3 files changed, 41 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/23/9523/1 diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index dedf243..fb057c8 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -9,8 +9,12 @@ int gsm0480_send_ussd_response(struct gsm_subscriber_connection *conn, const char* response_text, const struct ss_request *req); +int gsm0480_send_ussd_return_error(struct gsm_subscriber_connection *conn, + const struct ss_request *req, + uint8_t error_code); int gsm0480_send_ussd_reject(struct gsm_subscriber_connection *conn, - const struct ss_request *request); + const struct ss_request *req, + uint8_t error_tag, uint8_t error_code); int msc_send_ussd_notify(struct gsm_subscriber_connection *conn, int level, const char *text); diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 12b41a1..8799fcb 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -108,15 +108,42 @@ return msc_tx_dtap(conn, msg); } +int gsm0480_send_ussd_return_error(struct gsm_subscriber_connection *conn, + const struct ss_request *req, uint8_t error_code) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USSD ERR"); + struct gsm48_hdr *gh; + + /* First insert the problem code */ + msgb_push_TLV1(msg, GSM_0480_ERROR_CODE_TAG, error_code); + + /* Before it insert the invoke ID */ + msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, req->invoke_id); + + /* Wrap this up as a Reject component */ + msgb_wrap_with_TL(msg, GSM0480_CTYPE_RETURN_ERROR); + + /* Wrap the component in a Facility message */ + msgb_wrap_with_TL(msg, GSM0480_IE_FACILITY); + + /* And finally pre-pend the L3 header */ + gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh)); + gh->proto_discr = GSM48_PDISC_NC_SS; + gh->proto_discr |= req->transaction_id | (1<<7); /* TI direction = 1 */ + gh->msg_type = GSM0480_MTYPE_RELEASE_COMPLETE; + + return msc_tx_dtap(conn, msg); +} + int gsm0480_send_ussd_reject(struct gsm_subscriber_connection *conn, - const struct ss_request *req) + const struct ss_request *req, + uint8_t error_tag, uint8_t error_code) { struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USSD REJ"); struct gsm48_hdr *gh; /* First insert the problem code */ - msgb_push_TLV1(msg, GSM_0480_PROBLEM_CODE_TAG_GENERAL, - GSM_0480_GEN_PROB_CODE_UNRECOGNISED); + msgb_push_TLV1(msg, error_tag, error_code); /* Before it insert the invoke ID */ msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, req->invoke_id); diff --git a/src/libmsc/ussd.c b/src/libmsc/ussd.c index fe1610f..f285fcf 100644 --- a/src/libmsc/ussd.c +++ b/src/libmsc/ussd.c @@ -74,7 +74,8 @@ if (!rc) { LOGP(DMM, LOGL_ERROR, "SS/USSD message parsing error, " "rejecting request...\n"); - gsm0480_send_ussd_reject(conn, &req); + gsm0480_send_ussd_reject(conn, &req, GSM_0480_PROBLEM_CODE_TAG_GENERAL, + GSM_0480_GEN_PROB_CODE_UNRECOGNISED); /* The GSM 04.80 API uses inverted codes (0 means error) */ return -EPROTO; } @@ -83,8 +84,8 @@ if (req.ussd_text[0] == '\0' || req.ussd_text[0] == 0xFF) { if (req.ss_code > 0) { /* Assume interrogateSS or modification of it and reject */ - rc = gsm0480_send_ussd_reject(conn, &req); - return rc; + return gsm0480_send_ussd_return_error(conn, &req, + GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION); } /* Still assuming a Release-Complete and returning */ return 0; @@ -96,7 +97,8 @@ rc = send_own_number(conn, &req); } else { DEBUGP(DMM, "Unhandled USSD %s\n", req.ussd_text); - rc = gsm0480_send_ussd_reject(conn, &req); + rc = gsm0480_send_ussd_return_error(conn, &req, + GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE); } return rc; -- To view, visit https://gerrit.osmocom.org/9523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I800e7ec98dc9d0bca2d45a8b8255d60253d63e14 Gerrit-Change-Number: 9523 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 14:47:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 14:47:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: test USSD-request during an active call In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9471 ) Change subject: msc/USSD: test USSD-request during an active call ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 Gerrit-Change-Number: 9471 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 10 Jun 2018 14:47:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 14:47:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 14:47:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add unknown request code testcase In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9470 ) Change subject: msc/USSD: add unknown request code testcase ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a3fcaafc37972a38c13722f0b511ea5e1e3fbd8 Gerrit-Change-Number: 9470 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 10 Jun 2018 14:47:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 14:47:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 14:47:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add unknown request code testcase In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9470 ) Change subject: msc/USSD: add unknown request code testcase ...................................................................... msc/USSD: add unknown request code testcase The idea of this testcase is to check reaction of the network on reception of USSD request with unknown/unhandled request code. It is not clearly defined by the GSM specs, how the network should react in such cases, but looking at GSM TS 04.80, section 4.3.2 "Error types description", the UnexpectedDataValue error looks suitable. Commercial networks also use this error when an unknown request code is sent. Change-Id: I6a3fcaafc37972a38c13722f0b511ea5e1e3fbd8 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 55 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 05d6b4f..7b8740c 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2163,6 +2163,59 @@ vc_conn.done; } +private function f_tc_lu_and_ussd_wrong_code(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Perform location update */ + f_perform_lu(); + + /* Send CM Service Request for SS/USSD */ + f_establish_fully(EST_TYPE_SS_ACT); + + /* Compose a new SS/REGISTER message with request */ + var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( + tid := 1, /* We just need a single transaction */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "*#999#" + ) + ); + + /* Compose SS/RELEASE_COMPLETE template with expected response */ + var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := 1, /* Response should arrive within the same transaction */ + ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ + facility := f_USSD_FACILITY_IE_RETURN_ERROR( + invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */ + err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE + ) + ); + + /* Request own number request */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); + alt { + /* We expect RELEASE_COMPLETE message with the response */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + } + + f_expect_clear(); +} +testcase TC_lu_and_ussd_wrong_code() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_wrong_code), 47); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2245,6 +2298,7 @@ execute( TC_smpp_mt_sms() ); execute( TC_lu_and_ussd_single_req() ); + execute( TC_lu_and_ussd_wrong_code() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index ac18fde..69f2e28 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -72,4 +72,5 @@ + -- To view, visit https://gerrit.osmocom.org/9470 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6a3fcaafc37972a38c13722f0b511ea5e1e3fbd8 Gerrit-Change-Number: 9470 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 14:47:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 14:47:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: test USSD-request during an active call In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9471 ) Change subject: msc/USSD: test USSD-request during an active call ...................................................................... msc/USSD: test USSD-request during an active call The idea of this testcase is to check if MSC can correctly handle a USSD-request during an active call. What we do here: 1) Perform Location Update 2) Establish a MT-call 3) Perform *#100# request 4) Release the call Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 69 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 7b8740c..3316563 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2216,6 +2216,73 @@ vc_conn.done; } +/* LU followed by MT call and USSD request during this call */ +private function f_tc_lu_and_ussd_during_call(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Call parameters taken from f_tc_lu_and_mt_call */ + var CallParameters cpars := valueof(t_CallParams('123456'H, 0)); + cpars.mgcp_connection_id_bss := '10004'H; + cpars.mgcp_connection_id_mss := '10005'H; + cpars.mgcp_ep := "rtpbridge/1 at mgw"; + cpars.bss_rtp_port := 1110; + + /* Perform location update */ + f_perform_lu(); + + /* Establish a MT call */ + f_mt_call_establish(cpars); + + /* Hold the call for some time */ + f_sleep(1.0); + + /* Compose a new SS/REGISTER message with request */ + var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( + tid := 1, /* We just need a single transaction */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := f_USSD_FACILITY_IE_INVOKE( + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "*#100#" + ) + ); + + /* Compose SS/RELEASE_COMPLETE template with expected response */ + var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := 1, /* Response should arrive within the same transaction */ + ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ + facility := f_USSD_FACILITY_IE_RETURN_RESULT( + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "Your extension is " & hex2str(g_pars.msisdn) & "\r" + ) + ); + + /* Request own number request */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); + alt { + /* We expect RELEASE_COMPLETE message with the response */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + } + + /* Hold the call for some time */ + f_sleep(1.0); + + /* Release the call (does Clear Complete itself) */ + f_call_hangup(cpars, true); +} +testcase TC_lu_and_ussd_during_call() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_during_call), 48); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2299,6 +2366,7 @@ execute( TC_lu_and_ussd_single_req() ); execute( TC_lu_and_ussd_wrong_code() ); + execute( TC_lu_and_ussd_during_call() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 69f2e28..ba40519 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -73,4 +73,5 @@ + -- To view, visit https://gerrit.osmocom.org/9471 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifa3cd1aeeb34ccf5864f78b76a88aaa6d5e51839 Gerrit-Change-Number: 9471 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 14:49:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 14:49:10 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: FIX: properly indicate errors In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9523 ) Change subject: libmsc/ussd.c: FIX: properly indicate errors ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I800e7ec98dc9d0bca2d45a8b8255d60253d63e14 Gerrit-Change-Number: 9523 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 10 Jun 2018 14:49:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 14:50:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 14:50:52 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: use connection ref-counting and transactions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/7699 ) Change subject: libmsc/ussd.c: use connection ref-counting and transactions ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/7699/2/src/libmsc/transaction.c File src/libmsc/transaction.c: https://gerrit.osmocom.org/#/c/7699/2/src/libmsc/transaction.c at 132 PS2, Line 132: conn_usage_token = MSC_CONN_USE_TRANS_USSD; is the naming wrong here? Would this token also be used for non-unstructured SS? If yes, it might make sense to rename it? -- To view, visit https://gerrit.osmocom.org/7699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 Gerrit-Change-Number: 7699 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Sun, 10 Jun 2018 14:50:52 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 14:50:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 14:50:56 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: FIX: properly indicate errors In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9523 ) Change subject: libmsc/ussd.c: FIX: properly indicate errors ...................................................................... libmsc/ussd.c: FIX: properly indicate errors There are error and problem codes defined by GSM TS 04.80: - Error codes are used when a message is structured correctly, but something is wrong in context of the current operation. Usually they are carried by 'Return Error' component. - Problem codes are used when something is wrong with the message structure, or with carried values. They are carried by 'Reject' component. There are three groups of them (see table 3.13): - General Problem Codes (table 3.14), - Invoke Problem Codes (table 3.15), - Return Result Problem Codes (table 3.16), - Return Error Problem Codes (table 3.17). The first group is general purpose, and can be sent in response to any kind of message, excluding 'Reject' itself. Other ones are bound to specific component types, such as 'Invoke', 'Return Result' and 'Return Error'. For some reason, a 'Reject' component with the general problem code 'GSM_0480_GEN_PROB_CODE_UNRECOGNISED' was always used in OsmoMSC. Even when the message structure is correct. Let's properly indicate errors in the following way: - 'Reject' with GSM_0480_GEN_PROB_CODE_UNRECOGNISED when the gsm0480_decode_ss_request() fails to decode a message. It can only return 0 or 1, so it's hard to guess which exact part of message caused the error. - 'Return Error' with GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION when the operation code is not related to USSD. - 'Return Error' with GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE when the requested USSD code is unhandled (not supported). There is a TTCN-3 testcase for this: https://gerrit.osmocom.org/9470/ Change-Id: I800e7ec98dc9d0bca2d45a8b8255d60253d63e14 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/ussd.c 3 files changed, 41 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index dedf243..fb057c8 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -9,8 +9,12 @@ int gsm0480_send_ussd_response(struct gsm_subscriber_connection *conn, const char* response_text, const struct ss_request *req); +int gsm0480_send_ussd_return_error(struct gsm_subscriber_connection *conn, + const struct ss_request *req, + uint8_t error_code); int gsm0480_send_ussd_reject(struct gsm_subscriber_connection *conn, - const struct ss_request *request); + const struct ss_request *req, + uint8_t error_tag, uint8_t error_code); int msc_send_ussd_notify(struct gsm_subscriber_connection *conn, int level, const char *text); diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 12b41a1..8799fcb 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -108,15 +108,42 @@ return msc_tx_dtap(conn, msg); } +int gsm0480_send_ussd_return_error(struct gsm_subscriber_connection *conn, + const struct ss_request *req, uint8_t error_code) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USSD ERR"); + struct gsm48_hdr *gh; + + /* First insert the problem code */ + msgb_push_TLV1(msg, GSM_0480_ERROR_CODE_TAG, error_code); + + /* Before it insert the invoke ID */ + msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, req->invoke_id); + + /* Wrap this up as a Reject component */ + msgb_wrap_with_TL(msg, GSM0480_CTYPE_RETURN_ERROR); + + /* Wrap the component in a Facility message */ + msgb_wrap_with_TL(msg, GSM0480_IE_FACILITY); + + /* And finally pre-pend the L3 header */ + gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh)); + gh->proto_discr = GSM48_PDISC_NC_SS; + gh->proto_discr |= req->transaction_id | (1<<7); /* TI direction = 1 */ + gh->msg_type = GSM0480_MTYPE_RELEASE_COMPLETE; + + return msc_tx_dtap(conn, msg); +} + int gsm0480_send_ussd_reject(struct gsm_subscriber_connection *conn, - const struct ss_request *req) + const struct ss_request *req, + uint8_t error_tag, uint8_t error_code) { struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USSD REJ"); struct gsm48_hdr *gh; /* First insert the problem code */ - msgb_push_TLV1(msg, GSM_0480_PROBLEM_CODE_TAG_GENERAL, - GSM_0480_GEN_PROB_CODE_UNRECOGNISED); + msgb_push_TLV1(msg, error_tag, error_code); /* Before it insert the invoke ID */ msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, req->invoke_id); diff --git a/src/libmsc/ussd.c b/src/libmsc/ussd.c index fe1610f..f285fcf 100644 --- a/src/libmsc/ussd.c +++ b/src/libmsc/ussd.c @@ -74,7 +74,8 @@ if (!rc) { LOGP(DMM, LOGL_ERROR, "SS/USSD message parsing error, " "rejecting request...\n"); - gsm0480_send_ussd_reject(conn, &req); + gsm0480_send_ussd_reject(conn, &req, GSM_0480_PROBLEM_CODE_TAG_GENERAL, + GSM_0480_GEN_PROB_CODE_UNRECOGNISED); /* The GSM 04.80 API uses inverted codes (0 means error) */ return -EPROTO; } @@ -83,8 +84,8 @@ if (req.ussd_text[0] == '\0' || req.ussd_text[0] == 0xFF) { if (req.ss_code > 0) { /* Assume interrogateSS or modification of it and reject */ - rc = gsm0480_send_ussd_reject(conn, &req); - return rc; + return gsm0480_send_ussd_return_error(conn, &req, + GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION); } /* Still assuming a Release-Complete and returning */ return 0; @@ -96,7 +97,8 @@ rc = send_own_number(conn, &req); } else { DEBUGP(DMM, "Unhandled USSD %s\n", req.ussd_text); - rc = gsm0480_send_ussd_reject(conn, &req); + rc = gsm0480_send_ussd_return_error(conn, &req, + GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE); } return rc; -- To view, visit https://gerrit.osmocom.org/9523 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I800e7ec98dc9d0bca2d45a8b8255d60253d63e14 Gerrit-Change-Number: 9523 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Jun 10 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 10 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#150?= Message-ID: <1513218121.110.1528643406290.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 2.08 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Jun 10 15:19:43 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 15:19:43 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: use connection ref-counting and transactions In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/7699 ) Change subject: libmsc/ussd.c: use connection ref-counting and transactions ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/7699/2/src/libmsc/transaction.c File src/libmsc/transaction.c: https://gerrit.osmocom.org/#/c/7699/2/src/libmsc/transaction.c at 132 PS2, Line 132: conn_usage_token = MSC_CONN_USE_TRANS_USSD; > is the naming wrong here? Would this token also be used for non-unstructured SS? If yes, it might m [?] Sure, MSC_CONN_USE_TRANS_NC_SS looks better :) -- To view, visit https://gerrit.osmocom.org/7699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 Gerrit-Change-Number: 7699 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 10 Jun 2018 15:19:43 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 15:28:58 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 15:28:58 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: use connection ref-counting and transactions In-Reply-To: References: Message-ID: Hello Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/7699 to look at the new patch set (#3). Change subject: libmsc/ussd.c: use connection ref-counting and transactions ...................................................................... libmsc/ussd.c: use connection ref-counting and transactions A subscriber may have a few active transactions at the same time. For example, one can receive SMS messages during a call, or during an active SS/USSD session. We already have connection ref-counting and transactions for CC and SMS, so let's also use both for SS/USSD. Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 --- M src/libmsc/transaction.c M src/libmsc/ussd.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 8 files changed, 248 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/99/7699/3 -- To view, visit https://gerrit.osmocom.org/7699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 Gerrit-Change-Number: 7699 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 15:28:59 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 15:28:59 +0000 Subject: Change in osmo-msc[master]: libmsc: properly name the MSC_CONN_USE token for SS Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9524 Change subject: libmsc: properly name the MSC_CONN_USE token for SS ...................................................................... libmsc: properly name the MSC_CONN_USE token for SS Previously the MSC_CONN_USE token for Supplementary Services was called 'MSC_CONN_USE_TRANS_USSD'. Non-call related Supplementary Services is not only about USSD, so let's rename it. Change-Id: I5b3517c87a32fa64dea6b0c912f2b76c5c25a112 --- M include/osmocom/msc/osmo_msc.h M src/libmsc/osmo_msc.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/24/9524/1 diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h index 632b231..995b195 100644 --- a/include/osmocom/msc/osmo_msc.h +++ b/include/osmocom/msc/osmo_msc.h @@ -91,7 +91,7 @@ MSC_CONN_USE_CM_SERVICE, MSC_CONN_USE_TRANS_CC, MSC_CONN_USE_TRANS_SMS, - MSC_CONN_USE_TRANS_USSD, + MSC_CONN_USE_TRANS_NC_SS, MSC_CONN_USE_SILENT_CALL, MSC_CONN_USE_RELEASE, }; diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c index 02c335c..62a449f 100644 --- a/src/libmsc/osmo_msc.c +++ b/src/libmsc/osmo_msc.c @@ -327,7 +327,7 @@ {MSC_CONN_USE_CM_SERVICE, "cm_service"}, {MSC_CONN_USE_TRANS_CC, "trans_cc"}, {MSC_CONN_USE_TRANS_SMS, "trans_sms"}, - {MSC_CONN_USE_TRANS_USSD, "trans_ussd"}, + {MSC_CONN_USE_TRANS_NC_SS, "trans_nc_ss"}, {MSC_CONN_USE_SILENT_CALL, "silent_call"}, {MSC_CONN_USE_RELEASE, "release"}, {0, NULL}, -- To view, visit https://gerrit.osmocom.org/9524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5b3517c87a32fa64dea6b0c912f2b76c5c25a112 Gerrit-Change-Number: 9524 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 17:51:53 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Jun 2018 17:51:53 +0000 Subject: Change in osmo-bts[master]: lc15: Use correct type got hLayer1 field Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9525 Change subject: lc15: Use correct type got hLayer1 field ...................................................................... lc15: Use correct type got hLayer1 field It also fixes a compilation warning in which a uint32_t is assigned to a void pointer. Change-Id: I21ea42274eabe854f3b236a22aeb70b93a280541 --- M src/osmo-bts-litecell15/l1_if.h M src/osmo-bts-litecell15/oml.c 2 files changed, 11 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/9525/1 diff --git a/src/osmo-bts-litecell15/l1_if.h b/src/osmo-bts-litecell15/l1_if.h index 7feee56..aac2607 100644 --- a/src/osmo-bts-litecell15/l1_if.h +++ b/src/osmo-bts-litecell15/l1_if.h @@ -10,6 +10,7 @@ #include #include +#include #include @@ -37,7 +38,7 @@ struct lc15l1_hdl { struct gsm_time gsm_time; - uint32_t hLayer1; /* handle to the L1 instance in the DSP */ + HANDLE hLayer1; /* handle to the L1 instance in the DSP */ uint32_t dsp_trace_f; /* currently operational DSP trace flags */ struct llist_head wlc_list; diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index 2c3002b..7a5fa1b 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -114,31 +114,31 @@ prim->u.mphInitReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphCloseReq: - prim->u.mphCloseReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphCloseReq.hLayer1 = gl1->hLayer1; prim->u.mphCloseReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphConnectReq: - prim->u.mphConnectReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphConnectReq.hLayer1 = gl1->hLayer1; prim->u.mphConnectReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphDisconnectReq: - prim->u.mphDisconnectReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphDisconnectReq.hLayer1 = gl1->hLayer1; prim->u.mphDisconnectReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphActivateReq: - prim->u.mphActivateReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphActivateReq.hLayer1 = gl1->hLayer1; prim->u.mphActivateReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphDeactivateReq: - prim->u.mphDeactivateReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphDeactivateReq.hLayer1 = gl1->hLayer1; prim->u.mphDeactivateReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphConfigReq: - prim->u.mphConfigReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphConfigReq.hLayer1 = gl1->hLayer1; prim->u.mphConfigReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphMeasureReq: - prim->u.mphMeasureReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphMeasureReq.hLayer1 = gl1->hLayer1; prim->u.mphMeasureReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphInitCnf: @@ -170,10 +170,10 @@ case GsmL1_PrimId_MphSyncInd: break; case GsmL1_PrimId_PhEmptyFrameReq: - prim->u.phEmptyFrameReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.phEmptyFrameReq.hLayer1 = gl1->hLayer1; break; case GsmL1_PrimId_PhDataReq: - prim->u.phDataReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.phDataReq.hLayer1 = gl1->hLayer1; break; case GsmL1_PrimId_PhConnectInd: break; -- To view, visit https://gerrit.osmocom.org/9525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I21ea42274eabe854f3b236a22aeb70b93a280541 Gerrit-Change-Number: 9525 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 17:52:07 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Jun 2018 17:52:07 +0000 Subject: Change in osmo-bts[master]: lc15: Use correct type for hLayer1 field In-Reply-To: References: Message-ID: Pau Espin Pedrol has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9525 ) Change subject: lc15: Use correct type for hLayer1 field ...................................................................... lc15: Use correct type for hLayer1 field It also fixes a compilation warning in which a uint32_t is assigned to a void pointer. Change-Id: I21ea42274eabe854f3b236a22aeb70b93a280541 --- M src/osmo-bts-litecell15/l1_if.h M src/osmo-bts-litecell15/oml.c 2 files changed, 11 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/25/9525/2 -- To view, visit https://gerrit.osmocom.org/9525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I21ea42274eabe854f3b236a22aeb70b93a280541 Gerrit-Change-Number: 9525 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:44:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:44:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: More complete AGCH / IMM.ASS testing Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9526 Change subject: bts: More complete AGCH / IMM.ASS testing ...................................................................... bts: More complete AGCH / IMM.ASS testing The existing test simply sent 1000 messages via RSL without checking what actually arrived on the radio interface, or without expecting/counting any RSL DELETE IND. Let's fix this by introducing test sending IMM.ASS at three different rates, with related expectations in terms of nubmer of IMM.ASS arriving on Um vs. RSL DELETE IND arriving at BSC. Change-Id: Ib6043b76ba1d7aaff107bb612f63b5a747d8720c Related: OS#2990 Related: SYS#2695 --- M bts/BTS_Tests.ttcn M library/GSM_RR_Types.ttcn M library/RSL_Types.ttcn 3 files changed, 144 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/26/9526/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 25ee3a2..5f71538 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1769,20 +1769,102 @@ /*********************************************************************** * Immediate Assignment / AGCH ***********************************************************************/ +const MobileAllocation c_MA_null := { + len := 0, + ma := ''B +} -testcase TC_imm_ass() runs on test_CT { +template (value) ChannelDescription ts_ChanDesc(template (value) RslChannelNr chan_nr, uint3_t tsc := 7, + uint12_t arfcn := 871) := { + chan_nr := chan_nr, + tsc := tsc, + h := false, + arfcn := arfcn, + maio_hsn := omit +} + +private function f_fmt_ia_stats(integer num_tx, integer num_rx, integer num_del) return charstring { + return int2str(num_tx) & " sent, " + & int2str(num_rx) & " received, " + & int2str(num_del) & " deleted"; +} + +private function f_TC_imm_ass(integer num_total, float sleep_s, float exp_pass) runs on test_CT { + var L1ctlDlMessage l1_dl; + timer T := 10.0; + var integer num_tx := 0; + var integer num_rx := 0; + var integer num_del := 0; + var charstring res_str; + var float rx_ratio; + f_init(testcasename()); - for (var integer i := 0; i < 1000; i := i+1) { - var octetstring ia_enc := f_rnd_octstring(8); + f_init_l1ctl(); + f_l1_tune(L1CTL); + + for (var integer i := 0; i < num_total; i := i+1) { + var ChannelDescription ch_desc := valueof(ts_ChanDesc(valueof(t_RslChanNr_SDCCH4(0, 0)))); + var GsmRrMessage ia := valueof(ts_IMM_ASS(42, i, 5, ch_desc, c_MA_null)); + var octetstring ia_enc := enc_GsmRrMessage(ia); RSL_CCHAN.send(ts_RSL_UD(ts_RSL_IMM_ASSIGN(ia_enc, 0))); - f_sleep(0.02); + num_tx := num_tx+1; + f_sleep(sleep_s); } /* FIXME: check if imm.ass arrive on Um side */ - /* FIXME: check for DELETE INDICATION */ - f_sleep(100.0); - f_shutdown(); + T.start; + alt { + [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_DELETE_IND(?, 0))) { + num_del := num_del+1; + repeat; + } + [] RSL_CCHAN.receive { + repeat; + } + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?)) -> value l1_dl { + /* somehow dec_SystemInformation will try to decode even non-RR as SI */ + var GsmRrMessage rr := dec_GsmRrMessage(l1_dl.payload.data_ind.payload); + if (not match(rr, tr_IMM_ASS(42, ?, 5, ?, ?))) { + /* FIXME: Why are we seeing paging requests on PCH/AGCH? */ + //setverdict(fail, "Unexpected IMM-ASS values on AGCH: ", rr); + //self.stop; + } else { + num_rx := num_rx+1; + } + repeat; + } + [] L1CTL.receive { repeat; } + [] T.timeout { } + } + res_str := f_fmt_ia_stats(num_tx, num_rx, num_del); + log("AGCH test: " & res_str); + if (num_rx + num_del != num_tx) { + setverdict(fail, "RX + DEL != TX ?!?: " & res_str); + } + rx_ratio := int2float(num_rx) / int2float(num_tx); + if (rx_ratio < exp_pass*0.8 or rx_ratio > exp_pass*1.2) { + setverdict(fail, "RX ratio ("&float2str(rx_ratio)&") far from expected ("&float2str(exp_pass)&") " & res_str); + } else { + setverdict(pass); + } } +/* send a long burst of 1000 IMM.ASS with 20ms spacing (50 per s); expect 75% of them to be deleted */ +testcase TC_imm_ass_1000_20ms() runs on test_CT { + f_TC_imm_ass(1000, 0.02, 0.25); +} + +/* send a short burst of 200 IMM.ASS without any spacing; expect 95% of them to be deleted */ +testcase TC_imm_ass_200_0ms() runs on test_CT { + f_TC_imm_ass(200, 0.0, 0.05); +} + +/* send 150 IMM.ASS at rate of 13/s; expect none of them to be deleted */ +testcase TC_imm_ass_200_76ms() runs on test_CT { + f_TC_imm_ass(150, 0.076, 1.00); +} + + + /*********************************************************************** * BCCH ***********************************************************************/ diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index 2ceb1f8..ef209e4 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -357,6 +357,26 @@ req_ref.t3 := fn mod 51; return req_ref } + function tr_compute_ReqRef(template uint8_t ra, template GsmFrameNumber fn) + return template RequestReference { + var template RequestReference req_ref; + if (istemplatekind(ra, "?")) { + req_ref.ra := ?; + } else { + req_ref.ra := int2bit(valueof(ra), 8); + } + if (istemplatekind(fn, "?")) { + req_ref.t1p := ?; + req_ref.t2 := ?; + req_ref.t3 := ?; + } else { + var GsmFrameNumber fn_v := valueof(fn); + req_ref.t1p := (fn_v / 1326) mod 32; + req_ref.t2 := fn_v mod 26; + req_ref.t3 := fn_v mod 51; + } + return req_ref; + } /* 10.5.2.40 */ type integer TimingAdvance (0..219); @@ -674,7 +694,7 @@ with { extension "prototype(convert) decode(RAW)" }; - template GsmRrMessage ts_IMM_ASS(uint8_t ra, GsmFrameNumber fn, TimingAdvance ta, + template (value) GsmRrMessage ts_IMM_ASS(uint8_t ra, GsmFrameNumber fn, TimingAdvance ta, ChannelDescription ch_desc, MobileAllocation ma) := { header := t_RrHeader(IMMEDIATE_ASSIGNMENT, 0), payload := { @@ -696,6 +716,31 @@ } }; + template GsmRrMessage tr_IMM_ASS(template uint8_t ra := ?, template GsmFrameNumber fn := ?, + template TimingAdvance ta := ?, + template ChannelDescription ch_desc := ?, + template MobileAllocation ma := ?) := { + header := t_RrHeader(IMMEDIATE_ASSIGNMENT, 0), + payload := { + imm_ass := { + ded_or_tbf := { + spare := '0'B, + tma := false, + downlink := false, + tbf := false + }, + page_mode := PAGE_MODE_NORMAL, + chan_desc := ch_desc, + pkt_chan_desc := omit, + req_ref := tr_compute_ReqRef(ra, fn), + timing_advance := ta, + mobile_allocation := ma, + rest_octets := * + } + } + }; + + template (value) GsmRrL3Message ts_MEAS_REP(boolean valid, uint6_t rxl_f, uint6_t rxl_s, uint3_t rxq_f, uint3_t rxq_s, template (omit) NcellReports reps) := { diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index b81bbbd..3804d40 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -1394,6 +1394,15 @@ t_RSL_IE(RSL_IE_FULL_IMM_ASS_INFO, RSL_IE_Body:{full_imm_ass_info := ts_RSL_LV(imm_ass)}) } } + template RSL_Message tr_RSL_DELETE_IND(template octetstring imm_ass := ?, template uint3_t tn) := { + msg_disc := tr_RSL_MsgDisc(RSL_MDISC_CCHAN, false), + msg_type := RSL_MT_DELETE_IND, + ies := { + tr_RSL_IE(RSL_IE_Body:{chan_nr := t_RslChanNr_PCH_AGCH(tn)}), + tr_RSL_IE(RSL_IE_Body:{full_imm_ass_info := tr_RSL_LV(imm_ass)}), + * + } + } /* 8.5.5 BSC -> BTS */ template RSL_Message tr_RSL_PAGING_CMD(template octetstring identity, template uint3_t tn := ?) := { -- To view, visit https://gerrit.osmocom.org/9526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib6043b76ba1d7aaff107bb612f63b5a747d8720c Gerrit-Change-Number: 9526 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:50:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:50:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: More complete AGCH / IMM.ASS testing In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9526 ) Change subject: bts: More complete AGCH / IMM.ASS testing ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib6043b76ba1d7aaff107bb612f63b5a747d8720c Gerrit-Change-Number: 9526 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 10 Jun 2018 19:50:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:50:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:50:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: More complete AGCH / IMM.ASS testing In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9526 ) Change subject: bts: More complete AGCH / IMM.ASS testing ...................................................................... bts: More complete AGCH / IMM.ASS testing The existing test simply sent 1000 messages via RSL without checking what actually arrived on the radio interface, or without expecting/counting any RSL DELETE IND. Let's fix this by introducing test sending IMM.ASS at three different rates, with related expectations in terms of nubmer of IMM.ASS arriving on Um vs. RSL DELETE IND arriving at BSC. Change-Id: Ib6043b76ba1d7aaff107bb612f63b5a747d8720c Related: OS#2990 Related: SYS#2695 --- M bts/BTS_Tests.ttcn M library/GSM_RR_Types.ttcn M library/RSL_Types.ttcn 3 files changed, 144 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 25ee3a2..5f71538 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1769,20 +1769,102 @@ /*********************************************************************** * Immediate Assignment / AGCH ***********************************************************************/ +const MobileAllocation c_MA_null := { + len := 0, + ma := ''B +} -testcase TC_imm_ass() runs on test_CT { +template (value) ChannelDescription ts_ChanDesc(template (value) RslChannelNr chan_nr, uint3_t tsc := 7, + uint12_t arfcn := 871) := { + chan_nr := chan_nr, + tsc := tsc, + h := false, + arfcn := arfcn, + maio_hsn := omit +} + +private function f_fmt_ia_stats(integer num_tx, integer num_rx, integer num_del) return charstring { + return int2str(num_tx) & " sent, " + & int2str(num_rx) & " received, " + & int2str(num_del) & " deleted"; +} + +private function f_TC_imm_ass(integer num_total, float sleep_s, float exp_pass) runs on test_CT { + var L1ctlDlMessage l1_dl; + timer T := 10.0; + var integer num_tx := 0; + var integer num_rx := 0; + var integer num_del := 0; + var charstring res_str; + var float rx_ratio; + f_init(testcasename()); - for (var integer i := 0; i < 1000; i := i+1) { - var octetstring ia_enc := f_rnd_octstring(8); + f_init_l1ctl(); + f_l1_tune(L1CTL); + + for (var integer i := 0; i < num_total; i := i+1) { + var ChannelDescription ch_desc := valueof(ts_ChanDesc(valueof(t_RslChanNr_SDCCH4(0, 0)))); + var GsmRrMessage ia := valueof(ts_IMM_ASS(42, i, 5, ch_desc, c_MA_null)); + var octetstring ia_enc := enc_GsmRrMessage(ia); RSL_CCHAN.send(ts_RSL_UD(ts_RSL_IMM_ASSIGN(ia_enc, 0))); - f_sleep(0.02); + num_tx := num_tx+1; + f_sleep(sleep_s); } /* FIXME: check if imm.ass arrive on Um side */ - /* FIXME: check for DELETE INDICATION */ - f_sleep(100.0); - f_shutdown(); + T.start; + alt { + [] RSL_CCHAN.receive(tr_RSL_UD(tr_RSL_DELETE_IND(?, 0))) { + num_del := num_del+1; + repeat; + } + [] RSL_CCHAN.receive { + repeat; + } + [] L1CTL.receive(tr_L1CTL_DATA_IND(t_RslChanNr_PCH_AGCH(0), ?)) -> value l1_dl { + /* somehow dec_SystemInformation will try to decode even non-RR as SI */ + var GsmRrMessage rr := dec_GsmRrMessage(l1_dl.payload.data_ind.payload); + if (not match(rr, tr_IMM_ASS(42, ?, 5, ?, ?))) { + /* FIXME: Why are we seeing paging requests on PCH/AGCH? */ + //setverdict(fail, "Unexpected IMM-ASS values on AGCH: ", rr); + //self.stop; + } else { + num_rx := num_rx+1; + } + repeat; + } + [] L1CTL.receive { repeat; } + [] T.timeout { } + } + res_str := f_fmt_ia_stats(num_tx, num_rx, num_del); + log("AGCH test: " & res_str); + if (num_rx + num_del != num_tx) { + setverdict(fail, "RX + DEL != TX ?!?: " & res_str); + } + rx_ratio := int2float(num_rx) / int2float(num_tx); + if (rx_ratio < exp_pass*0.8 or rx_ratio > exp_pass*1.2) { + setverdict(fail, "RX ratio ("&float2str(rx_ratio)&") far from expected ("&float2str(exp_pass)&") " & res_str); + } else { + setverdict(pass); + } } +/* send a long burst of 1000 IMM.ASS with 20ms spacing (50 per s); expect 75% of them to be deleted */ +testcase TC_imm_ass_1000_20ms() runs on test_CT { + f_TC_imm_ass(1000, 0.02, 0.25); +} + +/* send a short burst of 200 IMM.ASS without any spacing; expect 95% of them to be deleted */ +testcase TC_imm_ass_200_0ms() runs on test_CT { + f_TC_imm_ass(200, 0.0, 0.05); +} + +/* send 150 IMM.ASS at rate of 13/s; expect none of them to be deleted */ +testcase TC_imm_ass_200_76ms() runs on test_CT { + f_TC_imm_ass(150, 0.076, 1.00); +} + + + /*********************************************************************** * BCCH ***********************************************************************/ diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index 2ceb1f8..ef209e4 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -357,6 +357,26 @@ req_ref.t3 := fn mod 51; return req_ref } + function tr_compute_ReqRef(template uint8_t ra, template GsmFrameNumber fn) + return template RequestReference { + var template RequestReference req_ref; + if (istemplatekind(ra, "?")) { + req_ref.ra := ?; + } else { + req_ref.ra := int2bit(valueof(ra), 8); + } + if (istemplatekind(fn, "?")) { + req_ref.t1p := ?; + req_ref.t2 := ?; + req_ref.t3 := ?; + } else { + var GsmFrameNumber fn_v := valueof(fn); + req_ref.t1p := (fn_v / 1326) mod 32; + req_ref.t2 := fn_v mod 26; + req_ref.t3 := fn_v mod 51; + } + return req_ref; + } /* 10.5.2.40 */ type integer TimingAdvance (0..219); @@ -674,7 +694,7 @@ with { extension "prototype(convert) decode(RAW)" }; - template GsmRrMessage ts_IMM_ASS(uint8_t ra, GsmFrameNumber fn, TimingAdvance ta, + template (value) GsmRrMessage ts_IMM_ASS(uint8_t ra, GsmFrameNumber fn, TimingAdvance ta, ChannelDescription ch_desc, MobileAllocation ma) := { header := t_RrHeader(IMMEDIATE_ASSIGNMENT, 0), payload := { @@ -696,6 +716,31 @@ } }; + template GsmRrMessage tr_IMM_ASS(template uint8_t ra := ?, template GsmFrameNumber fn := ?, + template TimingAdvance ta := ?, + template ChannelDescription ch_desc := ?, + template MobileAllocation ma := ?) := { + header := t_RrHeader(IMMEDIATE_ASSIGNMENT, 0), + payload := { + imm_ass := { + ded_or_tbf := { + spare := '0'B, + tma := false, + downlink := false, + tbf := false + }, + page_mode := PAGE_MODE_NORMAL, + chan_desc := ch_desc, + pkt_chan_desc := omit, + req_ref := tr_compute_ReqRef(ra, fn), + timing_advance := ta, + mobile_allocation := ma, + rest_octets := * + } + } + }; + + template (value) GsmRrL3Message ts_MEAS_REP(boolean valid, uint6_t rxl_f, uint6_t rxl_s, uint3_t rxq_f, uint3_t rxq_s, template (omit) NcellReports reps) := { diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index b81bbbd..3804d40 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -1394,6 +1394,15 @@ t_RSL_IE(RSL_IE_FULL_IMM_ASS_INFO, RSL_IE_Body:{full_imm_ass_info := ts_RSL_LV(imm_ass)}) } } + template RSL_Message tr_RSL_DELETE_IND(template octetstring imm_ass := ?, template uint3_t tn) := { + msg_disc := tr_RSL_MsgDisc(RSL_MDISC_CCHAN, false), + msg_type := RSL_MT_DELETE_IND, + ies := { + tr_RSL_IE(RSL_IE_Body:{chan_nr := t_RslChanNr_PCH_AGCH(tn)}), + tr_RSL_IE(RSL_IE_Body:{full_imm_ass_info := tr_RSL_LV(imm_ass)}), + * + } + } /* 8.5.5 BSC -> BTS */ template RSL_Message tr_RSL_PAGING_CMD(template octetstring identity, template uint3_t tn := ?) := { -- To view, visit https://gerrit.osmocom.org/9526 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib6043b76ba1d7aaff107bb612f63b5a747d8720c Gerrit-Change-Number: 9526 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:50:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:50:19 +0000 Subject: Change in osmo-bts[master]: lc15: Use correct type for hLayer1 field In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9525 ) Change subject: lc15: Use correct type for hLayer1 field ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I21ea42274eabe854f3b236a22aeb70b93a280541 Gerrit-Change-Number: 9525 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 10 Jun 2018 19:50:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:50:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:50:21 +0000 Subject: Change in osmo-bts[master]: lc15: Use correct type for hLayer1 field In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9525 ) Change subject: lc15: Use correct type for hLayer1 field ...................................................................... lc15: Use correct type for hLayer1 field It also fixes a compilation warning in which a uint32_t is assigned to a void pointer. Change-Id: I21ea42274eabe854f3b236a22aeb70b93a280541 --- M src/osmo-bts-litecell15/l1_if.h M src/osmo-bts-litecell15/oml.c 2 files changed, 11 insertions(+), 10 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bts-litecell15/l1_if.h b/src/osmo-bts-litecell15/l1_if.h index 7feee56..aac2607 100644 --- a/src/osmo-bts-litecell15/l1_if.h +++ b/src/osmo-bts-litecell15/l1_if.h @@ -10,6 +10,7 @@ #include #include +#include #include @@ -37,7 +38,7 @@ struct lc15l1_hdl { struct gsm_time gsm_time; - uint32_t hLayer1; /* handle to the L1 instance in the DSP */ + HANDLE hLayer1; /* handle to the L1 instance in the DSP */ uint32_t dsp_trace_f; /* currently operational DSP trace flags */ struct llist_head wlc_list; diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index 2c3002b..7a5fa1b 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -114,31 +114,31 @@ prim->u.mphInitReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphCloseReq: - prim->u.mphCloseReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphCloseReq.hLayer1 = gl1->hLayer1; prim->u.mphCloseReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphConnectReq: - prim->u.mphConnectReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphConnectReq.hLayer1 = gl1->hLayer1; prim->u.mphConnectReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphDisconnectReq: - prim->u.mphDisconnectReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphDisconnectReq.hLayer1 = gl1->hLayer1; prim->u.mphDisconnectReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphActivateReq: - prim->u.mphActivateReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphActivateReq.hLayer1 = gl1->hLayer1; prim->u.mphActivateReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphDeactivateReq: - prim->u.mphDeactivateReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphDeactivateReq.hLayer1 = gl1->hLayer1; prim->u.mphDeactivateReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphConfigReq: - prim->u.mphConfigReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphConfigReq.hLayer1 = gl1->hLayer1; prim->u.mphConfigReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphMeasureReq: - prim->u.mphMeasureReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.mphMeasureReq.hLayer1 = gl1->hLayer1; prim->u.mphMeasureReq.hLayer3 = hLayer3; break; case GsmL1_PrimId_MphInitCnf: @@ -170,10 +170,10 @@ case GsmL1_PrimId_MphSyncInd: break; case GsmL1_PrimId_PhEmptyFrameReq: - prim->u.phEmptyFrameReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.phEmptyFrameReq.hLayer1 = gl1->hLayer1; break; case GsmL1_PrimId_PhDataReq: - prim->u.phDataReq.hLayer1 = (HANDLE)gl1->hLayer1; + prim->u.phDataReq.hLayer1 = gl1->hLayer1; break; case GsmL1_PrimId_PhConnectInd: break; -- To view, visit https://gerrit.osmocom.org/9525 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I21ea42274eabe854f3b236a22aeb70b93a280541 Gerrit-Change-Number: 9525 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:51:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:51:19 +0000 Subject: Change in osmo-msc[master]: libmsc: properly name the MSC_CONN_USE token for SS In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9524 ) Change subject: libmsc: properly name the MSC_CONN_USE token for SS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b3517c87a32fa64dea6b0c912f2b76c5c25a112 Gerrit-Change-Number: 9524 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 10 Jun 2018 19:51:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:51:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:51:21 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: use connection ref-counting and transactions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/7699 ) Change subject: libmsc/ussd.c: use connection ref-counting and transactions ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 Gerrit-Change-Number: 7699 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 10 Jun 2018 19:51:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:51:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:51:22 +0000 Subject: Change in osmo-msc[master]: libmsc: properly name the MSC_CONN_USE token for SS In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9524 ) Change subject: libmsc: properly name the MSC_CONN_USE token for SS ...................................................................... libmsc: properly name the MSC_CONN_USE token for SS Previously the MSC_CONN_USE token for Supplementary Services was called 'MSC_CONN_USE_TRANS_USSD'. Non-call related Supplementary Services is not only about USSD, so let's rename it. Change-Id: I5b3517c87a32fa64dea6b0c912f2b76c5c25a112 --- M include/osmocom/msc/osmo_msc.h M src/libmsc/osmo_msc.c 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/msc/osmo_msc.h b/include/osmocom/msc/osmo_msc.h index 632b231..995b195 100644 --- a/include/osmocom/msc/osmo_msc.h +++ b/include/osmocom/msc/osmo_msc.h @@ -91,7 +91,7 @@ MSC_CONN_USE_CM_SERVICE, MSC_CONN_USE_TRANS_CC, MSC_CONN_USE_TRANS_SMS, - MSC_CONN_USE_TRANS_USSD, + MSC_CONN_USE_TRANS_NC_SS, MSC_CONN_USE_SILENT_CALL, MSC_CONN_USE_RELEASE, }; diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c index 02c335c..62a449f 100644 --- a/src/libmsc/osmo_msc.c +++ b/src/libmsc/osmo_msc.c @@ -327,7 +327,7 @@ {MSC_CONN_USE_CM_SERVICE, "cm_service"}, {MSC_CONN_USE_TRANS_CC, "trans_cc"}, {MSC_CONN_USE_TRANS_SMS, "trans_sms"}, - {MSC_CONN_USE_TRANS_USSD, "trans_ussd"}, + {MSC_CONN_USE_TRANS_NC_SS, "trans_nc_ss"}, {MSC_CONN_USE_SILENT_CALL, "silent_call"}, {MSC_CONN_USE_RELEASE, "release"}, {0, NULL}, -- To view, visit https://gerrit.osmocom.org/9524 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5b3517c87a32fa64dea6b0c912f2b76c5c25a112 Gerrit-Change-Number: 9524 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 19:51:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 19:51:23 +0000 Subject: Change in osmo-msc[master]: libmsc/ussd.c: use connection ref-counting and transactions In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/7699 ) Change subject: libmsc/ussd.c: use connection ref-counting and transactions ...................................................................... libmsc/ussd.c: use connection ref-counting and transactions A subscriber may have a few active transactions at the same time. For example, one can receive SMS messages during a call, or during an active SS/USSD session. We already have connection ref-counting and transactions for CC and SMS, so let's also use both for SS/USSD. Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 --- M src/libmsc/transaction.c M src/libmsc/ussd.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.err M tests/msc_vlr/msc_vlr_test_umts_authen.err 8 files changed, 248 insertions(+), 31 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 28da9f3..f2c80d7 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -128,6 +128,9 @@ _gsm411_sms_trans_free(trans); conn_usage_token = MSC_CONN_USE_TRANS_SMS; break; + case GSM48_PDISC_NC_SS: + conn_usage_token = MSC_CONN_USE_TRANS_NC_SS; + break; } if (trans->paging_request) { diff --git a/src/libmsc/ussd.c b/src/libmsc/ussd.c index f285fcf..a27d47b 100644 --- a/src/libmsc/ussd.c +++ b/src/libmsc/ussd.c @@ -35,6 +35,10 @@ #include #include #include +#include + +/* FIXME: choose a proper range */ +static uint32_t new_callref = 0x20000001; /* Declarations of USSD strings to be recognised */ const char USSD_TEXT_OWN_NUMBER[] = "*#100#"; @@ -57,19 +61,60 @@ /* Entrypoint - handler function common to all mobile-originated USSDs */ int handle_rcv_ussd(struct gsm_subscriber_connection *conn, struct msgb *msg) { - int rc; + struct gsm48_hdr *gh = msgb_l3(msg); + struct gsm_trans *trans; struct ss_request req; - struct gsm48_hdr *gh; + uint8_t pdisc, tid; + uint8_t msg_type; + int rc; - /* TODO: Use subscriber_connection ref-counting if we ever want - * to keep the connection alive due ot ongoing USSD exchange. - * As we answer everytying synchronously so far, there's no need - * yet */ + pdisc = gsm48_hdr_pdisc(gh); + msg_type = gsm48_hdr_msg_type(gh); + tid = gsm48_hdr_trans_id_flip_ti(gh); - cm_service_request_concludes(conn, msg); + /* Associate logging messages with this subscriber */ + log_set_context(LOG_CTX_VLR_SUBSCR, conn->vsub); + + DEBUGP(DMM, "Received SS/USSD data (trans_id=%x, msg_type=%s)\n", + tid, gsm48_pdisc_msgtype_name(pdisc, msg_type)); + + /* Reuse existing transaction, or create a new one */ + trans = trans_find_by_id(conn, pdisc, tid); + if (!trans) { + /** + * According to GSM TS 04.80, section 2.4.2 "Register + * (mobile station to network direction)", the REGISTER + * message is sent by the mobile station to the network + * to assign a new transaction identifier for call independent + * supplementary service control and to request or acknowledge + * a supplementary service. + */ + if (msg_type != GSM0480_MTYPE_REGISTER) { + LOGP(DMM, LOGL_ERROR, "Unexpected message (msg_type=%s), " + "transaction is not allocated yet\n", + gsm48_pdisc_msgtype_name(pdisc, msg_type)); + gsm0480_send_ussd_reject(conn, &req, + GSM_0480_PROBLEM_CODE_TAG_GENERAL, + GSM_0480_GEN_PROB_CODE_UNRECOGNISED); + return -EINVAL; + } + + DEBUGP(DMM, " -> (new transaction)\n"); + trans = trans_alloc(conn->network, conn->vsub, + pdisc, tid, new_callref++); + if (!trans) { + DEBUGP(DMM, " -> No memory for trans\n"); + gsm0480_send_ussd_return_error(conn, &req, + GSM0480_ERR_CODE_SYSTEM_FAILURE); + return -ENOMEM; + } + + trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_NC_SS); + trans->dlci = OMSC_LINKID_CB(msg); + cm_service_request_concludes(conn, msg); + } memset(&req, 0, sizeof(req)); - gh = msgb_l3(msg); rc = gsm0480_decode_ss_request(gh, msgb_l3len(msg), &req); if (!rc) { LOGP(DMM, LOGL_ERROR, "SS/USSD message parsing error, " @@ -101,5 +146,13 @@ GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE); } + /** + * TODO: as we only handle *#100# for now, and always + * respond with RELEASE COMPLETE, let's manually free + * the transaction here, until the external interface + * is implemented. + */ + trans_free(trans); + return rc; } diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index f8ebf51..2fae418 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -259,8 +259,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000001) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -268,6 +273,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -381,8 +388,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000002) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -390,6 +402,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -731,8 +745,13 @@ MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -740,6 +759,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -866,8 +887,13 @@ MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000004) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -875,6 +901,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -1191,8 +1219,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000005) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -1200,6 +1233,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -1299,8 +1334,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000006) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -1308,6 +1348,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -1407,8 +1449,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000007) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -1416,6 +1463,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -1757,8 +1806,13 @@ MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000008) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -1766,6 +1820,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -1878,8 +1934,13 @@ MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000009) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -1887,6 +1948,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -1999,8 +2062,13 @@ MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 2000000a) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -2008,6 +2076,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -2338,8 +2408,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 2000000b) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -2347,6 +2422,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -2702,8 +2779,13 @@ MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 2000000c) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -2711,6 +2793,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index 646617a..22f5824 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -252,8 +252,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -261,6 +266,8 @@ DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -753,8 +760,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -762,6 +774,8 @@ DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -1878,8 +1892,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -1887,6 +1906,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 0d5c819..e309c2e 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -281,8 +281,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -290,6 +295,8 @@ DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -837,8 +844,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -846,6 +858,8 @@ DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -2079,8 +2093,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -2088,6 +2107,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index 8d9d497..af80da2 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -165,8 +165,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -174,6 +179,8 @@ DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -541,8 +548,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -550,6 +562,8 @@ DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 5d16776..8221e78 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1121,8 +1121,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -1130,6 +1135,8 @@ DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index c7be31c..fcaaa97 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -265,8 +265,13 @@ MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000001) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -274,6 +279,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING @@ -769,8 +776,13 @@ MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:42342 callref 20000002) New transaction +DREF VLR subscr MSISDN:42342 usage increases to: 3 +DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 1 (0x2: dtap) +DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING DMM USSD: Own number requested @@ -778,6 +790,8 @@ DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU - DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d - DTAP matches expected message +DREF VLR subscr MSISDN:42342 usage decreases to: 2 +DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING -- To view, visit https://gerrit.osmocom.org/7699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I21c6777cb88f1f4f80f75dcd39734e952bd4e8b0 Gerrit-Change-Number: 7699 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 20:13:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Jun 2018 20:13:55 +0000 Subject: Change in osmo-bsc[master]: remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9527 Change subject: remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) ...................................................................... remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) Change-Id: I9127ddb7b29eb82defd3a8afac9c1dbfd424fb72 --- M osmoappdesc.py M tests/ctrl_test_runner.py 2 files changed, 2 insertions(+), 82 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/27/9527/1 diff --git a/osmoappdesc.py b/osmoappdesc.py index 338239c..f5f18b2 100644 --- a/osmoappdesc.py +++ b/osmoappdesc.py @@ -16,12 +16,10 @@ app_configs = { "osmo-bsc": ["doc/examples/osmo-bsc/osmo-bsc.cfg", - "doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg"], - "nat": ["doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg"], + "doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg"] } -apps = [(4242, "src/osmo-bsc/osmo-bsc", "OsmoBSC", "osmo-bsc"), - (4244, "src/osmo-bsc_nat/osmo-bsc_nat", "OsmoBSCNAT", "nat"), +apps = [(4242, "src/osmo-bsc/osmo-bsc", "OsmoBSC", "osmo-bsc") ] vty_command = ["./src/osmo-bsc/osmo-bsc", "-c", diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py index f43c09a..cc37c97 100755 --- a/tests/ctrl_test_runner.py +++ b/tests/ctrl_test_runner.py @@ -489,68 +489,6 @@ self.assertEquals(r['var'], 'mcc') self.assertEquals(r['value'], '002') -class TestCtrlNAT(TestCtrlBase): - - def ctrl_command(self): - return ["./src/osmo-bsc_nat/osmo-bsc_nat", "-c", - "doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg"] - - def ctrl_app(self): - return (4250, "./src/osmo-bsc_nat/osmo-bsc_nat", "OsmoNAT", "nat") - - def testAccessList(self): - r = self.do_get('net.0.bsc_cfg.0.access-list-name') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], None) - - r = self.do_set('net.0.bsc_cfg.0.access-list-name', 'bla') - self.assertEquals(r['mtype'], 'SET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], 'bla') - - r = self.do_get('net.0.bsc_cfg.0.access-list-name') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], 'bla') - - r = self.do_set('net.0.bsc_cfg.0.no-access-list-name', '1') - self.assertEquals(r['mtype'], 'SET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], None) - - r = self.do_get('net.0.bsc_cfg.0.access-list-name') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], None) - - def testAccessListManagement(self): - r = self.do_set("net.0.add.allow.access-list.404", "abc") - self.assertEquals(r['mtype'], 'ERROR') - - r = self.do_set("net.0.add.allow.access-list.bla", "^234$") - self.assertEquals(r['mtype'], 'SET_REPLY') - self.assertEquals(r['var'], 'net.0.add.allow.access-list.bla') - self.assertEquals(r['value'], 'IMSI allow added to access list') - - # TODO.. find a way to actually see if this rule has been - # added. e.g. by implementing a get for the list. - -class TestCtrlSGSN(TestCtrlBase): - def ctrl_command(self): - return ["./src/gprs/osmo-sgsn", "-c", - "doc/examples/osmo-sgsn/osmo-sgsn.cfg"] - - def ctrl_app(self): - return (4251, "./src/gprs/osmo-sgsn", "OsmoSGSN", "sgsn") - - def testListSubscribers(self): - # TODO. Add command to mark a subscriber as active - r = self.do_get('subscriber-list-active-v1') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'subscriber-list-active-v1') - self.assertEquals(r['value'], None) - def add_bsc_test(suite, workdir): if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc/osmo-bsc")): print("Skipping the BSC test") @@ -558,20 +496,6 @@ test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlBSC) suite.addTest(test) -def add_nat_test(suite, workdir): - if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc_nat/osmo-bsc_nat")): - print("Skipping the NAT test") - return - test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlNAT) - suite.addTest(test) - -def add_sgsn_test(suite, workdir): - if not os.path.isfile(os.path.join(workdir, "src/gprs/osmo-sgsn")): - print("Skipping the SGSN test") - return - test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlSGSN) - suite.addTest(test) - if __name__ == '__main__': import argparse import sys @@ -603,7 +527,5 @@ print "Running tests for specific control commands" suite = unittest.TestSuite() add_bsc_test(suite, workdir) - add_nat_test(suite, workdir) - add_sgsn_test(suite, workdir) res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) sys.exit(len(res.errors) + len(res.failures)) -- To view, visit https://gerrit.osmocom.org/9527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9127ddb7b29eb82defd3a8afac9c1dbfd424fb72 Gerrit-Change-Number: 9527 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 21:01:27 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 21:01:27 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9528 Change subject: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() ...................................................................... gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In some cases, there is no need to parse the whole message, e.g. during the conversation from DTAP to GSUP/MAP. This function can be used to extract given IE from a message. Change-Id: I3989d061903352473305f80712f1a1560d05df3d --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 5 files changed, 135 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/9528/1 diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h index b0b6aa2..b31f8a7 100644 --- a/include/osmocom/gsm/gsm0480.h +++ b/include/osmocom/gsm/gsm0480.h @@ -91,6 +91,8 @@ uint8_t invoke_id; }; +int gsm0480_extract_ie_by_tag(const struct gsm48_hdr *hdr, uint16_t msg_len, + uint8_t **ie, uint16_t *ie_len, uint8_t ie_tag); int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len, struct ss_request *request); diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index 5c73e5b..80e59df 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -33,6 +33,7 @@ #include #include +#include static inline unsigned char *msgb_wrap_with_TL(struct msgb *msgb, uint8_t tag) { @@ -214,6 +215,77 @@ uint16_t length, struct ss_request *req); +int gsm0480_extract_ie_by_tag(const struct gsm48_hdr *hdr, uint16_t msg_len, + uint8_t **ie, uint16_t *ie_len, uint8_t ie_tag) +{ + uint8_t pdisc, msg_type; + uint8_t *tlv, len; + + /* Init external variables */ + *ie_len = 0; + *ie = NULL; + + /* Drop incomplete / corrupted messages */ + if (msg_len < sizeof(*hdr)) + return -EINVAL; + + pdisc = gsm48_hdr_pdisc(hdr); + msg_type = gsm48_hdr_msg_type(hdr); + + /* Drop non-SS related messages */ + if (pdisc != GSM48_PDISC_NC_SS) + return -EINVAL; + + len = msg_len - sizeof(*hdr); + tlv = (uint8_t *) hdr->data; + + /* Parse a message depending on its type */ + switch (msg_type) { + /* See table 2.5: RELEASE COMPLETE message content */ + case GSM0480_MTYPE_RELEASE_COMPLETE: + /* See tables 2.3 and 2.4: REGISTER message content */ + case GSM0480_MTYPE_REGISTER: + /* Iterate over TLV-based IEs */ + while (len > 2) { + if (tlv[0] == ie_tag) { + *ie_len = tlv[1]; + *ie = tlv + 2; + return 0; + } + + len -= tlv[1] + 2; + tlv += tlv[1] + 2; + continue; + } + + /* The Facility IE is mandatory for REGISTER */ + if (msg_type == GSM0480_MTYPE_REGISTER) + if (ie_tag == GSM0480_IE_FACILITY) + return -EINVAL; + break; + + /* See table 2.2: FACILITY message content */ + case GSM0480_MTYPE_FACILITY: + /* There is no other IEs */ + if (ie_tag != GSM0480_IE_FACILITY) + break; + + /* Mandatory LV-based Facility IE */ + if (len < 2) + return -EINVAL; + + *ie_len = tlv[0]; + *ie = tlv + 1; + return 0; + + default: + /* Wrong message type, out of specs */ + return -EINVAL; + } + + return 0; +} + /* Decode a mobile-originated USSD-request message */ int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len, struct ussd_request *req) diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 117cecf..4aaed46 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -89,6 +89,7 @@ gsm0480_create_ussd_resp; gsm0480_create_ussd_notify; gsm0480_create_ussd_release_complete; +gsm0480_extract_ie_by_tag; gsm0480_decode_ussd_request; gsm0480_decode_ss_request; gsm0480_wrap_facility; diff --git a/tests/ussd/ussd_test.c b/tests/ussd/ussd_test.c index 1f79063..47365c9 100644 --- a/tests/ussd/ussd_test.c +++ b/tests/ussd/ussd_test.c @@ -34,6 +34,11 @@ 0x01, 0x7f, 0x01, 0x00 }; +static const uint8_t ussd_release[] = { + 0x8b, 0x2a, 0x1c, 0x08, 0xa3, 0x06, 0x02, 0x01, + 0x05, 0x02, 0x01, 0x24 +}; + static const uint8_t interrogate_ss[] = { 0x0b, 0x7b, 0x1c, 0x0d, 0xa1, 0x0b, 0x02, 0x01, 0x03, 0x02, 0x01, 0x0e, 0x30, 0x03, 0x04, 0x01, @@ -116,6 +121,53 @@ } } +static void test_extract_ie_by_tag(void) +{ + uint16_t ie_len; + uint8_t *ie; + int rc; + + printf("[i] Testing gsm0480_extract_ie_by_tag()\n"); + + /* REGISTER message with Facility IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_request, + sizeof(ussd_request), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] REGISTER message with Facility IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* REGISTER message with SS version IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_request, + sizeof(ussd_request), &ie, &ie_len, GSM0480_IE_SS_VERSION); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] REGISTER message with SS version IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* REGISTER message with unknown IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_request, + sizeof(ussd_request), &ie, &ie_len, 0xff); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie == NULL && ie_len == 0); + + /* RELEASE COMPLETE message with Facility IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_release, + sizeof(ussd_release), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] RELEASE COMPLETE message with Facility IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* RELEASE COMPLETE message without Facility IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_release, + sizeof(struct gsm48_hdr), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie == NULL && ie_len == 0); + + printf("\n"); +} + int main(int argc, char **argv) { struct ss_request req; @@ -126,6 +178,9 @@ osmo_init_logging2(ctx, &info); + /* Test gsm0480_extract_ie_by_tag() */ + test_extract_ie_by_tag(); + memset(&req, 0, sizeof(req)); gsm0480_decode_ss_request((struct gsm48_hdr *) ussd_request, sizeof(ussd_request), &req); diff --git a/tests/ussd/ussd_test.ok b/tests/ussd/ussd_test.ok index aff383e..75cabd4 100644 --- a/tests/ussd/ussd_test.ok +++ b/tests/ussd/ussd_test.ok @@ -1,3 +1,8 @@ +[i] Testing gsm0480_extract_ie_by_tag() +[?] REGISTER message with Facility IE (len=21): a1 13 02 01 03 02 01 3b 30 0b 04 01 0f 04 06 2a d5 4c 16 1b 01 +[?] REGISTER message with SS version IE (len=1): 00 +[?] RELEASE COMPLETE message with Facility IE (len=8): a3 06 02 01 05 02 01 24 + Tested if it still works. Text was: **321# interrogateSS CFU text..'' code 33 Testing parsing a USSD request and truncated versions -- To view, visit https://gerrit.osmocom.org/9528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3989d061903352473305f80712f1a1560d05df3d Gerrit-Change-Number: 9528 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 21:07:16 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 21:07:16 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9528 to look at the new patch set (#2). Change subject: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() ...................................................................... gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In some cases, there is no need to parse the whole message, e.g. during the conversation from DTAP to GSUP/MAP. This function can be used to extract given IE from a message. Change-Id: I3989d061903352473305f80712f1a1560d05df3d --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 5 files changed, 156 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/9528/2 -- To view, visit https://gerrit.osmocom.org/9528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3989d061903352473305f80712f1a1560d05df3d Gerrit-Change-Number: 9528 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 10 22:03:24 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Jun 2018 22:03:24 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9529 Change subject: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() ...................................................................... gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() This function can be used when there is only a part of GSM 04.80 message available - Facility IE, e.g. when a message is carried over GSUP/MAP. Let's expose it. Refactoring includes the following: - adding the 'gsm0480_' prefix; - correcting inverted return value; - cosmetic code style changes. Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 5 files changed, 75 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/9529/1 diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h index b31f8a7..fafa1f4 100644 --- a/include/osmocom/gsm/gsm0480.h +++ b/include/osmocom/gsm/gsm0480.h @@ -93,6 +93,8 @@ int gsm0480_extract_ie_by_tag(const struct gsm48_hdr *hdr, uint16_t msg_len, uint8_t **ie, uint16_t *ie_len, uint8_t ie_tag); +int gsm0480_parse_facility_ie(const uint8_t *facility_ie, uint16_t length, + struct ss_request *req); int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len, struct ss_request *request); diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index 80e59df..c50b32c 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -201,8 +201,6 @@ struct ss_request *req); static int parse_ss_info_elements(const uint8_t *ss_ie, uint16_t len, struct ss_request *req); -static int parse_facility_ie(const uint8_t *facility_ie, uint16_t length, - struct ss_request *req); static int parse_ss_invoke(const uint8_t *invoke_data, uint16_t length, struct ss_request *req); static int parse_ss_return_result(const uint8_t *rr_data, uint16_t length, @@ -403,7 +401,7 @@ if (len - 1 < facility_length) return 0; - return parse_facility_ie(ss_facility + 1, facility_length, req); + return !gsm0480_parse_facility_ie(ss_facility + 1, facility_length, req); } static int parse_ss_info_elements(const uint8_t *ss_ie, uint16_t len, @@ -429,7 +427,7 @@ case GSM48_IE_CAUSE: break; case GSM0480_IE_FACILITY: - rc = parse_facility_ie(ss_ie + 2, iei_length, req); + rc = !gsm0480_parse_facility_ie(ss_ie + 2, iei_length, req); break; case GSM0480_IE_SS_VERSION: break; @@ -448,31 +446,34 @@ return rc; } -static int parse_facility_ie(const uint8_t *facility_ie, uint16_t length, - struct ss_request *req) +int gsm0480_parse_facility_ie(const uint8_t *facility_ie, uint16_t length, + struct ss_request *req) { - int rc = 1; + uint8_t component_length; + uint8_t component_type; uint8_t offset = 0; + int rc = 1; + /* Iterate over components within IE */ while (offset + 2 <= length) { /* Component Type tag - table 3.7 */ - uint8_t component_type = facility_ie[offset]; - uint8_t component_length = facility_ie[offset+1]; + component_type = facility_ie[offset]; + component_length = facility_ie[offset + 1]; - /* size check */ + /* Make sure that there is no overflow */ if (offset + 2 + component_length > length) { LOGP(0, LOGL_ERROR, "Component does not fit.\n"); - return 0; + return -EINVAL; } switch (component_type) { case GSM0480_CTYPE_INVOKE: - rc &= parse_ss_invoke(facility_ie+2, + rc &= parse_ss_invoke(facility_ie + 2, component_length, req); break; case GSM0480_CTYPE_RETURN_RESULT: - rc &= parse_ss_return_result(facility_ie+2, + rc &= parse_ss_return_result(facility_ie + 2, component_length, req); break; @@ -486,10 +487,17 @@ rc = 0; break; } - offset += (component_length+2); - }; - return rc; + offset += (component_length + 2); + } + + /** + * The internal functions are using inverted return + * codes, where '0' means error/failure. While a + * common approach is to return negative errno in + * case of any failure, and '0' if all is ok. + */ + return (rc == 0) ? -EINVAL : 0; } /* Parse an Invoke component - see table 3.3 */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 4aaed46..0a6742c 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -90,6 +90,7 @@ gsm0480_create_ussd_notify; gsm0480_create_ussd_release_complete; gsm0480_extract_ie_by_tag; +gsm0480_parse_facility_ie; gsm0480_decode_ussd_request; gsm0480_decode_ss_request; gsm0480_wrap_facility; diff --git a/tests/ussd/ussd_test.c b/tests/ussd/ussd_test.c index 23fd739..8025071 100644 --- a/tests/ussd/ussd_test.c +++ b/tests/ussd/ussd_test.c @@ -188,6 +188,43 @@ printf("\n"); } +static void test_parse_facility_ie(void) +{ + struct ss_request req; + uint16_t ie_len; + uint8_t *ie; + int rc; + + printf("[i] Testing gsm0480_parse_facility_ie()\n"); + + /* Extract Facility IE from FACILITY message */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_facility, + sizeof(ussd_facility), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] FACILITY message with Facility IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* Attempt to decode */ + memset(&req, 0x00, sizeof(req)); + rc = gsm0480_parse_facility_ie(ie, ie_len, &req); + OSMO_ASSERT(rc == 0); + + /* Verify expected vs decoded data */ + printf("[?] InvokeID: expected 0x%02x, decoded 0x%02x\n", + 0x01, req.invoke_id); + printf("[?] Operation code: expected 0x%02x, decoded 0x%02x\n", + 0x3c, req.opcode); + printf("[?] Data Coding Scheme: expected 0x%02x, decoded 0x%02x\n", + 0x0f, req.ussd_data_dcs); + printf("[?] Data length: expected 0x%02x, decoded 0x%02x\n", + 0x01, req.ussd_data_len); + printf("[?] Data: expected %s, decoded %s\n", "32", + osmo_hexdump_nospc(req.ussd_data, req.ussd_data_len)); + + printf("\n"); +} + int main(int argc, char **argv) { struct ss_request req; @@ -201,6 +238,9 @@ /* Test gsm0480_extract_ie_by_tag() */ test_extract_ie_by_tag(); + /* Test gsm0480_parse_facility_ie() */ + test_parse_facility_ie(); + memset(&req, 0, sizeof(req)); gsm0480_decode_ss_request((struct gsm48_hdr *) ussd_request, sizeof(ussd_request), &req); diff --git a/tests/ussd/ussd_test.ok b/tests/ussd/ussd_test.ok index 8fa4348..1137080 100644 --- a/tests/ussd/ussd_test.ok +++ b/tests/ussd/ussd_test.ok @@ -4,6 +4,14 @@ [?] FACILITY message with Facility IE (len=18): a2 10 02 01 01 30 0b 02 01 3c 30 06 04 01 0f 04 01 32 [?] RELEASE COMPLETE message with Facility IE (len=8): a3 06 02 01 05 02 01 24 +[i] Testing gsm0480_parse_facility_ie() +[?] FACILITY message with Facility IE (len=18): a2 10 02 01 01 30 0b 02 01 3c 30 06 04 01 0f 04 01 32 +[?] InvokeID: expected 0x01, decoded 0x01 +[?] Operation code: expected 0x3c, decoded 0x3c +[?] Data Coding Scheme: expected 0x0f, decoded 0x0f +[?] Data length: expected 0x01, decoded 0x01 +[?] Data: expected 32, decoded 32 + Tested if it still works. Text was: **321# interrogateSS CFU text..'' code 33 Testing parsing a USSD request and truncated versions -- To view, visit https://gerrit.osmocom.org/9529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e Gerrit-Change-Number: 9529 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:06:45 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Jun 2018 11:06:45 +0000 Subject: Change in osmo-bts[master]: lc15: Fix incorrect cast of hLayer1 Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9530 Change subject: lc15: Fix incorrect cast of hLayer1 ...................................................................... lc15: Fix incorrect cast of hLayer1 Change-Id: I545952d0fd4a3fe3ff7c297ce628400b23cfb824 --- M src/osmo-bts-litecell15/oml.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/30/9530/1 diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index 7a5fa1b..da6c60e 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -348,7 +348,7 @@ bts_shutdown(trx->bts, "MPH-INIT failure"); } - fl1h->hLayer1 = (uint32_t)ic->hLayer1; + fl1h->hLayer1 = ic->hLayer1; /* If the TRX was already locked the MphInit would have undone it */ if (trx->mo.nm_state.administrative == NM_STATE_LOCKED) -- To view, visit https://gerrit.osmocom.org/9530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I545952d0fd4a3fe3ff7c297ce628400b23cfb824 Gerrit-Change-Number: 9530 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:06:46 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Jun 2018 11:06:46 +0000 Subject: Change in osmo-bts[master]: lc15: Fix several u32 vs HANDLE compile warnings Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9531 Change subject: lc15: Fix several u32 vs HANDLE compile warnings ...................................................................... lc15: Fix several u32 vs HANDLE compile warnings Change-Id: I4193ad5fdb70ea01acb7c33656ea7bfd3fe62916 --- M src/osmo-bts-litecell15/l1_if.c M src/osmo-bts-litecell15/l1_if.h M src/osmo-bts-litecell15/oml.c 3 files changed, 23 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/31/9531/1 diff --git a/src/osmo-bts-litecell15/l1_if.c b/src/osmo-bts-litecell15/l1_if.c index e6cdfd4..c20d3a5 100644 --- a/src/osmo-bts-litecell15/l1_if.c +++ b/src/osmo-bts-litecell15/l1_if.c @@ -946,7 +946,7 @@ DEBUGPGT(DL1P, &g_time, "Rx PH-DATA.ind %s (hL2 %08x): %s\n", - get_value_string(lc15bts_l1sapi_names, data_ind->sapi), (uint32_t)data_ind->hLayer2, + get_value_string(lc15bts_l1sapi_names, data_ind->sapi), (uint32_t)(intptr_t)data_ind->hLayer2, osmo_hexdump(data_ind->msgUnitParam.u8Buffer, data_ind->msgUnitParam.u8Size)); dump_meas_res(LOGL_DEBUG, &data_ind->measParam); @@ -1027,7 +1027,7 @@ .acc_delay_256bits = ra_ind->measParam.i16BurstTiming * 64, }; - lchan = l1if_hLayer_to_lchan(trx, (uint32_t)ra_ind->hLayer2); + lchan = l1if_hLayer_to_lchan(trx, ra_ind->hLayer2); if (!lchan || lchan->ts->pchan == GSM_PCHAN_CCCH || lchan->ts->pchan == GSM_PCHAN_CCCH_SDCCH4 || lchan->ts->pchan == GSM_PCHAN_CCCH_SDCCH4_CBCH) diff --git a/src/osmo-bts-litecell15/l1_if.h b/src/osmo-bts-litecell15/l1_if.h index aac2607..07fbb42 100644 --- a/src/osmo-bts-litecell15/l1_if.h +++ b/src/osmo-bts-litecell15/l1_if.h @@ -86,8 +86,8 @@ struct msgb *l1p_msgb_alloc(void); struct msgb *sysp_msgb_alloc(void); -uint32_t l1if_lchan_to_hLayer(struct gsm_lchan *lchan); -struct gsm_lchan *l1if_hLayer_to_lchan(struct gsm_bts_trx *trx, uint32_t hLayer); +HANDLE l1if_lchan_to_hLayer(struct gsm_lchan *lchan); +struct gsm_lchan *l1if_hLayer_to_lchan(struct gsm_bts_trx *trx, HANDLE hLayer); /* tch.c */ int l1if_tch_encode(struct gsm_lchan *lchan, uint8_t *data, uint8_t *len, diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index da6c60e..56f6dd3 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -23,6 +23,8 @@ #include #include +#include +#include #include #include @@ -106,7 +108,7 @@ prim->id = id; osmo_static_assert(sizeof(HANDLE) >= 4, l1p_handle_is_at_least_32bit); - hLayer3 = (void*)hLayer3_uint32; + hLayer3 = (void*)(intptr_t)hLayer3_uint32; switch (id) { case GsmL1_PrimId_MphInitReq: @@ -425,7 +427,7 @@ { struct lc15l1_hdl *fl1h = trx_lc15l1_hdl(trx); - return fl1h->hLayer1; + return (uint32_t)(intptr_t)fl1h->hLayer1; } static int trx_close_compl_cb(struct gsm_bts_trx *trx, struct msgb *l1_msg, @@ -793,10 +795,10 @@ GsmL1_MphActivateCnf_t *ic = &l1p->u.mphActivateCnf; /* get the lchan from the information we supplied */ - lchan = l1if_hLayer_to_lchan(trx, (uint32_t)ic->hLayer3); + lchan = l1if_hLayer_to_lchan(trx, ic->hLayer3); if (!lchan) { LOGP(DL1C, LOGL_ERROR, - "Failed to find lchan for hLayer3=0x%x\n", (uint32_t)ic->hLayer3); + "Failed to find lchan for hLayer3=0x%"PRIx32"\n", (uint32_t)(intptr_t)ic->hLayer3); goto err; } @@ -847,21 +849,22 @@ return 0; } -uint32_t l1if_lchan_to_hLayer(struct gsm_lchan *lchan) +HANDLE l1if_lchan_to_hLayer(struct gsm_lchan *lchan) { - return 0xBB + return (HANDLE)(intptr_t)(0xBB | (lchan->nr << 8) | (lchan->ts->nr << 16) - | (lchan->ts->trx->nr << 24); + | (lchan->ts->trx->nr << 24)); } /* obtain a ptr to the lapdm_channel for a given hLayer */ struct gsm_lchan * -l1if_hLayer_to_lchan(struct gsm_bts_trx *trx, uint32_t hLayer2) +l1if_hLayer_to_lchan(struct gsm_bts_trx *trx, HANDLE hLayer2) { - uint8_t magic = hLayer2 & 0xff; - uint8_t ts_nr = (hLayer2 >> 16) & 0xff; - uint8_t lchan_nr = (hLayer2 >> 8)& 0xff; + uint32_t hLayer2_u32 = (uint32_t)(intptr_t)hLayer2; + uint8_t magic = hLayer2_u32 & 0xff; + uint8_t ts_nr = (hLayer2_u32 >> 16) & 0xff; + uint8_t lchan_nr = (hLayer2_u32 >> 8)& 0xff; struct gsm_bts_trx_ts *ts; if (magic != 0xBB) @@ -1062,7 +1065,7 @@ } LOGP(DL1C, LOGL_INFO, "%s MPH-ACTIVATE.req (hL2=0x%08x, %s ", - gsm_lchan_name(lchan), (uint32_t)act_req->hLayer2, + gsm_lchan_name(lchan), (uint32_t)(intptr_t)act_req->hLayer2, get_value_string(lc15bts_l1sapi_names, act_req->sapi)); LOGPC(DL1C, LOGL_INFO, "%s)\n", get_value_string(lc15bts_dir_names, act_req->dir)); @@ -1235,10 +1238,10 @@ GsmL1_MphConfigCnf_t *cc = &l1p->u.mphConfigCnf; /* get the lchan from the information we supplied */ - lchan = l1if_hLayer_to_lchan(trx, (uint32_t)cc->hLayer3); + lchan = l1if_hLayer_to_lchan(trx, cc->hLayer3); if (!lchan) { LOGP(DL1C, LOGL_ERROR, - "Failed to find lchan for hLayer3=0x%x\n", (uint32_t)cc->hLayer3); + "Failed to find lchan for hLayer3=0x%"PRIx32"\n", (uint32_t)(intptr_t)cc->hLayer3); goto err; } @@ -1470,10 +1473,10 @@ GsmL1_Prim_t *l1p = msgb_l1prim(l1_msg); GsmL1_MphDeactivateCnf_t *ic = &l1p->u.mphDeactivateCnf; - lchan = l1if_hLayer_to_lchan(trx, (uint32_t)ic->hLayer3); + lchan = l1if_hLayer_to_lchan(trx, ic->hLayer3); if (!lchan) { LOGP(DL1C, LOGL_ERROR, - "Failed to find lchan for hLayer3=0x%x\n", (uint32_t)ic->hLayer3); + "Failed to find lchan for hLayer3=0x%"PRIx32"\n", (uint32_t)(intptr_t)ic->hLayer3); goto err; } -- To view, visit https://gerrit.osmocom.org/9531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4193ad5fdb70ea01acb7c33656ea7bfd3fe62916 Gerrit-Change-Number: 9531 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:06:46 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Jun 2018 11:06:46 +0000 Subject: Change in osmo-bts[master]: lc15: vty: Add missing include for lchan_deactivate Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9532 Change subject: lc15: vty: Add missing include for lchan_deactivate ...................................................................... lc15: vty: Add missing include for lchan_deactivate Fixes following compilation warning: osmo-bts/src/osmo-bts-litecell15/lc15bts_vty.c:244:3: warning: implicit declaration of function ?lchan_deactivate? Change-Id: Id9b144d068d53393e1c1887aad285ae757156ec6 --- M src/osmo-bts-litecell15/lc15bts_vty.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/9532/1 diff --git a/src/osmo-bts-litecell15/lc15bts_vty.c b/src/osmo-bts-litecell15/lc15bts_vty.c index 46f73ab..d0edc88 100644 --- a/src/osmo-bts-litecell15/lc15bts_vty.c +++ b/src/osmo-bts-litecell15/lc15bts_vty.c @@ -48,6 +48,7 @@ #include #include #include +#include #include "lc15bts.h" #include "l1_if.h" -- To view, visit https://gerrit.osmocom.org/9532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id9b144d068d53393e1c1887aad285ae757156ec6 Gerrit-Change-Number: 9532 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:06:47 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Jun 2018 11:06:47 +0000 Subject: Change in osmo-bts[master]: lc15: rewrite and refactor code to print hwversion description Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9533 Change subject: lc15: rewrite and refactor code to print hwversion description ...................................................................... lc15: rewrite and refactor code to print hwversion description Also print a newline at the end of print_hwversion(). In the process of rewrite, fix several warnings in the few lines of this functions: osmo-bts/src/osmo-bts-litecell15/main.c: In function ?print_hwversion?: osmo-bts/src/osmo-bts-litecell15/main.c:162:12: warning: passing argument 1 to restrict-qualified parameter aliases with argument 4 [-Wrestrict] snprintf(model_name, sizeof(model_name), "%s Rev %c", ^~~~~~~~~~ model_name, (char)rev); ~~~~~~~~~~ osmo-bts/src/osmo-bts-litecell15/main.c:168:12: warning: passing argument 1 to restrict-qualified parameter aliases with argument 4 [-Wrestrict] snprintf(model_name, sizeof(model_name), "%s (%05X)", ^~~~~~~~~~ model_name, model); ~~~~~~~~~~ osmo-bts/src/osmo-bts-litecell15/main.c:162:47: warning: ? Rev ? directive output may be truncated writing 5 bytes into a region of size between 1 and 64 [-Wformat-truncation=] snprintf(model_name, sizeof(model_name), "%s Rev %c", ^~~~~ osmo-bts/src/osmo-bts-litecell15/main.c:162:3: note: ?snprintf? output between 7 and 70 bytes into a destination of size 64 snprintf(model_name, sizeof(model_name), "%s Rev %c", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ model_name, (char)rev); ~~~~~~~~~~~~~~~~~~~~~~ osmo-bts/src/osmo-bts-litecell15/main.c:168:47: warning: ? (? directive output may be truncated writing 2 bytes into a region of size between 1 and 64 [-Wformat-truncation=] snprintf(model_name, sizeof(model_name), "%s (%05X)", ^~ osmo-bts/src/osmo-bts-litecell15/main.c:168:44: note: using the range [0, 4294967295] for directive argument snprintf(model_name, sizeof(model_name), "%s (%05X)", ^~~~~~~~~~~ osmo-bts/src/osmo-bts-litecell15/main.c:168:3: note: ?snprintf? output between 9 and 75 bytes into a destination of size 64 snprintf(model_name, sizeof(model_name), "%s (%05X)", ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ model_name, model); ~~~~~~~~~~~~~~~~~~ Change-Id: I079b056a04fe77d2f7f361ff5899232cb70b5a93 --- M src/osmo-bts-litecell15/main.c M src/osmo-bts-litecell15/misc/lc15bts_bid.c M src/osmo-bts-litecell15/misc/lc15bts_bid.h M src/osmo-bts-litecell15/misc/lc15bts_mgr_nl.c 4 files changed, 26 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/33/9533/1 diff --git a/src/osmo-bts-litecell15/main.c b/src/osmo-bts-litecell15/main.c index 030c3ef..de175e3 100644 --- a/src/osmo-bts-litecell15/main.c +++ b/src/osmo-bts-litecell15/main.c @@ -151,25 +151,8 @@ static void print_hwversion() { - int rev; - int model; - static char model_name[64] = {0, }; - - snprintf(model_name, sizeof(model_name), "NuRAN Litecell 1.5 BTS"); - - rev = lc15bts_rev_get(); - if (rev >= 0) { - snprintf(model_name, sizeof(model_name), "%s Rev %c", - model_name, (char)rev); - } - - model = lc15bts_model_get(); - if (model >= 0) { - snprintf(model_name, sizeof(model_name), "%s (%05X)", - model_name, model); - } - - printf(model_name); + printf(get_hwversion_desc()); + printf("\n"); } int bts_model_handle_options(int argc, char **argv) diff --git a/src/osmo-bts-litecell15/misc/lc15bts_bid.c b/src/osmo-bts-litecell15/misc/lc15bts_bid.c index 7f278bf..9284b62 100644 --- a/src/osmo-bts-litecell15/misc/lc15bts_bid.c +++ b/src/osmo-bts-litecell15/misc/lc15bts_bid.c @@ -138,3 +138,25 @@ return option; } + +const char* get_hwversion_desc() +{ + int rev; + int model; + size_t len; + static char model_name[64] = {0, }; + len = snprintf(model_name, sizeof(model_name), "NuRAN Litecell 1.5 BTS"); + + rev = lc15bts_rev_get(); + if (rev >= 0) { + len += snprintf(model_name + len, sizeof(model_name) - len, + " Rev %c", (char)rev); + } + + model = lc15bts_model_get(); + if (model >= 0) { + snprintf(model_name + len, sizeof(model_name) - len, + "%s (%05X)", model_name, model); + } + return model_name; +} diff --git a/src/osmo-bts-litecell15/misc/lc15bts_bid.h b/src/osmo-bts-litecell15/misc/lc15bts_bid.h index b320e11..a71fdd7 100644 --- a/src/osmo-bts-litecell15/misc/lc15bts_bid.h +++ b/src/osmo-bts-litecell15/misc/lc15bts_bid.h @@ -47,5 +47,6 @@ int lc15bts_rev_get(void); int lc15bts_model_get(void); int lc15bts_option_get(enum lc15bts_option_type type); +const char* get_hwversion_desc(); #endif diff --git a/src/osmo-bts-litecell15/misc/lc15bts_mgr_nl.c b/src/osmo-bts-litecell15/misc/lc15bts_mgr_nl.c index 549c179..3a617dd 100644 --- a/src/osmo-bts-litecell15/misc/lc15bts_mgr_nl.c +++ b/src/osmo-bts-litecell15/misc/lc15bts_mgr_nl.c @@ -104,8 +104,6 @@ if (!fetched_info) { int fd_eth; int serno; - int model; - int rev; /* fetch the MAC */ fd_eth = open(ETH0_ADDR_SYSFS, O_RDONLY); @@ -119,20 +117,7 @@ lc15bts_par_get_int(tall_mgr_ctx, LC15BTS_PAR_SERNR, &serno); snprintf(ser_str, sizeof(ser_str), "%d", serno); - /* fetch the model and trx number */ - snprintf(model_name, sizeof(model_name), "Litecell 1.5 BTS"); - - rev = lc15bts_rev_get(); - if (rev >= 0) { - snprintf(model_name, sizeof(model_name), "%s Rev %c", - model_name, rev); - } - - model = lc15bts_model_get(); - if (model >= 0) { - snprintf(model_name, sizeof(model_name), "%s (%05X)", - model_name, model); - } + strncpy(model_name, get_hwversion_desc(), sizeof(model_name)-1); fetched_info = 1; } -- To view, visit https://gerrit.osmocom.org/9533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I079b056a04fe77d2f7f361ff5899232cb70b5a93 Gerrit-Change-Number: 9533 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:06:47 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Jun 2018 11:06:47 +0000 Subject: Change in osmo-bts[master]: lc15: led_sleep_cb: pass correct ptr to llist_move_tail Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9534 Change subject: lc15: led_sleep_cb: pass correct ptr to llist_move_tail ...................................................................... lc15: led_sleep_cb: pass correct ptr to llist_move_tail Fix compilation warning. At runtime it's not a big issue because the "list" field is the first field of the led_list (struct lc15bts_led_timer_list) variable. Hence, the address passed is the same. Change-Id: Ib8bf07990800d74bfb3ad7a55eccfc65e40cd480 --- M src/osmo-bts-litecell15/misc/lc15bts_led.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/34/9534/1 diff --git a/src/osmo-bts-litecell15/misc/lc15bts_led.c b/src/osmo-bts-litecell15/misc/lc15bts_led.c index 603e0fb..a93d3fb 100644 --- a/src/osmo-bts-litecell15/misc/lc15bts_led.c +++ b/src/osmo-bts-litecell15/misc/lc15bts_led.c @@ -151,7 +151,7 @@ /* Delete current timer */ osmo_timer_del(&led_list->led_timer.timer); /* Rotate the timer list */ - llist_move_tail(led_list, &mgr->lc15bts_leds.list); + llist_move_tail(&led_list->list, &mgr->lc15bts_leds.list); break; } } -- To view, visit https://gerrit.osmocom.org/9534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib8bf07990800d74bfb3ad7a55eccfc65e40cd480 Gerrit-Change-Number: 9534 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:06:48 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Jun 2018 11:06:48 +0000 Subject: Change in osmo-bts[master]: lc15: fsync requires fd instead of file stream Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9535 Change subject: lc15: fsync requires fd instead of file stream ...................................................................... lc15: fsync requires fd instead of file stream Change-Id: I7efb7280363b3a021b30c3b4eacb3aab70e9c8da --- M src/osmo-bts-litecell15/misc/lc15bts_par.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/35/9535/1 diff --git a/src/osmo-bts-litecell15/misc/lc15bts_par.c b/src/osmo-bts-litecell15/misc/lc15bts_par.c index 75314a4..af9d030 100644 --- a/src/osmo-bts-litecell15/misc/lc15bts_par.c +++ b/src/osmo-bts-litecell15/misc/lc15bts_par.c @@ -144,7 +144,7 @@ return -EIO; } - fsync(fp); + fsync(fileno(fp)); fclose(fp); return 0; } @@ -176,7 +176,7 @@ rc = fwrite(buf, 1, size, fp); - fsync(fp); + fsync(fileno(fp)); fclose(fp); return rc; @@ -225,7 +225,7 @@ fclose(fp); return -EIO; } - fsync(fp); + fsync(fileno(fp)); fclose(fp); return 0; -- To view, visit https://gerrit.osmocom.org/9535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7efb7280363b3a021b30c3b4eacb3aab70e9c8da Gerrit-Change-Number: 9535 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:06:49 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Jun 2018 11:06:49 +0000 Subject: Change in osmo-bts[master]: jenkins_*.sh: add --enable-werror to configure flags Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9536 Change subject: jenkins_*.sh: add --enable-werror to configure flags ...................................................................... jenkins_*.sh: add --enable-werror to configure flags Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 --- M contrib/jenkins_bts_trx.sh M contrib/jenkins_lc15.sh M contrib/jenkins_oct.sh M contrib/jenkins_oct_and_bts_trx.sh M contrib/jenkins_sysmobts.sh 5 files changed, 21 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/36/9536/1 diff --git a/contrib/jenkins_bts_trx.sh b/contrib/jenkins_bts_trx.sh index 3e3d8d3..1b723e6 100755 --- a/contrib/jenkins_bts_trx.sh +++ b/contrib/jenkins_bts_trx.sh @@ -14,9 +14,10 @@ cd "$deps" configure_flags="\ + --enable-sanitize \ + --enable-werror \ --with-osmo-pcu=$deps/osmo-pcu/include \ --enable-trx \ - --enable-sanitize \ " build_bts "osmo-bts-trx" "$configure_flags" diff --git a/contrib/jenkins_lc15.sh b/contrib/jenkins_lc15.sh index 38c1f33..25e0f32 100755 --- a/contrib/jenkins_lc15.sh +++ b/contrib/jenkins_lc15.sh @@ -14,7 +14,12 @@ cd "$deps" osmo-layer1-headers.sh lc15 "$FIRMWARE_VERSION" -configure_flags="--enable-sanitize --with-litecell15=$deps/layer1-headers/inc/ --enable-litecell15" +configure_flags="\ + --enable-sanitize \ + --enable-werror \ + --with-litecell15=$deps/layer1-headers/inc/ \ + --enable-litecell15 \ + " build_bts "osmo-bts-lc15" "$configure_flags" diff --git a/contrib/jenkins_oct.sh b/contrib/jenkins_oct.sh index efbd368..bd57dd1 100755 --- a/contrib/jenkins_oct.sh +++ b/contrib/jenkins_oct.sh @@ -14,7 +14,12 @@ cd "$deps" osmo-layer1-headers.sh oct "$FIRMWARE_VERSION" -configure_flags="--enable-sanitize --with-octsdr-2g=$deps/layer1-headers/ --enable-octphy" +configure_flags="\ + --enable-sanitize \ + --enable-werror \ + --with-octsdr-2g=$deps/layer1-headers/ \ + --enable-octphy \ + " build_bts "osmo-bts-octphy" "$configure_flags" diff --git a/contrib/jenkins_oct_and_bts_trx.sh b/contrib/jenkins_oct_and_bts_trx.sh index f68a9d3..049f5f7 100755 --- a/contrib/jenkins_oct_and_bts_trx.sh +++ b/contrib/jenkins_oct_and_bts_trx.sh @@ -16,6 +16,7 @@ osmo-layer1-headers.sh oct "$FIRMWARE_VERSION" configure_flags="\ + --enable-werror \ --with-osmo-pcu=$deps/osmo-pcu/include \ --with-octsdr-2g=$deps/layer1-headers/ \ --enable-octphy \ diff --git a/contrib/jenkins_sysmobts.sh b/contrib/jenkins_sysmobts.sh index 7488419..d0d05ae 100755 --- a/contrib/jenkins_sysmobts.sh +++ b/contrib/jenkins_sysmobts.sh @@ -16,7 +16,12 @@ mkdir -p "$inst/include/sysmocom/femtobts" ln -s $deps/layer1-headers/include/* "$inst/include/sysmocom/femtobts/" -configure_flags="--enable-sanitize --enable-sysmocom-bts --with-sysmobts=$inst/include/" +configure_flags="\ + --enable-sanitize \ + --enable-werror \ + --enable-sysmocom-bts \ + --with-sysmobts=$inst/include/ \ + " # This will not work for the femtobts if [ $FIRMWARE_VERSION != "femtobts_v2.7" ]; then -- To view, visit https://gerrit.osmocom.org/9536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 Gerrit-Change-Number: 9536 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:58:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 11:58:35 +0000 Subject: Change in osmo-bsc[master]: Add missing event string name for GSCON_EV_LCLS_FAIL Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9537 Change subject: Add missing event string name for GSCON_EV_LCLS_FAIL ...................................................................... Add missing event string name for GSCON_EV_LCLS_FAIL Change-Id: Ia8c8303a87412ce6456c38ae29e3c55de9522ac0 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/37/9537/1 diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 9c8dbda..bd652f0 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -115,6 +115,7 @@ {GSCON_EV_HO_TIMEOUT, "HO_TIMEOUT"}, {GSCON_EV_HO_FAIL, "HO_FAIL"}, {GSCON_EV_HO_COMPL, "HO_COMPL"}, + {GSCON_EV_LCLS_FAIL, "LCLS_FAIL"}, {0, NULL} }; -- To view, visit https://gerrit.osmocom.org/9537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia8c8303a87412ce6456c38ae29e3c55de9522ac0 Gerrit-Change-Number: 9537 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:58:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 11:58:35 +0000 Subject: Change in osmo-bsc[master]: bsc_subscr_conn_fsm: BSC must not release SCCP connection Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9538 Change subject: bsc_subscr_conn_fsm: BSC must not release SCCP connection ...................................................................... bsc_subscr_conn_fsm: BSC must not release SCCP connection 3GPP TS 48.006 section 9.2 states clearly that any SCCP connection release must be initiated by the MSC. for bsc_subscr_conn_fsm, this means that even after sending the BSSMAP CLEAR COMPLETE, we must not terminate the FSM, as this would cause a N-DISCONNET.req to be sent to the stack for the associated SCCP connection. The bsc_subscr_conn_fsm instances will hence stay alive until the MSC eventually decises to release them. Change-Id: Iaaca220b598609b77b600fcfc2f9a78b221c1fbb Closes: OS#3331 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/38/9538/1 diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index bd652f0..4f09ae6 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -729,7 +729,9 @@ case GSCON_EV_RSL_CLEAR_COMPL: resp = gsm0808_create_clear_complete(); sigtran_send(conn, resp, fi); - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, data); + /* we cannot terminate the FSM here, as that would send N-DISCCONNET.req + * and 3GPP TS 48.006 Section 9.2 clearly states that SCCP connections must + * always be released from the MSC side*/ break; default: OSMO_ASSERT(false); -- To view, visit https://gerrit.osmocom.org/9538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iaaca220b598609b77b600fcfc2f9a78b221c1fbb Gerrit-Change-Number: 9538 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 11:59:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 11:59:54 +0000 Subject: Change in osmo-bsc[master]: remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9527 ) Change subject: remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9127ddb7b29eb82defd3a8afac9c1dbfd424fb72 Gerrit-Change-Number: 9527 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 11:59:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:00:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:00:01 +0000 Subject: Change in osmo-bsc[master]: Add missing event string name for GSCON_EV_LCLS_FAIL In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9537 ) Change subject: Add missing event string name for GSCON_EV_LCLS_FAIL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia8c8303a87412ce6456c38ae29e3c55de9522ac0 Gerrit-Change-Number: 9537 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:00:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:03:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:03:16 +0000 Subject: Change in osmo-bsc[master]: remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9527 ) Change subject: remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) ...................................................................... remove traces of osmo-bsc_nat in python test (osmoappdesc/test_runner) Change-Id: I9127ddb7b29eb82defd3a8afac9c1dbfd424fb72 --- M osmoappdesc.py M tests/ctrl_test_runner.py 2 files changed, 2 insertions(+), 82 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/osmoappdesc.py b/osmoappdesc.py index 338239c..f5f18b2 100644 --- a/osmoappdesc.py +++ b/osmoappdesc.py @@ -16,12 +16,10 @@ app_configs = { "osmo-bsc": ["doc/examples/osmo-bsc/osmo-bsc.cfg", - "doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg"], - "nat": ["doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg"], + "doc/examples/osmo-bsc/osmo-bsc_custom-sccp.cfg"] } -apps = [(4242, "src/osmo-bsc/osmo-bsc", "OsmoBSC", "osmo-bsc"), - (4244, "src/osmo-bsc_nat/osmo-bsc_nat", "OsmoBSCNAT", "nat"), +apps = [(4242, "src/osmo-bsc/osmo-bsc", "OsmoBSC", "osmo-bsc") ] vty_command = ["./src/osmo-bsc/osmo-bsc", "-c", diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py index f43c09a..cc37c97 100755 --- a/tests/ctrl_test_runner.py +++ b/tests/ctrl_test_runner.py @@ -489,68 +489,6 @@ self.assertEquals(r['var'], 'mcc') self.assertEquals(r['value'], '002') -class TestCtrlNAT(TestCtrlBase): - - def ctrl_command(self): - return ["./src/osmo-bsc_nat/osmo-bsc_nat", "-c", - "doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg"] - - def ctrl_app(self): - return (4250, "./src/osmo-bsc_nat/osmo-bsc_nat", "OsmoNAT", "nat") - - def testAccessList(self): - r = self.do_get('net.0.bsc_cfg.0.access-list-name') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], None) - - r = self.do_set('net.0.bsc_cfg.0.access-list-name', 'bla') - self.assertEquals(r['mtype'], 'SET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], 'bla') - - r = self.do_get('net.0.bsc_cfg.0.access-list-name') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], 'bla') - - r = self.do_set('net.0.bsc_cfg.0.no-access-list-name', '1') - self.assertEquals(r['mtype'], 'SET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], None) - - r = self.do_get('net.0.bsc_cfg.0.access-list-name') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'net') - self.assertEquals(r['value'], None) - - def testAccessListManagement(self): - r = self.do_set("net.0.add.allow.access-list.404", "abc") - self.assertEquals(r['mtype'], 'ERROR') - - r = self.do_set("net.0.add.allow.access-list.bla", "^234$") - self.assertEquals(r['mtype'], 'SET_REPLY') - self.assertEquals(r['var'], 'net.0.add.allow.access-list.bla') - self.assertEquals(r['value'], 'IMSI allow added to access list') - - # TODO.. find a way to actually see if this rule has been - # added. e.g. by implementing a get for the list. - -class TestCtrlSGSN(TestCtrlBase): - def ctrl_command(self): - return ["./src/gprs/osmo-sgsn", "-c", - "doc/examples/osmo-sgsn/osmo-sgsn.cfg"] - - def ctrl_app(self): - return (4251, "./src/gprs/osmo-sgsn", "OsmoSGSN", "sgsn") - - def testListSubscribers(self): - # TODO. Add command to mark a subscriber as active - r = self.do_get('subscriber-list-active-v1') - self.assertEquals(r['mtype'], 'GET_REPLY') - self.assertEquals(r['var'], 'subscriber-list-active-v1') - self.assertEquals(r['value'], None) - def add_bsc_test(suite, workdir): if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc/osmo-bsc")): print("Skipping the BSC test") @@ -558,20 +496,6 @@ test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlBSC) suite.addTest(test) -def add_nat_test(suite, workdir): - if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc_nat/osmo-bsc_nat")): - print("Skipping the NAT test") - return - test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlNAT) - suite.addTest(test) - -def add_sgsn_test(suite, workdir): - if not os.path.isfile(os.path.join(workdir, "src/gprs/osmo-sgsn")): - print("Skipping the SGSN test") - return - test = unittest.TestLoader().loadTestsFromTestCase(TestCtrlSGSN) - suite.addTest(test) - if __name__ == '__main__': import argparse import sys @@ -603,7 +527,5 @@ print "Running tests for specific control commands" suite = unittest.TestSuite() add_bsc_test(suite, workdir) - add_nat_test(suite, workdir) - add_sgsn_test(suite, workdir) res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) sys.exit(len(res.errors) + len(res.failures)) -- To view, visit https://gerrit.osmocom.org/9527 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9127ddb7b29eb82defd3a8afac9c1dbfd424fb72 Gerrit-Change-Number: 9527 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:06:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:06:16 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9528 ) Change subject: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/#/c/9528/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9528/2//COMMIT_MSG at 10 PS2, Line 10: conversation conversion https://gerrit.osmocom.org/#/c/9528/2/src/gsm/gsm0480.c File src/gsm/gsm0480.c: https://gerrit.osmocom.org/#/c/9528/2/src/gsm/gsm0480.c at 218 PS2, Line 218: int gsm0480_extract_ie_by_tag(const struct gsm48_hdr *hdr, uint16_t msg_len, I know the old code may not always have docxygen API documentation, but we should always icnlude it for any new public APi we introduce. Thanks! -- To view, visit https://gerrit.osmocom.org/9528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3989d061903352473305f80712f1a1560d05df3d Gerrit-Change-Number: 9528 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:06:16 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:07:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:07:21 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9529 ) Change subject: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9529/1/src/gsm/gsm0480.c File src/gsm/gsm0480.c: https://gerrit.osmocom.org/#/c/9529/1/src/gsm/gsm0480.c at 449 PS1, Line 449: int gsm0480_parse_facility_ie(const uint8_t *facility_ie, uint16_t length, note my comment about doxygen API docs for new functions -- To view, visit https://gerrit.osmocom.org/9529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e Gerrit-Change-Number: 9529 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:07:21 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:07:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:07:29 +0000 Subject: Change in osmo-bsc[master]: Add missing event string name for GSCON_EV_LCLS_FAIL In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9537 ) Change subject: Add missing event string name for GSCON_EV_LCLS_FAIL ...................................................................... Add missing event string name for GSCON_EV_LCLS_FAIL Change-Id: Ia8c8303a87412ce6456c38ae29e3c55de9522ac0 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 9c8dbda..bd652f0 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -115,6 +115,7 @@ {GSCON_EV_HO_TIMEOUT, "HO_TIMEOUT"}, {GSCON_EV_HO_FAIL, "HO_FAIL"}, {GSCON_EV_HO_COMPL, "HO_COMPL"}, + {GSCON_EV_LCLS_FAIL, "LCLS_FAIL"}, {0, NULL} }; -- To view, visit https://gerrit.osmocom.org/9537 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia8c8303a87412ce6456c38ae29e3c55de9522ac0 Gerrit-Change-Number: 9537 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:07:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:07:48 +0000 Subject: Change in osmo-bts[master]: lc15: Fix incorrect cast of hLayer1 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9530 ) Change subject: lc15: Fix incorrect cast of hLayer1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I545952d0fd4a3fe3ff7c297ce628400b23cfb824 Gerrit-Change-Number: 9530 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:07:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:08:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:08:53 +0000 Subject: Change in osmo-bts[master]: lc15: Fix several u32 vs HANDLE compile warnings In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9531 ) Change subject: lc15: Fix several u32 vs HANDLE compile warnings ...................................................................... Patch Set 1: while I like this kind of cleanup patches, I am very hesitant to merge them knowing that you have not tested them on actual hardware. -- To view, visit https://gerrit.osmocom.org/9531 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4193ad5fdb70ea01acb7c33656ea7bfd3fe62916 Gerrit-Change-Number: 9531 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 11 Jun 2018 12:08:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:09:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:09:00 +0000 Subject: Change in osmo-bts[master]: lc15: vty: Add missing include for lchan_deactivate In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9532 ) Change subject: lc15: vty: Add missing include for lchan_deactivate ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9532 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id9b144d068d53393e1c1887aad285ae757156ec6 Gerrit-Change-Number: 9532 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:09:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:10:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:10:21 +0000 Subject: Change in osmo-bts[master]: lc15: rewrite and refactor code to print hwversion description In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9533 ) Change subject: lc15: rewrite and refactor code to print hwversion description ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9533 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I079b056a04fe77d2f7f361ff5899232cb70b5a93 Gerrit-Change-Number: 9533 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:10:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:10:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:10:42 +0000 Subject: Change in osmo-bts[master]: lc15: led_sleep_cb: pass correct ptr to llist_move_tail In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9534 ) Change subject: lc15: led_sleep_cb: pass correct ptr to llist_move_tail ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9534 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib8bf07990800d74bfb3ad7a55eccfc65e40cd480 Gerrit-Change-Number: 9534 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:10:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:10:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:10:55 +0000 Subject: Change in osmo-bts[master]: lc15: fsync requires fd instead of file stream In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9535 ) Change subject: lc15: fsync requires fd instead of file stream ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9535 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7efb7280363b3a021b30c3b4eacb3aab70e9c8da Gerrit-Change-Number: 9535 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:10:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:11:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:11:23 +0000 Subject: Change in osmo-bts[master]: lc15: Fix incorrect cast of hLayer1 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9530 ) Change subject: lc15: Fix incorrect cast of hLayer1 ...................................................................... lc15: Fix incorrect cast of hLayer1 Change-Id: I545952d0fd4a3fe3ff7c297ce628400b23cfb824 --- M src/osmo-bts-litecell15/oml.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-litecell15/oml.c b/src/osmo-bts-litecell15/oml.c index 7a5fa1b..da6c60e 100644 --- a/src/osmo-bts-litecell15/oml.c +++ b/src/osmo-bts-litecell15/oml.c @@ -348,7 +348,7 @@ bts_shutdown(trx->bts, "MPH-INIT failure"); } - fl1h->hLayer1 = (uint32_t)ic->hLayer1; + fl1h->hLayer1 = ic->hLayer1; /* If the TRX was already locked the MphInit would have undone it */ if (trx->mo.nm_state.administrative == NM_STATE_LOCKED) -- To view, visit https://gerrit.osmocom.org/9530 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I545952d0fd4a3fe3ff7c297ce628400b23cfb824 Gerrit-Change-Number: 9530 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:35:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:35:19 +0000 Subject: Change in osmo-bsc[master]: bsc_subscr_conn_fsm: BSC must not release SCCP connection In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9538 ) Change subject: bsc_subscr_conn_fsm: BSC must not release SCCP connection ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaaca220b598609b77b600fcfc2f9a78b221c1fbb Gerrit-Change-Number: 9538 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 12:35:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 12:35:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 12:35:20 +0000 Subject: Change in osmo-bsc[master]: bsc_subscr_conn_fsm: BSC must not release SCCP connection In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9538 ) Change subject: bsc_subscr_conn_fsm: BSC must not release SCCP connection ...................................................................... bsc_subscr_conn_fsm: BSC must not release SCCP connection 3GPP TS 48.006 section 9.2 states clearly that any SCCP connection release must be initiated by the MSC. for bsc_subscr_conn_fsm, this means that even after sending the BSSMAP CLEAR COMPLETE, we must not terminate the FSM, as this would cause a N-DISCONNET.req to be sent to the stack for the associated SCCP connection. The bsc_subscr_conn_fsm instances will hence stay alive until the MSC eventually decises to release them. Change-Id: Iaaca220b598609b77b600fcfc2f9a78b221c1fbb Closes: OS#3331 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index bd652f0..4f09ae6 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -729,7 +729,9 @@ case GSCON_EV_RSL_CLEAR_COMPL: resp = gsm0808_create_clear_complete(); sigtran_send(conn, resp, fi); - osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, data); + /* we cannot terminate the FSM here, as that would send N-DISCCONNET.req + * and 3GPP TS 48.006 Section 9.2 clearly states that SCCP connections must + * always be released from the MSC side*/ break; default: OSMO_ASSERT(false); -- To view, visit https://gerrit.osmocom.org/9538 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iaaca220b598609b77b600fcfc2f9a78b221c1fbb Gerrit-Change-Number: 9538 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:23:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:23:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9539 Change subject: bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() ...................................................................... bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() While osmo-bsc was still affected of OS#3331, it would release the SCCP connection from the BSC side. This is illegal as per 3GPP spec and has meanwhile been fixed in osmo-bsc master. However, the testcase BSC_Tests_LCLS.TC_lcls_connect_clear() relied on the broken behavior, let's fix that. The testcase now releases the SCCP connection from the simulated MSC side in response to the BSSMAP Clear Complete from the BSC. Change-Id: Ic3e1f8729a093b04941ec7ca72664d53adb21229 --- M bsc/BSC_Tests_LCLS.ttcn 1 file changed, 4 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/39/9539/1 diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index fd37b4b..b99ba58 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -116,6 +116,7 @@ [] RSL.receive(RSL_Message:?) -> value rsl_msg { MASTER.send(rsl_msg); } /* from master process to ConnHdlr */ [] MASTER.receive(PDU_BSSAP:?) -> value bssap { BSSAP.send(bssap); } + [] MASTER.receive(BSSAP_Conn_Prim:?) -> value bssap_p { BSSAP.send(bssap_p); } [] MASTER.receive(PDU_DTAP_MO:?) -> value dtap_mo { BSSAP.send(dtap_mo); } [] MASTER.receive(PDU_DTAP_MT:?) -> value dtap_mt { BSSAP.send(dtap_mt); } [] MASTER.receive(MgcpCommand:?) -> value mgcp_cmd { MGCP.send(mgcp_cmd); } @@ -553,8 +554,9 @@ f_rsl_find_ie(rsl, RSL_IE_CHAN_NR, ieb); CONN_A.send(ts_RSL_RF_CHAN_REL_ACK(ieb.chan_nr)); } - [] CONN_A.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND); - [] CONN_A.receive(tr_BSSMAP_ClearComplete); + [] CONN_A.receive(tr_BSSMAP_ClearComplete) { + CONN_A.send(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + } [] CONN_B.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_possible_ls)); } f_sleep(2.0); -- To view, visit https://gerrit.osmocom.org/9539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic3e1f8729a093b04941ec7ca72664d53adb21229 Gerrit-Change-Number: 9539 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:23:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:23:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: no need to import GSM_RR_Types twice Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9540 Change subject: bts: no need to import GSM_RR_Types twice ...................................................................... bts: no need to import GSM_RR_Types twice Change-Id: Ie3c45df74baebfefb36e09a27b820093f7b9218b --- M bts/BTS_Tests.ttcn 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/9540/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 5f71538..1044747 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -5,7 +5,6 @@ import from GSM_RR_Types all; import from Osmocom_Types all; import from GSM_Types all; -import from GSM_RR_Types all; import from GSM_SystemInformation all; import from L1CTL_PortType all; import from L1CTL_Types all; -- To view, visit https://gerrit.osmocom.org/9540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie3c45df74baebfefb36e09a27b820093f7b9218b Gerrit-Change-Number: 9540 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:23:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:23:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9541 Change subject: BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() ...................................................................... BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() For each of the SCCP/BSSMAP connections we create, let's make sure we use a different RA and frame number, to make sure the test is more realistic, and to aid any debugging. Change-Id: I35540979c38d46f03702812e93742d7db772c533 --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/9541/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f99d46b..fc221f2 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2054,7 +2054,7 @@ /* Setup a BSSAP connection and clear it right away. This is * the MSC telling the BSC about a planned release, it's not an * erratic loss of a connection. */ - dt := f_est_dchan('23'O, 23, '00010203040506'O); + dt := f_est_dchan(int2oct(i,1), 23+i, '00010203040506'O); /* MSC disconnects (RLSD). */ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); @@ -2099,7 +2099,7 @@ /* Setup a BSSAP connection and clear it right away. This is * the MSC telling the BSC about a planned release, it's not an * erratic loss of a connection. */ - dt := f_est_dchan('23'O, 23, '00010203040506'O); + dt := f_est_dchan(int2oct(i,1), 23+i, '00010203040506'O); /* Instruct BSC to clear channel */ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); -- To view, visit https://gerrit.osmocom.org/9541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I35540979c38d46f03702812e93742d7db772c533 Gerrit-Change-Number: 9541 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:23:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:23:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssma... Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9542 Change subject: bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssmap_reset() ...................................................................... bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssmap_reset() Change-Id: I11b4a1e95dcc522f2a9c14a8b625eab2356a1c18 --- M bsc/BSC_Tests.ttcn 1 file changed, 0 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/42/9542/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index fc221f2..2477539 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2114,10 +2114,6 @@ /* MSC disconnects as instructed. */ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); - - - /* MSC disconnects (RLSD). */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); } /* In the buggy behavior, a timeout of 2 seconds happens between above -- To view, visit https://gerrit.osmocom.org/9542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I11b4a1e95dcc522f2a9c14a8b625eab2356a1c18 Gerrit-Change-Number: 9542 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9539 ) Change subject: bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic3e1f8729a093b04941ec7ca72664d53adb21229 Gerrit-Change-Number: 9539 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 13:24:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9539 ) Change subject: bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() ...................................................................... bsc: Don't expect BSC to release SCCP in LCLS.TC_lcls_connect_clear() While osmo-bsc was still affected of OS#3331, it would release the SCCP connection from the BSC side. This is illegal as per 3GPP spec and has meanwhile been fixed in osmo-bsc master. However, the testcase BSC_Tests_LCLS.TC_lcls_connect_clear() relied on the broken behavior, let's fix that. The testcase now releases the SCCP connection from the simulated MSC side in response to the BSSMAP Clear Complete from the BSC. Change-Id: Ic3e1f8729a093b04941ec7ca72664d53adb21229 --- M bsc/BSC_Tests_LCLS.ttcn 1 file changed, 4 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index fd37b4b..b99ba58 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -116,6 +116,7 @@ [] RSL.receive(RSL_Message:?) -> value rsl_msg { MASTER.send(rsl_msg); } /* from master process to ConnHdlr */ [] MASTER.receive(PDU_BSSAP:?) -> value bssap { BSSAP.send(bssap); } + [] MASTER.receive(BSSAP_Conn_Prim:?) -> value bssap_p { BSSAP.send(bssap_p); } [] MASTER.receive(PDU_DTAP_MO:?) -> value dtap_mo { BSSAP.send(dtap_mo); } [] MASTER.receive(PDU_DTAP_MT:?) -> value dtap_mt { BSSAP.send(dtap_mt); } [] MASTER.receive(MgcpCommand:?) -> value mgcp_cmd { MGCP.send(mgcp_cmd); } @@ -553,8 +554,9 @@ f_rsl_find_ie(rsl, RSL_IE_CHAN_NR, ieb); CONN_A.send(ts_RSL_RF_CHAN_REL_ACK(ieb.chan_nr)); } - [] CONN_A.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND); - [] CONN_A.receive(tr_BSSMAP_ClearComplete); + [] CONN_A.receive(tr_BSSMAP_ClearComplete) { + CONN_A.send(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_REQ); + } [] CONN_B.receive(tr_BSSMAP_LclsNotificationSts(LCLS_STS_not_possible_ls)); } f_sleep(2.0); -- To view, visit https://gerrit.osmocom.org/9539 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic3e1f8729a093b04941ec7ca72664d53adb21229 Gerrit-Change-Number: 9539 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: no need to import GSM_RR_Types twice In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9540 ) Change subject: bts: no need to import GSM_RR_Types twice ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3c45df74baebfefb36e09a27b820093f7b9218b Gerrit-Change-Number: 9540 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 13:24:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: no need to import GSM_RR_Types twice In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9540 ) Change subject: bts: no need to import GSM_RR_Types twice ...................................................................... bts: no need to import GSM_RR_Types twice Change-Id: Ie3c45df74baebfefb36e09a27b820093f7b9218b --- M bts/BTS_Tests.ttcn 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 5f71538..1044747 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -5,7 +5,6 @@ import from GSM_RR_Types all; import from Osmocom_Types all; import from GSM_Types all; -import from GSM_RR_Types all; import from GSM_SystemInformation all; import from L1CTL_PortType all; import from L1CTL_Types all; -- To view, visit https://gerrit.osmocom.org/9540 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie3c45df74baebfefb36e09a27b820093f7b9218b Gerrit-Change-Number: 9540 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9541 ) Change subject: BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I35540979c38d46f03702812e93742d7db772c533 Gerrit-Change-Number: 9541 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 13:24:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssma... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9542 ) Change subject: bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssmap_reset() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I11b4a1e95dcc522f2a9c14a8b625eab2356a1c18 Gerrit-Change-Number: 9542 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 13:24:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9541 ) Change subject: BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() ...................................................................... BSC_Tests: ensure different RA+FN in *_does_not_cause_bssmap_reset() For each of the SCCP/BSSMAP connections we create, let's make sure we use a different RA and frame number, to make sure the test is more realistic, and to aid any debugging. Change-Id: I35540979c38d46f03702812e93742d7db772c533 --- M bsc/BSC_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index f99d46b..fc221f2 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2054,7 +2054,7 @@ /* Setup a BSSAP connection and clear it right away. This is * the MSC telling the BSC about a planned release, it's not an * erratic loss of a connection. */ - dt := f_est_dchan('23'O, 23, '00010203040506'O); + dt := f_est_dchan(int2oct(i,1), 23+i, '00010203040506'O); /* MSC disconnects (RLSD). */ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); @@ -2099,7 +2099,7 @@ /* Setup a BSSAP connection and clear it right away. This is * the MSC telling the BSC about a planned release, it's not an * erratic loss of a connection. */ - dt := f_est_dchan('23'O, 23, '00010203040506'O); + dt := f_est_dchan(int2oct(i,1), 23+i, '00010203040506'O); /* Instruct BSC to clear channel */ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); -- To view, visit https://gerrit.osmocom.org/9541 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I35540979c38d46f03702812e93742d7db772c533 Gerrit-Change-Number: 9541 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 13:24:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 13:24:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssma... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9542 ) Change subject: bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssmap_reset() ...................................................................... bsc: Avoid duplicate DISC.req in TC_bssmap_clear_does_not_cause_bssmap_reset() Change-Id: I11b4a1e95dcc522f2a9c14a8b625eab2356a1c18 --- M bsc/BSC_Tests.ttcn 1 file changed, 0 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index fc221f2..2477539 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2114,10 +2114,6 @@ /* MSC disconnects as instructed. */ BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); - - - /* MSC disconnects (RLSD). */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); } /* In the buggy behavior, a timeout of 2 seconds happens between above -- To view, visit https://gerrit.osmocom.org/9542 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I11b4a1e95dcc522f2a9c14a8b625eab2356a1c18 Gerrit-Change-Number: 9542 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 14:56:59 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 11 Jun 2018 14:56:59 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow terminating with ... Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9543 Change subject: verify_value_string_arrays_are_terminated.py: allow terminating with '{}' ...................................................................... verify_value_string_arrays_are_terminated.py: allow terminating with '{}' Writing '{ 0, NULL }' is actually identical to just '{}', and that's what I use these days in all sorts of other contexts. So allow this notation as well in the C code grepper. Change-Id: I0822d2d997dccbfb31316953a7b6024c317d92cf --- M scripts/verify_value_string_arrays_are_terminated.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/43/9543/1 diff --git a/scripts/verify_value_string_arrays_are_terminated.py b/scripts/verify_value_string_arrays_are_terminated.py index 020bb4d..ad936a5 100755 --- a/scripts/verify_value_string_arrays_are_terminated.py +++ b/scripts/verify_value_string_arrays_are_terminated.py @@ -18,7 +18,7 @@ re.MULTILINE | re.DOTALL) members = r'(\.(value|str)\s*=\s*)?' -terminator_re = re.compile('{\s*' + members + '(0|NULL)\s*,' +terminator_re = re.compile('{}|{\s*' + members + '(0|NULL)\s*,' '\s*' + members + '(0|NULL)\s*}') errors_found = 0 -- To view, visit https://gerrit.osmocom.org/9543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0822d2d997dccbfb31316953a7b6024c317d92cf Gerrit-Change-Number: 9543 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 14:57:00 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 11 Jun 2018 14:57:00 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow dir args and no args Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9544 Change subject: verify_value_string_arrays_are_terminated.py: allow dir args and no args ...................................................................... verify_value_string_arrays_are_terminated.py: allow dir args and no args So far we call with a $(find . -name "*.[hc]") argument list, which might become too long at some point. Rather include dir walking in the script itself and allow passing dir arguments as well. This is backwards compatible, calling with above file args still works. Change-Id: I36456383906b6295c798b82aa131dda21f8efc02 --- M scripts/verify_value_string_arrays_are_terminated.py 1 file changed, 18 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/44/9544/1 diff --git a/scripts/verify_value_string_arrays_are_terminated.py b/scripts/verify_value_string_arrays_are_terminated.py index ad936a5..9f0ad82 100755 --- a/scripts/verify_value_string_arrays_are_terminated.py +++ b/scripts/verify_value_string_arrays_are_terminated.py @@ -3,7 +3,7 @@ ''' Usage: - verify_value_string_arrays_are_terminated.py PATH [PATH [...]] + verify_value_string_arrays_are_terminated.py [ROOT_DIR|PATH] [...] e.g. libosmocore/contrib/verify_value_string_arrays_are_terminated.py $(find . -name "*.[hc]") @@ -12,6 +12,7 @@ import re import sys import codecs +import os.path value_string_array_re = re.compile( r'((\bstruct\s+value_string\b[^{;]*?)\s*=[^{;]*{[^;]*}\s*;)', @@ -22,7 +23,10 @@ '\s*' + members + '(0|NULL)\s*}') errors_found = 0 -for f in sys.argv[1:]: +def check_file(f): + global errors_found + if not (f.endswith('.h') or f.endswith('.c') or f.endswith('.cpp')): + return arrays = value_string_array_re.findall(codecs.open(f, "r", "utf-8").read()) for array_def, name in arrays: if not terminator_re.search(array_def): @@ -30,4 +34,16 @@ % (name, f)) errors_found += 1 +args = sys.argv[1:] +if not args: + args = ['.'] + +for f in args: + if os.path.isdir(f): + for parent_path, subdirs, files in os.walk(f, None, None): + for ff in files: + check_file(os.path.join(parent_path, ff)) + else: + check_file(f) + sys.exit(errors_found) -- To view, visit https://gerrit.osmocom.org/9544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I36456383906b6295c798b82aa131dda21f8efc02 Gerrit-Change-Number: 9544 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 14:57:00 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 11 Jun 2018 14:57:00 +0000 Subject: Change in osmo-ci[master]: jobs: gerrit: use debian-9 Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9545 Change subject: jobs: gerrit: use debian-9 ...................................................................... jobs: gerrit: use debian-9 This is the same as done for the master builds in I6f025c642d5ae57cdda9d7b34bbaeb82ca119354, seems I forgot to follow up with this one. Change-Id: I9204ca2f083c8a6a04c6c0fc7d51752a4f1a4830 --- M jobs/gerrit-verifications.yml 1 file changed, 2 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/45/9545/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index f41b6ef..b19b2cb 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -8,7 +8,7 @@ concurrent: false node: osmocom-gerrit-debian8 # axes related defaults - slave_axis: !!python/tuple [osmocom-gerrit-debian8] + slave_axis: !!python/tuple [osmocom-gerrit-debian9] a1_name: a1 a1: !!python/tuple [default] a2_name: a2 @@ -108,8 +108,7 @@ - osmo-gsm-manuals - - osmo-hlr: - slave_axis: !!python/tuple [osmocom-gerrit-debian8, osmocom-gerrit-debian9] + - osmo-hlr - osmo-iuh @@ -174,7 +173,6 @@ - osmo-sip-connector - osmo-trx: - slave_axis: !!python/tuple [osmocom-gerrit-debian9] a1_name: INSTR # ARM variants temporarily disabled due to issue OS#3061 # a1: !!python/tuple [--with-sse, --with-neon, --with-neon-vfpv4] -- To view, visit https://gerrit.osmocom.org/9545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9204ca2f083c8a6a04c6c0fc7d51752a4f1a4830 Gerrit-Change-Number: 9545 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Jun 11 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 11 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#151?= In-Reply-To: <1513218121.110.1528643406290.JavaMail.jenkins@jenkins.osmocom.org> References: <1513218121.110.1528643406290.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <7616494.127.1528729806261.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.67 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Jun 11 15:16:07 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Jun 2018 15:16:07 +0000 Subject: Change in pysim[master]: csv: fix missing import (broken CSV support) Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9546 Change subject: csv: fix missing import (broken CSV support) ...................................................................... csv: fix missing import (broken CSV support) with Change I38f5d36d16b41b5d516a6a3e2ec1d09637883932, new constants for file identifiers were introduced. When csv file input is used, then pySim-prog.py uses one of these constans without importing it from ts_51_011.py - Add missing import Change-Id: Ic5b067b16ec204c2ba2264b1ffb48d37be8d5eb3 --- M pySim-prog.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/46/9546/1 diff --git a/pySim-prog.py b/pySim-prog.py index 0c9f749..a056213 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -40,7 +40,7 @@ from pySim.commands import SimCardCommands from pySim.cards import _cards_classes from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn - +from pySim.ts_51_011 import EF def parse_options(): -- To view, visit https://gerrit.osmocom.org/9546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic5b067b16ec204c2ba2264b1ffb48d37be8d5eb3 Gerrit-Change-Number: 9546 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 15:59:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 15:59:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9547 Change subject: bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan ...................................................................... bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan This test establishes an SDCCH for each iteration. However, * due to OS#3333, osmo-bsc is currently not properly releasing those lchan's, * due to OS#3222, we furthermore don't allocate "larger" channels like TCH and as a result on a combined CCCH system we only have 4 SDCCH, which is less than the 8 that we try to use here. Change-Id: I0f7fff54248a505387bdfe105259e8ad10ce6c77 Related: OS#3333 Related: OS#3332 --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/47/9547/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2477539..9c0ec62 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2046,7 +2046,7 @@ /* Setup up a number of connections and RLSD them again from the MSC * side. In the buggy behavior, the fourth one triggers BSSMAP Reset. * Let's do it some more times for good measure. */ - for (i := 0; i < 8; i := i+1) { + for (i := 0; i < 4; i := i+1) { /* Since we're doing a lot of runs, give each one a fresh * T_guard from the top. */ T_guard.start; -- To view, visit https://gerrit.osmocom.org/9547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0f7fff54248a505387bdfe105259e8ad10ce6c77 Gerrit-Change-Number: 9547 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 16:50:26 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 11 Jun 2018 16:50:26 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9528 to look at the new patch set (#3). Change subject: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() ...................................................................... gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In some cases, there is no need to parse the whole message, e.g. during the conversion from DTAP to GSUP/MAP. This function can be used to extract given IE from a message. Change-Id: I3989d061903352473305f80712f1a1560d05df3d --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 5 files changed, 172 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/28/9528/3 -- To view, visit https://gerrit.osmocom.org/9528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3989d061903352473305f80712f1a1560d05df3d Gerrit-Change-Number: 9528 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 16:50:26 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 11 Jun 2018 16:50:26 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9529 to look at the new patch set (#2). Change subject: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() ...................................................................... gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() This function can be used when there is only a part of GSM 04.80 message available - Facility IE, e.g. when a message is carried over GSUP/MAP. Let's expose it. Refactoring includes the following: - adding the 'gsm0480_' prefix; - correcting inverted return value; - cosmetic code style changes. Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 5 files changed, 81 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/9529/2 -- To view, visit https://gerrit.osmocom.org/9529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e Gerrit-Change-Number: 9529 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:12:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:12:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9547 ) Change subject: bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0f7fff54248a505387bdfe105259e8ad10ce6c77 Gerrit-Change-Number: 9547 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 17:12:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:12:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:12:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9547 ) Change subject: bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan ...................................................................... bsc: Reduce TC_bssap_rlsd_does_not_cause_bssmap_reset to 4 lchan This test establishes an SDCCH for each iteration. However, * due to OS#3333, osmo-bsc is currently not properly releasing those lchan's, * due to OS#3222, we furthermore don't allocate "larger" channels like TCH and as a result on a combined CCCH system we only have 4 SDCCH, which is less than the 8 that we try to use here. Change-Id: I0f7fff54248a505387bdfe105259e8ad10ce6c77 Related: OS#3333 Related: OS#3332 --- M bsc/BSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2477539..9c0ec62 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2046,7 +2046,7 @@ /* Setup up a number of connections and RLSD them again from the MSC * side. In the buggy behavior, the fourth one triggers BSSMAP Reset. * Let's do it some more times for good measure. */ - for (i := 0; i < 8; i := i+1) { + for (i := 0; i < 4; i := i+1) { /* Since we're doing a lot of runs, give each one a fresh * T_guard from the top. */ T_guard.start; -- To view, visit https://gerrit.osmocom.org/9547 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0f7fff54248a505387bdfe105259e8ad10ce6c77 Gerrit-Change-Number: 9547 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:12:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:12:47 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9528 ) Change subject: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3989d061903352473305f80712f1a1560d05df3d Gerrit-Change-Number: 9528 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 17:12:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:13:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:13:04 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9529 ) Change subject: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e Gerrit-Change-Number: 9529 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 17:13:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:13:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:13:07 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9528 ) Change subject: gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() ...................................................................... gsm/gsm0480.c: introduce gsm0480_extract_ie_by_tag() In some cases, there is no need to parse the whole message, e.g. during the conversion from DTAP to GSUP/MAP. This function can be used to extract given IE from a message. Change-Id: I3989d061903352473305f80712f1a1560d05df3d --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 5 files changed, 172 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h index b0b6aa2..b31f8a7 100644 --- a/include/osmocom/gsm/gsm0480.h +++ b/include/osmocom/gsm/gsm0480.h @@ -91,6 +91,8 @@ uint8_t invoke_id; }; +int gsm0480_extract_ie_by_tag(const struct gsm48_hdr *hdr, uint16_t msg_len, + uint8_t **ie, uint16_t *ie_len, uint8_t ie_tag); int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len, struct ss_request *request); diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index 5c73e5b..dfd9877 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -33,6 +33,7 @@ #include #include +#include static inline unsigned char *msgb_wrap_with_TL(struct msgb *msgb, uint8_t tag) { @@ -214,6 +215,93 @@ uint16_t length, struct ss_request *req); +/*! Get pointer to the IE of a given type + * \param[in] hdr Pointer to the message starting from header + * \param[in] msg_len Length of the whole message + header + * \param[out] ie External pointer to be set + * \param[out] ie_len External IE length variable + * \param[in] ie_tag Tag value of the required IE + * \returns 0 in case of success, otherwise -ERRNO + * + * This function iterates over existing IEs within a given + * message (depending on its type), and looks for the one with + * given \ref ie_tag value. If the IE is found, the external + * pointer pointed by \ref ie will be set to its value part + * (omitting TL), and \ref ie_len will be set to the length. + * Otherwise, e.g. in case of parsing error, both \ref ie + * and \ref ie_len are set to NULL and 0 respectively. + */ +int gsm0480_extract_ie_by_tag(const struct gsm48_hdr *hdr, uint16_t msg_len, + uint8_t **ie, uint16_t *ie_len, uint8_t ie_tag) +{ + uint8_t pdisc, msg_type; + uint8_t *tlv, len; + + /* Init external variables */ + *ie_len = 0; + *ie = NULL; + + /* Drop incomplete / corrupted messages */ + if (msg_len < sizeof(*hdr)) + return -EINVAL; + + pdisc = gsm48_hdr_pdisc(hdr); + msg_type = gsm48_hdr_msg_type(hdr); + + /* Drop non-SS related messages */ + if (pdisc != GSM48_PDISC_NC_SS) + return -EINVAL; + + len = msg_len - sizeof(*hdr); + tlv = (uint8_t *) hdr->data; + + /* Parse a message depending on its type */ + switch (msg_type) { + /* See table 2.5: RELEASE COMPLETE message content */ + case GSM0480_MTYPE_RELEASE_COMPLETE: + /* See tables 2.3 and 2.4: REGISTER message content */ + case GSM0480_MTYPE_REGISTER: + /* Iterate over TLV-based IEs */ + while (len > 2) { + if (tlv[0] == ie_tag) { + *ie_len = tlv[1]; + *ie = tlv + 2; + return 0; + } + + len -= tlv[1] + 2; + tlv += tlv[1] + 2; + continue; + } + + /* The Facility IE is mandatory for REGISTER */ + if (msg_type == GSM0480_MTYPE_REGISTER) + if (ie_tag == GSM0480_IE_FACILITY) + return -EINVAL; + break; + + /* See table 2.2: FACILITY message content */ + case GSM0480_MTYPE_FACILITY: + /* There is no other IEs */ + if (ie_tag != GSM0480_IE_FACILITY) + break; + + /* Mandatory LV-based Facility IE */ + if (len < 2) + return -EINVAL; + + *ie_len = tlv[0]; + *ie = tlv + 1; + return 0; + + default: + /* Wrong message type, out of specs */ + return -EINVAL; + } + + return 0; +} + /* Decode a mobile-originated USSD-request message */ int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len, struct ussd_request *req) diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 117cecf..4aaed46 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -89,6 +89,7 @@ gsm0480_create_ussd_resp; gsm0480_create_ussd_notify; gsm0480_create_ussd_release_complete; +gsm0480_extract_ie_by_tag; gsm0480_decode_ussd_request; gsm0480_decode_ss_request; gsm0480_wrap_facility; diff --git a/tests/ussd/ussd_test.c b/tests/ussd/ussd_test.c index 1f79063..23fd739 100644 --- a/tests/ussd/ussd_test.c +++ b/tests/ussd/ussd_test.c @@ -34,6 +34,17 @@ 0x01, 0x7f, 0x01, 0x00 }; +static const uint8_t ussd_facility[] = { + 0x1b, 0x3a, 0x12, 0xa2, 0x10, 0x02, 0x01, 0x01, + 0x30, 0x0b, 0x02, 0x01, 0x3c, 0x30, 0x06, 0x04, + 0x01, 0x0f, 0x04, 0x01, 0x32 +}; + +static const uint8_t ussd_release[] = { + 0x8b, 0x2a, 0x1c, 0x08, 0xa3, 0x06, 0x02, 0x01, + 0x05, 0x02, 0x01, 0x24 +}; + static const uint8_t interrogate_ss[] = { 0x0b, 0x7b, 0x1c, 0x0d, 0xa1, 0x0b, 0x02, 0x01, 0x03, 0x02, 0x01, 0x0e, 0x30, 0x03, 0x04, 0x01, @@ -116,6 +127,67 @@ } } +static void test_extract_ie_by_tag(void) +{ + uint16_t ie_len; + uint8_t *ie; + int rc; + + printf("[i] Testing gsm0480_extract_ie_by_tag()\n"); + + /* REGISTER message with Facility IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_request, + sizeof(ussd_request), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] REGISTER message with Facility IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* REGISTER message with SS version IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_request, + sizeof(ussd_request), &ie, &ie_len, GSM0480_IE_SS_VERSION); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] REGISTER message with SS version IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* REGISTER message with unknown IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_request, + sizeof(ussd_request), &ie, &ie_len, 0xff); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie == NULL && ie_len == 0); + + /* FACILITY message with Facility IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_facility, + sizeof(ussd_facility), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] FACILITY message with Facility IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* FACILITY message with unknown IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_facility, + sizeof(ussd_facility), &ie, &ie_len, 0xff); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie == NULL && ie_len == 0); + + /* RELEASE COMPLETE message with Facility IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_release, + sizeof(ussd_release), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] RELEASE COMPLETE message with Facility IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* RELEASE COMPLETE message without Facility IE */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_release, + sizeof(struct gsm48_hdr), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie == NULL && ie_len == 0); + + printf("\n"); +} + int main(int argc, char **argv) { struct ss_request req; @@ -126,6 +198,9 @@ osmo_init_logging2(ctx, &info); + /* Test gsm0480_extract_ie_by_tag() */ + test_extract_ie_by_tag(); + memset(&req, 0, sizeof(req)); gsm0480_decode_ss_request((struct gsm48_hdr *) ussd_request, sizeof(ussd_request), &req); diff --git a/tests/ussd/ussd_test.ok b/tests/ussd/ussd_test.ok index aff383e..8fa4348 100644 --- a/tests/ussd/ussd_test.ok +++ b/tests/ussd/ussd_test.ok @@ -1,3 +1,9 @@ +[i] Testing gsm0480_extract_ie_by_tag() +[?] REGISTER message with Facility IE (len=21): a1 13 02 01 03 02 01 3b 30 0b 04 01 0f 04 06 2a d5 4c 16 1b 01 +[?] REGISTER message with SS version IE (len=1): 00 +[?] FACILITY message with Facility IE (len=18): a2 10 02 01 01 30 0b 02 01 3c 30 06 04 01 0f 04 01 32 +[?] RELEASE COMPLETE message with Facility IE (len=8): a3 06 02 01 05 02 01 24 + Tested if it still works. Text was: **321# interrogateSS CFU text..'' code 33 Testing parsing a USSD request and truncated versions -- To view, visit https://gerrit.osmocom.org/9528 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3989d061903352473305f80712f1a1560d05df3d Gerrit-Change-Number: 9528 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:13:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:13:08 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9529 ) Change subject: gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() ...................................................................... gsm/gsm0480: refactor and expose gsm0480_parse_facility_ie() This function can be used when there is only a part of GSM 04.80 message available - Facility IE, e.g. when a message is carried over GSUP/MAP. Let's expose it. Refactoring includes the following: - adding the 'gsm0480_' prefix; - correcting inverted return value; - cosmetic code style changes. Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map M tests/ussd/ussd_test.c M tests/ussd/ussd_test.ok 5 files changed, 81 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h index b31f8a7..fafa1f4 100644 --- a/include/osmocom/gsm/gsm0480.h +++ b/include/osmocom/gsm/gsm0480.h @@ -93,6 +93,8 @@ int gsm0480_extract_ie_by_tag(const struct gsm48_hdr *hdr, uint16_t msg_len, uint8_t **ie, uint16_t *ie_len, uint8_t ie_tag); +int gsm0480_parse_facility_ie(const uint8_t *facility_ie, uint16_t length, + struct ss_request *req); int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len, struct ss_request *request); diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index dfd9877..300c0ed 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -201,8 +201,6 @@ struct ss_request *req); static int parse_ss_info_elements(const uint8_t *ss_ie, uint16_t len, struct ss_request *req); -static int parse_facility_ie(const uint8_t *facility_ie, uint16_t length, - struct ss_request *req); static int parse_ss_invoke(const uint8_t *invoke_data, uint16_t length, struct ss_request *req); static int parse_ss_return_result(const uint8_t *rr_data, uint16_t length, @@ -419,7 +417,7 @@ if (len - 1 < facility_length) return 0; - return parse_facility_ie(ss_facility + 1, facility_length, req); + return !gsm0480_parse_facility_ie(ss_facility + 1, facility_length, req); } static int parse_ss_info_elements(const uint8_t *ss_ie, uint16_t len, @@ -445,7 +443,7 @@ case GSM48_IE_CAUSE: break; case GSM0480_IE_FACILITY: - rc = parse_facility_ie(ss_ie + 2, iei_length, req); + rc = !gsm0480_parse_facility_ie(ss_ie + 2, iei_length, req); break; case GSM0480_IE_SS_VERSION: break; @@ -464,31 +462,40 @@ return rc; } -static int parse_facility_ie(const uint8_t *facility_ie, uint16_t length, - struct ss_request *req) +/*! Parse the components of a given Facility IE + * \param[in] facility_ie The Facility IE + * \param[in] length The length of Facility IE + * \param[out] req Abstract representation of SS message + * \return 0 in case of success, otherwise -ERRNO + */ +int gsm0480_parse_facility_ie(const uint8_t *facility_ie, uint16_t length, + struct ss_request *req) { - int rc = 1; + uint8_t component_length; + uint8_t component_type; uint8_t offset = 0; + int rc = 1; + /* Iterate over components within IE */ while (offset + 2 <= length) { /* Component Type tag - table 3.7 */ - uint8_t component_type = facility_ie[offset]; - uint8_t component_length = facility_ie[offset+1]; + component_type = facility_ie[offset]; + component_length = facility_ie[offset + 1]; - /* size check */ + /* Make sure that there is no overflow */ if (offset + 2 + component_length > length) { LOGP(0, LOGL_ERROR, "Component does not fit.\n"); - return 0; + return -EINVAL; } switch (component_type) { case GSM0480_CTYPE_INVOKE: - rc &= parse_ss_invoke(facility_ie+2, + rc &= parse_ss_invoke(facility_ie + 2, component_length, req); break; case GSM0480_CTYPE_RETURN_RESULT: - rc &= parse_ss_return_result(facility_ie+2, + rc &= parse_ss_return_result(facility_ie + 2, component_length, req); break; @@ -502,10 +509,17 @@ rc = 0; break; } - offset += (component_length+2); - }; - return rc; + offset += (component_length + 2); + } + + /** + * The internal functions are using inverted return + * codes, where '0' means error/failure. While a + * common approach is to return negative errno in + * case of any failure, and '0' if all is ok. + */ + return (rc == 0) ? -EINVAL : 0; } /* Parse an Invoke component - see table 3.3 */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 4aaed46..0a6742c 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -90,6 +90,7 @@ gsm0480_create_ussd_notify; gsm0480_create_ussd_release_complete; gsm0480_extract_ie_by_tag; +gsm0480_parse_facility_ie; gsm0480_decode_ussd_request; gsm0480_decode_ss_request; gsm0480_wrap_facility; diff --git a/tests/ussd/ussd_test.c b/tests/ussd/ussd_test.c index 23fd739..8025071 100644 --- a/tests/ussd/ussd_test.c +++ b/tests/ussd/ussd_test.c @@ -188,6 +188,43 @@ printf("\n"); } +static void test_parse_facility_ie(void) +{ + struct ss_request req; + uint16_t ie_len; + uint8_t *ie; + int rc; + + printf("[i] Testing gsm0480_parse_facility_ie()\n"); + + /* Extract Facility IE from FACILITY message */ + rc = gsm0480_extract_ie_by_tag((struct gsm48_hdr *) ussd_facility, + sizeof(ussd_facility), &ie, &ie_len, GSM0480_IE_FACILITY); + OSMO_ASSERT(rc == 0); + OSMO_ASSERT(ie != NULL && ie_len > 0); + printf("[?] FACILITY message with Facility IE " + "(len=%u): %s\n", ie_len, osmo_hexdump(ie, ie_len)); + + /* Attempt to decode */ + memset(&req, 0x00, sizeof(req)); + rc = gsm0480_parse_facility_ie(ie, ie_len, &req); + OSMO_ASSERT(rc == 0); + + /* Verify expected vs decoded data */ + printf("[?] InvokeID: expected 0x%02x, decoded 0x%02x\n", + 0x01, req.invoke_id); + printf("[?] Operation code: expected 0x%02x, decoded 0x%02x\n", + 0x3c, req.opcode); + printf("[?] Data Coding Scheme: expected 0x%02x, decoded 0x%02x\n", + 0x0f, req.ussd_data_dcs); + printf("[?] Data length: expected 0x%02x, decoded 0x%02x\n", + 0x01, req.ussd_data_len); + printf("[?] Data: expected %s, decoded %s\n", "32", + osmo_hexdump_nospc(req.ussd_data, req.ussd_data_len)); + + printf("\n"); +} + int main(int argc, char **argv) { struct ss_request req; @@ -201,6 +238,9 @@ /* Test gsm0480_extract_ie_by_tag() */ test_extract_ie_by_tag(); + /* Test gsm0480_parse_facility_ie() */ + test_parse_facility_ie(); + memset(&req, 0, sizeof(req)); gsm0480_decode_ss_request((struct gsm48_hdr *) ussd_request, sizeof(ussd_request), &req); diff --git a/tests/ussd/ussd_test.ok b/tests/ussd/ussd_test.ok index 8fa4348..1137080 100644 --- a/tests/ussd/ussd_test.ok +++ b/tests/ussd/ussd_test.ok @@ -4,6 +4,14 @@ [?] FACILITY message with Facility IE (len=18): a2 10 02 01 01 30 0b 02 01 3c 30 06 04 01 0f 04 01 32 [?] RELEASE COMPLETE message with Facility IE (len=8): a3 06 02 01 05 02 01 24 +[i] Testing gsm0480_parse_facility_ie() +[?] FACILITY message with Facility IE (len=18): a2 10 02 01 01 30 0b 02 01 3c 30 06 04 01 0f 04 01 32 +[?] InvokeID: expected 0x01, decoded 0x01 +[?] Operation code: expected 0x3c, decoded 0x3c +[?] Data Coding Scheme: expected 0x0f, decoded 0x0f +[?] Data length: expected 0x01, decoded 0x01 +[?] Data: expected 32, decoded 32 + Tested if it still works. Text was: **321# interrogateSS CFU text..'' code 33 Testing parsing a USSD request and truncated versions -- To view, visit https://gerrit.osmocom.org/9529 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I623c39ffbe6cdee65eade8435a2faa04d0da193e Gerrit-Change-Number: 9529 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:13:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:13:31 +0000 Subject: Change in pysim[master]: csv: fix missing import (broken CSV support) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9546 ) Change subject: csv: fix missing import (broken CSV support) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9546 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic5b067b16ec204c2ba2264b1ffb48d37be8d5eb3 Gerrit-Change-Number: 9546 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 11 Jun 2018 17:13:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:13:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:13:54 +0000 Subject: Change in osmo-ci[master]: jobs: gerrit: use debian-9 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9545 ) Change subject: jobs: gerrit: use debian-9 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9204ca2f083c8a6a04c6c0fc7d51752a4f1a4830 Gerrit-Change-Number: 9545 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 11 Jun 2018 17:13:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:14:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:14:10 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow terminating with ... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9543 ) Change subject: verify_value_string_arrays_are_terminated.py: allow terminating with '{}' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0822d2d997dccbfb31316953a7b6024c317d92cf Gerrit-Change-Number: 9543 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 11 Jun 2018 17:14:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:15:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:15:00 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow dir args and no args In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9544 ) Change subject: verify_value_string_arrays_are_terminated.py: allow dir args and no args ...................................................................... Patch Set 1: not sure why that's needed or wanted. I guess osmocom projects should be quite far from overflowing the max number of arguments? -- To view, visit https://gerrit.osmocom.org/9544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36456383906b6295c798b82aa131dda21f8efc02 Gerrit-Change-Number: 9544 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 11 Jun 2018 17:15:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 17:23:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 17:23:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add TC_chan_rel_hard_rlsd_ms_dead Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9548 Change subject: bsc: Add TC_chan_rel_hard_rlsd_ms_dead ...................................................................... bsc: Add TC_chan_rel_hard_rlsd_ms_dead In this test case, the MSC performs a hard SCCP release of the SCCP connection. This makes the BSC send a RLL REL REQ on the lchan, but we simulate a broken/lost MS which doesn't respond to that. Current OsmoBSC master will fail this test, and that's exactly why we need it. Change-Id: I800168499c2ab30af72625aba6fc740bc16e5653 Related: OS#3333 --- M bsc/BSC_Tests.ttcn 1 file changed, 16 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/48/9548/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 9c0ec62..bab56d1 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -814,6 +814,21 @@ setverdict(pass); } +/* Test behavior of channel release after hard RLSD from MSC and MS is not responding to RLL REL REQ */ +testcase TC_chan_rel_hard_rlsd_ms_dead() runs on test_CT { + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + + /* release the SCCP connection */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + + f_expect_chan_rel(0, dt.rsl_chan_nr, true, false); + setverdict(pass); +} + /* Test behavior of channel release after BSSMAP RESET from MSC */ testcase TC_chan_rel_a_reset() runs on test_CT { var DchanTuple dt; @@ -2444,6 +2459,7 @@ execute( TC_chan_rel_conn_fail() ); execute( TC_chan_rel_hard_clear() ); execute( TC_chan_rel_hard_rlsd() ); + execute( TC_chan_rel_hard_rlsd_ms_dead() ); execute( TC_chan_rel_a_reset() ); execute( TC_outbound_connect() ); -- To view, visit https://gerrit.osmocom.org/9548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I800168499c2ab30af72625aba6fc740bc16e5653 Gerrit-Change-Number: 9548 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 18:28:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 18:28:27 +0000 Subject: Change in libosmocore[master]: gsup: Add osmo_gsup_get_err_msg_type() function Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9549 Change subject: gsup: Add osmo_gsup_get_err_msg_type() function ...................................................................... gsup: Add osmo_gsup_get_err_msg_type() function This function can be used to resolve the error message type for a given message type. Can be used by generic error handlers that work for any incoming message type. Change-Id: Ic637bec53dd7fe3ec83da99b49b4eae34d5602b2 --- M include/osmocom/gsm/gsup.h M src/gsm/gsup.c M src/gsm/libosmogsm.map 3 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/49/9549/1 diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h index dd27493..e246639 100644 --- a/include/osmocom/gsm/gsup.h +++ b/include/osmocom/gsm/gsup.h @@ -213,5 +213,6 @@ int osmo_gsup_decode(const uint8_t *data, size_t data_len, struct osmo_gsup_message *gsup_msg); int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg); +int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in); /*! @} */ diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index b4b60b2..e3eef02 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -70,6 +70,29 @@ { 0, NULL } }; + +/*! return the error message type corresponding to \a type_in + * \returns matching error message type; -1 on error */ +int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in) +{ + switch (type_in) { + case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: + return OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR; + case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: + return OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR; + case OSMO_GSUP_MSGT_PURGE_MS_REQUEST: + return OSMO_GSUP_MSGT_PURGE_MS_ERROR; + case OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: + return OSMO_GSUP_MSGT_INSERT_DATA_ERROR; + case OSMO_GSUP_MSGT_DELETE_DATA_REQUEST: + return OSMO_GSUP_MSGT_DELETE_DATA_ERROR; + case OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST: + return OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR; + default: + return -1; + } +} + static int decode_pdp_info(uint8_t *data, size_t data_len, struct osmo_gsup_pdp_info *pdp_info) { diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 0a6742c..f98f7c9 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -469,6 +469,7 @@ osmo_gsup_encode; osmo_gsup_decode; osmo_gsup_message_type_names; +osmo_gsup_get_err_msg_type; osmo_oap_encode; osmo_oap_decode; -- To view, visit https://gerrit.osmocom.org/9549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic637bec53dd7fe3ec83da99b49b4eae34d5602b2 Gerrit-Change-Number: 9549 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 18:30:09 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 18:30:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add TC_chan_rel_hard_rlsd_ms_dead In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9548 ) Change subject: bsc: Add TC_chan_rel_hard_rlsd_ms_dead ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I800168499c2ab30af72625aba6fc740bc16e5653 Gerrit-Change-Number: 9548 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 18:30:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 18:30:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 18:30:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add TC_chan_rel_hard_rlsd_ms_dead In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9548 ) Change subject: bsc: Add TC_chan_rel_hard_rlsd_ms_dead ...................................................................... bsc: Add TC_chan_rel_hard_rlsd_ms_dead In this test case, the MSC performs a hard SCCP release of the SCCP connection. This makes the BSC send a RLL REL REQ on the lchan, but we simulate a broken/lost MS which doesn't respond to that. Current OsmoBSC master will fail this test, and that's exactly why we need it. Change-Id: I800168499c2ab30af72625aba6fc740bc16e5653 Related: OS#3333 --- M bsc/BSC_Tests.ttcn 1 file changed, 16 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 9c0ec62..bab56d1 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -814,6 +814,21 @@ setverdict(pass); } +/* Test behavior of channel release after hard RLSD from MSC and MS is not responding to RLL REL REQ */ +testcase TC_chan_rel_hard_rlsd_ms_dead() runs on test_CT { + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + + /* release the SCCP connection */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + + f_expect_chan_rel(0, dt.rsl_chan_nr, true, false); + setverdict(pass); +} + /* Test behavior of channel release after BSSMAP RESET from MSC */ testcase TC_chan_rel_a_reset() runs on test_CT { var DchanTuple dt; @@ -2444,6 +2459,7 @@ execute( TC_chan_rel_conn_fail() ); execute( TC_chan_rel_hard_clear() ); execute( TC_chan_rel_hard_rlsd() ); + execute( TC_chan_rel_hard_rlsd_ms_dead() ); execute( TC_chan_rel_a_reset() ); execute( TC_outbound_connect() ); -- To view, visit https://gerrit.osmocom.org/9548 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I800168499c2ab30af72625aba6fc740bc16e5653 Gerrit-Change-Number: 9548 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 18:31:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 18:31:44 +0000 Subject: Change in libosmocore[master]: gsup: Add osmo_gsup_get_err_msg_type() function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9549 ) Change subject: gsup: Add osmo_gsup_get_err_msg_type() function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic637bec53dd7fe3ec83da99b49b4eae34d5602b2 Gerrit-Change-Number: 9549 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 18:31:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 18:31:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 18:31:46 +0000 Subject: Change in libosmocore[master]: gsup: Add osmo_gsup_get_err_msg_type() function In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9549 ) Change subject: gsup: Add osmo_gsup_get_err_msg_type() function ...................................................................... gsup: Add osmo_gsup_get_err_msg_type() function This function can be used to resolve the error message type for a given message type. Can be used by generic error handlers that work for any incoming message type. Change-Id: Ic637bec53dd7fe3ec83da99b49b4eae34d5602b2 --- M include/osmocom/gsm/gsup.h M src/gsm/gsup.c M src/gsm/libosmogsm.map 3 files changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h index dd27493..e246639 100644 --- a/include/osmocom/gsm/gsup.h +++ b/include/osmocom/gsm/gsup.h @@ -213,5 +213,6 @@ int osmo_gsup_decode(const uint8_t *data, size_t data_len, struct osmo_gsup_message *gsup_msg); int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg); +int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in); /*! @} */ diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index b4b60b2..e3eef02 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -70,6 +70,29 @@ { 0, NULL } }; + +/*! return the error message type corresponding to \a type_in + * \returns matching error message type; -1 on error */ +int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in) +{ + switch (type_in) { + case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: + return OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR; + case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: + return OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR; + case OSMO_GSUP_MSGT_PURGE_MS_REQUEST: + return OSMO_GSUP_MSGT_PURGE_MS_ERROR; + case OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: + return OSMO_GSUP_MSGT_INSERT_DATA_ERROR; + case OSMO_GSUP_MSGT_DELETE_DATA_REQUEST: + return OSMO_GSUP_MSGT_DELETE_DATA_ERROR; + case OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST: + return OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR; + default: + return -1; + } +} + static int decode_pdp_info(uint8_t *data, size_t data_len, struct osmo_gsup_pdp_info *pdp_info) { diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 0a6742c..f98f7c9 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -469,6 +469,7 @@ osmo_gsup_encode; osmo_gsup_decode; osmo_gsup_message_type_names; +osmo_gsup_get_err_msg_type; osmo_oap_encode; osmo_oap_decode; -- To view, visit https://gerrit.osmocom.org/9549 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic637bec53dd7fe3ec83da99b49b4eae34d5602b2 Gerrit-Change-Number: 9549 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 18:31:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 18:31:50 +0000 Subject: Change in osmo-hlr[master]: Return proper GSUP error in case of too short IMSI Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9550 Change subject: Return proper GSUP error in case of too short IMSI ...................................................................... Return proper GSUP error in case of too short IMSI This fixes HLR_Tests.TC_gsup_sai_err_invalid_imsi Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da Closes: OS#3028 --- M src/hlr.c 1 file changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/50/9550/1 diff --git a/src/hlr.c b/src/hlr.c index 4da7b9b..ee19795 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -338,6 +338,29 @@ return osmo_gsup_conn_send(conn, msg_out); } +static int gsup_send_err_reply(struct osmo_gsup_conn *conn, const char *imsi, + enum osmo_gsup_message_type type_in, uint8_t err_cause) +{ + int type_err = osmo_gsup_get_err_msg_type(type_in); + struct osmo_gsup_message gsup_reply = {0}; + struct msgb *msg_out; + + if (type_err < 0) { + LOGP(DMAIN, LOGL_ERROR, "unable to determine error response for %s\n", + osmo_gsup_message_type_name(type_in)); + return type_err; + } + + OSMO_STRLCPY_ARRAY(gsup_reply.imsi, imsi); + gsup_reply.message_type = type_err; + gsup_reply.cause = err_cause; + msg_out = msgb_alloc_headroom(1024+16, 16, "GSUP ERR response"); + OSMO_ASSERT(msg_out); + osmo_gsup_encode(msg_out, &gsup_reply); + LOGP(DMAIN, LOGL_NOTICE, "Tx %s\n", osmo_gsup_message_type_name(type_err)); + return osmo_gsup_conn_send(conn, msg_out); +} + static int read_cb(struct osmo_gsup_conn *conn, struct msgb *msg) { static struct osmo_gsup_message gsup; @@ -349,6 +372,11 @@ return rc; } + /* 3GPP TS 23.003 Section 2.2 clearly states that an IMSI with less than 5 + * digits is impossible. Even 5 digits is a highly theoretical case */ + if (strlen(gsup.imsi) < 5) + return gsup_send_err_reply(conn, gsup.imsi, gsup.message_type, GMM_CAUSE_INV_MAND_INFO); + switch (gsup.message_type) { /* requests sent to us */ case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: -- To view, visit https://gerrit.osmocom.org/9550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da Gerrit-Change-Number: 9550 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 20:22:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 20:22:26 +0000 Subject: Change in osmo-hlr[master]: Return proper GSUP error in case of too short IMSI In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9550 ) Change subject: Return proper GSUP error in case of too short IMSI ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da Gerrit-Change-Number: 9550 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 20:22:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 20:22:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 20:22:28 +0000 Subject: Change in osmo-hlr[master]: Return proper GSUP error in case of too short IMSI In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9550 ) Change subject: Return proper GSUP error in case of too short IMSI ...................................................................... Return proper GSUP error in case of too short IMSI This fixes HLR_Tests.TC_gsup_sai_err_invalid_imsi Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da Closes: OS#3028 --- M src/hlr.c 1 file changed, 28 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/hlr.c b/src/hlr.c index 4da7b9b..ee19795 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -338,6 +338,29 @@ return osmo_gsup_conn_send(conn, msg_out); } +static int gsup_send_err_reply(struct osmo_gsup_conn *conn, const char *imsi, + enum osmo_gsup_message_type type_in, uint8_t err_cause) +{ + int type_err = osmo_gsup_get_err_msg_type(type_in); + struct osmo_gsup_message gsup_reply = {0}; + struct msgb *msg_out; + + if (type_err < 0) { + LOGP(DMAIN, LOGL_ERROR, "unable to determine error response for %s\n", + osmo_gsup_message_type_name(type_in)); + return type_err; + } + + OSMO_STRLCPY_ARRAY(gsup_reply.imsi, imsi); + gsup_reply.message_type = type_err; + gsup_reply.cause = err_cause; + msg_out = msgb_alloc_headroom(1024+16, 16, "GSUP ERR response"); + OSMO_ASSERT(msg_out); + osmo_gsup_encode(msg_out, &gsup_reply); + LOGP(DMAIN, LOGL_NOTICE, "Tx %s\n", osmo_gsup_message_type_name(type_err)); + return osmo_gsup_conn_send(conn, msg_out); +} + static int read_cb(struct osmo_gsup_conn *conn, struct msgb *msg) { static struct osmo_gsup_message gsup; @@ -349,6 +372,11 @@ return rc; } + /* 3GPP TS 23.003 Section 2.2 clearly states that an IMSI with less than 5 + * digits is impossible. Even 5 digits is a highly theoretical case */ + if (strlen(gsup.imsi) < 5) + return gsup_send_err_reply(conn, gsup.imsi, gsup.message_type, GMM_CAUSE_INV_MAND_INFO); + switch (gsup.message_type) { /* requests sent to us */ case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: -- To view, visit https://gerrit.osmocom.org/9550 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da Gerrit-Change-Number: 9550 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 20:23:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 20:23:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr: Update expected-results Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9551 Change subject: hlr: Update expected-results ...................................................................... hlr: Update expected-results as of Change-Id Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da, osmo-hlr passes HLR_Tests.TC_gsup_sai_err_invalid_imsi Change-Id: I72fb71806c72ce29e8c6c9b25723f02009463cec --- M hlr/expected-results.xml 1 file changed, 1 insertion(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/51/9551/1 diff --git a/hlr/expected-results.xml b/hlr/expected-results.xml index 94ea7cd..039c1f7 100644 --- a/hlr/expected-results.xml +++ b/hlr/expected-results.xml @@ -1,11 +1,6 @@ - - Unexpected SAI ERROR Cause - HLR_Tests.ttcn:MASKED HLR_Tests control part - HLR_Tests.ttcn:MASKED TC_gsup_sai_err_invalid_imsi testcase - - + -- To view, visit https://gerrit.osmocom.org/9551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I72fb71806c72ce29e8c6c9b25723f02009463cec Gerrit-Change-Number: 9551 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 20:27:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 20:27:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr: Update expected-results In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9551 ) Change subject: hlr: Update expected-results ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I72fb71806c72ce29e8c6c9b25723f02009463cec Gerrit-Change-Number: 9551 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 11 Jun 2018 20:27:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 11 20:27:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Jun 2018 20:27:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr: Update expected-results In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9551 ) Change subject: hlr: Update expected-results ...................................................................... hlr: Update expected-results as of Change-Id Change-Id: I4f51abdf44dfc62d7e8792341aad6dafe58923da, osmo-hlr passes HLR_Tests.TC_gsup_sai_err_invalid_imsi Change-Id: I72fb71806c72ce29e8c6c9b25723f02009463cec --- M hlr/expected-results.xml 1 file changed, 1 insertion(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/hlr/expected-results.xml b/hlr/expected-results.xml index 94ea7cd..039c1f7 100644 --- a/hlr/expected-results.xml +++ b/hlr/expected-results.xml @@ -1,11 +1,6 @@ - - Unexpected SAI ERROR Cause - HLR_Tests.ttcn:MASKED HLR_Tests control part - HLR_Tests.ttcn:MASKED TC_gsup_sai_err_invalid_imsi testcase - - + -- To view, visit https://gerrit.osmocom.org/9551 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I72fb71806c72ce29e8c6c9b25723f02009463cec Gerrit-Change-Number: 9551 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 04:43:58 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 04:43:58 +0000 Subject: Change in osmo-msc[master]: Use proper naming for GSM TS 09.11 implementation Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9552 Change subject: Use proper naming for GSM TS 09.11 implementation ...................................................................... Use proper naming for GSM TS 09.11 implementation During a long time, we had both file and symbol names, actually related to Supplementary Services, with the 'ussd' abbreviation. This is not absolutely wrong, but isn't correct at the same time. USSD is a kind of Supplementary Services, this is only a part of them. There are also 'structured' Supplementary Services, which can be call related or call independent. The "Signalling interworking for supplementary services" is defined by GSM TS 09.11, and this is exactly what MSC should implement. Let's use the specification number for naming, as we do e.g. in the GSM 04.11 (SMS) implementation. Change-Id: Ic1eaceddb58132318e4e941be542da34b8ebefe1 --- M include/osmocom/msc/Makefile.am A include/osmocom/msc/gsm_09_11.h D include/osmocom/msc/ussd.h M src/libmsc/Makefile.am M src/libmsc/gsm_04_08.c R src/libmsc/gsm_09_11.c 6 files changed, 16 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/52/9552/1 diff --git a/include/osmocom/msc/Makefile.am b/include/osmocom/msc/Makefile.am index f0e24c4..5be51ea 100644 --- a/include/osmocom/msc/Makefile.am +++ b/include/osmocom/msc/Makefile.am @@ -9,6 +9,7 @@ gsm_04_11.h \ gsm_04_14.h \ gsm_04_80.h \ + gsm_09_11.h \ gsm_data.h \ gsm_data_shared.h \ gsm_subscriber.h \ @@ -30,7 +31,6 @@ smpp.h \ sms_queue.h \ transaction.h \ - ussd.h \ vlr.h \ vty.h \ $(NULL) diff --git a/include/osmocom/msc/gsm_09_11.h b/include/osmocom/msc/gsm_09_11.h new file mode 100644 index 0000000..4e7a5b6 --- /dev/null +++ b/include/osmocom/msc/gsm_09_11.h @@ -0,0 +1,5 @@ +#pragma once + +#include + +int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg); diff --git a/include/osmocom/msc/ussd.h b/include/osmocom/msc/ussd.h deleted file mode 100644 index bc4227b..0000000 --- a/include/osmocom/msc/ussd.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#include - -int handle_rcv_ussd(struct gsm_subscriber_connection *conn, struct msgb *msg); diff --git a/src/libmsc/Makefile.am b/src/libmsc/Makefile.am index 3173da5..ad8deec 100644 --- a/src/libmsc/Makefile.am +++ b/src/libmsc/Makefile.am @@ -35,6 +35,7 @@ gsm_04_11.c \ gsm_04_14.c \ gsm_04_80.c \ + gsm_09_11.c \ gsm_subscriber.c \ mncc.c \ mncc_builtin.c \ @@ -44,7 +45,6 @@ rrlp.c \ silent_call.c \ sms_queue.c \ - ussd.c \ transaction.c \ osmo_msc.c \ ctrl_commands.c \ diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 5c45316..beec6fa 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -42,9 +42,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -3524,7 +3524,7 @@ rc = -ENOTSUP; break; case GSM48_PDISC_NC_SS: - rc = handle_rcv_ussd(conn, msg); + rc = gsm0911_rcv_nc_ss(conn, msg); break; case GSM48_PDISC_TEST: rc = gsm0414_rcv_test(conn, msg); diff --git a/src/libmsc/ussd.c b/src/libmsc/gsm_09_11.c similarity index 93% rename from src/libmsc/ussd.c rename to src/libmsc/gsm_09_11.c index a27d47b..8f7e54f 100644 --- a/src/libmsc/ussd.c +++ b/src/libmsc/gsm_09_11.c @@ -1,5 +1,3 @@ -/* Network-specific handling of mobile-originated USSDs. */ - /* (C) 2008-2009 by Harald Welte * (C) 2008, 2009 by Holger Hans Peter Freyther * (C) 2009 by Mike Haben @@ -21,8 +19,11 @@ * */ -/* This module defines the network-specific handling of mobile-originated - USSD messages. */ +/** + * MSC-specific handling of call independent Supplementary + * Services messages (NC_SS) according to GSM TS 09.11 + * "Signalling interworking for supplementary services". + */ #include #include @@ -58,8 +59,8 @@ return gsm0480_send_ussd_response(conn, response_string, req); } -/* Entrypoint - handler function common to all mobile-originated USSDs */ -int handle_rcv_ussd(struct gsm_subscriber_connection *conn, struct msgb *msg) +/* Entry point for call independent MO SS messages */ +int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); struct gsm_trans *trans; -- To view, visit https://gerrit.osmocom.org/9552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic1eaceddb58132318e4e941be542da34b8ebefe1 Gerrit-Change-Number: 9552 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 04:43:58 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 04:43:58 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_08.c: expose gsm48_tx_simple() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9553 Change subject: libmsc/gsm_04_08.c: expose gsm48_tx_simple() ...................................................................... libmsc/gsm_04_08.c: expose gsm48_tx_simple() This function could be also used by other parts of code, e.g. by gsm_04_11.c or by gsm_09_11.c, during initialization of a new transaction. No need to hide it. Change-Id: I9a9d17fca4901163dae10d76455aa4cf54497156 --- M include/osmocom/msc/gsm_04_08.h M src/libmsc/gsm_04_08.c 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/53/9553/1 diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h index f059d75..a99e458 100644 --- a/include/osmocom/msc/gsm_04_08.h +++ b/include/osmocom/msc/gsm_04_08.h @@ -34,6 +34,8 @@ /* don't use "enum gsm_chreq_reason_t" to avoid circular dependency */ void gsm_net_update_ctype(struct gsm_network *net); +int gsm48_tx_simple(struct gsm_subscriber_connection *conn, + uint8_t pdisc, uint8_t msg_type); int gsm48_tx_mm_info(struct gsm_subscriber_connection *conn); int gsm48_tx_mm_auth_req(struct gsm_subscriber_connection *conn, uint8_t *rand, uint8_t *autn, int key_seq); diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index beec6fa..4e3fd2a 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -79,8 +79,6 @@ static int gsm0408_loc_upd_acc(struct gsm_subscriber_connection *conn, uint32_t send_tmsi); -static int gsm48_tx_simple(struct gsm_subscriber_connection *conn, - uint8_t pdisc, uint8_t msg_type); static uint32_t new_callref = 0x80000001; @@ -1345,8 +1343,8 @@ return gsm48_conn_sendmsg(msg, trans->conn, trans); } -static int gsm48_tx_simple(struct gsm_subscriber_connection *conn, - uint8_t pdisc, uint8_t msg_type) +int gsm48_tx_simple(struct gsm_subscriber_connection *conn, + uint8_t pdisc, uint8_t msg_type) { struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 TX SIMPLE"); struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); -- To view, visit https://gerrit.osmocom.org/9553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9a9d17fca4901163dae10d76455aa4cf54497156 Gerrit-Change-Number: 9553 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 04:43:59 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 04:43:59 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: properly indicate transaction errors Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9554 Change subject: libmsc/gsm_09_11.c: properly indicate transaction errors ...................................................................... libmsc/gsm_09_11.c: properly indicate transaction errors Previously it was intended that we are always parsing the whole GSM 04.80 message, including the Invoke ID. But there is no need to do that, since we are going to forward the Facility IE payload to HLR in near future. Moreover, there was a mistake (my bad) - transaction is being established before parsing of the message, so the req structure remains uninitialized until that. Let's just send RELEASE COMPLETE message without any Cause or Facility IEs. We could indicate a problem using the first one, but according to GSM TS 04.80, the Cause IE only makes sense when "its functional handling is specified in the service description or GSM TS 09.11". Change-Id: Iecba2dccada9bbcdeb3a9dfd868719aeedc07022 --- M src/libmsc/gsm_09_11.c 1 file changed, 6 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/54/9554/1 diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index 8f7e54f..fc588f5 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -94,9 +94,9 @@ LOGP(DMM, LOGL_ERROR, "Unexpected message (msg_type=%s), " "transaction is not allocated yet\n", gsm48_pdisc_msgtype_name(pdisc, msg_type)); - gsm0480_send_ussd_reject(conn, &req, - GSM_0480_PROBLEM_CODE_TAG_GENERAL, - GSM_0480_GEN_PROB_CODE_UNRECOGNISED); + gsm48_tx_simple(conn, + GSM48_PDISC_NC_SS | (tid << 4), + GSM0480_MTYPE_RELEASE_COMPLETE); return -EINVAL; } @@ -105,8 +105,9 @@ pdisc, tid, new_callref++); if (!trans) { DEBUGP(DMM, " -> No memory for trans\n"); - gsm0480_send_ussd_return_error(conn, &req, - GSM0480_ERR_CODE_SYSTEM_FAILURE); + gsm48_tx_simple(conn, + GSM48_PDISC_NC_SS | (tid << 4), + GSM0480_MTYPE_RELEASE_COMPLETE); return -ENOMEM; } -- To view, visit https://gerrit.osmocom.org/9554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iecba2dccada9bbcdeb3a9dfd868719aeedc07022 Gerrit-Change-Number: 9554 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 04:44:01 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 04:44:01 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: make the API abstract from ss_request struct Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9555 Change subject: libmsc/gsm_04_80.c: make the API abstract from ss_request struct ...................................................................... libmsc/gsm_04_80.c: make the API abstract from ss_request struct There is no need to pass a pointer to a ss_request struct when calling the gsm0480_send_ussd_* functions, because they only use both transaction ID and InvokeID from there, which may be passed directly. This change allows one to use this API without parsing the whole GSM 04.80 message, or when parsing is failed. Moreover, if InvokeID is not available, one can pass any incorrect, (e.g. negative) value, so the universal NULL tag will be used. Finally, setting a TI flag is also up to the caller. Change-Id: I13d5abbfdcf8238ebaf0566c420f09cd9255b648 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/gsm_09_11.c 3 files changed, 42 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/55/9555/1 diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index fb057c8..3edb2fd 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -7,13 +7,13 @@ struct gsm_subscriber_connection; int gsm0480_send_ussd_response(struct gsm_subscriber_connection *conn, - const char* response_text, - const struct ss_request *req); + uint8_t transaction_id, uint8_t invoke_id, + const char *response_text); int gsm0480_send_ussd_return_error(struct gsm_subscriber_connection *conn, - const struct ss_request *req, + uint8_t transaction_id, uint8_t invoke_id, uint8_t error_code); int gsm0480_send_ussd_reject(struct gsm_subscriber_connection *conn, - const struct ss_request *req, + uint8_t transaction_id, int invoke_id, uint8_t error_tag, uint8_t error_code); int msc_send_ussd_notify(struct gsm_subscriber_connection *conn, int level, diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 8799fcb..36cc54f 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -59,10 +59,20 @@ return data; } +static inline unsigned char *msgb_push_NULL(struct msgb *msgb) +{ + uint8_t *data = msgb_push(msgb, 2); + + data[0] = ASN1_NULL_TYPE_TAG; + data[1] = 0; + return data; +} + /* Send response to a mobile-originated ProcessUnstructuredSS-Request */ int gsm0480_send_ussd_response(struct gsm_subscriber_connection *conn, - const char *response_text, const struct ss_request *req) + uint8_t transaction_id, uint8_t invoke_id, + const char *response_text) { struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USSD RSP"); struct gsm48_hdr *gh; @@ -91,7 +101,7 @@ msgb_wrap_with_TL(msg, GSM_0480_SEQUENCE_TAG); /* Pre-pend the invoke ID */ - msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, req->invoke_id); + msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, invoke_id); /* Wrap this up as a Return Result component */ msgb_wrap_with_TL(msg, GSM0480_CTYPE_RETURN_RESULT); @@ -101,15 +111,15 @@ /* And finally pre-pend the L3 header */ gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh)); - gh->proto_discr = GSM48_PDISC_NC_SS | req->transaction_id - | (1<<7); /* TI direction = 1 */ + gh->proto_discr = GSM48_PDISC_NC_SS; + gh->proto_discr |= transaction_id << 4; gh->msg_type = GSM0480_MTYPE_RELEASE_COMPLETE; return msc_tx_dtap(conn, msg); } int gsm0480_send_ussd_return_error(struct gsm_subscriber_connection *conn, - const struct ss_request *req, uint8_t error_code) + uint8_t transaction_id, uint8_t invoke_id, uint8_t error_code) { struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USSD ERR"); struct gsm48_hdr *gh; @@ -118,7 +128,7 @@ msgb_push_TLV1(msg, GSM_0480_ERROR_CODE_TAG, error_code); /* Before it insert the invoke ID */ - msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, req->invoke_id); + msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, invoke_id); /* Wrap this up as a Reject component */ msgb_wrap_with_TL(msg, GSM0480_CTYPE_RETURN_ERROR); @@ -128,15 +138,15 @@ /* And finally pre-pend the L3 header */ gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh)); - gh->proto_discr = GSM48_PDISC_NC_SS; - gh->proto_discr |= req->transaction_id | (1<<7); /* TI direction = 1 */ + gh->proto_discr = GSM48_PDISC_NC_SS; + gh->proto_discr |= transaction_id << 4; gh->msg_type = GSM0480_MTYPE_RELEASE_COMPLETE; return msc_tx_dtap(conn, msg); } int gsm0480_send_ussd_reject(struct gsm_subscriber_connection *conn, - const struct ss_request *req, + uint8_t transaction_id, int invoke_id, uint8_t error_tag, uint8_t error_code) { struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USSD REJ"); @@ -145,8 +155,14 @@ /* First insert the problem code */ msgb_push_TLV1(msg, error_tag, error_code); - /* Before it insert the invoke ID */ - msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, req->invoke_id); + /** + * If the Invoke ID is not available, Universal Null + * (table 3.9) with length = 0 shall be used. + */ + if (invoke_id < 0 || invoke_id > 255) + msgb_push_NULL(msg); + else + msgb_push_TLV1(msg, GSM0480_COMPIDTAG_INVOKE_ID, invoke_id); /* Wrap this up as a Reject component */ msgb_wrap_with_TL(msg, GSM0480_CTYPE_REJECT); @@ -156,8 +172,8 @@ /* And finally pre-pend the L3 header */ gh = (struct gsm48_hdr *) msgb_push(msg, sizeof(*gh)); - gh->proto_discr = GSM48_PDISC_NC_SS; - gh->proto_discr |= req->transaction_id | (1<<7); /* TI direction = 1 */ + gh->proto_discr = GSM48_PDISC_NC_SS; + gh->proto_discr |= transaction_id << 4; gh->msg_type = GSM0480_MTYPE_RELEASE_COMPLETE; return msc_tx_dtap(conn, msg); diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index fc588f5..799dfaa 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -46,7 +46,7 @@ /* A network-specific handler function */ static int send_own_number(struct gsm_subscriber_connection *conn, - const struct ss_request *req) + uint8_t tid, uint8_t invoke_id) { char *own_number = conn->vsub->msisdn; char response_string[GSM_EXTENSION_LENGTH + 20]; @@ -56,7 +56,7 @@ /* Need trailing CR as EOT character */ snprintf(response_string, sizeof(response_string), "Your extension is %s\r", own_number); - return gsm0480_send_ussd_response(conn, response_string, req); + return gsm0480_send_ussd_response(conn, tid, invoke_id, response_string); } /* Entry point for call independent MO SS messages */ @@ -121,7 +121,8 @@ if (!rc) { LOGP(DMM, LOGL_ERROR, "SS/USSD message parsing error, " "rejecting request...\n"); - gsm0480_send_ussd_reject(conn, &req, GSM_0480_PROBLEM_CODE_TAG_GENERAL, + gsm0480_send_ussd_reject(conn, tid, -1, + GSM_0480_PROBLEM_CODE_TAG_GENERAL, GSM_0480_GEN_PROB_CODE_UNRECOGNISED); /* The GSM 04.80 API uses inverted codes (0 means error) */ return -EPROTO; @@ -131,8 +132,8 @@ if (req.ussd_text[0] == '\0' || req.ussd_text[0] == 0xFF) { if (req.ss_code > 0) { /* Assume interrogateSS or modification of it and reject */ - return gsm0480_send_ussd_return_error(conn, &req, - GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION); + return gsm0480_send_ussd_return_error(conn, tid, + req.invoke_id, GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION); } /* Still assuming a Release-Complete and returning */ return 0; @@ -141,10 +142,11 @@ msc_subscr_conn_communicating(conn); if (!strcmp(USSD_TEXT_OWN_NUMBER, (const char *)req.ussd_text)) { DEBUGP(DMM, "USSD: Own number requested\n"); - rc = send_own_number(conn, &req); + rc = send_own_number(conn, tid, req.invoke_id); } else { DEBUGP(DMM, "Unhandled USSD %s\n", req.ussd_text); - rc = gsm0480_send_ussd_return_error(conn, &req, + rc = gsm0480_send_ussd_return_error(conn, + tid, req.invoke_id, GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE); } -- To view, visit https://gerrit.osmocom.org/9555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I13d5abbfdcf8238ebaf0566c420f09cd9255b648 Gerrit-Change-Number: 9555 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 06:31:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 06:31:02 +0000 Subject: Change in osmo-msc[master]: Use proper naming for GSM TS 09.11 implementation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9552 ) Change subject: Use proper naming for GSM TS 09.11 implementation ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/9552/1/include/osmocom/msc/ussd.h File include/osmocom/msc/ussd.h: https://gerrit.osmocom.org/#/c/9552/1/include/osmocom/msc/ussd.h at a5 PS1, Line 5: what's your plan for backwards compatibility here? I suggest you keep the old symbol, mark it as deprecated using the related macro and simply turn it into a wrapper function for the new symbol. -- To view, visit https://gerrit.osmocom.org/9552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic1eaceddb58132318e4e941be542da34b8ebefe1 Gerrit-Change-Number: 9552 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jun 2018 06:31:02 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 06:31:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 06:31:40 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_08.c: expose gsm48_tx_simple() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9553 ) Change subject: libmsc/gsm_04_08.c: expose gsm48_tx_simple() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9553/1/src/libmsc/gsm_04_08.c File src/libmsc/gsm_04_08.c: https://gerrit.osmocom.org/#/c/9553/1/src/libmsc/gsm_04_08.c at 1346 PS1, Line 1346: int gsm48_tx_simple(struct gsm_subscriber_connection *conn, there was something about doxygen for newly-introduced public API :P -- To view, visit https://gerrit.osmocom.org/9553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9a9d17fca4901163dae10d76455aa4cf54497156 Gerrit-Change-Number: 9553 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 12 Jun 2018 06:31:40 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 06:32:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 06:32:29 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: properly indicate transaction errors In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9554 ) Change subject: libmsc/gsm_09_11.c: properly indicate transaction errors ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9554 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iecba2dccada9bbcdeb3a9dfd868719aeedc07022 Gerrit-Change-Number: 9554 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jun 2018 06:32:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 06:34:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 06:34:23 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: make the API abstract from ss_request struct In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9555 ) Change subject: libmsc/gsm_04_80.c: make the API abstract from ss_request struct ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9555/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9555/1//COMMIT_MSG at 16 PS1, Line 16: one can pass any incorrect, : (e.g. negative) value, so the universal NULL tag will be used. that's exactly the kind of documentation you'd want to have in a [doxygen] comment above the respective function(s). -- To view, visit https://gerrit.osmocom.org/9555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I13d5abbfdcf8238ebaf0566c420f09cd9255b648 Gerrit-Change-Number: 9555 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 12 Jun 2018 06:34:23 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 11:37:26 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 11:37:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: *.default: change logging filemask from ERROR | WARNING to += PARALLE... Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9556 Change subject: *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP ...................................................................... *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP PARALLEL | VERDICTOP will log when the port is dying or when other components will change to fail. This helped to find a timeout in the SGSN tests where a function call message timed out. Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0 --- M bsc/BSC_Tests.default M bts/BTS_Tests.default M msc/MSC_Tests.default M sgsn/SGSN_Tests.default M sip/SIP_Tests.default 5 files changed, 23 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/9556/1 diff --git a/bsc/BSC_Tests.default b/bsc/BSC_Tests.default index 6ba9ea2..c13f7b0 100644 --- a/bsc/BSC_Tests.default +++ b/bsc/BSC_Tests.default @@ -1,10 +1,10 @@ [LOGGING] BSSAP.FileMask := LOG_NOTHING; -"VirtMSC-M3UA".FileMask := ERROR | WARNING; -"VirtMSC-SCCP".FileMask := ERROR | WARNING; -"VirtMSC-MGCP".FileMask := ERROR | WARNING; -"IPA0-RSL-IPA".FileMask := ERROR | WARNING; -"IPA0-CTRL-IPA".FileMask := ERROR | WARNING; +"VirtMSC-M3UA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"VirtMSC-SCCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"VirtMSC-MGCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA0-RSL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA0-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; [TESTPORT_PARAMETERS] diff --git a/bts/BTS_Tests.default b/bts/BTS_Tests.default index 196d088..502c17f 100644 --- a/bts/BTS_Tests.default +++ b/bts/BTS_Tests.default @@ -1,7 +1,7 @@ [LOGGING] -"BTS-Test-RSL-IPA".FileMask := ERROR | WARNING; -"BTS-Test-RSL".FileMask := ERROR | WARNING; -"IPA0-CTRL-IPA".FileMask := ERROR | WARNING; +"BTS-Test-RSL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"BTS-Test-RSL".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA0-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; [TESTPORT_PARAMETERS] diff --git a/msc/MSC_Tests.default b/msc/MSC_Tests.default index e8508c2..bcaae06 100644 --- a/msc/MSC_Tests.default +++ b/msc/MSC_Tests.default @@ -2,14 +2,14 @@ FileMask := LOG_ALL | TTCN_MATCHING; BSSAP.FileMask := LOG_NOTHING; -"MSC_Test_0-M3UA".FileMask := ERROR | WARNING; -"MSC_Test_0-SCCP".FileMask := ERROR | WARNING; -"MSC_Test_1-M3UA".FileMask := ERROR | WARNING; -"MSC_Test_1-SCCP".FileMask := ERROR | WARNING; -"MSC_Test-GSUP-IPA".FileMask := ERROR | WARNING; -"MSC_Test-GSUP".FileMask := ERROR | WARNING; -"IPA-CTRL-IPA".FileMask := ERROR | WARNING; -mtc.FileMask := ERROR | WARNING; +"MSC_Test_0-M3UA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test_0-SCCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test_1-M3UA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test_1-SCCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test-GSUP-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test-GSUP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +mtc.FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; [TESTPORT_PARAMETERS] "MSC_Test-MNCC".MNCC.socket_type := "SEQPACKET"; diff --git a/sgsn/SGSN_Tests.default b/sgsn/SGSN_Tests.default index 67a8032..bac5fdd 100644 --- a/sgsn/SGSN_Tests.default +++ b/sgsn/SGSN_Tests.default @@ -1,11 +1,11 @@ [LOGGING] FileMask := LOG_ALL | TTCN_MATCHING; -"IPA-CTRL-IPA".FileMask := ERROR | WARNING; -"SGSN_Test-GSUP-IPA".FileMask := ERROR | WARNING; -"SGSN_Test-Gb0-NS".FileMask := ERROR | WARNING; -"SGSN_Test-Gb0-BSSGP".FileMask := ERROR | WARNING; -"SGSN_Test-GSUP".FileMask := ERROR | WARNING; +"IPA-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-GSUP-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-Gb0-NS".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-Gb0-BSSGP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-GSUP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; [TESTPORT_PARAMETERS] *.SGSNVTY.CTRL_MODE := "client" diff --git a/sip/SIP_Tests.default b/sip/SIP_Tests.default index 5f7de90..2576b33 100644 --- a/sip/SIP_Tests.default +++ b/sip/SIP_Tests.default @@ -1,8 +1,8 @@ [LOGGING] FileMask := LOG_ALL | TTCN_MATCHING; -"IPA-CTRL-IPA".FileMask := ERROR | WARNING; -mtc.FileMask := ERROR | WARNING; +"IPA-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +mtc.FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; [TESTPORT_PARAMETERS] "SIP_Test-MNCC".MNCC.socket_type := "SEQPACKET"; -- To view, visit https://gerrit.osmocom.org/9556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0 Gerrit-Change-Number: 9556 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 11:50:19 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 11:50:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this l... Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9557 Change subject: Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this library ...................................................................... Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this library f_vty_transceive_match will be used by future SGSN tests. Change-Id: Ia69ab6d5639c2e10059f88c8cc97463820cb72e6 --- M hlr/HLR_Tests.ttcn M library/Osmocom_VTY_Functions.ttcn 2 files changed, 8 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/57/9557/1 diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index 90a00bf..b4cf195 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -172,14 +172,6 @@ f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); } -function f_vty_transceive_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { - var charstring ret := f_vty_transceive_ret(pt, cmd); - if (not match(ret, exp_ret)) { - setverdict(fail, "Non-matching VTY response: ", ret); - self.stop; - } -} - private template (value) charstring t_subscr_prefix(hexstring imsi) := "subscriber imsi " & hex2str(imsi) & " "; diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index 2b74694..f118865 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -128,5 +128,13 @@ f_vty_config2(pt, {config_node}, cmd); } +function f_vty_transceive_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { + var charstring ret := f_vty_transceive_ret(pt, cmd); + if (not match(ret, exp_ret)) { + setverdict(fail, "Non-matching VTY response: ", ret); + self.stop; + } +} + } -- To view, visit https://gerrit.osmocom.org/9557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia69ab6d5639c2e10059f88c8cc97463820cb72e6 Gerrit-Change-Number: 9557 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 11:50:20 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 11:50:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9558 Change subject: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() ...................................................................... Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() f_vty_transceive_not_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) fails when vty response match template. Change-Id: I489d2a47cd4690dcfc3f1042c332014593d082a2 --- M library/Osmocom_VTY_Functions.ttcn 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/58/9558/1 diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index f118865..c7f4441 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -136,5 +136,13 @@ } } +function f_vty_transceive_not_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { + var charstring ret := f_vty_transceive_ret(pt, cmd); + if (match(ret, exp_ret)) { + setverdict(fail, "Unexpected matching VTY response: ", ret); + self.stop; + } +} + } -- To view, visit https://gerrit.osmocom.org/9558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I489d2a47cd4690dcfc3f1042c332014593d082a2 Gerrit-Change-Number: 9558 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 11:52:27 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 11:52:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subsc... Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9559 Change subject: SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update} ...................................................................... SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update} Fixes: 6c47f294954f ("SGSN: add TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update}") Change-Id: I5074dadf53ec75a9c709b28ff324e23fdcd13bfa --- M sgsn/SGSN_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/59/9559/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index f8ce5e7..04865fd 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1334,7 +1334,7 @@ } private function f_TC_hlr_location_cancel_request_unknown_subscriber_withdraw(charstring id) runs on BSSGP_ConnHdlr { - f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); + f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); } testcase TC_hlr_location_cancel_request_unknown_subscriber_withdraw() runs on test_CT { @@ -1350,7 +1350,7 @@ } private function f_TC_hlr_location_cancel_request_unknown_subscriber_update(charstring id) runs on BSSGP_ConnHdlr { - f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); + f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); } testcase TC_hlr_location_cancel_request_unknown_subscriber_update() runs on test_CT { -- To view, visit https://gerrit.osmocom.org/9559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5074dadf53ec75a9c709b28ff324e23fdcd13bfa Gerrit-Change-Number: 9559 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 11:56:40 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 11:56:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9560 Change subject: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short ...................................................................... sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short Increase the timeout to 10 seconds. These tests fails on jenkins. Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/9560/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index f8ce5e7..4dab9a8 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1381,9 +1381,9 @@ execute( TC_attach_accept_all() ); execute( TC_attach_closed() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); - execute( TC_hlr_location_cancel_request_withdraw(), 5.0 ); - execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 5.0 ); - execute( TC_hlr_location_cancel_request_unknown_subscriber_update(), 5.0 ); + execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); + execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); + execute( TC_hlr_location_cancel_request_unknown_subscriber_update(), 10.0 ); execute( TC_rau_unknown() ); execute( TC_attach_rau() ); execute( TC_detach_unknown_nopoweroff() ); -- To view, visit https://gerrit.osmocom.org/9560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04 Gerrit-Change-Number: 9560 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 12:07:41 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jun 2018 12:07:41 +0000 Subject: Change in pysim[master]: cards: update smsp with fixed record length Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9561 Change subject: cards: update smsp with fixed record length ...................................................................... cards: update smsp with fixed record length When updating ths spsp then rpad() is used to pad the supplied smsp to 48 bytes length. So the length than update_record will dreive is always the same. the method update_record() will then do a select_file() and will use the response to determine the record length from the response. Then this length is used in the APDU that is sent to the card. However, the record size is fixed since it is gets padded to a hardcoded fixed size but not all cards (USIM?) seem to return the record length with their response so we should set the force_len flag in order to cover also those cases. Change-Id: Iea078f8171b6dbe94bd966807802bc30b5824758 Related: SYS#4245 --- M pySim/cards.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/61/9561/1 diff --git a/pySim/cards.py b/pySim/cards.py index 0c9c2b8..a3c4d87 100644 --- a/pySim/cards.py +++ b/pySim/cards.py @@ -84,7 +84,7 @@ return sw def update_smsp(self, smsp): - data, sw = self._scc.update_record(EF['SMSP'], 1, rpad(smsp, 84)) + data, sw = self._scc.update_record(EF['SMSP'], 1, rpad(smsp, 84), True) return sw def read_spn(self): -- To view, visit https://gerrit.osmocom.org/9561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iea078f8171b6dbe94bd966807802bc30b5824758 Gerrit-Change-Number: 9561 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 12:14:45 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jun 2018 12:14:45 +0000 Subject: Change in pysim[master]: cards: update smsp with fixed record length In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/9561 ) Change subject: cards: update smsp with fixed record length ...................................................................... Patch Set 1: > Uploaded patch set 1. As far as I can see FairwavesSIM is currently the only card class that calls the update_smsp() method. However, I would love to use the method with some other card (USIM). Unfortunately this card does not give me any details about the record size back. Since the smsp record that is sent to the card is padded to a fixed size anyway I think it is ok set the force length too. -- To view, visit https://gerrit.osmocom.org/9561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iea078f8171b6dbe94bd966807802bc30b5824758 Gerrit-Change-Number: 9561 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: dexter Gerrit-Comment-Date: Tue, 12 Jun 2018 12:14:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 12:17:47 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 12:17:47 +0000 Subject: Change in osmo-msc[master]: Use proper naming for GSM TS 09.11 implementation In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9552 ) Change subject: Use proper naming for GSM TS 09.11 implementation ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9552/1/include/osmocom/msc/ussd.h File include/osmocom/msc/ussd.h: https://gerrit.osmocom.org/#/c/9552/1/include/osmocom/msc/ussd.h at a5 PS1, Line 5: > what's your plan for backwards compatibility here? I suggest you keep the old symbol, mark it as dep [?] Hmm, do we really need backwards compatibility here? This header is not being installed to the system include directory, and AFAIK only used by gsm_04_08.c in a single place. This is an internal symbol within the project, so I don't see any reason to keep the old one. Am I wrong? ;) -- To view, visit https://gerrit.osmocom.org/9552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic1eaceddb58132318e4e941be542da34b8ebefe1 Gerrit-Change-Number: 9552 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 12 Jun 2018 12:17:47 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 12:52:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 12:52:53 +0000 Subject: Change in osmo-msc[master]: Use proper naming for GSM TS 09.11 implementation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9552 ) Change subject: Use proper naming for GSM TS 09.11 implementation ...................................................................... Patch Set 1: Code-Review+1 > (1 comment) sory, I was thinking of libosmocore. Of course we don't need this inside osmo-msc. -- To view, visit https://gerrit.osmocom.org/9552 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic1eaceddb58132318e4e941be542da34b8ebefe1 Gerrit-Change-Number: 9552 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 12 Jun 2018 12:52:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 14:54:27 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Jun 2018 14:54:27 +0000 Subject: Change in osmocom-bb[master]: osmocon: Call osmo_init_ignore_signals at startup Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9562 Change subject: osmocon: Call osmo_init_ignore_signals at startup ...................................................................... osmocon: Call osmo_init_ignore_signals at startup It disables undesirable signals such as SIGPIPE, which exits the program if the client connected to osmocon closes the connection and osmocon writes to the connection fd. After SIGPIPE is disabled, write returns -EPIPE. This is required to keep osmocon running for BTS_Tests.ttcn TTCN3 tests. Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 --- M src/host/osmocon/osmocon.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/62/9562/1 diff --git a/src/host/osmocon/osmocon.c b/src/host/osmocon/osmocon.c index 76f6037..be6e244 100644 --- a/src/host/osmocon/osmocon.c +++ b/src/host/osmocon/osmocon.c @@ -44,6 +44,7 @@ #include #include #include +#include #include @@ -1423,6 +1424,8 @@ dnload.beacon_interval = DEFAULT_BEACON_INTERVAL; dnload.do_chainload = 0; + osmo_init_ignore_signals(); + while ((opt = getopt(argc, argv, "d:hl:p:m:cs:i:v")) != -1) { switch (opt) { case 'p': -- To view, visit https://gerrit.osmocom.org/9562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 Gerrit-Change-Number: 9562 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 12 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 12 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#152?= In-Reply-To: <7616494.127.1528729806261.JavaMail.jenkins@jenkins.osmocom.org> References: <7616494.127.1528729806261.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1566112936.145.1528816206332.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.67 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:15:09 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Jun 2018 15:15:09 +0000 Subject: Change in osmocom-bb[master]: osmoload: Remove duplicate const keyword Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9563 Change subject: osmoload: Remove duplicate const keyword ...................................................................... osmoload: Remove duplicate const keyword Fixes compilation warning: warning: duplicate ?const? declaration specifier [-Wduplicate-decl-specifier] const uint8_t const *endptr = bufptr + len; ^~~~~ Change-Id: Ibafa439c9d7f7aab6d417eca5ff045766ac27b4f --- M src/host/osmocon/osmoload.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/63/9563/1 diff --git a/src/host/osmocon/osmoload.c b/src/host/osmocon/osmoload.c index e83f98a..8ce755d 100644 --- a/src/host/osmocon/osmoload.c +++ b/src/host/osmocon/osmoload.c @@ -149,7 +149,7 @@ static void osmoload_osmo_hexdump(const uint8_t *data, unsigned int len) { const uint8_t *bufptr = data; - const uint8_t const *endptr = bufptr + len; + const uint8_t *endptr = bufptr + len; int n, m, i, hexchr; for (n=0; n < len; n+=32, bufptr += 32) { -- To view, visit https://gerrit.osmocom.org/9563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibafa439c9d7f7aab6d417eca5ff045766ac27b4f Gerrit-Change-Number: 9563 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:15:11 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Jun 2018 15:15:11 +0000 Subject: Change in osmocom-bb[master]: osmocon: Fix printf format Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9564 Change subject: osmocon: Fix printf format ...................................................................... osmocon: Fix printf format Fixes compilation warning: osmocon.c:650:21: warning: format ?%u? expects argument of type ?unsigned int?, but argument 3 has type ?long int? [-Wformat=] printf("%u bytes (%u/%u)\n", rc, dnload.write_ptr - dnload.data, ~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %lu Change-Id: I1e9e10e756d8a612425ee71f4ac0139b2293d3bb --- M src/host/osmocon/osmocon.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/64/9564/1 diff --git a/src/host/osmocon/osmocon.c b/src/host/osmocon/osmocon.c index be6e244..2e822e8 100644 --- a/src/host/osmocon/osmocon.c +++ b/src/host/osmocon/osmocon.c @@ -647,7 +647,7 @@ dnload.write_ptr += rc; - printf("%u bytes (%u/%u)\n", rc, dnload.write_ptr - dnload.data, + printf("%u bytes (%lu/%u)\n", rc, dnload.write_ptr - dnload.data, dnload.data_len); return 0; -- To view, visit https://gerrit.osmocom.org/9564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1e9e10e756d8a612425ee71f4ac0139b2293d3bb Gerrit-Change-Number: 9564 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:15:11 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Jun 2018 15:15:11 +0000 Subject: Change in osmocom-bb[master]: osmocon: Remove unused variables Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9565 Change subject: osmocon: Remove unused variables ...................................................................... osmocon: Remove unused variables Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 --- M src/host/osmocon/osmocon.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/65/9565/1 diff --git a/src/host/osmocon/osmocon.c b/src/host/osmocon/osmocon.c index 2e822e8..0475103 100644 --- a/src/host/osmocon/osmocon.c +++ b/src/host/osmocon/osmocon.c @@ -210,13 +210,11 @@ /* Calypso romloader specific */ static const uint8_t romload_ident_cmd[] = { 0x3c, 0x69 }; /* i */ static const uint8_t romload_param_ack[] = { 0x3e, 0x70 }; /* >p */ -static const uint8_t romload_param_nack[] = { 0x3e, 0x50 }; /* >P */ static const uint8_t romload_block_ack[] = { 0x3e, 0x77 }; /* >w */ static const uint8_t romload_block_nack[] = { 0x3e, 0x57 }; /* >W */ static const uint8_t romload_checksum_ack[] = { 0x3e, 0x63 }; /* >c */ -- To view, visit https://gerrit.osmocom.org/9565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 Gerrit-Change-Number: 9565 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:15:11 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Jun 2018 15:15:11 +0000 Subject: Change in osmocom-bb[master]: osmoload: Remove unused function Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9566 Change subject: osmoload: Remove unused function ...................................................................... osmoload: Remove unused function Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 --- M src/host/osmocon/osmoload.c 1 file changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/66/9566/1 diff --git a/src/host/osmocon/osmoload.c b/src/host/osmocon/osmoload.c index 8ce755d..f513836 100644 --- a/src/host/osmocon/osmoload.c +++ b/src/host/osmocon/osmoload.c @@ -552,12 +552,6 @@ } static void -loader_start_flash_query(uint8_t command, uint8_t chip, uint32_t address) { - loader_send_flash_query(command, chip, address); - osmoload.state = STATE_QUERY_PENDING; -} - -static void loader_start_memget(uint8_t length, uint32_t address) { struct msgb *msg = msgb_alloc(MSGB_MAX, "loader"); msgb_put_u8(msg, LOADER_MEM_READ); -- To view, visit https://gerrit.osmocom.org/9566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 Gerrit-Change-Number: 9566 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:37:30 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Tue, 12 Jun 2018 15:37:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9567 Change subject: move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 ...................................................................... move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 Change-Id: Ifd258da7a0fb53eadb2aa080348a5250c307fe85 --- M deps/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/67/9567/1 diff --git a/deps/Makefile b/deps/Makefile index cf0bf4d..cb9e359 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -55,7 +55,7 @@ # In order to keep local changes in the repository of a dependency, set its commit to the # name of a local branch here (e.g. 'master'). titan.Libraries.TCCUsefulFunctions_commit= R.30.A -titan.ProtocolEmulations.M3UA_commit= R.2.A-1-g53dead2 +titan.ProtocolEmulations.M3UA_commit= R.2.A-2-g742cf02 titan.ProtocolEmulations.SCCP_commit= R.7.A-2-g724c83f titan.ProtocolModules.BSSAPP_v7.3.0_commit= R.2.A titan.ProtocolModules.BSSGP_v13.0.0_commit= R.2.A -- To view, visit https://gerrit.osmocom.org/9567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifd258da7a0fb53eadb2aa080348a5250c307fe85 Gerrit-Change-Number: 9567 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:45:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 15:45:55 +0000 Subject: Change in osmo-ci[master]: ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9568 Change subject: ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 ...................................................................... ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 Change-Id: Ia39284acce65c5779b71154662f3f55349a86960 --- M ansible/roles/install-poky-sdk/defaults/main.yml 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/68/9568/1 diff --git a/ansible/roles/install-poky-sdk/defaults/main.yml b/ansible/roles/install-poky-sdk/defaults/main.yml index 976a03f..9b8eb04 100644 --- a/ansible/roles/install-poky-sdk/defaults/main.yml +++ b/ansible/roles/install-poky-sdk/defaults/main.yml @@ -2,6 +2,6 @@ # OS user jenkins_user: jenkins -poky_installer_file: poky-glibc-x86_64-meta-toolchain-osmo-armv5te-toolchain-osmo-2.3.2.sh -poky_version: 2.3.2 +poky_installer_file: poky-glibc-x86_64-meta-toolchain-osmo-armv5te-toolchain-osmo-2.3.4.sh +poky_version: 2.3.4 -- To view, visit https://gerrit.osmocom.org/9568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia39284acce65c5779b71154662f3f55349a86960 Gerrit-Change-Number: 9568 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:45:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 15:45:55 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-workstation: clone ttcn-3 deps Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9569 Change subject: ansible: osmocom-workstation: clone ttcn-3 deps ...................................................................... ansible: osmocom-workstation: clone ttcn-3 deps Change-Id: Ib0169c858c3c0610e49d01f1dafee5c725ddc7df --- M ansible/roles/osmocom-workstation/tasks/git-repos.yml 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/69/9569/1 diff --git a/ansible/roles/osmocom-workstation/tasks/git-repos.yml b/ansible/roles/osmocom-workstation/tasks/git-repos.yml index 624162c..79f7f31 100644 --- a/ansible/roles/osmocom-workstation/tasks/git-repos.yml +++ b/ansible/roles/osmocom-workstation/tasks/git-repos.yml @@ -98,6 +98,10 @@ - osmo-tcap-map - osmo-tetra +- name: install TTCN3 dependency git repos + command: make deps + args: + chdir: "{{ git_destination }}/osmo-ttcn3-hacks" - name: install sysmocom git repos git: repo=git://git.sysmocom.de/{{ item }}.git -- To view, visit https://gerrit.osmocom.org/9569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib0169c858c3c0610e49d01f1dafee5c725ddc7df Gerrit-Change-Number: 9569 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 15:45:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 15:45:56 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-workstation: Add user to 'docker' group Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9570 Change subject: ansible: osmocom-workstation: Add user to 'docker' group ...................................................................... ansible: osmocom-workstation: Add user to 'docker' group Change-Id: I43169dfb39525ffe16a3ed1cbf5360b47f9f8a00 --- M ansible/roles/osmocom-workstation/tasks/main.yml 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/70/9570/1 diff --git a/ansible/roles/osmocom-workstation/tasks/main.yml b/ansible/roles/osmocom-workstation/tasks/main.yml index 42d213f..966d861 100644 --- a/ansible/roles/osmocom-workstation/tasks/main.yml +++ b/ansible/roles/osmocom-workstation/tasks/main.yml @@ -7,6 +7,7 @@ ssh_key_bits: 4096 ssh_key_type: rsa shell: /usr/bin/zsh + groups: docker - name: include git repos include: git-repos.yml -- To view, visit https://gerrit.osmocom.org/9570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I43169dfb39525ffe16a3ed1cbf5360b47f9f8a00 Gerrit-Change-Number: 9570 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:01:21 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 16:01:21 +0000 Subject: Change in osmocom-bb[master]: osmocon: Call osmo_init_ignore_signals at startup In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9562 ) Change subject: osmocon: Call osmo_init_ignore_signals at startup ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9562/1/src/host/osmocon/osmocon.c File src/host/osmocon/osmocon.c: https://gerrit.osmocom.org/#/c/9562/1/src/host/osmocon/osmocon.c at 1427 PS1, Line 1427: osmo_init_ignore_signals(); Wouldn't this also ignore SIGINT? In other words, would Ctrl+C terminate the program as usually? -- To view, visit https://gerrit.osmocom.org/9562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 Gerrit-Change-Number: 9562 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 12 Jun 2018 16:01:21 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:02:51 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jun 2018 16:02:51 +0000 Subject: Change in pysim[master]: __init__: allow wildcards in expected SW for send_apdu_checksw() Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9571 Change subject: __init__: allow wildcards in expected SW for send_apdu_checksw() ...................................................................... __init__: allow wildcards in expected SW for send_apdu_checksw() The method send_apdu_checksw() is used to check the SW of the final response against some pre defined value. However, in many cases the last two digits of the SW are used to return varying information (e.g. length information or a more specific status info). To cover those cases it would be helfpul to define status words that contain wildcards (e.g. 61**) in order to be able to accept all SWs from 6100 to 61ff. - When the user supplies an expected SW with wildcards, mask out those digits in the response before comparing Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 --- M pySim/transport/__init__.py 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/71/9571/1 diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index dd04bba..f285c28 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -77,12 +77,23 @@ """send_apdu_checksw(pdu,sw): Sends an APDU and check returned SW pdu : string of hexadecimal characters (ex. "A0A40000023F00") - sw : string of 4 hexadecimal characters (ex. "9000") + sw : string of 4 hexadecimal characters (ex. "9000"). The + user may mask out certain digits using a '*' to add some + ambiguity if needed. return : tuple(data, sw), where data : string (in hex) of returned data (ex. "074F4EFFFF") sw : string (in hex) of status word (ex. "9000") """ rv = self.send_apdu(pdu) - if sw.lower() != rv[1]: + + # Create a masked version of the returned status word + sw_masked = "" + for i in range(0, 4): + if sw.lower()[i] == '*': + sw_masked = sw_masked + '*' + else: + sw_masked = sw_masked + rv[1][i].lower() + + if sw.lower() != sw_masked: raise RuntimeError("SW match failed ! Expected %s and got %s." % (sw.lower(), rv[1])) return rv -- To view, visit https://gerrit.osmocom.org/9571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 Gerrit-Change-Number: 9571 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:16:03 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:16:03 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of filter "| changed" In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9498 ) Change subject: ansible: fix deprecation of filter "| changed" ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idf11d54d60b78733ed212f04940cee15b3a55400 Gerrit-Change-Number: 9498 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 12 Jun 2018 16:16:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:16:06 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:16:06 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of "include:" In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9499 ) Change subject: ansible: fix deprecation of "include:" ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6e1bb11e9392f7da9ed554c37f9625daa0950308 Gerrit-Change-Number: 9499 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 12 Jun 2018 16:16:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:16:28 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:16:28 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of filter "| changed" In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9498 ) Change subject: ansible: fix deprecation of filter "| changed" ...................................................................... ansible: fix deprecation of filter "| changed" "| changed" filter will be removed in ansible 2.9 Change-Id: Idf11d54d60b78733ed212f04940cee15b3a55400 --- M ansible/roles/gsm-tester-bts/tasks/main.yml M ansible/roles/gsm-tester-network/tasks/main.yml M ansible/roles/udhcpd/tasks/main.yml 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/roles/gsm-tester-bts/tasks/main.yml b/ansible/roles/gsm-tester-bts/tasks/main.yml index fa4bccd..e979605 100644 --- a/ansible/roles/gsm-tester-bts/tasks/main.yml +++ b/ansible/roles/gsm-tester-bts/tasks/main.yml @@ -27,7 +27,7 @@ command: uhd_images_downloader args: creates: /usr/share/uhd/images - when: uhd_installed | changed + when: uhd_installed is changed - name: usrp allow jenkins to access user: diff --git a/ansible/roles/gsm-tester-network/tasks/main.yml b/ansible/roles/gsm-tester-network/tasks/main.yml index 0a023a7..210bf1e 100644 --- a/ansible/roles/gsm-tester-network/tasks/main.yml +++ b/ansible/roles/gsm-tester-network/tasks/main.yml @@ -8,4 +8,4 @@ - name: start all network interface command: ifup -a - when: gsm_tester_network_interface | changed + when: gsm_tester_network_interface is changed diff --git a/ansible/roles/udhcpd/tasks/main.yml b/ansible/roles/udhcpd/tasks/main.yml index e444684..e1e7b36 100644 --- a/ansible/roles/udhcpd/tasks/main.yml +++ b/ansible/roles/udhcpd/tasks/main.yml @@ -22,7 +22,7 @@ - name: systemctl daemon-reload systemd: daemon_reload: yes - when: udhcpdservice | changed + when: udhcpdservice is changed - name: ensure the systemd service is installed systemd: -- To view, visit https://gerrit.osmocom.org/9498 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idf11d54d60b78733ed212f04940cee15b3a55400 Gerrit-Change-Number: 9498 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:16:31 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:16:31 +0000 Subject: Change in osmo-ci[master]: ansible: fix deprecation of "include:" In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9499 ) Change subject: ansible: fix deprecation of "include:" ...................................................................... ansible: fix deprecation of "include:" "include:" has been deprecated in favour of "include_tasks:". Change-Id: I6e1bb11e9392f7da9ed554c37f9625daa0950308 --- M ansible/roles/osmocom-jenkins-slave/tasks/main.yml 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml index 215c988..f76489c 100644 --- a/ansible/roles/osmocom-jenkins-slave/tasks/main.yml +++ b/ansible/roles/osmocom-jenkins-slave/tasks/main.yml @@ -1,7 +1,7 @@ --- - name: install jenkins packages - include: debian.yml + include_tasks: debian.yml when: ansible_distribution == 'Debian' - name: install build utilities @@ -100,11 +100,11 @@ key: "{{ lookup('file', 'jenkins.osmocom.org.pub') }}" - name: include generic slave - include: generic-slave.yml + include_tasks: generic-slave.yml when: generic_slave - name: install ttcn3 dependencies - include: ttcn3-slave.yml + include_tasks: ttcn3-slave.yml when: ttcn3_slave and ansible_distribution == 'Debian' and ansible_distribution_release == 'stretch' - name: copy .gitconfig -- To view, visit https://gerrit.osmocom.org/9499 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6e1bb11e9392f7da9ed554c37f9625daa0950308 Gerrit-Change-Number: 9499 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:16:48 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Jun 2018 16:16:48 +0000 Subject: Change in osmocom-bb[master]: osmocon: Call osmo_init_ignore_signals at startup In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9562 ) Change subject: osmocon: Call osmo_init_ignore_signals at startup ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9562/1/src/host/osmocon/osmocon.c File src/host/osmocon/osmocon.c: https://gerrit.osmocom.org/#/c/9562/1/src/host/osmocon/osmocon.c at 1427 PS1, Line 1427: osmo_init_ignore_signals(); > Wouldn't this also ignore SIGINT? [?] osmo_init_ignore_signals doesn't ignore SIGINT: >/*! Ignore \ref SIGPIPE, \ref SIGALRM, \ref SIGHUP and \ref >SIGIO */ >void osmo_init_ignore_signals(void) >{ > /* Signals that by default would terminate */ >#ifdef SIGPIPE > signal(SIGPIPE, SIG_IGN); >#endif > signal(SIGALRM, SIG_IGN); >#ifdef SIGHUP > signal(SIGHUP, &sighup_hdlr); >#endif >#ifdef SIGIO > signal(SIGIO, SIG_IGN); >#endif >} -- To view, visit https://gerrit.osmocom.org/9562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 Gerrit-Change-Number: 9562 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 12 Jun 2018 16:16:48 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:17:04 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:17:04 +0000 Subject: Change in osmo-ci[master]: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9493 ) Change subject: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 Gerrit-Change-Number: 9493 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 12 Jun 2018 16:17:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:17:06 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:17:06 +0000 Subject: Change in osmo-ci[master]: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9493 ) Change subject: anisble: gsm-tester: uhubctl: add "-n 1d50:4002" ...................................................................... anisble: gsm-tester: uhubctl: add "-n 1d50:4002" uhubctl -p 123456 -a 1 is rejecting because uhubctl detects two hubs. Selecting only one hub. Fixes the error message: Error: changing port state for multiple hubs at once is not supported. Use -l to limit operation to one hub! Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 --- M ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh b/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh index 9262f97..626a04e 100755 --- a/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh +++ b/ansible/roles/gsm-tester/templates/quad_modem_power_cycle.sh @@ -1,9 +1,9 @@ #!/bin/sh set -ex -uhubctl -p 123456 -a 0 +uhubctl -p 123456 -a 0 -n 1d50:4002 # give a lot of time to discharge capacitors on the board sleep 20 -uhubctl -p 123456 -a 1 +uhubctl -p 123456 -a 1 -n 1d50:4002 attempts=30 while [ "x$(uhubctl | grep -e 05c6 -e 1199 -c)" != "x{{ gsm_modems }}" ]; do attempts=$(($attempts - 1)) -- To view, visit https://gerrit.osmocom.org/9493 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2e3c248e4eaef39f18ff38d1055db6d552fc4d20 Gerrit-Change-Number: 9493 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:17:23 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:17:23 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: change production gsm_modems to 3 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9494 ) Change subject: ansible: gsm-tester: change production gsm_modems to 3 ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/9494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f Gerrit-Change-Number: 9494 Gerrit-PatchSet: 3 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 12 Jun 2018 16:17:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:17:27 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 16:17:27 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: change production gsm_modems to 3 In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/9494 ) Change subject: ansible: gsm-tester: change production gsm_modems to 3 ...................................................................... ansible: gsm-tester: change production gsm_modems to 3 In the production setup, there are only 3 valid modems. Moving the variable into the host_vars so they can have different amount of modem between rnd & prod. Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f --- M ansible/host_vars/osmo-gsm-tester-prod.yml M ansible/host_vars/osmo-gsm-tester-rnd.yml M ansible/setup-gsm-tester.yml 3 files changed, 6 insertions(+), 2 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, approved lynxis lazus: Verified diff --git a/ansible/host_vars/osmo-gsm-tester-prod.yml b/ansible/host_vars/osmo-gsm-tester-prod.yml index e87d8fb..2f9068e 100644 --- a/ansible/host_vars/osmo-gsm-tester-prod.yml +++ b/ansible/host_vars/osmo-gsm-tester-prod.yml @@ -4,3 +4,6 @@ ip: 10.42.42.53 - mac: 00:02:95:00:5a:a4 ip: 10.42.42.54 + +# how many modems are connected via a quadmodem? +gsm_modems: 3 diff --git a/ansible/host_vars/osmo-gsm-tester-rnd.yml b/ansible/host_vars/osmo-gsm-tester-rnd.yml index b524752..2e9b0b7 100644 --- a/ansible/host_vars/osmo-gsm-tester-rnd.yml +++ b/ansible/host_vars/osmo-gsm-tester-rnd.yml @@ -2,3 +2,6 @@ udhcpd_static_leases: - mac: 00:02:95:00:41:b3 ip: 10.42.42.53 + +# how many modems are connected via a quadmodem? +gsm_modems: 4 diff --git a/ansible/setup-gsm-tester.yml b/ansible/setup-gsm-tester.yml index 02ebe0f..99cc3e4 100644 --- a/ansible/setup-gsm-tester.yml +++ b/ansible/setup-gsm-tester.yml @@ -17,8 +17,6 @@ - curl roles: - name: gsm-tester - # how many modems are connected via a quadmodem? - gsm_modems: 4 tags: - gsm-tester -- To view, visit https://gerrit.osmocom.org/9494 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic51a14a339bb9be50504a27a724f6f428ee7304f Gerrit-Change-Number: 9494 Gerrit-PatchSet: 4 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:24:44 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Jun 2018 16:24:44 +0000 Subject: Change in osmo-trx[master]: examples: Set rt-prio 18 and print file basename Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9572 Change subject: examples: Set rt-prio 18 and print file basename ...................................................................... examples: Set rt-prio 18 and print file basename Change-Id: I16fbdd46f2d9b6f3e79a4bb357f6a7fbed14244a --- M doc/examples/osmo-trx-limesdr.cfg M doc/examples/osmo-trx-umtrx.cfg M doc/examples/osmo-trx-usrp_b200.cfg 3 files changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/72/9572/1 diff --git a/doc/examples/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-limesdr.cfg index c7e6b23..7f622b0 100644 --- a/doc/examples/osmo-trx-limesdr.cfg +++ b/doc/examples/osmo-trx-limesdr.cfg @@ -3,6 +3,7 @@ logging color 1 logging print category 1 logging timestamp 1 + logging print file basename logging level all info ! line vty @@ -15,6 +16,7 @@ egprs disable tx-sps 4 rx-sps 4 + rt-prio 18 chan 0 tx-path BAND1 rx-path LNAW diff --git a/doc/examples/osmo-trx-umtrx.cfg b/doc/examples/osmo-trx-umtrx.cfg index b7a73b0..9c80933 100644 --- a/doc/examples/osmo-trx-umtrx.cfg +++ b/doc/examples/osmo-trx-umtrx.cfg @@ -3,6 +3,7 @@ logging color 1 logging print category 1 logging timestamp 1 + logging print file basename logging level all info ! line vty diff --git a/doc/examples/osmo-trx-usrp_b200.cfg b/doc/examples/osmo-trx-usrp_b200.cfg index 1d6656e..53fa24e 100644 --- a/doc/examples/osmo-trx-usrp_b200.cfg +++ b/doc/examples/osmo-trx-usrp_b200.cfg @@ -3,6 +3,7 @@ logging color 1 logging print category 1 logging timestamp 1 + logging print file basename logging level all info ! line vty @@ -16,5 +17,6 @@ tx-sps 4 rx-sps 4 clock-ref external + rt-prio 18 chan 0 -- To view, visit https://gerrit.osmocom.org/9572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I16fbdd46f2d9b6f3e79a4bb357f6a7fbed14244a Gerrit-Change-Number: 9572 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:32:22 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 16:32:22 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_08.c: expose gsm48_tx_simple() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9553 to look at the new patch set (#2). Change subject: libmsc/gsm_04_08.c: expose gsm48_tx_simple() ...................................................................... libmsc/gsm_04_08.c: expose gsm48_tx_simple() This function could be also used by other parts of code, e.g. by gsm_04_11.c or by gsm_09_11.c, during initialization of a new transaction. No need to hide it. Change-Id: I9a9d17fca4901163dae10d76455aa4cf54497156 --- M include/osmocom/msc/gsm_04_08.h M src/libmsc/gsm_04_08.c 2 files changed, 10 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/53/9553/2 -- To view, visit https://gerrit.osmocom.org/9553 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9a9d17fca4901163dae10d76455aa4cf54497156 Gerrit-Change-Number: 9553 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:32:22 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 16:32:22 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: make the API abstract from ss_request struct In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9555 to look at the new patch set (#2). Change subject: libmsc/gsm_04_80.c: make the API abstract from ss_request struct ...................................................................... libmsc/gsm_04_80.c: make the API abstract from ss_request struct There is no need to pass a pointer to a ss_request struct when calling the gsm0480_send_ussd_* functions, because they only use both transaction ID and InvokeID from there, which may be passed directly. This change allows one to use this API without parsing the whole GSM 04.80 message, or when parsing is failed. Moreover, if InvokeID is not available, one can pass any incorrect, (e.g. negative) value, so the universal NULL tag will be used. Finally, setting a TI flag is also up to the caller. Change-Id: I13d5abbfdcf8238ebaf0566c420f09cd9255b648 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/gsm_09_11.c 3 files changed, 77 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/55/9555/2 -- To view, visit https://gerrit.osmocom.org/9555 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I13d5abbfdcf8238ebaf0566c420f09cd9255b648 Gerrit-Change-Number: 9555 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:34:11 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Jun 2018 16:34:11 +0000 Subject: Change in osmocom-bb[master]: osmocon: Call osmo_init_ignore_signals at startup In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9562 ) Change subject: osmocon: Call osmo_init_ignore_signals at startup ...................................................................... Patch Set 1: Code-Review+1 Ok, thanks for clarification :) -- To view, visit https://gerrit.osmocom.org/9562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 Gerrit-Change-Number: 9562 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 12 Jun 2018 16:34:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:49:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 16:49:31 +0000 Subject: Change in osmo-ci[master]: osmocom-workstatin: change default user to osmocom Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9573 Change subject: osmocom-workstatin: change default user to osmocom ...................................................................... osmocom-workstatin: change default user to osmocom Change-Id: I35da5f2276730c7f81d5a1c2e6878ea3e23bca3b --- M ansible/roles/osmocom-workstation/defaults/main.yml M ansible/setup-desktop.yml 2 files changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/73/9573/1 diff --git a/ansible/roles/osmocom-workstation/defaults/main.yml b/ansible/roles/osmocom-workstation/defaults/main.yml index 4a2b6d7..bb3d292 100644 --- a/ansible/roles/osmocom-workstation/defaults/main.yml +++ b/ansible/roles/osmocom-workstation/defaults/main.yml @@ -1,4 +1,4 @@ --- -osmocom_user: laforge +osmocom_user: osmocom git_destination: "/home/{{ osmocom_user}}/projects/git" diff --git a/ansible/setup-desktop.yml b/ansible/setup-desktop.yml index 303a610..507a8f2 100644 --- a/ansible/setup-desktop.yml +++ b/ansible/setup-desktop.yml @@ -19,4 +19,3 @@ - jenkins-slave - name: osmocom-workstation - osmocom_user: laforge -- To view, visit https://gerrit.osmocom.org/9573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I35da5f2276730c7f81d5a1c2e6878ea3e23bca3b Gerrit-Change-Number: 9573 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:49:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 16:49:31 +0000 Subject: Change in osmo-ci[master]: ansible: Add various additional packages to osmocom-workstation Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9574 Change subject: ansible: Add various additional packages to osmocom-workstation ...................................................................... ansible: Add various additional packages to osmocom-workstation Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 --- M ansible/roles/osmocom-workstation/tasks/main.yml 1 file changed, 15 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/74/9574/1 diff --git a/ansible/roles/osmocom-workstation/tasks/main.yml b/ansible/roles/osmocom-workstation/tasks/main.yml index 966d861..8c7a79c 100644 --- a/ansible/roles/osmocom-workstation/tasks/main.yml +++ b/ansible/roles/osmocom-workstation/tasks/main.yml @@ -30,4 +30,18 @@ - gnupg - openssh-client - openssh-server - + - console-common + - console-data + - meld + - emacs + - gitk + - okular + - libreoffice-calc + - libreoffice-draw + - libreoffice-impress + - libreoffice-writer + - gnumeric + - openvpn + - fvwm + - network-manager + - modemmanager -- To view, visit https://gerrit.osmocom.org/9574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 Gerrit-Change-Number: 9574 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:53:38 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Jun 2018 16:53:38 +0000 Subject: Change in pysim[master]: __init__: also fetch response bytes for USIMs automatically Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9575 Change subject: __init__: also fetch response bytes for USIMs automatically ...................................................................... __init__: also fetch response bytes for USIMs automatically The method send_apdu() first transmits the APDU in the cards direction. The card may indicate that there is a response available by responding with SW1=9F, where SW2 is the number of bytes. send_apdu() will then craft a get-response APDU to pickup the response bytes. This mechanism works fine for SIM, but USIM uses SW1=61 to indicate the availability of a response, so lets also sense on SW1=61 to support USIMs as well. - Also check on SW1=61 to see if a response is available Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5 Related: OS#4245 --- M pySim/transport/__init__.py 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/75/9575/1 diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index dd04bba..158b906 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -67,7 +67,13 @@ """ data, sw = self.send_apdu_raw(pdu) - if (sw is not None) and (sw[0:2] == '9f'): + # When whe have sent the first APDU, the SW may indicate that there are response bytes + # available. There are two SWs commonly used for this 9fxx (sim) and 61xx (usim), where + # xx is the number of response bytes available. + # See also: + # SW1=9F: 3GPP TS 51.011 9.4.1, Responses to commands which are correctly executed + # SW1=61: ISO/IEC 7816-4, Table 5 ? General meaning of the interindustry values of SW1-SW2 + if (sw is not None) and ((sw[0:2] == '9f') or (sw[0:2] == '61')): pdu_gr = pdu[0:2] + 'c00000' + sw[2:4] data, sw = self.send_apdu_raw(pdu_gr) -- To view, visit https://gerrit.osmocom.org/9575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5 Gerrit-Change-Number: 9575 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:55:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 16:55:40 +0000 Subject: Change in osmo-ci[master]: ansible: Add various additional packages to osmocom-workstation In-Reply-To: References: Message-ID: Harald Welte has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9574 ) Change subject: ansible: Add various additional packages to osmocom-workstation ...................................................................... ansible: Add various additional packages to osmocom-workstation Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 --- M ansible/roles/osmocom-workstation/tasks/main.yml 1 file changed, 16 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/74/9574/2 -- To view, visit https://gerrit.osmocom.org/9574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 Gerrit-Change-Number: 9574 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 16:56:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Jun 2018 16:56:39 +0000 Subject: Change in osmo-ci[master]: ansible: Add various additional packages to osmocom-workstation In-Reply-To: References: Message-ID: Harald Welte has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/9574 ) Change subject: ansible: Add various additional packages to osmocom-workstation ...................................................................... ansible: Add various additional packages to osmocom-workstation Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 --- M ansible/roles/osmocom-workstation/tasks/main.yml 1 file changed, 16 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/74/9574/3 -- To view, visit https://gerrit.osmocom.org/9574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 Gerrit-Change-Number: 9574 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:01:44 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Tue, 12 Jun 2018 17:01:44 +0000 Subject: Change in libosmo-sccp[master]: make it possible to pass parameters to m3ua_example Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9576 Change subject: make it possible to pass parameters to m3ua_example ...................................................................... make it possible to pass parameters to m3ua_example There are plans to use the m3ua_example tool as an SCCP peer for a TTCN3 test suite. Make it possible to pass paramters to this tool so the user can override hard-coded default values of IP addresses, ports, and point codes. Change-Id: I52243ae926c76020de41c8dfc7263517c7263d7e --- M examples/m3ua_example.c 1 file changed, 131 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/76/9576/1 diff --git a/examples/m3ua_example.c b/examples/m3ua_example.c index a9f455c..2a99450 100644 --- a/examples/m3ua_example.c +++ b/examples/m3ua_example.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -23,15 +24,17 @@ static struct osmo_sccp_instance *g_sccp; -static struct osmo_sccp_instance *sua_server_helper(void) +static struct osmo_sccp_instance *sua_server_helper(int local_port, const char *local_address, int local_pc, + int remote_port, const char *remote_address, int remote_pc) { struct osmo_sccp_instance *sccp; - sccp = osmo_sccp_simple_server(NULL, 1, OSMO_SS7_ASP_PROT_M3UA, - -1, "127.0.0.2"); + sccp = osmo_sccp_simple_server(NULL, local_pc, OSMO_SS7_ASP_PROT_M3UA, local_port, local_address); + if (sccp == NULL) + return NULL; - osmo_sccp_simple_server_add_clnt(sccp, OSMO_SS7_ASP_PROT_M3UA, - "23", 23, -1, 0, NULL); + osmo_sccp_simple_server_add_clnt(sccp, OSMO_SS7_ASP_PROT_M3UA, "client", remote_pc, local_port, + remote_port, remote_address); return sccp; } @@ -79,10 +82,118 @@ .version = 0, }; +#define DEFAULT_LOCAL_PC -1 +#define DEFAULT_LOCAL_ADDRESS "127.0.0.2" +#define DEFAULT_LOCAL_PORT M3UA_PORT +#define DEFAULT_REMOTE_PC 23 +#define DEFAULT_REMOTE_ADDRESS "127.0.0.1" +#define DEFAULT_REMOTE_PORT M3UA_PORT + +static void usage(void) { + fprintf(stderr, "m3ua_example [-c] [-l LOCAL_ADDRESS[:LOCAL_PORT]]\n" + " [-r REMOTE_ADDRESS[:REMOTE_PORT]]\n" + " [-L LOCAL_POINT_CODE] [-R REMOTE_POINT_CODE]\n" + "Options:\n" + " -c: Run in client mode (default is server mode)\n" + " -l: local IP address and SCTP port (default is %s:%d)\n" + " -r: remote IP address and SCTP port (default is %s:%d)\n" + " -L: local point code (default is %d)\n" + " -R: remote point code (default is %d)\n", + DEFAULT_LOCAL_ADDRESS, DEFAULT_LOCAL_PORT, + DEFAULT_REMOTE_ADDRESS, DEFAULT_REMOTE_PORT, + DEFAULT_LOCAL_PC, DEFAULT_REMOTE_PC); + exit(1); +} + +static int is_decimal_string(const char *s) +{ + const char *p = s; + + if (*p == '\0') + return 0; + + while (*p) { + if (!isdigit(*p++)) + return 0; + } + return 1; +} + +static int parse_address_port(char **address, int *port, const char *arg) +{ + char *s, *colon; + + s = strdup(arg); + OSMO_ASSERT(s); + + colon = strrchr(s, ':'); + if (colon) { + char *portstr = colon + 1; + *colon = '\0'; + if (*portstr == '\0') { + fprintf(stderr, "missing port number after : in '%s'\n", arg); + free(s); + return 1; + } + if (!is_decimal_string(portstr)) { + fprintf(stderr, "invalid port number: '%s'\n", portstr); + free(s); + return 1; + } + *port = atoi(portstr); + } + + *address = s; + return 0; +} + int main(int argc, char **argv) { - bool client; - int rc; + bool client = false; + int rc, ch; + char *local_address = DEFAULT_LOCAL_ADDRESS; + int local_port = DEFAULT_LOCAL_PORT; + int local_pc = DEFAULT_LOCAL_PC; + char *remote_address = DEFAULT_REMOTE_ADDRESS; + int remote_port = DEFAULT_LOCAL_PORT; + int remote_pc = DEFAULT_REMOTE_PC; + + while ((ch = getopt(argc, argv, "cl:r:p:L:R:")) != -1) { + switch (ch) { + case 'c': + client = true; + break; + case 'l': + if (parse_address_port(&local_address, &local_port, optarg)) + exit(1); + break; + case 'r': + if (parse_address_port(&remote_address, &remote_port, optarg)) + exit(1); + break; + case 'L': + if (!is_decimal_string(optarg)) { + fprintf(stderr, "invalid decimal point code: '%s'\n", optarg); + exit(1); + } + local_pc = atoi(optarg); + break; + case 'R': + if (!is_decimal_string(optarg)) { + fprintf(stderr, "invalid decimal point code: '%s'\n", optarg); + exit(1); + } + remote_pc = atoi(optarg); + break; + default: + usage(); + } + } + argc -= optind; + argv += optind; + + if (argc != 0) + usage(); talloc_enable_leak_report_full(); @@ -96,23 +207,27 @@ osmo_ss7_vty_init_asp(NULL); osmo_sccp_vty_init(); - if (argc <= 1) - client = true; - else - client = false; - rc = telnet_init_dynif(NULL, NULL, vty_get_bind_addr(), 2324+client); if (rc < 0) { - perror("Erro binding VTY port\n"); + perror("Error binding VTY port"); exit(1); } - if (client) { - g_sccp = osmo_sccp_simple_client(NULL, "client", 23, OSMO_SS7_ASP_PROT_M3UA, 0, NULL, M3UA_PORT, "127.0.0.2"); + g_sccp = osmo_sccp_simple_client(NULL, "client", local_pc, OSMO_SS7_ASP_PROT_M3UA, + local_port, local_address, remote_port, remote_address); + if (g_sccp == NULL) { + perror("Could not create SCCP client"); + exit (1); + } sccp_test_user_vty_install(g_sccp, OSMO_SCCP_SSN_BSSAP); } else { - g_sccp = sua_server_helper(); + g_sccp = sua_server_helper(local_port, local_address, local_pc, + remote_port, remote_address, remote_pc); + if (g_sccp == NULL) { + perror("Could not create SCCP server"); + exit(1); + } sccp_test_server_init(g_sccp); } -- To view, visit https://gerrit.osmocom.org/9576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I52243ae926c76020de41c8dfc7263517c7263d7e Gerrit-Change-Number: 9576 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:26 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: *.default: change logging filemask from ERROR | WARNING to += PARALLE... In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9556 to look at the new patch set (#2). Change subject: *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP ...................................................................... *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP PARALLEL | VERDICTOP will log when the port is dying or when other components will change to fail. This helped to find a timeout in the SGSN tests where a function call message timed out. Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0 --- M bsc/BSC_Tests.default M bts/BTS_Tests.default M msc/MSC_Tests.default M sgsn/SGSN_Tests.default M sip/SIP_Tests.default 5 files changed, 23 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/9556/2 -- To view, visit https://gerrit.osmocom.org/9556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0 Gerrit-Change-Number: 9556 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:26 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9558 to look at the new patch set (#2). Change subject: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() ...................................................................... Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() fails when vty response match template. Change-Id: I489d2a47cd4690dcfc3f1042c332014593d082a2 --- M library/Osmocom_VTY_Functions.ttcn 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/58/9558/2 -- To view, visit https://gerrit.osmocom.org/9558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I489d2a47cd4690dcfc3f1042c332014593d082a2 Gerrit-Change-Number: 9558 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:26 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9560 to look at the new patch set (#2). Change subject: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short ...................................................................... sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short These tests failed on jenkins. Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/60/9560/2 -- To view, visit https://gerrit.osmocom.org/9560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04 Gerrit-Change-Number: 9560 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:28 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_no_imei_response Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9577 Change subject: sgsn: add TC_attach_no_imei_response ...................................................................... sgsn: add TC_attach_no_imei_response Ignores Identity Request IMEI. MS -> SGSN: Attach Request IMSI MS <- SGSN: Identity Request IMSI (optional) MS -> SGSN: Identity Response IMSI (optional) MS <- SGSN: Identity Request IMEI MS -x SGSN: no response MS <- SGSN: re-send: Identity Request IMEI 4x MS <- SGSN: Attach Reject Change-Id: Ie50c75e62e31e01c5b17969fb067664e44fd68a5 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 45 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/77/9577/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 46b7b74..c1d4cdf 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1367,6 +1367,50 @@ +/* Attempt an attach, but loose the Identification Request (IMEI) */ +private function f_TC_attach_no_imei_response(charstring id) runs on BSSGP_ConnHdlr { + var integer count_req := 0; + var MobileL3_CommonIE_Types.MobileIdentityLV mi; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + /* break */ + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { + mi := valueof(ts_MI_IMSI_LV(g_pars.imsi)); + BSSGP.send(ts_GMM_ID_RESP(mi)); + repeat; + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { + /* ignore ID REQ IMEI */ + count_req := count_req + 1; + repeat; + } + } + if (count_req != 5) { + setverdict(fail, "Did not received GMM ID Request Type IMEI 5 times!"); + } + setverdict(pass); +} + +testcase TC_attach_no_imei_response() runs on test_CT { + /* MS -> SGSN: Attach Request IMSI + * MS <- SGSN: Identity Request IMSI (optional) + * MS -> SGSN: Identity Response IMSI (optional) + * MS <- SGSN: Identity Request IMEI + * MS -x SGSN: no response + * MS <- SGSN: re-send: Identity Request IMEI 4x + * MS <- SGSN: Attach Reject + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach_no_imei_response), testcasename(), g_gb[0], 32, 60.0); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1380,6 +1424,7 @@ execute( TC_attach_combined() ); execute( TC_attach_accept_all() ); execute( TC_attach_closed() ); + execute( TC_attach_no_imei_response() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie50c75e62e31e01c5b17969fb067664e44fd68a5 Gerrit-Change-Number: 9577 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:28 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_no_imsi_response Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9578 Change subject: sgsn: add TC_attach_no_imsi_response ...................................................................... sgsn: add TC_attach_no_imsi_response Ignores Identity Request IMSI. MS -> SGSN: Attach Request TMSI (unknown) MS <- SGSN: Identity Request IMEI (optional) MS -> SGSN: Identity Response IMEI (optional) MS <- SGSN: Identity Request IMSI MS -x SGSN: no response MS <- SGSN: re-send: Identity Request IMSI 4x MS <- SGSN: Attach Reject Change-Id: I4f41d59cfe6b0168b5e0874082fd700b56a7f0da --- M sgsn/SGSN_Tests.ttcn 1 file changed, 48 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/9578/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index c1d4cdf..9632718 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1411,6 +1411,53 @@ vc_conn.done; } +/* Attempt an attach, but loose the Identification Request (IMSI) */ +private function f_TC_attach_no_imsi_response(charstring id) runs on BSSGP_ConnHdlr { + var integer count_req := 0; + var MobileL3_CommonIE_Types.MobileIdentityLV mi; + + /* set p_tmsi to use it in Attach Req via f_mi_get_lv() */ + g_pars.p_tmsi := 'c0000035'O; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + /* break */ + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { + /* ignore ID REQ IMSI */ + count_req := count_req + 1; + repeat; + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { + mi := valueof(ts_MI_IMEI_LV(g_pars.imei)); + BSSGP.send(ts_GMM_ID_RESP(mi)); + repeat; + } + } + if (count_req != 5) { + setverdict(fail, "Did not received GMM ID Request Type IMSI 5 times!"); + } + setverdict(pass); +} + +testcase TC_attach_no_imsi_response() runs on test_CT { + /* MS -> SGSN: Attach Request TMSI (unknown) + * MS <- SGSN: Identity Request IMEI (optional) + * MS -> SGSN: Identity Response IMEI (optional) + * MS <- SGSN: Identity Request IMSI + * MS -x SGSN: no response + * MS <- SGSN: re-send: Identity Request IMSI 4x + * MS <- SGSN: Attach Reject + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach_no_imsi_response), testcasename(), g_gb[0], 35, 60.0); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1425,6 +1472,7 @@ execute( TC_attach_accept_all() ); execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); + execute( TC_attach_no_imsi_response() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4f41d59cfe6b0168b5e0874082fd700b56a7f0da Gerrit-Change-Number: 9578 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:28 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_detach_check_subscriber_list Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9579 Change subject: sgsn: add TC_attach_detach_check_subscriber_list ...................................................................... sgsn: add TC_attach_detach_check_subscriber_list MS <-> SGSN: Attach MS -> SGSN: Detach Req (Power off) VTY -> SGSN: Check if MS is NOT in subscriber cache Change-Id: I0956d54760f19ca556fa0d16ea4c5b96ac13f2fa --- M sgsn/SGSN_Tests.ttcn 1 file changed, 20 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/79/9579/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 9632718..802c3e6 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1248,7 +1248,6 @@ vc_conn.done; } - private function f_TC_hlr_location_cancel_request_update(charstring id) runs on BSSGP_ConnHdlr { /* MS: perform regular attach */ f_TC_attach(id); @@ -1365,7 +1364,26 @@ vc_conn.done; } +private function f_TC_attach_detach_check_subscriber_list(charstring id) runs on BSSGP_ConnHdlr { + f_TC_attach(id); + f_detach_mo(c_GMM_DTT_MO_GPRS, true, true); +} +testcase TC_attach_detach_check_subscriber_list() runs on test_CT { + /* MS <-> SGSN: Attach + * MS -> SGSN: Detach Req (Power off) + * VTY -> SGSN: Check if MS is NOT in subscriber cache + */ + var BSSGP_ConnHdlr vc_conn; + var integer id := 33; + var charstring imsi := hex2str(f_gen_imsi(id)); + + f_init(); + vc_conn := f_start_handler(refers(f_TC_attach_detach_check_subscriber_list), testcasename(), g_gb[0], id); + vc_conn.done; + + f_vty_transceive_not_match(SGSNVTY, "show subscriber cache", pattern "* IMSI: {imsi}*"); +} /* Attempt an attach, but loose the Identification Request (IMEI) */ private function f_TC_attach_no_imei_response(charstring id) runs on BSSGP_ConnHdlr { @@ -1473,6 +1491,7 @@ execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); execute( TC_attach_no_imsi_response() ); + execute( TC_attach_detach_check_subscriber_list(), 10.0 ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0956d54760f19ca556fa0d16ea4c5b96ac13f2fa Gerrit-Change-Number: 9579 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:28 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: TC_hlr_location_cancel_request_update: remove superflous Update... Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9580 Change subject: sgsn: TC_hlr_location_cancel_request_update: remove superflous Update Location Response ...................................................................... sgsn: TC_hlr_location_cancel_request_update: remove superflous Update Location Response There shouldn't be any update location pending Change-Id: I94b9307311a8095065212e1820cacc6cd2be0a3a --- M sgsn/SGSN_Tests.ttcn 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/80/9580/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 802c3e6..f812fbe 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1255,7 +1255,6 @@ /* HLR: cancel the location request */ GSUP.send(ts_GSUP_CL_REQ(g_pars.imsi, OSMO_GSUP_CANCEL_TYPE_UPDATE)); GSUP.receive(tr_GSUP_CL_RES(g_pars.imsi)); - GSUP.send(ts_GSUP_UL_RES(g_pars.imsi)); /* ensure no Detach Request got received */ timer T := 5.0; -- To view, visit https://gerrit.osmocom.org/9580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I94b9307311a8095065212e1820cacc6cd2be0a3a Gerrit-Change-Number: 9580 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:29 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_check_subscriber_list Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9581 Change subject: sgsn: add TC_attach_check_subscriber_list ...................................................................... sgsn: add TC_attach_check_subscriber_list MS <-> SGSN: Attach VTY -> SGSN: Check if MS is in subscriber cache Change-Id: If19073ef4a5b1e2219bd5184ae30d55ffb71844a --- M sgsn/SGSN_Tests.ttcn 1 file changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/81/9581/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index f812fbe..4b6fc4c 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1475,6 +1475,27 @@ vc_conn.done; } +private function f_sgsn_vty_destroy_subscriber_imsi(TELNETasp_PT pt, charstring imsi) { + f_vty_transceive(pt, "update-subscriber imsi " & imsi & " destroy"); +} + +testcase TC_attach_check_subscriber_list() runs on test_CT { + /* MS <-> SGSN: Attach + * VTY -> SGSN: Check if MS is in subscriber cache + */ + var BSSGP_ConnHdlr vc_conn; + var integer id := 34; + var charstring imsi := hex2str(f_gen_imsi(id)); + + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach), testcasename(), g_gb[0], id); + vc_conn.done; + + f_vty_transceive_match(SGSNVTY, "show subscriber cache", pattern "* IMSI: {imsi}*"); + f_sgsn_vty_destroy_subscriber_imsi(SGSNVTY, imsi); +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1490,6 +1511,7 @@ execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); execute( TC_attach_no_imsi_response() ); + execute( TC_attach_check_subscriber_list(), 10.0 ); execute( TC_attach_detach_check_subscriber_list(), 10.0 ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If19073ef4a5b1e2219bd5184ae30d55ffb71844a Gerrit-Change-Number: 9581 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:29 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: lib/BSSGP_Emulation: fix removal of items in ClientList Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9582 Change subject: lib/BSSGP_Emulation: fix removal of items in ClientList ...................................................................... lib/BSSGP_Emulation: fix removal of items in ClientList Previous the old entries aren't removed. This only had an impact if two different f_TC_* were using the same imsi. When the second function tried to remove the Client again from the ClientList, the BSSGP_Emulation failed. Change-Id: I71103e8f8c5f18e8ebadc057cd62d85affd7ca8c --- M library/BSSGP_Emulation.ttcn 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/9582/1 diff --git a/library/BSSGP_Emulation.ttcn b/library/BSSGP_Emulation.ttcn index 38666b8..540413c 100644 --- a/library/BSSGP_Emulation.ttcn +++ b/library/BSSGP_Emulation.ttcn @@ -297,12 +297,18 @@ for (i := 0; i < sizeof(ClientTable); i := i+1) { if (isvalue(ClientTable[i].imsi) and ClientTable[i].imsi == imsi) { if (ClientTable[i].comp_ref != vc_conn) { - setverdict(fail, "Cannot unregister IMSI ", imsi, " registred to ", + setverdict(fail, "Cannot unregister index=", i, " IMSI ", imsi, " registred to ", ClientTable[i].comp_ref, " from ", vc_conn); self.stop; } log("Removing Client IMSI=", imsi, ", index=", i); - ClientTable[i] := { -, omit, -, -, - }; + ClientTable[i] := { + tlli := -, + tlli_old := omit, + imsi := ''H, + cell_id := -, + comp_ref := -, + llc := - }; return; } } -- To view, visit https://gerrit.osmocom.org/9582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I71103e8f8c5f18e8ebadc057cd62d85affd7ca8c Gerrit-Change-Number: 9582 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:29 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_closed_add_vty Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9583 Change subject: sgsn: add TC_attach_closed_add_vty ...................................................................... sgsn: add TC_attach_closed_add_vty Check acl policy closed. VTY-> SGSN: policy close MS -> SGSN: Attach Request MS <- SGSN: Identity Request IMSI MS -> SGSN: Identity Response IMSI MS <- SGSN: Attach Reject VTY-> SGSN: policy imsi-acl add IMSI MS -> SGSN: Attach Request MS <- SGSN: Identity Request IMSI MS -> SGSN: Identity Response IMSI MS <- SGSN: Identity Request IMEI MS -> SGSN: Identity Response IMEI MS <- SGSN: Attach Accept Change-Id: I1832c339a9d54c0038433ad44e292031a8905e20 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 55 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/83/9583/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 4b6fc4c..17abb95 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1496,6 +1496,60 @@ f_sgsn_vty_destroy_subscriber_imsi(SGSNVTY, imsi); } +private function f_TC_attach_closed_imsi_added(charstring id) runs on BSSGP_ConnHdlr { + var RoutingAreaIdentificationV old_ra := f_random_RAI(); + var BssgpDecoded bd; + + /* unregister the old IMSI */ + f_bssgp_client_unregister(g_pars.imsi); + /* Simulate a foreign IMSI */ + g_pars.imsi := '001010123456789'H; + f_bssgp_client_register(g_pars.imsi, g_pars.tlli, g_pars.bssgp_cell_id); + + /* there is no auth */ + g_pars.net.expect_auth := false; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + f_gmm_auth(); + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + setverdict(fail, "Received unexpected GMM Attach REJECT"); + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) -> value bd { + f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); + BSSGP.send(ts_GMM_ATTACH_COMPL); + setverdict(pass); + } + } +} +testcase TC_attach_closed_add_vty() runs on test_CT { + /* VTY-> SGSN: policy close + * MS -> SGSN: Attach Request + * MS <- SGSN: Identity Request IMSI + * MS -> SGSN: Identity Response IMSI + * MS <- SGSN: Attach Reject + * VTY-> SGSN: policy imsi-acl add IMSI + * MS -> SGSN: Attach Request + * MS <- SGSN: Identity Request IMSI + * MS -> SGSN: Identity Response IMSI + * MS <- SGSN: Identity Request IMEI + * MS -> SGSN: Identity Response IMEI + * MS <- SGSN: Attach Accept + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + f_vty_config(SGSNVTY, "sgsn", "auth-policy closed"); + f_vty_config(SGSNVTY, "sgsn", "imsi-acl del 001010123456789"); + /* test with foreign IMSI: Must Reject */ + vc_conn := f_start_handler(refers(f_TC_attach_closed_foreign), testcasename(), g_gb[0], 9); + vc_conn.done; + f_vty_config(SGSNVTY, "sgsn", "imsi-acl add 001010123456789"); + /* test with same IMSI: Must Accept */ + vc_conn := f_start_handler(refers(f_TC_attach_closed_imsi_added), testcasename(), g_gb[0], 10); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1511,6 +1565,7 @@ execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); execute( TC_attach_no_imsi_response() ); + execute( TC_attach_closed_add_vty(), 10.0 ); execute( TC_attach_check_subscriber_list(), 10.0 ); execute( TC_attach_detach_check_subscriber_list(), 10.0 ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1832c339a9d54c0038433ad44e292031a8905e20 Gerrit-Change-Number: 9583 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:29 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9584 Change subject: sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept ...................................................................... sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept The test expect a reject. Recv an attach accept should fail then. Change-Id: I8a4ae6aaaa71dabb1d8a2ee7585e624b962a3500 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/84/9584/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 17abb95..466c3ed 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -706,6 +706,9 @@ [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { setverdict(pass); } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { + setverdict(fail); + } } } testcase TC_attach_closed() runs on test_CT { -- To view, visit https://gerrit.osmocom.org/9584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8a4ae6aaaa71dabb1d8a2ee7585e624b962a3500 Gerrit-Change-Number: 9584 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 17:27:30 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 12 Jun 2018 17:27:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_check_complete_resend() Message-ID: lynxis lazus has uploaded this change for review. ( https://gerrit.osmocom.org/9585 Change subject: sgsn: add TC_attach_check_complete_resend() ...................................................................... sgsn: add TC_attach_check_complete_resend() MS -> SGSN: Attach Request IMSI MS <- SGSN: Identity Request * MS -> SGSN: Identity Response * MS <- SGSN: Attach Complete 5x Change-Id: I9bbbda01f3c41a2f8acf13042d6bcc86f18d74ce --- M sgsn/SGSN_Tests.ttcn 1 file changed, 37 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/9585/1 diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 466c3ed..017c724 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1553,6 +1553,42 @@ vc_conn.done; } +/* Attempt an attach, but never answer a Attach Complete */ +private function f_TC_attach_check_complete_resend(charstring id) runs on BSSGP_ConnHdlr { + var integer count_req := 0; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + f_gmm_auth(); + + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + /* break */ + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { + /* ignore */ + count_req := count_req + 1; + repeat; + } + } + if (count_req != 5) { + setverdict(fail, "Did not received GMM Attach Complete."); + } + setverdict(pass); +} + +testcase TC_attach_check_complete_resend() runs on test_CT { + /* MS -> SGSN: Attach Request IMSI + * MS <- SGSN: Identity Request * + * MS -> SGSN: Identity Response * + * MS <- SGSN: Attach Complete 5x + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach_check_complete_resend), testcasename(), g_gb[0], 36, 60.0); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1571,6 +1607,7 @@ execute( TC_attach_closed_add_vty(), 10.0 ); execute( TC_attach_check_subscriber_list(), 10.0 ); execute( TC_attach_detach_check_subscriber_list(), 10.0 ); + execute( TC_attach_check_complete_resend() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9bbbda01f3c41a2f8acf13042d6bcc86f18d74ce Gerrit-Change-Number: 9585 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 12 19:56:22 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 12 Jun 2018 19:56:22 +0000 Subject: Change in osmo-mgw[master]: mgcp-client: add mgcp_conn_get_ci() Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9586 Change subject: mgcp-client: add mgcp_conn_get_ci() ...................................................................... mgcp-client: add mgcp_conn_get_ci() Return the CI string allocated by the MGW and sent back during CRCX ACK. So far the CI that identifies one connection of an MGW endpoint is "hidden" behind mgcp_conn_* API. This CI string is however very interesting, for logging, to be able to correlate with MGCP messages in network traces. For osmo-bsc, there is an upcoming mgw_endpoint_fsm that will log the CI string using this function. Change-Id: I0c802c0cc3fa0aae9558bd7f15aad1cb9a8b12b2 --- M include/osmocom/mgcp_client/mgcp_client_fsm.h M src/libosmo-mgcp-client/mgcp_client_fsm.c 2 files changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/86/9586/1 diff --git a/include/osmocom/mgcp_client/mgcp_client_fsm.h b/include/osmocom/mgcp_client/mgcp_client_fsm.h index 7d06178..93fe582 100644 --- a/include/osmocom/mgcp_client/mgcp_client_fsm.h +++ b/include/osmocom/mgcp_client/mgcp_client_fsm.h @@ -31,3 +31,5 @@ uint32_t parent_evt, struct mgcp_conn_peer *conn_peer); int mgcp_conn_modify(struct osmo_fsm_inst *fi, uint32_t parent_evt, struct mgcp_conn_peer *conn_peer); void mgcp_conn_delete(struct osmo_fsm_inst *fi); + +const char *mgcp_conn_get_ci(struct osmo_fsm_inst *fi); diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 6f84ffa..10a5b6d 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -215,6 +215,14 @@ } } +/* Return the CI that the MGW allocated during CRCX response. This is purely informational for logging + * and identity tracking; the mgcp_conn_*() functions take care of using the right CI internally. */ +const char *mgcp_conn_get_ci(struct osmo_fsm_inst *fi) +{ + struct mgcp_ctx *mgcp_ctx = fi->priv; + return mgcp_ctx->conn_id; +} + static void mgw_crcx_resp_cb(struct mgcp_response *r, void *priv) { struct osmo_fsm_inst *fi = priv; -- To view, visit https://gerrit.osmocom.org/9586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0c802c0cc3fa0aae9558bd7f15aad1cb9a8b12b2 Gerrit-Change-Number: 9586 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 07:31:55 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 13 Jun 2018 07:31:55 +0000 Subject: Change in pysim[master]: pysim-prog: also allow raw hex adm pins besides numeric ascii Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9587 Change subject: pysim-prog: also allow raw hex adm pins besides numeric ascii ...................................................................... pysim-prog: also allow raw hex adm pins besides numeric ascii At the momemnt pysim takes the supplied ADM pin number and interprets it as ascii string. This ascii string (max 8 digitis) is then padded with 0xff bytes if necessary and sent to the card. This limits the range of possible ADM keys and it is not possible to deal with situataions where the ADM pin consists of arbitrary bytes. At the momemnt pysim-prog forbis anything that is longer than 8 digits. Lets also check if there are 16 digits and if yes interpret them as raw bytes. - when the adm pin is 16 digits long, interpret the string as raw bytes (hex). Change-Id: If0ac0d328c64b57bc4d45d985a4a516930053344 Related: SYS#4245 --- M pySim-prog.py 1 file changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/87/9587/1 diff --git a/pySim-prog.py b/pySim-prog.py index 0c9f749..d70eac9 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -361,10 +361,13 @@ opc = ''.join(['%02x' % random.randrange(0,256) for i in range(16)]) if opts.pin_adm is not None: - if len(opts.pin_adm) > 8: - raise ValueError("PIN-ADM needs to be <=8 digits") - pin_adm = ''.join(['%02x'%(ord(x)) for x in opts.pin_adm]) - pin_adm = rpad(pin_adm, 16) + if len(opts.pin_adm) <= 8: + pin_adm = ''.join(['%02x'%(ord(x)) for x in opts.pin_adm]) + pin_adm = rpad(pin_adm, 16) + elif len(opts.pin_adm) == 16: + pin_adm = opts.pin_adm + else: + raise ValueError("PIN-ADM needs to be <=8 digits (ascii) or exactly 16 digits (raw hex)") else: pin_adm = None -- To view, visit https://gerrit.osmocom.org/9587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If0ac0d328c64b57bc4d45d985a4a516930053344 Gerrit-Change-Number: 9587 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:22:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:22:28 +0000 Subject: Change in pysim[master]: pysim-prog: also allow raw hex adm pins besides numeric ascii In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9587 ) Change subject: pysim-prog: also allow raw hex adm pins besides numeric ascii ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If0ac0d328c64b57bc4d45d985a4a516930053344 Gerrit-Change-Number: 9587 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 10:22:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:22:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:22:30 +0000 Subject: Change in pysim[master]: pysim-prog: also allow raw hex adm pins besides numeric ascii In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9587 ) Change subject: pysim-prog: also allow raw hex adm pins besides numeric ascii ...................................................................... pysim-prog: also allow raw hex adm pins besides numeric ascii At the momemnt pysim takes the supplied ADM pin number and interprets it as ascii string. This ascii string (max 8 digitis) is then padded with 0xff bytes if necessary and sent to the card. This limits the range of possible ADM keys and it is not possible to deal with situataions where the ADM pin consists of arbitrary bytes. At the momemnt pysim-prog forbis anything that is longer than 8 digits. Lets also check if there are 16 digits and if yes interpret them as raw bytes. - when the adm pin is 16 digits long, interpret the string as raw bytes (hex). Change-Id: If0ac0d328c64b57bc4d45d985a4a516930053344 Related: SYS#4245 --- M pySim-prog.py 1 file changed, 7 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/pySim-prog.py b/pySim-prog.py index 0c9f749..d70eac9 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -361,10 +361,13 @@ opc = ''.join(['%02x' % random.randrange(0,256) for i in range(16)]) if opts.pin_adm is not None: - if len(opts.pin_adm) > 8: - raise ValueError("PIN-ADM needs to be <=8 digits") - pin_adm = ''.join(['%02x'%(ord(x)) for x in opts.pin_adm]) - pin_adm = rpad(pin_adm, 16) + if len(opts.pin_adm) <= 8: + pin_adm = ''.join(['%02x'%(ord(x)) for x in opts.pin_adm]) + pin_adm = rpad(pin_adm, 16) + elif len(opts.pin_adm) == 16: + pin_adm = opts.pin_adm + else: + raise ValueError("PIN-ADM needs to be <=8 digits (ascii) or exactly 16 digits (raw hex)") else: pin_adm = None -- To view, visit https://gerrit.osmocom.org/9587 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If0ac0d328c64b57bc4d45d985a4a516930053344 Gerrit-Change-Number: 9587 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:23:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:23:22 +0000 Subject: Change in osmo-mgw[master]: mgcp-client: add mgcp_conn_get_ci() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9586 ) Change subject: mgcp-client: add mgcp_conn_get_ci() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0c802c0cc3fa0aae9558bd7f15aad1cb9a8b12b2 Gerrit-Change-Number: 9586 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:23:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:23:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:23:24 +0000 Subject: Change in osmo-mgw[master]: mgcp-client: add mgcp_conn_get_ci() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9586 ) Change subject: mgcp-client: add mgcp_conn_get_ci() ...................................................................... mgcp-client: add mgcp_conn_get_ci() Return the CI string allocated by the MGW and sent back during CRCX ACK. So far the CI that identifies one connection of an MGW endpoint is "hidden" behind mgcp_conn_* API. This CI string is however very interesting, for logging, to be able to correlate with MGCP messages in network traces. For osmo-bsc, there is an upcoming mgw_endpoint_fsm that will log the CI string using this function. Change-Id: I0c802c0cc3fa0aae9558bd7f15aad1cb9a8b12b2 --- M include/osmocom/mgcp_client/mgcp_client_fsm.h M src/libosmo-mgcp-client/mgcp_client_fsm.c 2 files changed, 10 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/mgcp_client/mgcp_client_fsm.h b/include/osmocom/mgcp_client/mgcp_client_fsm.h index 7d06178..93fe582 100644 --- a/include/osmocom/mgcp_client/mgcp_client_fsm.h +++ b/include/osmocom/mgcp_client/mgcp_client_fsm.h @@ -31,3 +31,5 @@ uint32_t parent_evt, struct mgcp_conn_peer *conn_peer); int mgcp_conn_modify(struct osmo_fsm_inst *fi, uint32_t parent_evt, struct mgcp_conn_peer *conn_peer); void mgcp_conn_delete(struct osmo_fsm_inst *fi); + +const char *mgcp_conn_get_ci(struct osmo_fsm_inst *fi); diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 6f84ffa..10a5b6d 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -215,6 +215,14 @@ } } +/* Return the CI that the MGW allocated during CRCX response. This is purely informational for logging + * and identity tracking; the mgcp_conn_*() functions take care of using the right CI internally. */ +const char *mgcp_conn_get_ci(struct osmo_fsm_inst *fi) +{ + struct mgcp_ctx *mgcp_ctx = fi->priv; + return mgcp_ctx->conn_id; +} + static void mgw_crcx_resp_cb(struct mgcp_response *r, void *priv) { struct osmo_fsm_inst *fi = priv; -- To view, visit https://gerrit.osmocom.org/9586 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0c802c0cc3fa0aae9558bd7f15aad1cb9a8b12b2 Gerrit-Change-Number: 9586 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:23:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:23:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: *.default: change logging filemask from ERROR | WARNING to += PARALLE... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9556 ) Change subject: *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0 Gerrit-Change-Number: 9556 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:23:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:24:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:24:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this l... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9557 ) Change subject: Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this library ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia69ab6d5639c2e10059f88c8cc97463820cb72e6 Gerrit-Change-Number: 9557 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:24:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:24:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:24:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9558 ) Change subject: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I489d2a47cd4690dcfc3f1042c332014593d082a2 Gerrit-Change-Number: 9558 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:24:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:24:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:24:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subsc... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9559 ) Change subject: SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update} ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5074dadf53ec75a9c709b28ff324e23fdcd13bfa Gerrit-Change-Number: 9559 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:24:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:25:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:25:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9560 ) Change subject: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04 Gerrit-Change-Number: 9560 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:25:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:25:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:25:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_no_imei_response In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9577 ) Change subject: sgsn: add TC_attach_no_imei_response ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie50c75e62e31e01c5b17969fb067664e44fd68a5 Gerrit-Change-Number: 9577 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:25:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:26:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:26:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_no_imsi_response In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9578 ) Change subject: sgsn: add TC_attach_no_imsi_response ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4f41d59cfe6b0168b5e0874082fd700b56a7f0da Gerrit-Change-Number: 9578 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:26:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:26:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:26:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_detach_check_subscriber_list In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9579 ) Change subject: sgsn: add TC_attach_detach_check_subscriber_list ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0956d54760f19ca556fa0d16ea4c5b96ac13f2fa Gerrit-Change-Number: 9579 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:26:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:26:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:26:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: TC_hlr_location_cancel_request_update: remove superflous Update... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9580 ) Change subject: sgsn: TC_hlr_location_cancel_request_update: remove superflous Update Location Response ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I94b9307311a8095065212e1820cacc6cd2be0a3a Gerrit-Change-Number: 9580 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:26:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:27:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:27:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_check_subscriber_list In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9581 ) Change subject: sgsn: add TC_attach_check_subscriber_list ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If19073ef4a5b1e2219bd5184ae30d55ffb71844a Gerrit-Change-Number: 9581 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:27:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: lib/BSSGP_Emulation: fix removal of items in ClientList In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9582 ) Change subject: lib/BSSGP_Emulation: fix removal of items in ClientList ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/9582/1/library/BSSGP_Emulation.ttcn File library/BSSGP_Emulation.ttcn: https://gerrit.osmocom.org/#/c/9582/1/library/BSSGP_Emulation.ttcn at 310 PS1, Line 310: comp_ref := -, why not "null" as component reference, as we discussed? If you don't set it to null, then f_tbl_idx_by_comp() might still succeed even for a deleted client. -- To view, visit https://gerrit.osmocom.org/9582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I71103e8f8c5f18e8ebadc057cd62d85affd7ca8c Gerrit-Change-Number: 9582 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:28:34 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: *.default: change logging filemask from ERROR | WARNING to += PARALLE... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9556 ) Change subject: *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP ...................................................................... *.default: change logging filemask from ERROR | WARNING to += PARALLEL | VERDICTOP PARALLEL | VERDICTOP will log when the port is dying or when other components will change to fail. This helped to find a timeout in the SGSN tests where a function call message timed out. Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0 --- M bsc/BSC_Tests.default M bts/BTS_Tests.default M msc/MSC_Tests.default M sgsn/SGSN_Tests.default M sip/SIP_Tests.default 5 files changed, 23 insertions(+), 23 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.default b/bsc/BSC_Tests.default index 6ba9ea2..c13f7b0 100644 --- a/bsc/BSC_Tests.default +++ b/bsc/BSC_Tests.default @@ -1,10 +1,10 @@ [LOGGING] BSSAP.FileMask := LOG_NOTHING; -"VirtMSC-M3UA".FileMask := ERROR | WARNING; -"VirtMSC-SCCP".FileMask := ERROR | WARNING; -"VirtMSC-MGCP".FileMask := ERROR | WARNING; -"IPA0-RSL-IPA".FileMask := ERROR | WARNING; -"IPA0-CTRL-IPA".FileMask := ERROR | WARNING; +"VirtMSC-M3UA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"VirtMSC-SCCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"VirtMSC-MGCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA0-RSL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA0-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; [TESTPORT_PARAMETERS] diff --git a/bts/BTS_Tests.default b/bts/BTS_Tests.default index 196d088..502c17f 100644 --- a/bts/BTS_Tests.default +++ b/bts/BTS_Tests.default @@ -1,7 +1,7 @@ [LOGGING] -"BTS-Test-RSL-IPA".FileMask := ERROR | WARNING; -"BTS-Test-RSL".FileMask := ERROR | WARNING; -"IPA0-CTRL-IPA".FileMask := ERROR | WARNING; +"BTS-Test-RSL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"BTS-Test-RSL".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA0-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; mtc.FileMask := LOG_ALL | TTCN_DEBUG | TTCN_MATCHING | DEBUG_ENCDEC; [TESTPORT_PARAMETERS] diff --git a/msc/MSC_Tests.default b/msc/MSC_Tests.default index e8508c2..bcaae06 100644 --- a/msc/MSC_Tests.default +++ b/msc/MSC_Tests.default @@ -2,14 +2,14 @@ FileMask := LOG_ALL | TTCN_MATCHING; BSSAP.FileMask := LOG_NOTHING; -"MSC_Test_0-M3UA".FileMask := ERROR | WARNING; -"MSC_Test_0-SCCP".FileMask := ERROR | WARNING; -"MSC_Test_1-M3UA".FileMask := ERROR | WARNING; -"MSC_Test_1-SCCP".FileMask := ERROR | WARNING; -"MSC_Test-GSUP-IPA".FileMask := ERROR | WARNING; -"MSC_Test-GSUP".FileMask := ERROR | WARNING; -"IPA-CTRL-IPA".FileMask := ERROR | WARNING; -mtc.FileMask := ERROR | WARNING; +"MSC_Test_0-M3UA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test_0-SCCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test_1-M3UA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test_1-SCCP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test-GSUP-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"MSC_Test-GSUP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"IPA-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +mtc.FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; [TESTPORT_PARAMETERS] "MSC_Test-MNCC".MNCC.socket_type := "SEQPACKET"; diff --git a/sgsn/SGSN_Tests.default b/sgsn/SGSN_Tests.default index 67a8032..bac5fdd 100644 --- a/sgsn/SGSN_Tests.default +++ b/sgsn/SGSN_Tests.default @@ -1,11 +1,11 @@ [LOGGING] FileMask := LOG_ALL | TTCN_MATCHING; -"IPA-CTRL-IPA".FileMask := ERROR | WARNING; -"SGSN_Test-GSUP-IPA".FileMask := ERROR | WARNING; -"SGSN_Test-Gb0-NS".FileMask := ERROR | WARNING; -"SGSN_Test-Gb0-BSSGP".FileMask := ERROR | WARNING; -"SGSN_Test-GSUP".FileMask := ERROR | WARNING; +"IPA-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-GSUP-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-Gb0-NS".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-Gb0-BSSGP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +"SGSN_Test-GSUP".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; [TESTPORT_PARAMETERS] *.SGSNVTY.CTRL_MODE := "client" diff --git a/sip/SIP_Tests.default b/sip/SIP_Tests.default index 5f7de90..2576b33 100644 --- a/sip/SIP_Tests.default +++ b/sip/SIP_Tests.default @@ -1,8 +1,8 @@ [LOGGING] FileMask := LOG_ALL | TTCN_MATCHING; -"IPA-CTRL-IPA".FileMask := ERROR | WARNING; -mtc.FileMask := ERROR | WARNING; +"IPA-CTRL-IPA".FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; +mtc.FileMask := ERROR | WARNING | PARALLEL | VERDICTOP; [TESTPORT_PARAMETERS] "SIP_Test-MNCC".MNCC.socket_type := "SEQPACKET"; -- To view, visit https://gerrit.osmocom.org/9556 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I770ac964dc37e2752e7d35e493f707b091c739b0 Gerrit-Change-Number: 9556 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this l... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9557 ) Change subject: Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this library ...................................................................... Osmocom_VTY_Functions: move f_vty_transceive_match from HLR to this library f_vty_transceive_match will be used by future SGSN tests. Change-Id: Ia69ab6d5639c2e10059f88c8cc97463820cb72e6 --- M hlr/HLR_Tests.ttcn M library/Osmocom_VTY_Functions.ttcn 2 files changed, 8 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index 90a00bf..b4cf195 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -172,14 +172,6 @@ f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); } -function f_vty_transceive_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { - var charstring ret := f_vty_transceive_ret(pt, cmd); - if (not match(ret, exp_ret)) { - setverdict(fail, "Non-matching VTY response: ", ret); - self.stop; - } -} - private template (value) charstring t_subscr_prefix(hexstring imsi) := "subscriber imsi " & hex2str(imsi) & " "; diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index 2b74694..f118865 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -128,5 +128,13 @@ f_vty_config2(pt, {config_node}, cmd); } +function f_vty_transceive_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { + var charstring ret := f_vty_transceive_ret(pt, cmd); + if (not match(ret, exp_ret)) { + setverdict(fail, "Non-matching VTY response: ", ret); + self.stop; + } +} + } -- To view, visit https://gerrit.osmocom.org/9557 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia69ab6d5639c2e10059f88c8cc97463820cb72e6 Gerrit-Change-Number: 9557 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9558 ) Change subject: Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() ...................................................................... Osmocom_VTY_Functions: introduce f_vty_transceive_not_match() fails when vty response match template. Change-Id: I489d2a47cd4690dcfc3f1042c332014593d082a2 --- M library/Osmocom_VTY_Functions.ttcn 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/Osmocom_VTY_Functions.ttcn b/library/Osmocom_VTY_Functions.ttcn index f118865..c7f4441 100644 --- a/library/Osmocom_VTY_Functions.ttcn +++ b/library/Osmocom_VTY_Functions.ttcn @@ -136,5 +136,13 @@ } } +function f_vty_transceive_not_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { + var charstring ret := f_vty_transceive_ret(pt, cmd); + if (match(ret, exp_ret)) { + setverdict(fail, "Unexpected matching VTY response: ", ret); + self.stop; + } +} + } -- To view, visit https://gerrit.osmocom.org/9558 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I489d2a47cd4690dcfc3f1042c332014593d082a2 Gerrit-Change-Number: 9558 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subsc... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9559 ) Change subject: SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update} ...................................................................... SGSN: fix spaces/tabs in TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update} Fixes: 6c47f294954f ("SGSN: add TC_hlr_location_cancel_request_unknown_subscriber_{withdraw,update}") Change-Id: I5074dadf53ec75a9c709b28ff324e23fdcd13bfa --- M sgsn/SGSN_Tests.ttcn 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index f8ce5e7..04865fd 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1334,7 +1334,7 @@ } private function f_TC_hlr_location_cancel_request_unknown_subscriber_withdraw(charstring id) runs on BSSGP_ConnHdlr { - f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); + f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); } testcase TC_hlr_location_cancel_request_unknown_subscriber_withdraw() runs on test_CT { @@ -1350,7 +1350,7 @@ } private function f_TC_hlr_location_cancel_request_unknown_subscriber_update(charstring id) runs on BSSGP_ConnHdlr { - f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); + f_hlr_location_cancel_request_unknown_subscriber(id, OSMO_GSUP_CANCEL_TYPE_WITHDRAW); } testcase TC_hlr_location_cancel_request_unknown_subscriber_update() runs on test_CT { -- To view, visit https://gerrit.osmocom.org/9559 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5074dadf53ec75a9c709b28ff324e23fdcd13bfa Gerrit-Change-Number: 9559 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9560 ) Change subject: sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short ...................................................................... sgsn: TC_hlr_location_cancel_*: 5 seconds timeout is to short These tests failed on jenkins. Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 04865fd..46b7b74 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1381,9 +1381,9 @@ execute( TC_attach_accept_all() ); execute( TC_attach_closed() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); - execute( TC_hlr_location_cancel_request_withdraw(), 5.0 ); - execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 5.0 ); - execute( TC_hlr_location_cancel_request_unknown_subscriber_update(), 5.0 ); + execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); + execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); + execute( TC_hlr_location_cancel_request_unknown_subscriber_update(), 10.0 ); execute( TC_rau_unknown() ); execute( TC_attach_rau() ); execute( TC_detach_unknown_nopoweroff() ); -- To view, visit https://gerrit.osmocom.org/9560 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I56a62e70763b7c331fc528cd7e4064a5ec9f2a04 Gerrit-Change-Number: 9560 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_no_imei_response In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9577 ) Change subject: sgsn: add TC_attach_no_imei_response ...................................................................... sgsn: add TC_attach_no_imei_response Ignores Identity Request IMEI. MS -> SGSN: Attach Request IMSI MS <- SGSN: Identity Request IMSI (optional) MS -> SGSN: Identity Response IMSI (optional) MS <- SGSN: Identity Request IMEI MS -x SGSN: no response MS <- SGSN: re-send: Identity Request IMEI 4x MS <- SGSN: Attach Reject Change-Id: Ie50c75e62e31e01c5b17969fb067664e44fd68a5 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 45 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 46b7b74..c1d4cdf 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1367,6 +1367,50 @@ +/* Attempt an attach, but loose the Identification Request (IMEI) */ +private function f_TC_attach_no_imei_response(charstring id) runs on BSSGP_ConnHdlr { + var integer count_req := 0; + var MobileL3_CommonIE_Types.MobileIdentityLV mi; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + /* break */ + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { + mi := valueof(ts_MI_IMSI_LV(g_pars.imsi)); + BSSGP.send(ts_GMM_ID_RESP(mi)); + repeat; + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { + /* ignore ID REQ IMEI */ + count_req := count_req + 1; + repeat; + } + } + if (count_req != 5) { + setverdict(fail, "Did not received GMM ID Request Type IMEI 5 times!"); + } + setverdict(pass); +} + +testcase TC_attach_no_imei_response() runs on test_CT { + /* MS -> SGSN: Attach Request IMSI + * MS <- SGSN: Identity Request IMSI (optional) + * MS -> SGSN: Identity Response IMSI (optional) + * MS <- SGSN: Identity Request IMEI + * MS -x SGSN: no response + * MS <- SGSN: re-send: Identity Request IMEI 4x + * MS <- SGSN: Attach Reject + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach_no_imei_response), testcasename(), g_gb[0], 32, 60.0); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1380,6 +1424,7 @@ execute( TC_attach_combined() ); execute( TC_attach_accept_all() ); execute( TC_attach_closed() ); + execute( TC_attach_no_imei_response() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9577 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie50c75e62e31e01c5b17969fb067664e44fd68a5 Gerrit-Change-Number: 9577 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_no_imsi_response In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9578 ) Change subject: sgsn: add TC_attach_no_imsi_response ...................................................................... sgsn: add TC_attach_no_imsi_response Ignores Identity Request IMSI. MS -> SGSN: Attach Request TMSI (unknown) MS <- SGSN: Identity Request IMEI (optional) MS -> SGSN: Identity Response IMEI (optional) MS <- SGSN: Identity Request IMSI MS -x SGSN: no response MS <- SGSN: re-send: Identity Request IMSI 4x MS <- SGSN: Attach Reject Change-Id: I4f41d59cfe6b0168b5e0874082fd700b56a7f0da --- M sgsn/SGSN_Tests.ttcn 1 file changed, 48 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index c1d4cdf..9632718 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1411,6 +1411,53 @@ vc_conn.done; } +/* Attempt an attach, but loose the Identification Request (IMSI) */ +private function f_TC_attach_no_imsi_response(charstring id) runs on BSSGP_ConnHdlr { + var integer count_req := 0; + var MobileL3_CommonIE_Types.MobileIdentityLV mi; + + /* set p_tmsi to use it in Attach Req via f_mi_get_lv() */ + g_pars.p_tmsi := 'c0000035'O; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + /* break */ + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('001'B))) { + /* ignore ID REQ IMSI */ + count_req := count_req + 1; + repeat; + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ID_REQ('010'B))) { + mi := valueof(ts_MI_IMEI_LV(g_pars.imei)); + BSSGP.send(ts_GMM_ID_RESP(mi)); + repeat; + } + } + if (count_req != 5) { + setverdict(fail, "Did not received GMM ID Request Type IMSI 5 times!"); + } + setverdict(pass); +} + +testcase TC_attach_no_imsi_response() runs on test_CT { + /* MS -> SGSN: Attach Request TMSI (unknown) + * MS <- SGSN: Identity Request IMEI (optional) + * MS -> SGSN: Identity Response IMEI (optional) + * MS <- SGSN: Identity Request IMSI + * MS -x SGSN: no response + * MS <- SGSN: re-send: Identity Request IMSI 4x + * MS <- SGSN: Attach Reject + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach_no_imsi_response), testcasename(), g_gb[0], 35, 60.0); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1425,6 +1472,7 @@ execute( TC_attach_accept_all() ); execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); + execute( TC_attach_no_imsi_response() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9578 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4f41d59cfe6b0168b5e0874082fd700b56a7f0da Gerrit-Change-Number: 9578 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_detach_check_subscriber_list In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9579 ) Change subject: sgsn: add TC_attach_detach_check_subscriber_list ...................................................................... sgsn: add TC_attach_detach_check_subscriber_list MS <-> SGSN: Attach MS -> SGSN: Detach Req (Power off) VTY -> SGSN: Check if MS is NOT in subscriber cache Change-Id: I0956d54760f19ca556fa0d16ea4c5b96ac13f2fa --- M sgsn/SGSN_Tests.ttcn 1 file changed, 20 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 9632718..802c3e6 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1248,7 +1248,6 @@ vc_conn.done; } - private function f_TC_hlr_location_cancel_request_update(charstring id) runs on BSSGP_ConnHdlr { /* MS: perform regular attach */ f_TC_attach(id); @@ -1365,7 +1364,26 @@ vc_conn.done; } +private function f_TC_attach_detach_check_subscriber_list(charstring id) runs on BSSGP_ConnHdlr { + f_TC_attach(id); + f_detach_mo(c_GMM_DTT_MO_GPRS, true, true); +} +testcase TC_attach_detach_check_subscriber_list() runs on test_CT { + /* MS <-> SGSN: Attach + * MS -> SGSN: Detach Req (Power off) + * VTY -> SGSN: Check if MS is NOT in subscriber cache + */ + var BSSGP_ConnHdlr vc_conn; + var integer id := 33; + var charstring imsi := hex2str(f_gen_imsi(id)); + + f_init(); + vc_conn := f_start_handler(refers(f_TC_attach_detach_check_subscriber_list), testcasename(), g_gb[0], id); + vc_conn.done; + + f_vty_transceive_not_match(SGSNVTY, "show subscriber cache", pattern "* IMSI: {imsi}*"); +} /* Attempt an attach, but loose the Identification Request (IMEI) */ private function f_TC_attach_no_imei_response(charstring id) runs on BSSGP_ConnHdlr { @@ -1473,6 +1491,7 @@ execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); execute( TC_attach_no_imsi_response() ); + execute( TC_attach_detach_check_subscriber_list(), 10.0 ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9579 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0956d54760f19ca556fa0d16ea4c5b96ac13f2fa Gerrit-Change-Number: 9579 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: TC_hlr_location_cancel_request_update: remove superflous Update... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9580 ) Change subject: sgsn: TC_hlr_location_cancel_request_update: remove superflous Update Location Response ...................................................................... sgsn: TC_hlr_location_cancel_request_update: remove superflous Update Location Response There shouldn't be any update location pending Change-Id: I94b9307311a8095065212e1820cacc6cd2be0a3a --- M sgsn/SGSN_Tests.ttcn 1 file changed, 0 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 802c3e6..f812fbe 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1255,7 +1255,6 @@ /* HLR: cancel the location request */ GSUP.send(ts_GSUP_CL_REQ(g_pars.imsi, OSMO_GSUP_CANCEL_TYPE_UPDATE)); GSUP.receive(tr_GSUP_CL_RES(g_pars.imsi)); - GSUP.send(ts_GSUP_UL_RES(g_pars.imsi)); /* ensure no Detach Request got received */ timer T := 5.0; -- To view, visit https://gerrit.osmocom.org/9580 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I94b9307311a8095065212e1820cacc6cd2be0a3a Gerrit-Change-Number: 9580 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_check_subscriber_list In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9581 ) Change subject: sgsn: add TC_attach_check_subscriber_list ...................................................................... sgsn: add TC_attach_check_subscriber_list MS <-> SGSN: Attach VTY -> SGSN: Check if MS is in subscriber cache Change-Id: If19073ef4a5b1e2219bd5184ae30d55ffb71844a --- M sgsn/SGSN_Tests.ttcn 1 file changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index f812fbe..4b6fc4c 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1475,6 +1475,27 @@ vc_conn.done; } +private function f_sgsn_vty_destroy_subscriber_imsi(TELNETasp_PT pt, charstring imsi) { + f_vty_transceive(pt, "update-subscriber imsi " & imsi & " destroy"); +} + +testcase TC_attach_check_subscriber_list() runs on test_CT { + /* MS <-> SGSN: Attach + * VTY -> SGSN: Check if MS is in subscriber cache + */ + var BSSGP_ConnHdlr vc_conn; + var integer id := 34; + var charstring imsi := hex2str(f_gen_imsi(id)); + + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach), testcasename(), g_gb[0], id); + vc_conn.done; + + f_vty_transceive_match(SGSNVTY, "show subscriber cache", pattern "* IMSI: {imsi}*"); + f_sgsn_vty_destroy_subscriber_imsi(SGSNVTY, imsi); +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1490,6 +1511,7 @@ execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); execute( TC_attach_no_imsi_response() ); + execute( TC_attach_check_subscriber_list(), 10.0 ); execute( TC_attach_detach_check_subscriber_list(), 10.0 ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9581 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If19073ef4a5b1e2219bd5184ae30d55ffb71844a Gerrit-Change-Number: 9581 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:28:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 10:28:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_closed_add_vty In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9583 ) Change subject: sgsn: add TC_attach_closed_add_vty ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1832c339a9d54c0038433ad44e292031a8905e20 Gerrit-Change-Number: 9583 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 10:28:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 10:43:03 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 13 Jun 2018 10:43:03 +0000 Subject: Change in openbsc[master]: chan_alloc: Fix crash when failing to allocate channel Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9596 Change subject: chan_alloc: Fix crash when failing to allocate channel ...................................................................... chan_alloc: Fix crash when failing to allocate channel Fix a really silly bug I introduced recently (same commit in osmo-bsc.git doesn't contain the issue). Fixes: d05d05b2773a1dc96a51104034942d504f2b1166 Related: SYS#4254 Change-Id: I7bac2ce001d4a6dcea2a896af30edf84942b68de --- M openbsc/src/libbsc/chan_alloc.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/96/9596/1 diff --git a/openbsc/src/libbsc/chan_alloc.c b/openbsc/src/libbsc/chan_alloc.c index 97c1902..606dfa7 100644 --- a/openbsc/src/libbsc/chan_alloc.c +++ b/openbsc/src/libbsc/chan_alloc.c @@ -363,7 +363,7 @@ struct challoc_signal_data sig; LOGP(DRLL, LOGL_ERROR, "(bts=%d) Failed to allocate %s channel\n", - gsm_ts_and_pchan_name(bts->nr), gsm_lchant_name(type)); + bts->nr, gsm_lchant_name(type)); sig.bts = bts; sig.type = type; -- To view, visit https://gerrit.osmocom.org/9596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7bac2ce001d4a6dcea2a896af30edf84942b68de Gerrit-Change-Number: 9596 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:04:03 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 13 Jun 2018 11:04:03 +0000 Subject: Change in pysim[master]: __init__: also fetch response bytes for USIMs automatically In-Reply-To: References: Message-ID: dexter has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9575 ) Change subject: __init__: also fetch response bytes for USIMs automatically ...................................................................... __init__: also fetch response bytes for USIMs automatically The method send_apdu() first transmits the APDU in the cards direction. The card may indicate that there is a response available by responding with SW1=9F, where SW2 is the number of bytes. send_apdu() will then craft a get-response APDU to pickup the response bytes. This mechanism works fine for SIM, but USIM uses SW1=61 to indicate the availability of a response, so lets also sense on SW1=61 to support USIMs as well. - Also check on SW1=61 to see if a response is available Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5 Related: SYS#4245 --- M pySim/transport/__init__.py 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/75/9575/2 -- To view, visit https://gerrit.osmocom.org/9575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5 Gerrit-Change-Number: 9575 Gerrit-PatchSet: 2 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:04:04 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 13 Jun 2018 11:04:04 +0000 Subject: Change in pysim[master]: commands: get file/record length from FCP (USIM) Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9597 Change subject: commands: get file/record length from FCP (USIM) ...................................................................... commands: get file/record length from FCP (USIM) Some of the methods SimCardCommands() have ways to determaine length information from the card response. Regular sims use a format where the length field is on a fixed position. USIMs use FCP templates (format control parameters), which is a TLV encodecs string. So lets distingish if we deal with an USIM (We can easily do this by looking at the select control parameters) and extract the length info from the FCP. - If we deal with USIMs, use the FCP to determine length information Change-Id: I068cf8a532e1c79a2d208e9d275c155ddb72713c Related: SYS#4245 --- M pySim/commands.py 1 file changed, 56 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/97/9597/1 diff --git a/pySim/commands.py b/pySim/commands.py index eba915c..9e16b0e 100644 --- a/pySim/commands.py +++ b/pySim/commands.py @@ -23,7 +23,7 @@ # from pySim.utils import rpad, b2h - +from pytlv.TLV import * class SimCardCommands(object): def __init__(self, transport): @@ -31,6 +31,56 @@ self._cla_byte = "a0" self.sel_ctrl = "0000" + # Get file size from FCP + def __get_len_from_tlv(self, fcp): + # see also: ETSI TS 102 221, chapter 11.1.1.3.1 Response for MF, + # DF or ADF + tlvparser = TLV(['82', '83', '84', 'A5', '8a', '8b', '8c', '80', 'ab', 'c6', '81', '88']) + + # pytlv is case sensitive! + fcp = fcp.lower() + + if fcp[0:2] != '62': + raise ValueError('Tag of the FCP template does not match, expected 62 but got %s'%fcp[0:2]) + + # Unfortunately the spec is not very clear if the FCP length is + # coded as one or two byte vale, so we have to try it out by + # checking if the length of the remaining TLV string matches + # what we get in the length field. + # See also ETSI TS 102 221, chapter 11.1.1.3.0 Base coding. + exp_tlv_len = int(fcp[2:4], 16) + if len(fcp[4:])/2 == exp_tlv_len: + skip = 4 + else: + exp_tlv_len = int(fcp[2:6], 16) + if len(fcp[4:])/2 == exp_tlv_len: + skip = 6 + + # Skip FCP tag and length + tlv = fcp[skip:] + tlv_parsed = tlvparser.parse(tlv) + + return int(tlv_parsed['80'], 16) + + # Tell the length of a record by the card response + # USIMs respond with an FCP template, which is different + # from what SIMs responds. See also: + # USIM: ETSI TS 102 221, chapter 11.1.1.3 Response Data + # SIM: GSM 11.11, chapter 9.2.1 SELECT + def __record_len(self, r): + if self.sel_ctrl == "0004": + return self.__get_len_from_tlv(r[-1]) + else: + return int(r[-1][28:30], 16) + + # Tell the length of a binary file. See also comment + # above. + def __len(self, r): + if self.sel_ctrl == "0004": + return self.__get_len_from_tlv(r[-1]) + else: + return int(r[-1][4:8], 16) + def get_atr(self): return self._tp.get_atr() @@ -60,7 +110,7 @@ ef = [ef] r = self.select_file(ef) if length is None: - length = int(r[-1][4:8], 16) - offset + length = self.__len(r) - offset pdu = self.cla_byte + 'b0%04x%02x' % (offset, (min(256, length) & 0xff)) return self._tp.send_apdu(pdu) @@ -75,7 +125,7 @@ if not hasattr(type(ef), '__iter__'): ef = [ef] r = self.select_file(ef) - rec_length = int(r[-1][28:30], 16) + rec_length = self.__record_len(r) pdu = self.cla_byte + 'b2%02x04%02x' % (rec_no, rec_length) return self._tp.send_apdu(pdu) @@ -84,7 +134,7 @@ ef = [ef] r = self.select_file(ef) if not force_len: - rec_length = int(r[-1][28:30], 16) + rec_length = self.__record_len(r) if (len(data)/2 != rec_length): raise ValueError('Invalid data length (expected %d, got %d)' % (rec_length, len(data)/2)) else: @@ -94,11 +144,11 @@ def record_size(self, ef): r = self.select_file(ef) - return int(r[-1][28:30], 16) + return self.__record_len(r) def record_count(self, ef): r = self.select_file(ef) - return int(r[-1][4:8], 16) // int(r[-1][28:30], 16) + return self.__len(r) // self.__record_len(r) def run_gsm(self, rand): if len(rand) != 32: -- To view, visit https://gerrit.osmocom.org/9597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I068cf8a532e1c79a2d208e9d275c155ddb72713c Gerrit-Change-Number: 9597 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:10:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:10:36 +0000 Subject: Change in openbsc[master]: chan_alloc: Fix crash when failing to allocate channel In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9596 ) Change subject: chan_alloc: Fix crash when failing to allocate channel ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7bac2ce001d4a6dcea2a896af30edf84942b68de Gerrit-Change-Number: 9596 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:10:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:10:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:10:39 +0000 Subject: Change in openbsc[master]: chan_alloc: Fix crash when failing to allocate channel In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9596 ) Change subject: chan_alloc: Fix crash when failing to allocate channel ...................................................................... chan_alloc: Fix crash when failing to allocate channel Fix a really silly bug I introduced recently (same commit in osmo-bsc.git doesn't contain the issue). Fixes: d05d05b2773a1dc96a51104034942d504f2b1166 Related: SYS#4254 Change-Id: I7bac2ce001d4a6dcea2a896af30edf84942b68de --- M openbsc/src/libbsc/chan_alloc.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/libbsc/chan_alloc.c b/openbsc/src/libbsc/chan_alloc.c index 97c1902..606dfa7 100644 --- a/openbsc/src/libbsc/chan_alloc.c +++ b/openbsc/src/libbsc/chan_alloc.c @@ -363,7 +363,7 @@ struct challoc_signal_data sig; LOGP(DRLL, LOGL_ERROR, "(bts=%d) Failed to allocate %s channel\n", - gsm_ts_and_pchan_name(bts->nr), gsm_lchant_name(type)); + bts->nr, gsm_lchant_name(type)); sig.bts = bts; sig.type = type; -- To view, visit https://gerrit.osmocom.org/9596 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7bac2ce001d4a6dcea2a896af30edf84942b68de Gerrit-Change-Number: 9596 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:11:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:11:40 +0000 Subject: Change in libosmo-sccp[master]: make it possible to pass parameters to m3ua_example In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9576 ) Change subject: make it possible to pass parameters to m3ua_example ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52243ae926c76020de41c8dfc7263517c7263d7e Gerrit-Change-Number: 9576 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:11:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:11:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:11:42 +0000 Subject: Change in libosmo-sccp[master]: make it possible to pass parameters to m3ua_example In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9576 ) Change subject: make it possible to pass parameters to m3ua_example ...................................................................... make it possible to pass parameters to m3ua_example There are plans to use the m3ua_example tool as an SCCP peer for a TTCN3 test suite. Make it possible to pass paramters to this tool so the user can override hard-coded default values of IP addresses, ports, and point codes. Change-Id: I52243ae926c76020de41c8dfc7263517c7263d7e --- M examples/m3ua_example.c 1 file changed, 131 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/examples/m3ua_example.c b/examples/m3ua_example.c index a9f455c..2a99450 100644 --- a/examples/m3ua_example.c +++ b/examples/m3ua_example.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -23,15 +24,17 @@ static struct osmo_sccp_instance *g_sccp; -static struct osmo_sccp_instance *sua_server_helper(void) +static struct osmo_sccp_instance *sua_server_helper(int local_port, const char *local_address, int local_pc, + int remote_port, const char *remote_address, int remote_pc) { struct osmo_sccp_instance *sccp; - sccp = osmo_sccp_simple_server(NULL, 1, OSMO_SS7_ASP_PROT_M3UA, - -1, "127.0.0.2"); + sccp = osmo_sccp_simple_server(NULL, local_pc, OSMO_SS7_ASP_PROT_M3UA, local_port, local_address); + if (sccp == NULL) + return NULL; - osmo_sccp_simple_server_add_clnt(sccp, OSMO_SS7_ASP_PROT_M3UA, - "23", 23, -1, 0, NULL); + osmo_sccp_simple_server_add_clnt(sccp, OSMO_SS7_ASP_PROT_M3UA, "client", remote_pc, local_port, + remote_port, remote_address); return sccp; } @@ -79,10 +82,118 @@ .version = 0, }; +#define DEFAULT_LOCAL_PC -1 +#define DEFAULT_LOCAL_ADDRESS "127.0.0.2" +#define DEFAULT_LOCAL_PORT M3UA_PORT +#define DEFAULT_REMOTE_PC 23 +#define DEFAULT_REMOTE_ADDRESS "127.0.0.1" +#define DEFAULT_REMOTE_PORT M3UA_PORT + +static void usage(void) { + fprintf(stderr, "m3ua_example [-c] [-l LOCAL_ADDRESS[:LOCAL_PORT]]\n" + " [-r REMOTE_ADDRESS[:REMOTE_PORT]]\n" + " [-L LOCAL_POINT_CODE] [-R REMOTE_POINT_CODE]\n" + "Options:\n" + " -c: Run in client mode (default is server mode)\n" + " -l: local IP address and SCTP port (default is %s:%d)\n" + " -r: remote IP address and SCTP port (default is %s:%d)\n" + " -L: local point code (default is %d)\n" + " -R: remote point code (default is %d)\n", + DEFAULT_LOCAL_ADDRESS, DEFAULT_LOCAL_PORT, + DEFAULT_REMOTE_ADDRESS, DEFAULT_REMOTE_PORT, + DEFAULT_LOCAL_PC, DEFAULT_REMOTE_PC); + exit(1); +} + +static int is_decimal_string(const char *s) +{ + const char *p = s; + + if (*p == '\0') + return 0; + + while (*p) { + if (!isdigit(*p++)) + return 0; + } + return 1; +} + +static int parse_address_port(char **address, int *port, const char *arg) +{ + char *s, *colon; + + s = strdup(arg); + OSMO_ASSERT(s); + + colon = strrchr(s, ':'); + if (colon) { + char *portstr = colon + 1; + *colon = '\0'; + if (*portstr == '\0') { + fprintf(stderr, "missing port number after : in '%s'\n", arg); + free(s); + return 1; + } + if (!is_decimal_string(portstr)) { + fprintf(stderr, "invalid port number: '%s'\n", portstr); + free(s); + return 1; + } + *port = atoi(portstr); + } + + *address = s; + return 0; +} + int main(int argc, char **argv) { - bool client; - int rc; + bool client = false; + int rc, ch; + char *local_address = DEFAULT_LOCAL_ADDRESS; + int local_port = DEFAULT_LOCAL_PORT; + int local_pc = DEFAULT_LOCAL_PC; + char *remote_address = DEFAULT_REMOTE_ADDRESS; + int remote_port = DEFAULT_LOCAL_PORT; + int remote_pc = DEFAULT_REMOTE_PC; + + while ((ch = getopt(argc, argv, "cl:r:p:L:R:")) != -1) { + switch (ch) { + case 'c': + client = true; + break; + case 'l': + if (parse_address_port(&local_address, &local_port, optarg)) + exit(1); + break; + case 'r': + if (parse_address_port(&remote_address, &remote_port, optarg)) + exit(1); + break; + case 'L': + if (!is_decimal_string(optarg)) { + fprintf(stderr, "invalid decimal point code: '%s'\n", optarg); + exit(1); + } + local_pc = atoi(optarg); + break; + case 'R': + if (!is_decimal_string(optarg)) { + fprintf(stderr, "invalid decimal point code: '%s'\n", optarg); + exit(1); + } + remote_pc = atoi(optarg); + break; + default: + usage(); + } + } + argc -= optind; + argv += optind; + + if (argc != 0) + usage(); talloc_enable_leak_report_full(); @@ -96,23 +207,27 @@ osmo_ss7_vty_init_asp(NULL); osmo_sccp_vty_init(); - if (argc <= 1) - client = true; - else - client = false; - rc = telnet_init_dynif(NULL, NULL, vty_get_bind_addr(), 2324+client); if (rc < 0) { - perror("Erro binding VTY port\n"); + perror("Error binding VTY port"); exit(1); } - if (client) { - g_sccp = osmo_sccp_simple_client(NULL, "client", 23, OSMO_SS7_ASP_PROT_M3UA, 0, NULL, M3UA_PORT, "127.0.0.2"); + g_sccp = osmo_sccp_simple_client(NULL, "client", local_pc, OSMO_SS7_ASP_PROT_M3UA, + local_port, local_address, remote_port, remote_address); + if (g_sccp == NULL) { + perror("Could not create SCCP client"); + exit (1); + } sccp_test_user_vty_install(g_sccp, OSMO_SCCP_SSN_BSSAP); } else { - g_sccp = sua_server_helper(); + g_sccp = sua_server_helper(local_port, local_address, local_pc, + remote_port, remote_address, remote_pc); + if (g_sccp == NULL) { + perror("Could not create SCCP server"); + exit(1); + } sccp_test_server_init(g_sccp); } -- To view, visit https://gerrit.osmocom.org/9576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I52243ae926c76020de41c8dfc7263517c7263d7e Gerrit-Change-Number: 9576 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:11:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:11:58 +0000 Subject: Change in osmo-ci[master]: ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9568 ) Change subject: ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia39284acce65c5779b71154662f3f55349a86960 Gerrit-Change-Number: 9568 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:11:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:03 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-workstation: clone ttcn-3 deps In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9569 ) Change subject: ansible: osmocom-workstation: clone ttcn-3 deps ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib0169c858c3c0610e49d01f1dafee5c725ddc7df Gerrit-Change-Number: 9569 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:12:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:07 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-workstation: Add user to 'docker' group In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9570 ) Change subject: ansible: osmocom-workstation: Add user to 'docker' group ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I43169dfb39525ffe16a3ed1cbf5360b47f9f8a00 Gerrit-Change-Number: 9570 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:12:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:11 +0000 Subject: Change in osmo-ci[master]: osmocom-workstatin: change default user to osmocom In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9573 ) Change subject: osmocom-workstatin: change default user to osmocom ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I35da5f2276730c7f81d5a1c2e6878ea3e23bca3b Gerrit-Change-Number: 9573 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:12:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:17 +0000 Subject: Change in osmo-ci[master]: ansible: Add various additional packages to osmocom-workstation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9574 ) Change subject: ansible: Add various additional packages to osmocom-workstation ...................................................................... Patch Set 3: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 Gerrit-Change-Number: 9574 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:12:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:18 +0000 Subject: Change in osmo-ci[master]: ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9568 ) Change subject: ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 ...................................................................... ansible: Use SDK/toolchain for 2.3.4, not 2.3.2 Change-Id: Ia39284acce65c5779b71154662f3f55349a86960 --- M ansible/roles/install-poky-sdk/defaults/main.yml 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/roles/install-poky-sdk/defaults/main.yml b/ansible/roles/install-poky-sdk/defaults/main.yml index 976a03f..9b8eb04 100644 --- a/ansible/roles/install-poky-sdk/defaults/main.yml +++ b/ansible/roles/install-poky-sdk/defaults/main.yml @@ -2,6 +2,6 @@ # OS user jenkins_user: jenkins -poky_installer_file: poky-glibc-x86_64-meta-toolchain-osmo-armv5te-toolchain-osmo-2.3.2.sh -poky_version: 2.3.2 +poky_installer_file: poky-glibc-x86_64-meta-toolchain-osmo-armv5te-toolchain-osmo-2.3.4.sh +poky_version: 2.3.4 -- To view, visit https://gerrit.osmocom.org/9568 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia39284acce65c5779b71154662f3f55349a86960 Gerrit-Change-Number: 9568 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:18 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-workstation: clone ttcn-3 deps In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9569 ) Change subject: ansible: osmocom-workstation: clone ttcn-3 deps ...................................................................... ansible: osmocom-workstation: clone ttcn-3 deps Change-Id: Ib0169c858c3c0610e49d01f1dafee5c725ddc7df --- M ansible/roles/osmocom-workstation/tasks/git-repos.yml 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/roles/osmocom-workstation/tasks/git-repos.yml b/ansible/roles/osmocom-workstation/tasks/git-repos.yml index 624162c..79f7f31 100644 --- a/ansible/roles/osmocom-workstation/tasks/git-repos.yml +++ b/ansible/roles/osmocom-workstation/tasks/git-repos.yml @@ -98,6 +98,10 @@ - osmo-tcap-map - osmo-tetra +- name: install TTCN3 dependency git repos + command: make deps + args: + chdir: "{{ git_destination }}/osmo-ttcn3-hacks" - name: install sysmocom git repos git: repo=git://git.sysmocom.de/{{ item }}.git -- To view, visit https://gerrit.osmocom.org/9569 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib0169c858c3c0610e49d01f1dafee5c725ddc7df Gerrit-Change-Number: 9569 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:18 +0000 Subject: Change in osmo-ci[master]: ansible: osmocom-workstation: Add user to 'docker' group In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9570 ) Change subject: ansible: osmocom-workstation: Add user to 'docker' group ...................................................................... ansible: osmocom-workstation: Add user to 'docker' group Change-Id: I43169dfb39525ffe16a3ed1cbf5360b47f9f8a00 --- M ansible/roles/osmocom-workstation/tasks/main.yml 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/roles/osmocom-workstation/tasks/main.yml b/ansible/roles/osmocom-workstation/tasks/main.yml index 42d213f..966d861 100644 --- a/ansible/roles/osmocom-workstation/tasks/main.yml +++ b/ansible/roles/osmocom-workstation/tasks/main.yml @@ -7,6 +7,7 @@ ssh_key_bits: 4096 ssh_key_type: rsa shell: /usr/bin/zsh + groups: docker - name: include git repos include: git-repos.yml -- To view, visit https://gerrit.osmocom.org/9570 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I43169dfb39525ffe16a3ed1cbf5360b47f9f8a00 Gerrit-Change-Number: 9570 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:19 +0000 Subject: Change in osmo-ci[master]: osmocom-workstatin: change default user to osmocom In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9573 ) Change subject: osmocom-workstatin: change default user to osmocom ...................................................................... osmocom-workstatin: change default user to osmocom Change-Id: I35da5f2276730c7f81d5a1c2e6878ea3e23bca3b --- M ansible/roles/osmocom-workstation/defaults/main.yml M ansible/setup-desktop.yml 2 files changed, 1 insertion(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/roles/osmocom-workstation/defaults/main.yml b/ansible/roles/osmocom-workstation/defaults/main.yml index 4a2b6d7..bb3d292 100644 --- a/ansible/roles/osmocom-workstation/defaults/main.yml +++ b/ansible/roles/osmocom-workstation/defaults/main.yml @@ -1,4 +1,4 @@ --- -osmocom_user: laforge +osmocom_user: osmocom git_destination: "/home/{{ osmocom_user}}/projects/git" diff --git a/ansible/setup-desktop.yml b/ansible/setup-desktop.yml index 303a610..507a8f2 100644 --- a/ansible/setup-desktop.yml +++ b/ansible/setup-desktop.yml @@ -19,4 +19,3 @@ - jenkins-slave - name: osmocom-workstation - osmocom_user: laforge -- To view, visit https://gerrit.osmocom.org/9573 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I35da5f2276730c7f81d5a1c2e6878ea3e23bca3b Gerrit-Change-Number: 9573 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:19 +0000 Subject: Change in osmo-ci[master]: ansible: Add various additional packages to osmocom-workstation In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9574 ) Change subject: ansible: Add various additional packages to osmocom-workstation ...................................................................... ansible: Add various additional packages to osmocom-workstation Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 --- M ansible/roles/osmocom-workstation/tasks/main.yml 1 file changed, 16 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ansible/roles/osmocom-workstation/tasks/main.yml b/ansible/roles/osmocom-workstation/tasks/main.yml index 966d861..d68f956 100644 --- a/ansible/roles/osmocom-workstation/tasks/main.yml +++ b/ansible/roles/osmocom-workstation/tasks/main.yml @@ -30,4 +30,19 @@ - gnupg - openssh-client - openssh-server - + - console-common + - console-data + - meld + - emacs + - gitk + - okular + - libreoffice-calc + - libreoffice-draw + - libreoffice-impress + - libreoffice-writer + - gnumeric + - openvpn + - fvwm + - xfce4 + - network-manager + - modemmanager -- To view, visit https://gerrit.osmocom.org/9574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9d22cd6e4d3a3c8c685362bb62cd2a6ef467c461 Gerrit-Change-Number: 9574 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9584 ) Change subject: sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8a4ae6aaaa71dabb1d8a2ee7585e624b962a3500 Gerrit-Change-Number: 9584 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:12:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:12:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:12:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_check_complete_resend() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9585 ) Change subject: sgsn: add TC_attach_check_complete_resend() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9bbbda01f3c41a2f8acf13042d6bcc86f18d74ce Gerrit-Change-Number: 9585 Gerrit-PatchSet: 1 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:12:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:14:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:14:45 +0000 Subject: Change in pysim[master]: commands: get file/record length from FCP (USIM) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9597 ) Change subject: commands: get file/record length from FCP (USIM) ...................................................................... Patch Set 1: Code-Review+1 looks fine to me, but I guess if we make changes like this we really should get a regression testing setup going (a couple of card readers with different SIM cards inside) -- To view, visit https://gerrit.osmocom.org/9597 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I068cf8a532e1c79a2d208e9d275c155ddb72713c Gerrit-Change-Number: 9597 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:14:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:15:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:15:16 +0000 Subject: Change in pysim[master]: __init__: also fetch response bytes for USIMs automatically In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9575 ) Change subject: __init__: also fetch response bytes for USIMs automatically ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ied7fb78873a7c4109de471c7a5e9c3701ba0c7d5 Gerrit-Change-Number: 9575 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:15:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:15:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:15:58 +0000 Subject: Change in osmocom-bb[master]: osmocon: Call osmo_init_ignore_signals at startup In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9562 ) Change subject: osmocon: Call osmo_init_ignore_signals at startup ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 Gerrit-Change-Number: 9562 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 13 Jun 2018 11:15:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:16:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:16:14 +0000 Subject: Change in osmocom-bb[master]: osmoload: Remove duplicate const keyword In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9563 ) Change subject: osmoload: Remove duplicate const keyword ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibafa439c9d7f7aab6d417eca5ff045766ac27b4f Gerrit-Change-Number: 9563 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:16:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:16:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:16:20 +0000 Subject: Change in osmocom-bb[master]: osmocon: Fix printf format In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9564 ) Change subject: osmocon: Fix printf format ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e9e10e756d8a612425ee71f4ac0139b2293d3bb Gerrit-Change-Number: 9564 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:16:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:16:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:16:57 +0000 Subject: Change in osmocom-bb[master]: osmocon: Remove unused variables In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9565 ) Change subject: osmocon: Remove unused variables ...................................................................... Patch Set 1: Code-Review-1 this is a documentation of the commands of the proprietary romloader. We don't want to loose that information. -- To view, visit https://gerrit.osmocom.org/9565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 Gerrit-Change-Number: 9565 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:16:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:17:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:17:10 +0000 Subject: Change in osmocom-bb[master]: osmoload: Remove unused function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9566 ) Change subject: osmoload: Remove unused function ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/9566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 Gerrit-Change-Number: 9566 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:17:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:17:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:17:13 +0000 Subject: Change in osmocom-bb[master]: osmocon: Call osmo_init_ignore_signals at startup In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9562 ) Change subject: osmocon: Call osmo_init_ignore_signals at startup ...................................................................... osmocon: Call osmo_init_ignore_signals at startup It disables undesirable signals such as SIGPIPE, which exits the program if the client connected to osmocon closes the connection and osmocon writes to the connection fd. After SIGPIPE is disabled, write returns -EPIPE. This is required to keep osmocon running for BTS_Tests.ttcn TTCN3 tests. Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 --- M src/host/osmocon/osmocon.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/host/osmocon/osmocon.c b/src/host/osmocon/osmocon.c index 76f6037..be6e244 100644 --- a/src/host/osmocon/osmocon.c +++ b/src/host/osmocon/osmocon.c @@ -44,6 +44,7 @@ #include #include #include +#include #include @@ -1423,6 +1424,8 @@ dnload.beacon_interval = DEFAULT_BEACON_INTERVAL; dnload.do_chainload = 0; + osmo_init_ignore_signals(); + while ((opt = getopt(argc, argv, "d:hl:p:m:cs:i:v")) != -1) { switch (opt) { case 'p': -- To view, visit https://gerrit.osmocom.org/9562 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id664ca0fadd3a8b3cf4b78bb868b3d78d2354544 Gerrit-Change-Number: 9562 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:17:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:17:13 +0000 Subject: Change in osmocom-bb[master]: osmoload: Remove duplicate const keyword In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9563 ) Change subject: osmoload: Remove duplicate const keyword ...................................................................... osmoload: Remove duplicate const keyword Fixes compilation warning: warning: duplicate ?const? declaration specifier [-Wduplicate-decl-specifier] const uint8_t const *endptr = bufptr + len; ^~~~~ Change-Id: Ibafa439c9d7f7aab6d417eca5ff045766ac27b4f --- M src/host/osmocon/osmoload.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/osmocon/osmoload.c b/src/host/osmocon/osmoload.c index e83f98a..8ce755d 100644 --- a/src/host/osmocon/osmoload.c +++ b/src/host/osmocon/osmoload.c @@ -149,7 +149,7 @@ static void osmoload_osmo_hexdump(const uint8_t *data, unsigned int len) { const uint8_t *bufptr = data; - const uint8_t const *endptr = bufptr + len; + const uint8_t *endptr = bufptr + len; int n, m, i, hexchr; for (n=0; n < len; n+=32, bufptr += 32) { -- To view, visit https://gerrit.osmocom.org/9563 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibafa439c9d7f7aab6d417eca5ff045766ac27b4f Gerrit-Change-Number: 9563 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:17:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:17:14 +0000 Subject: Change in osmocom-bb[master]: osmocon: Fix printf format In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9564 ) Change subject: osmocon: Fix printf format ...................................................................... osmocon: Fix printf format Fixes compilation warning: osmocon.c:650:21: warning: format ?%u? expects argument of type ?unsigned int?, but argument 3 has type ?long int? [-Wformat=] printf("%u bytes (%u/%u)\n", rc, dnload.write_ptr - dnload.data, ~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %lu Change-Id: I1e9e10e756d8a612425ee71f4ac0139b2293d3bb --- M src/host/osmocon/osmocon.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/osmocon/osmocon.c b/src/host/osmocon/osmocon.c index be6e244..2e822e8 100644 --- a/src/host/osmocon/osmocon.c +++ b/src/host/osmocon/osmocon.c @@ -647,7 +647,7 @@ dnload.write_ptr += rc; - printf("%u bytes (%u/%u)\n", rc, dnload.write_ptr - dnload.data, + printf("%u bytes (%lu/%u)\n", rc, dnload.write_ptr - dnload.data, dnload.data_len); return 0; -- To view, visit https://gerrit.osmocom.org/9564 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1e9e10e756d8a612425ee71f4ac0139b2293d3bb Gerrit-Change-Number: 9564 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:17:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:17:46 +0000 Subject: Change in osmo-trx[master]: examples: Set rt-prio 18 and print file basename In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9572 ) Change subject: examples: Set rt-prio 18 and print file basename ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I16fbdd46f2d9b6f3e79a4bb357f6a7fbed14244a Gerrit-Change-Number: 9572 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:17:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:17:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:17:49 +0000 Subject: Change in osmo-trx[master]: examples: Set rt-prio 18 and print file basename In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9572 ) Change subject: examples: Set rt-prio 18 and print file basename ...................................................................... examples: Set rt-prio 18 and print file basename Change-Id: I16fbdd46f2d9b6f3e79a4bb357f6a7fbed14244a --- M doc/examples/osmo-trx-limesdr.cfg M doc/examples/osmo-trx-umtrx.cfg M doc/examples/osmo-trx-usrp_b200.cfg 3 files changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/doc/examples/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-limesdr.cfg index c7e6b23..7f622b0 100644 --- a/doc/examples/osmo-trx-limesdr.cfg +++ b/doc/examples/osmo-trx-limesdr.cfg @@ -3,6 +3,7 @@ logging color 1 logging print category 1 logging timestamp 1 + logging print file basename logging level all info ! line vty @@ -15,6 +16,7 @@ egprs disable tx-sps 4 rx-sps 4 + rt-prio 18 chan 0 tx-path BAND1 rx-path LNAW diff --git a/doc/examples/osmo-trx-umtrx.cfg b/doc/examples/osmo-trx-umtrx.cfg index b7a73b0..9c80933 100644 --- a/doc/examples/osmo-trx-umtrx.cfg +++ b/doc/examples/osmo-trx-umtrx.cfg @@ -3,6 +3,7 @@ logging color 1 logging print category 1 logging timestamp 1 + logging print file basename logging level all info ! line vty diff --git a/doc/examples/osmo-trx-usrp_b200.cfg b/doc/examples/osmo-trx-usrp_b200.cfg index 1d6656e..53fa24e 100644 --- a/doc/examples/osmo-trx-usrp_b200.cfg +++ b/doc/examples/osmo-trx-usrp_b200.cfg @@ -3,6 +3,7 @@ logging color 1 logging print category 1 logging timestamp 1 + logging print file basename logging level all info ! line vty @@ -16,5 +17,6 @@ tx-sps 4 rx-sps 4 clock-ref external + rt-prio 18 chan 0 -- To view, visit https://gerrit.osmocom.org/9572 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I16fbdd46f2d9b6f3e79a4bb357f6a7fbed14244a Gerrit-Change-Number: 9572 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:19:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:19:11 +0000 Subject: Change in pysim[master]: __init__: allow wildcards in expected SW for send_apdu_checksw() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9571 ) Change subject: __init__: allow wildcards in expected SW for send_apdu_checksw() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9571/1/pySim/transport/__init__.py File pySim/transport/__init__.py: https://gerrit.osmocom.org/#/c/9571/1/pySim/transport/__init__.py at 81 PS1, Line 81: user may mask out certain digits using a '*' to add some normally a "*" means "absent or any value", whereas a "?" means "present but any value". Not really important, but I think "?" would be better here -- To view, visit https://gerrit.osmocom.org/9571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 Gerrit-Change-Number: 9571 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 13 Jun 2018 11:19:11 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:48:53 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 13 Jun 2018 11:48:53 +0000 Subject: Change in osmocom-bb[master]: osmocon: Set compiler attr to unused variables In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9565 to look at the new patch set (#2). Change subject: osmocon: Set compiler attr to unused variables ...................................................................... osmocon: Set compiler attr to unused variables Variables are not removed as they document the commands of the propietary romloader. Let's mark them as unused to avoid compilation warnings. Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 --- M src/host/osmocon/osmocon.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/65/9565/2 -- To view, visit https://gerrit.osmocom.org/9565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 Gerrit-Change-Number: 9565 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:48:53 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 13 Jun 2018 11:48:53 +0000 Subject: Change in osmocom-bb[master]: osmoload: Set compiler attr to unused function In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9566 to look at the new patch set (#2). Change subject: osmoload: Set compiler attr to unused function ...................................................................... osmoload: Set compiler attr to unused function Function is not removed as documentation of the load process capabilities. Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 --- M src/host/osmocon/osmoload.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/66/9566/2 -- To view, visit https://gerrit.osmocom.org/9566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 Gerrit-Change-Number: 9566 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:51:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:51:37 +0000 Subject: Change in osmocom-bb[master]: osmocon: Set compiler attr to unused variables In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9565 ) Change subject: osmocon: Set compiler attr to unused variables ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 Gerrit-Change-Number: 9565 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:51:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:51:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:51:43 +0000 Subject: Change in osmocom-bb[master]: osmoload: Set compiler attr to unused function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9566 ) Change subject: osmoload: Set compiler attr to unused function ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 Gerrit-Change-Number: 9566 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 11:51:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:51:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:51:44 +0000 Subject: Change in osmocom-bb[master]: osmocon: Set compiler attr to unused variables In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9565 ) Change subject: osmocon: Set compiler attr to unused variables ...................................................................... osmocon: Set compiler attr to unused variables Variables are not removed as they document the commands of the propietary romloader. Let's mark them as unused to avoid compilation warnings. Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 --- M src/host/osmocon/osmocon.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/osmocon/osmocon.c b/src/host/osmocon/osmocon.c index 2e822e8..131eab7 100644 --- a/src/host/osmocon/osmocon.c +++ b/src/host/osmocon/osmocon.c @@ -210,13 +210,13 @@ /* Calypso romloader specific */ static const uint8_t romload_ident_cmd[] = { 0x3c, 0x69 }; /* i */ static const uint8_t romload_param_ack[] = { 0x3e, 0x70 }; /* >p */ -static const uint8_t romload_param_nack[] = { 0x3e, 0x50 }; /* >P */ +static const uint8_t __attribute__((__unused__)) romload_param_nack[] = { 0x3e, 0x50 }; /* >P */ static const uint8_t romload_block_ack[] = { 0x3e, 0x77 }; /* >w */ static const uint8_t romload_block_nack[] = { 0x3e, 0x57 }; /* >W */ static const uint8_t romload_checksum_ack[] = { 0x3e, 0x63 }; /* >c */ -- To view, visit https://gerrit.osmocom.org/9565 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If4c6814ada85956975e687eb43dcfd4ad70b8b94 Gerrit-Change-Number: 9565 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 11:51:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 11:51:45 +0000 Subject: Change in osmocom-bb[master]: osmoload: Set compiler attr to unused function In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9566 ) Change subject: osmoload: Set compiler attr to unused function ...................................................................... osmoload: Set compiler attr to unused function Function is not removed as documentation of the load process capabilities. Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 --- M src/host/osmocon/osmoload.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/osmocon/osmoload.c b/src/host/osmocon/osmoload.c index 8ce755d..1c20382 100644 --- a/src/host/osmocon/osmoload.c +++ b/src/host/osmocon/osmoload.c @@ -551,7 +551,7 @@ osmoload.command = command; } -static void +static void __attribute__((__unused__)) loader_start_flash_query(uint8_t command, uint8_t chip, uint32_t address) { loader_send_flash_query(command, chip, address); osmoload.state = STATE_QUERY_PENDING; -- To view, visit https://gerrit.osmocom.org/9566 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8e838cbb5ae7c9a2f4d0e249fc14f7cbcbc2cb07 Gerrit-Change-Number: 9566 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 12:04:21 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 13 Jun 2018 12:04:21 +0000 Subject: Change in pysim[master]: cards: update smsp with fixed record length In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/9561 ) Change subject: cards: update smsp with fixed record length ...................................................................... Patch Set 1: > > Uploaded patch set 1. > > As far as I can see FairwavesSIM is currently the only card class > that calls the update_smsp() method. However, I would love to use > the method with some other card (USIM). Unfortunately this card > does not give me any details about the record size back. Since the > smsp record that is sent to the card is padded to a fixed size > anyway I think it is ok set the force length too. I found a better way to solve the problem, lets abandon this. -- To view, visit https://gerrit.osmocom.org/9561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iea078f8171b6dbe94bd966807802bc30b5824758 Gerrit-Change-Number: 9561 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: dexter Gerrit-CC: dexter Gerrit-Comment-Date: Wed, 13 Jun 2018 12:04:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 13:43:30 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Wed, 13 Jun 2018 13:43:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: lib/BSSGP_Emulation: fix removal of items in ClientList In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9582 to look at the new patch set (#2). Change subject: lib/BSSGP_Emulation: fix removal of items in ClientList ...................................................................... lib/BSSGP_Emulation: fix removal of items in ClientList Previous the old entries aren't removed. This only had an impact if two different f_TC_* were using the same imsi. When the second function tried to remove the Client again from the ClientList, the BSSGP_Emulation failed. Change-Id: I71103e8f8c5f18e8ebadc057cd62d85affd7ca8c --- M library/BSSGP_Emulation.ttcn 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/9582/2 -- To view, visit https://gerrit.osmocom.org/9582 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I71103e8f8c5f18e8ebadc057cd62d85affd7ca8c Gerrit-Change-Number: 9582 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Jun 13 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 13 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#153?= In-Reply-To: <1566112936.145.1528816206332.JavaMail.jenkins@jenkins.osmocom.org> References: <1566112936.145.1528816206332.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <629611711.168.1528902606381.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.67 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Jun 13 19:03:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 19:03:59 +0000 Subject: Change in osmo-trx[master]: transceiver: RSSI was calculated reverse. Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9598 Change subject: transceiver: RSSI was calculated reverse. ...................................................................... transceiver: RSSI was calculated reverse. Change-Id: Iaa4eda4660dbe155ac1c782b77316ef504ef00c5 --- M Transceiver52M/Transceiver.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/98/9598/1 diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp index a1ebb30..75a8dd8 100644 --- a/Transceiver52M/Transceiver.cpp +++ b/Transceiver52M/Transceiver.cpp @@ -602,7 +602,7 @@ avg = sqrt(avg / radio_burst->chans()); wTime = time; - RSSI = 20.0 * log10(rxFullScale / avg); + RSSI = 20.0 * log10(avg / rxFullScale); /* RSSI estimation are valid */ isRssiValid = true; -- To view, visit https://gerrit.osmocom.org/9598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iaa4eda4660dbe155ac1c782b77316ef504ef00c5 Gerrit-Change-Number: 9598 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Alexander Chemeris -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:29 +0000 Subject: Change in osmo-trx[master]: Initial work towards direct LimeSuite support in OsmoTRX Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9599 Change subject: Initial work towards direct LimeSuite support in OsmoTRX ...................................................................... Initial work towards direct LimeSuite support in OsmoTRX This is work in progress towards a direct LimeSuite driver in OsmoTRX, bypassing the currently rather complex stack of wrappers by going through UHD, SoapyUHD, SoapySDR and LimeSuite. Change-Id: Iaef29c4c2585ef8c2f94866c9591919f538c1a2d --- A Transceiver52M/device/lms/LMSDevice.cpp A Transceiver52M/device/lms/LMSDevice.h 2 files changed, 648 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/99/9599/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp new file mode 100644 index 0000000..ed51cdb --- /dev/null +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -0,0 +1,469 @@ +/* +* Copyright 2018 sysmocom - s.f.m.c. GmbH +* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +#include +#include +#include +#include "Logger.h" +#include "Threads.h" +#include "LMSDevice.h" + +#include + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +using namespace std; + +const double LMSDevice::masterClockRate = 52.0e6; + +LMSDevice::LMSDevice(size_t sps) +{ + LOG(INFO) << "creating LMS device..."; + + m_lms_device = NULL; + this->sps = sps; +} + +static void lms_log_callback(int lvl, const char *msg) +{ + /* map lime specific log levels */ + static const lvl_map[4] = { + [0] = LOGL_FATAL, + [1] = LOGL_ERROR, + [2] = LOGL_NOTICE, + [3] = LOGL_INFO, + [4] = LOGL_DEBUG, + }; + /* protect against future higher log level values (lower importance) */ + if (lvl >= ARRAY_SIZE(lvl_map)) + lvl = ARRAY_SIZE(lvl_map)-1; + + LOG(lvl) << msg; +} + +int LMSDevice::open(const std::string &, int, bool) +{ + lms_info_str dev_str; + uint16_t dac_val; + + LOG(INFO) << "opening LMS device.."; + + LMS_RegisterLogHandler(&lms_log_callback); + + rc = LMS_Open(&m_lms_dev, NULL, NULL); + if (rc != 0) + return -1; + + if (LMS_SetSampleRate(m_lms_dev, GSMRATE, sps) < 0) + goto out_close; + /* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */ + ts_offset = static_caset(8.9e-5 * GSMRATE); + + switch (ref) { + case REF_INTERNAL: + /* Ugly API: Selecting clock source implicit by writing to VCTCXO DAC ?!? */ + if (LMS_VCTCXORead(m_lms_dev, &dac_val) < 0) + goto out_close; + + if (LMS_VCTCXOWrite(m_lms_dev, dac_val) < 0) + goto out_close; + break; + case REF_EXTENAL: + /* Assume an external 10 MHz reference clock */ + if (LMS_SetClockFreq(m_lms_dev, LMS_CLOCK_EXTREF, 10000000.0) < 0) + goto out_close; + break; + default: + LOG(ALERT) << "Invalid reference type"; + goto out_close; + } + + if (LMS_Init(m_lms_dev) < 0) + goto out_close; + + /* Perform Rx and Tx calibration */ + if (LMS_Calibrate(m_lms_dev, LMS_CH_RX, chan, 270000.0, 0) < 0) + goto out_close; + if (LMS_Calibrate(m_lms_dev, LMS_CH_TX, chan, 270000.0, 0) < 0) + goto out_close; + + samplesRead = 0; + samplesWritten = 0; + started = false; + + return NORMAL; + +out_close: + LOG(ALERT) << "Error in LMS open, closing: " << LMS_GetLastErrorMessage(); + LMS_Close(m_lms_dev); + return -1; +} + +bool LMSDevice::start() +{ + LOG(INFO) << "starting LMS..."; + + if (LMS_EnableChannel(m_lms_dev, LMS_CH_RX, 0, true) < 0) + return false; + + if (LMS_EnableChannel(m_lms_dev, LMS_CH_TX, 0, true) < 0) + return false; + + // Set gains to midpoint + setTxGain((minTxGain() + maxTxGain()) / 2); + setRxGain((minRxGain() + maxRxGain()) / 2); + + m_lms_stream_rx = { + .isTx = false, + .channel = 0, + .fifoSize = 1024 * 1024, + .throughputVsLatency = 0.3, + .dataFmt = LMS_FMT_I16, + } + m_lms_stream_tx = { + .ixTx = true, + .channel = 0, + .fifoSize = 1024 * 1024, + .throughputVsLatency = 0.3, + .dataFmt = LMS_FMT_I16, + } + + if (LMS_SetupStream(m_lms_dev, &m_lms_stream_rx) < 0) + return false; + + if (LMS_SetupStream(m_lms_dev, &m_lms_stream_tx) < 0) + return false; + + if (LMS_StartStream(&m_lms_stream_rx) < 0) + return false; + + if (LMS_StartStream(&m_lms_stream_tx) < 0) + return false; + + started = true; + return true; +} + +bool LMSDevice::stop() +{ + if (!started) + return true; + + LMS_StopStream(&m_lms_stream_tx); + LMS_StopStream(&m_lms_stream_rx); + + LMS_EnableChannel(m_lms_dev, LMS_CH_RX, 0, false); + LMS_EnableChannel(m_lms_dev, LMS_CH_TX, 0, false); + + return true; +} + +double LMSDevice::maxTxGain() +{ + return 60.0; +} + +double LMSDevice::minTxGain() +{ + return 0.0; +} + +double LMSDevice::maxRxGain() +{ + return 70.0; +} + +double LMSDevice::minRxGain() +{ + return 0.0; +} + +double LMSDevice::setTxGain(double dB, size_t chan) +{ + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return 0.0; + } + + if (dB > maxTxGain()) + dB = maxTxGain(); + if (dB < minTxGain()) + dB = minTxGain(); + + LOG(NOTICE) << "Setting TX gain to " << dB << " dB."; + + if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) + LOG(ERR) << "Error setting TX gain"; + + return dB; +} + +double LMSDevice::setRxGain(double dB, size_t chan) +{ + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return 0.0; + } + + dB = 47.0; + + if (dB > maxRxGain()) + dB = maxRxGain(); + if (dB < minRxGain()) + dB = minRxGain(); + + LOG(NOTICE) << "Setting RX gain to " << dB << " dB."; + + if (LMS_SetGaindB(m_lms_dev, LMS_CH_RX, chan, dB) < 0) + LOG(ERR) << "Error setting RX gain"; + + return dB; +} + +int get_ant_idx(const char *name, bool dir_tx) +{ + lms_name_t name_list; + int num_names; + num_names = LMS_GetAntennaList(m_lms_dev, dir_tx, &name_list); + for (i = 0; i < num_names; i++) { + if (!strcmp(name, name_list[i])) + return i; + } + return -1; +} + +bool LMSDevice::setRxAntenna(const std::string & ant, size_t chan) +{ + int idx; + + if (chan >= rx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return false; + } + + idx = get_ant_idx(ant, LMS_CH_RX); + if (idx < 0) { + LOG(ALERT) << "Invalid Rx Antenna"; + return false; + } + + if (LMS_SetAntenna(m_lms_dev, LMS_CH_RX, chan, idx) < 0) { + LOG(ALERT) << "Unable to set Rx Antenna"; + } + + return true; +} + +std::string LMSDevice::getRxAntenna(size_t chan) +{ + if (chan >= rx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return ""; + } + + idx = LMS_GetAntenna(m_lms_dev, LMS_CH_RX, chan); + if (idx < 0) { + LOG(ALERT) << "Error getting Rx Antenna"; + return ""; + } + + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, &list) < idx) { + LOG(ALERT) << "Error getting Rx Antenna List"; + return ""; + } + + return list[idx]; +} + +bool LMSDevice::setTxAntenna(const std::string & ant, size_t chan) +{ + int idx; + + if (chan >= tx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return false; + } + + idx = get_ant_idx(ant, LMS_CH_TX); + if (idx < 0) { + LOG(ALERT) << "Invalid Rx Antenna"; + return false; + } + + if (LMS_SetAntenna(m_lms_dev, LMS_CH_TX, chan, idx) < 0) { + LOG(ALERT) << "Unable to set Rx Antenna"; + } + + return true; +} + +std::string LMSDevice::getTxAntenna(size_t chan) +{ + int idx; + + if (chan >= tx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return ""; + } + + idx = LMS_GetAntenna(m_lms_dev, LMS_CH_TX, chan); + if (idx < 0) { + LOG(ALERT) << "Error getting Tx Antenna"; + return ""; + } + + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, &list) < idx) { + LOG(ALERT) << "Error getting Tx Antenna List"; + return ""; + } + + return list[idx]; +} + +// NOTE: Assumes sequential reads +int LMSDevice::readSamples(std::vector < short *>&bufs, int len, bool * overrun, + TIMESTAMP timestamp, bool * underrun, unsigned *RSSI) +{ + lms_stream_meta_t rx_metadata = { + .flushPartialPacket = false, + .waitForTimestamp = false, + }; + int rc; + + if (bufs.size != 1) { + LOG(ALERT) << "Invalid channel combination " << bufs.size(); + return -1; + } + + /* Shift read time with respect to transmit clock */ + timestamp += ts_offset; + + rc = LMS_RecvStream(&m_lms_stream_rx, bufs[0], len, &rx_metadata, 100); + + *overrun = false; + *underrun = false; + + if (LMS_GetStreamStatus(&m_lms_stream_rx, &status) == 0) { + if (status.underrun > m_last_rx_underruns) + *underrun = true; + m_last_rx_underruns = status.underrun; + + if (status.overrun > m_last_rx_overruns) + *overrun = true; + m_last_rx_overruns = status.overrun; + } + + samplesRead += rc; + + return rc; +} + +int LMSDevice::writeSamples(std::vector < short *>&bufs, int len, + bool * underrun, unsigned long long timestamp, + bool isControl) +{ + lms_stream_status_t status; + lms_stream_meta_t tx_metadata = { + .flushPartialPacket = false, + .waitForTimestamp = true, + .timestamp = timestamp, + }; + int rc; + + if (isControl) { + LOG(ERR) << "Control packets not supported"; + return 0; + } + + if (bufs.size() != 1) { + LOG(ALERT) << "Invalid channel combination " << bufs.size(); + return -1; + } + + rc = LMS_Send_Stream(&m_lms_stream_tx, bufs[0], len, &tx_metadata, 100); + if (rc != len) { + LOG(ALERT) << "LMS: Device send timed out "; + } + + *underrun = false; + + if (LMS_GetStreamStatus(&m_lms_stream_tx, &status) == 0) { + if (status.underrun > m_last_tx_underruns) + *underrun = true; + m_last_tx_underruns = status.underrun; + } + + samplesWritten += rc; + + return rc; +} + +bool LMSDevice::updateAlignment(TIMESTAMP timestamp) +{ + short data[] = { 0x00, 0x02, 0x00, 0x00 }; + uint32_t *wordPtr = (uint32_t *) data; + *wordPtr = host_to_usrp_u32(*wordPtr); + bool tmpUnderrun; + + std::vector < short *>buf(1, data); + if (writeSamples(buf, 1, &tmpUnderrun, timestamp & 0x0ffffffffll, true)) { + pingTimestamp = timestamp; + return true; + } + return false; +} + +bool LMSDevice::setTxFreq(double wFreq, size_t chan) +{ + + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return false; + } + + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_TX, chan, wFreq) < 0) { + LOG(ALERT) << "set Tx: " << wFreq << " failed!"; + return false; + } + + return true; +} + +bool LMSDevice::setRxFreq(double wFreq, size_t chan) +{ + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return false; + } + + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_RX, chan, wFreq) < 0) { + LOG(ALERT) << "set Rx: " << wFreq << " failed!"; + return false; + } + + return true; +} + +RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, + InterfaceType iface, size_t chans, double offset, + const std::vector < std::string > &tx_paths, + const std::vector < std::string > &rx_paths) +{ + return new LMSDevice(tx_sps); +} diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h new file mode 100644 index 0000000..653d159 --- /dev/null +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -0,0 +1,179 @@ +/* +* Copyright 2018 sysmocom - s.f.m.c. GmbH +* +* This software is distributed under multiple licenses; see the COPYING file in the main directory for licensing information for this specific distribuion. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + 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. + +*/ + +#ifndef _LMS_DEVICE_H_ +#define _LMS_DEVICE_H_ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "radioDevice.h" + +#include +#include +#include +#include +#include + +/** A class to handle a LimeSuite supported device */ +class LMSDevice:public RadioDevice { + +private: + + lms_device_t *m_lms_dev; + lms_stream_t m_lms_Stream_rx; + lms_stream_t m_lms_Stream_tx; + + int sps; + + unsigned long long samplesRead; ///< number of samples read from LMS + unsigned long long samplesWritten; ///< number of samples sent to LMS + + bool started; ///< flag indicates LMS has started + bool skipRx; ///< set if LMS is transmit-only. + + TIMESTAMP ts_offset; + +public: + + /** Object constructor */ + LMSDevice(size_t sps); + + /** Instantiate the LMS */ + int open(const std::string &, int, bool); + + /** Start the LMS */ + bool start(); + + /** Stop the LMS */ + bool stop(); + + /** Set priority not supported */ + void setPriority(float prio = 0.5) { + } enum TxWindowType getWindowType() { + return TX_WINDOW_LMS1; + } + + /** + Read samples from the LMS. + @param buf preallocated buf to contain read result + @param len number of samples desired + @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough + @param timestamp The timestamp of the first samples to be read + @param underrun Set if LMS does not have data to transmit, e.g. data not being sent fast enough + @param RSSI The received signal strength of the read result + @return The number of samples actually read + */ + int readSamples(std::vector < short *>&buf, int len, bool * overrun, + TIMESTAMP timestamp = 0xffffffff, bool * underrun = + NULL, unsigned *RSSI = NULL); + /** + Write samples to the LMS. + @param buf Contains the data to be written. + @param len number of samples to write. + @param underrun Set if LMS does not have data to transmit, e.g. data not being sent fast enough + @param timestamp The timestamp of the first sample of the data buffer. + @param isControl Set if data is a control packet, e.g. a ping command + @return The number of samples actually written + */ + int writeSamples(std::vector < short *>&bufs, int len, bool * underrun, + TIMESTAMP timestamp = 0xffffffff, bool isControl = + false); + + /** Update the alignment between the read and write timestamps */ + bool updateAlignment(TIMESTAMP timestamp); + + /** Set the transmitter frequency */ + bool setTxFreq(double wFreq, size_t chan = 0); + + /** Set the receiver frequency */ + bool setRxFreq(double wFreq, size_t chan = 0); + + /** Returns the starting write Timestamp*/ + TIMESTAMP initialWriteTimestamp(void) { + return 20000; + } + + /** Returns the starting read Timestamp*/ + TIMESTAMP initialReadTimestamp(void) { + return 20000; + } + + /** returns the full-scale transmit amplitude **/ + double fullScaleInputValue() { + return 13500.0; + } + + /** returns the full-scale receive amplitude **/ + double fullScaleOutputValue() { + return 9450.0; + } + + /** sets the receive chan gain, returns the gain setting **/ + double setRxGain(double dB, size_t chan = 0); + + /** get the current receive gain */ + double getRxGain(size_t chan = 0) { + return rxGain; + } + + /** return maximum Rx Gain **/ + double maxRxGain(void); + + /** return minimum Rx Gain **/ + double minRxGain(void); + + /** sets the transmit chan gain, returns the gain setting **/ + double setTxGain(double dB, size_t chan = 0); + + /** return maximum Tx Gain **/ + double maxTxGain(void); + + /** return minimum Rx Gain **/ + double minTxGain(void); + + /** sets the RX path to use, returns true if successful and false otherwise */ + bool setRxAntenna(const std::string & ant, size_t chan = 0); + + /* return the used RX path */ + std::string getRxAntenna(size_t chan = 0); + + /** sets the RX path to use, returns true if successful and false otherwise */ + bool setTxAntenna(const std::string & ant, size_t chan = 0); + + /* return the used RX path */ + std::string getTxAntenna(size_t chan = 0); + + /** Return internal status values */ + inline double getTxFreq(size_t chan = 0) { + return 0; + } + inline double getRxFreq(size_t chan = 0) { + return 0; + } + inline double getSampleRate() { + return actualSampleRate; + } + inline double numberRead() { + return samplesRead; + } + inline double numberWritten() { + return samplesWritten; + } + + std::vector < std::string > tx_paths, rx_paths; +}; + +#endif // _LMS_DEVICE_H_ -- To view, visit https://gerrit.osmocom.org/9599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iaef29c4c2585ef8c2f94866c9591919f538c1a2d Gerrit-Change-Number: 9599 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:29 +0000 Subject: Change in osmo-trx[master]: lms: Several improvements and compilation/runtime fixes Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9600 Change subject: lms: Several improvements and compilation/runtime fixes ...................................................................... lms: Several improvements and compilation/runtime fixes Continuation of initial work done on LimeSuite support from Harald. Change-Id: Ib2fca81b76d027b08e2891056fa076d071597783 --- M CommonLibs/Logger.h M CommonLibs/debug.c M CommonLibs/debug.h M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h 6 files changed, 274 insertions(+), 127 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/00/9600/1 diff --git a/CommonLibs/Logger.h b/CommonLibs/Logger.h index 5b0b05c..e18ecfb 100644 --- a/CommonLibs/Logger.h +++ b/CommonLibs/Logger.h @@ -53,6 +53,9 @@ #define LOGC(category, level) \ Log(category, LOGL_##level, __BASE_FILE__, __LINE__).get() << "[tid=" << pthread_self() << "] " +#define LOGLV(category, level) \ + Log(category, level, __BASE_FILE__, __LINE__).get() << "[tid=" << pthread_self() << "] " + /** A C++ stream-based thread-safe logger. This object is NOT the global logger; diff --git a/CommonLibs/debug.c b/CommonLibs/debug.c index e4db2f3..01854c0 100644 --- a/CommonLibs/debug.c +++ b/CommonLibs/debug.c @@ -10,6 +10,12 @@ .color = NULL, .enabled = 1, .loglevel = LOGL_NOTICE, }, + [DLMS] = { + .name = "DLMS", + .description = "LimeSuite category", + .color = NULL, + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; const struct log_info log_info = { diff --git a/CommonLibs/debug.h b/CommonLibs/debug.h index 7038f4c..06ad74e 100644 --- a/CommonLibs/debug.h +++ b/CommonLibs/debug.h @@ -5,4 +5,5 @@ /* Debug Areas of the code */ enum { DMAIN, + DLMS, }; diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index ed51cdb..603b23d 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -24,26 +24,40 @@ #include +#include + #ifdef HAVE_CONFIG_H #include "config.h" #endif using namespace std; -const double LMSDevice::masterClockRate = 52.0e6; +constexpr double LMSDevice::masterClockRate; -LMSDevice::LMSDevice(size_t sps) +#define MAX_ANTENNA_LIST_SIZE 10 +#define LMS_SAMPLE_RATE GSMRATE*32 +#define GSM_CARRIER_BW 270000.0 /* 270kHz */ +#define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ +#define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) + +LMSDevice::LMSDevice(size_t sps, size_t chans): + m_lms_dev(NULL), sps(sps), chans(chans) { LOG(INFO) << "creating LMS device..."; - m_lms_device = NULL; - this->sps = sps; + m_lms_stream_rx.resize(chans); + m_lms_stream_tx.resize(chans); + + m_last_rx_underruns.resize(chans, 0); + m_last_rx_overruns.resize(chans, 0); + m_last_tx_underruns.resize(chans, 0); + m_last_tx_overruns.resize(chans, 0); } static void lms_log_callback(int lvl, const char *msg) { /* map lime specific log levels */ - static const lvl_map[4] = { + static const int lvl_map[5] = { [0] = LOGL_FATAL, [1] = LOGL_ERROR, [2] = LOGL_NOTICE, @@ -51,40 +65,71 @@ [4] = LOGL_DEBUG, }; /* protect against future higher log level values (lower importance) */ - if (lvl >= ARRAY_SIZE(lvl_map)) + if ((unsigned int) lvl >= ARRAY_SIZE(lvl_map)) lvl = ARRAY_SIZE(lvl_map)-1; - LOG(lvl) << msg; + LOGLV(DLMS, lvl) << msg; } -int LMSDevice::open(const std::string &, int, bool) +static void thread_enable_cancel(bool cancel) { - lms_info_str dev_str; - uint16_t dac_val; + cancel ? pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL) : + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); +} - LOG(INFO) << "opening LMS device.."; +int LMSDevice::open(const std::string &args, int ref, bool swap_channels) +{ + //lms_info_str_t dev_str; + lms_info_str_t* info_list; + uint16_t dac_val; + unsigned int i, n; + int rc; + + LOG(INFO) << "Opening LMS device.."; LMS_RegisterLogHandler(&lms_log_callback); - rc = LMS_Open(&m_lms_dev, NULL, NULL); - if (rc != 0) - return -1; + if ((n = LMS_GetDeviceList(NULL)) < 0) + LOG(ERROR) << "LMS_GetDeviceList(NULL) failed"; + LOG(DEBUG) << "Devices found: " << n; + if (n < 1) + return -1; - if (LMS_SetSampleRate(m_lms_dev, GSMRATE, sps) < 0) + info_list = new lms_info_str_t[n]; + + if (LMS_GetDeviceList(info_list) < 0) //Populate device list + LOG(ERROR) << "LMS_GetDeviceList(info_list) failed"; + + for (i = 0; i < n; i++) //print device list + LOG(DEBUG) << "Device [" << i << "]: " << info_list[i]; + + rc = LMS_Open(&m_lms_dev, info_list[0], NULL); + if (rc != 0) { + LOG(ERROR) << "LMS_GetDeviceList() failed)"; + delete [] info_list; + return -1; + } + + delete [] info_list; + + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; + if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; /* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */ - ts_offset = static_caset(8.9e-5 * GSMRATE); + ts_offset = static_cast(8.9e-5 * GSMRATE); switch (ref) { case REF_INTERNAL: + LOG(DEBUG) << "Setting Internal clock reference"; /* Ugly API: Selecting clock source implicit by writing to VCTCXO DAC ?!? */ if (LMS_VCTCXORead(m_lms_dev, &dac_val) < 0) goto out_close; - + LOG(DEBUG) << "Setting VCTCXO to " << dac_val; if (LMS_VCTCXOWrite(m_lms_dev, dac_val) < 0) goto out_close; break; - case REF_EXTENAL: + case REF_EXTERNAL: + LOG(DEBUG) << "Setting Internal clock reference to " << 10000000.0; /* Assume an external 10 MHz reference clock */ if (LMS_SetClockFreq(m_lms_dev, LMS_CLOCK_EXTREF, 10000000.0) < 0) goto out_close; @@ -94,14 +139,18 @@ goto out_close; } + LOG(INFO) << "Init LMS device"; if (LMS_Init(m_lms_dev) < 0) goto out_close; /* Perform Rx and Tx calibration */ - if (LMS_Calibrate(m_lms_dev, LMS_CH_RX, chan, 270000.0, 0) < 0) - goto out_close; - if (LMS_Calibrate(m_lms_dev, LMS_CH_TX, chan, 270000.0, 0) < 0) - goto out_close; + for (i=0; i 0)) { + rc = LMS_RecvStream(&m_lms_stream_rx[0], &buffer[0], len, &rx_metadata, 100); + LOG(DEBUG) << "Flush: Recv buffer of len " << rc << " at " << std::hex << rx_metadata.timestamp; + if (rc != len) { + LOG(ALERT) << "LMS: Device receive timed out"; + delete[] buffer; + return false; + } + + ts_initial = rx_metadata.timestamp; + } + + LOG(INFO) << "Initial timestamp " << ts_initial << std::endl; + delete[] buffer; + return true; +} + bool LMSDevice::setRxAntenna(const std::string & ant, size_t chan) { int idx; @@ -257,7 +347,7 @@ return false; } - idx = get_ant_idx(ant, LMS_CH_RX); + idx = get_ant_idx(ant, LMS_CH_RX, chan); if (idx < 0) { LOG(ALERT) << "Invalid Rx Antenna"; return false; @@ -272,6 +362,9 @@ std::string LMSDevice::getRxAntenna(size_t chan) { + lms_name_t name_list[MAX_ANTENNA_LIST_SIZE]; /* large enough list for antenna names. */ + int idx; + if (chan >= rx_paths.size()) { LOG(ALERT) << "Requested non-existent channel " << chan; return ""; @@ -283,12 +376,12 @@ return ""; } - if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, &list) < idx) { + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, name_list) < idx) { LOG(ALERT) << "Error getting Rx Antenna List"; return ""; } - return list[idx]; + return name_list[idx]; } bool LMSDevice::setTxAntenna(const std::string & ant, size_t chan) @@ -300,7 +393,7 @@ return false; } - idx = get_ant_idx(ant, LMS_CH_TX); + idx = get_ant_idx(ant, LMS_CH_TX, chan); if (idx < 0) { LOG(ALERT) << "Invalid Rx Antenna"; return false; @@ -315,6 +408,7 @@ std::string LMSDevice::getTxAntenna(size_t chan) { + lms_name_t name_list[MAX_ANTENNA_LIST_SIZE]; /* large enough list for antenna names. */ int idx; if (chan >= tx_paths.size()) { @@ -328,49 +422,73 @@ return ""; } - if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, &list) < idx) { + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, name_list) < idx) { LOG(ALERT) << "Error getting Tx Antenna List"; return ""; } - return list[idx]; + return name_list[idx]; +} + +bool LMSDevice::requiresRadioAlign() +{ + return false; +} + +GSM::Time LMSDevice::minLatency() { + /* Empirical data from a handful of + relatively recent machines shows that the B100 will underrun when + the transmit threshold is reduced to a time of 6 and a half frames, + so we set a minimum 7 frame threshold. */ + return GSM::Time(6,7); } // NOTE: Assumes sequential reads int LMSDevice::readSamples(std::vector < short *>&bufs, int len, bool * overrun, TIMESTAMP timestamp, bool * underrun, unsigned *RSSI) { - lms_stream_meta_t rx_metadata = { - .flushPartialPacket = false, - .waitForTimestamp = false, - }; - int rc; + int rc = 0; + unsigned int i; + lms_stream_status_t status; + lms_stream_meta_t rx_metadata = {}; + rx_metadata.flushPartialPacket = false; + rx_metadata.waitForTimestamp = false; + /* Shift read time with respect to transmit clock */ + timestamp += ts_offset; + rx_metadata.timestamp = 0; - if (bufs.size != 1) { + if (bufs.size() != chans) { LOG(ALERT) << "Invalid channel combination " << bufs.size(); return -1; } - /* Shift read time with respect to transmit clock */ - timestamp += ts_offset; - - rc = LMS_RecvStream(&m_lms_stream_rx, bufs[0], len, &rx_metadata, 100); - *overrun = false; *underrun = false; + for (i = 0; i m_last_rx_underruns) - *underrun = true; - m_last_rx_underruns = status.underrun; + if (LMS_GetStreamStatus(&m_lms_stream_rx[i], &status) == 0) { + if (status.underrun > m_last_rx_underruns[i]) + *underrun = true; + m_last_rx_underruns[i] = status.underrun; - if (status.overrun > m_last_rx_overruns) - *overrun = true; - m_last_rx_overruns = status.overrun; + if (status.overrun > m_last_rx_overruns[i]) + *overrun = true; + m_last_rx_overruns[i] = status.overrun; + } + thread_enable_cancel(true); } samplesRead += rc; + if (((TIMESTAMP) rx_metadata.timestamp) < timestamp) + rc = 0; + return rc; } @@ -378,35 +496,40 @@ bool * underrun, unsigned long long timestamp, bool isControl) { - lms_stream_status_t status; - lms_stream_meta_t tx_metadata = { - .flushPartialPacket = false, - .waitForTimestamp = true, - .timestamp = timestamp, - }; int rc; + unsigned int i; + lms_stream_status_t status; + lms_stream_meta_t tx_metadata = {}; + tx_metadata.flushPartialPacket = false; + tx_metadata.waitForTimestamp = true; + tx_metadata.timestamp = timestamp; if (isControl) { LOG(ERR) << "Control packets not supported"; return 0; } - if (bufs.size() != 1) { + if (bufs.size() != chans) { LOG(ALERT) << "Invalid channel combination " << bufs.size(); return -1; } - rc = LMS_Send_Stream(&m_lms_stream_tx, bufs[0], len, &tx_metadata, 100); - if (rc != len) { - LOG(ALERT) << "LMS: Device send timed out "; - } - *underrun = false; - if (LMS_GetStreamStatus(&m_lms_stream_tx, &status) == 0) { - if (status.underrun > m_last_tx_underruns) - *underrun = true; - m_last_tx_underruns = status.underrun; + for (i = 0; i m_last_tx_underruns[i]) + *underrun = true; + m_last_tx_underruns[i] = status.underrun; + } + thread_enable_cancel(true); } samplesWritten += rc; @@ -416,17 +539,7 @@ bool LMSDevice::updateAlignment(TIMESTAMP timestamp) { - short data[] = { 0x00, 0x02, 0x00, 0x00 }; - uint32_t *wordPtr = (uint32_t *) data; - *wordPtr = host_to_usrp_u32(*wordPtr); - bool tmpUnderrun; - - std::vector < short *>buf(1, data); - if (writeSamples(buf, 1, &tmpUnderrun, timestamp & 0x0ffffffffll, true)) { - pingTimestamp = timestamp; - return true; - } - return false; + return true; } bool LMSDevice::setTxFreq(double wFreq, size_t chan) @@ -465,5 +578,5 @@ const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { - return new LMSDevice(tx_sps); + return new LMSDevice(tx_sps, chans); } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 653d159..99eed43 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -21,22 +21,33 @@ #include "radioDevice.h" -#include #include #include +#include #include #include +#include + +#define LIMESDR_TX_AMPL 0.3 /** A class to handle a LimeSuite supported device */ class LMSDevice:public RadioDevice { private: - lms_device_t *m_lms_dev; - lms_stream_t m_lms_Stream_rx; - lms_stream_t m_lms_Stream_tx; + static constexpr double masterClockRate = 52.0e6; - int sps; + lms_device_t *m_lms_dev; + std::vector m_lms_stream_rx; + std::vector m_lms_stream_tx; + + std::vector m_last_rx_underruns; + std::vector m_last_rx_overruns; + std::vector m_last_tx_underruns; + std::vector m_last_tx_overruns; + + size_t sps, chans; + double actualSampleRate; ///< the actual USRP sampling rate unsigned long long samplesRead; ///< number of samples read from LMS unsigned long long samplesWritten; ///< number of samples sent to LMS @@ -44,15 +55,20 @@ bool started; ///< flag indicates LMS has started bool skipRx; ///< set if LMS is transmit-only. - TIMESTAMP ts_offset; + TIMESTAMP ts_initial, ts_offset; + + double rxGain; + + int get_ant_idx(const std::string & name, bool dir_tx, size_t chan); + bool flush_recv(size_t num_pkts); public: /** Object constructor */ - LMSDevice(size_t sps); + LMSDevice(size_t sps, size_t chans); /** Instantiate the LMS */ - int open(const std::string &, int, bool); + int open(const std::string &args, int ref, bool swap_channels); /** Start the LMS */ bool start(); @@ -62,7 +78,9 @@ /** Set priority not supported */ void setPriority(float prio = 0.5) { - } enum TxWindowType getWindowType() { + } + + enum TxWindowType getWindowType() { return TX_WINDOW_LMS1; } @@ -103,22 +121,22 @@ /** Returns the starting write Timestamp*/ TIMESTAMP initialWriteTimestamp(void) { - return 20000; + return ts_initial; } /** Returns the starting read Timestamp*/ TIMESTAMP initialReadTimestamp(void) { - return 20000; + return ts_initial; } /** returns the full-scale transmit amplitude **/ double fullScaleInputValue() { - return 13500.0; + return(double) SHRT_MAX * LIMESDR_TX_AMPL; } /** returns the full-scale receive amplitude **/ double fullScaleOutputValue() { - return 9450.0; + return (double) SHRT_MAX; } /** sets the receive chan gain, returns the gain setting **/ @@ -156,6 +174,12 @@ /* return the used RX path */ std::string getTxAntenna(size_t chan = 0); + /** return whether user drives synchronization of Tx/Rx of USRP */ + bool requiresRadioAlign(); + + /** return whether user drives synchronization of Tx/Rx of USRP */ + virtual GSM::Time minLatency(); + /** Return internal status values */ inline double getTxFreq(size_t chan = 0) { return 0; diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index 44636d5..c5cd461 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -39,7 +39,7 @@ public: /* Available transport bus types */ - enum TxWindowType { TX_WINDOW_USRP1, TX_WINDOW_FIXED }; + enum TxWindowType { TX_WINDOW_USRP1, TX_WINDOW_FIXED, TX_WINDOW_LMS1 }; /* Radio interface types */ enum InterfaceType { -- To view, visit https://gerrit.osmocom.org/9600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib2fca81b76d027b08e2891056fa076d071597783 Gerrit-Change-Number: 9600 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:30 +0000 Subject: Change in osmo-trx[master]: build: Add support for LimeSuite device backend Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9601 Change subject: build: Add support for LimeSuite device backend ...................................................................... build: Add support for LimeSuite device backend Change-Id: I239e1b37263a62b374d84974c9347e3654072e87 --- M Transceiver52M/Makefile.am M Transceiver52M/device/Makefile.am A Transceiver52M/device/lms/Makefile.am M configure.ac 4 files changed, 35 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/01/9601/1 diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am index bb253bb..a2163bf 100644 --- a/Transceiver52M/Makefile.am +++ b/Transceiver52M/Makefile.am @@ -99,3 +99,13 @@ $(USRP_LIBS) osmo_trx_usrp1_CPPFLAGS = $(AM_CPPFLAGS) $(USRP_CFLAGS) endif + +if DEVICE_LMS +bin_PROGRAMS += osmo-trx-lms +osmo_trx_lms_SOURCES = osmo-trx.cpp +osmo_trx_lms_LDADD = \ + $(COMMON_LDADD) \ + $(LMS_LIBS) \ + $(builddir)/device/lms/libdevice.la +osmo_trx_lms_CPPFLAGS = $(AM_CPPFLAGS) $(LMS_CFLAGS) +endif diff --git a/Transceiver52M/device/Makefile.am b/Transceiver52M/device/Makefile.am index 2788eaa..1a2d077 100644 --- a/Transceiver52M/device/Makefile.am +++ b/Transceiver52M/device/Makefile.am @@ -11,3 +11,7 @@ if DEVICE_UHD SUBDIRS += uhd endif + +if DEVICE_LMS +SUBDIRS += lms +endif diff --git a/Transceiver52M/device/lms/Makefile.am b/Transceiver52M/device/lms/Makefile.am new file mode 100644 index 0000000..8471074 --- /dev/null +++ b/Transceiver52M/device/lms/Makefile.am @@ -0,0 +1,10 @@ +include $(top_srcdir)/Makefile.common + +AM_CPPFLAGS = -Wall $(STD_DEFINES_AND_INCLUDES) -I${srcdir}/.. +AM_CXXFLAGS = -lpthread $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LMS_CFLAGS) + +noinst_HEADERS = LMSDevice.h + +noinst_LTLIBRARIES = libdevice.la + +libdevice_la_SOURCES = LMSDevice.cpp diff --git a/configure.ac b/configure.ac index 5f66225..aae151b 100644 --- a/configure.ac +++ b/configure.ac @@ -100,6 +100,11 @@ [enable USRP1 gnuradio based transceiver]) ]) +AC_ARG_WITH(lms, [ + AS_HELP_STRING([--with-lms], + [enable LimeSuite gnuradio based transceiver]) +]) + AC_ARG_WITH(singledb, [ AS_HELP_STRING([--with-singledb], [enable single daughterboard use on USRP1]) @@ -133,6 +138,10 @@ PKG_CHECK_MODULES(USRP, usrp >= 3.3) ]) +AS_IF([test "x$with_lms" = "xyes"], [ + PKG_CHECK_MODULES(LMS, LimeSuite) +]) + AS_IF([test "x$with_uhd" != "xno"],[ PKG_CHECK_MODULES(UHD, uhd >= 003.011, [AC_DEFINE(USE_UHD_3_11, 1, UHD version 3.11.0 or higher)], @@ -184,6 +193,7 @@ AM_CONDITIONAL(DEVICE_UHD, [test "x$with_uhd" != "xno"]) AM_CONDITIONAL(DEVICE_USRP1, [test "x$with_usrp1" = "xyes"]) +AM_CONDITIONAL(DEVICE_LMS, [test "x$with_lms" = "xyes"]) AM_CONDITIONAL(ARCH_ARM, [test "x$with_neon" = "xyes" || test "x$with_neon_vfpv4" = "xyes"]) AM_CONDITIONAL(ARCH_ARM_A15, [test "x$with_neon_vfpv4" = "xyes"]) @@ -211,6 +221,7 @@ Transceiver52M/device/Makefile \ Transceiver52M/device/uhd/Makefile \ Transceiver52M/device/usrp1/Makefile \ + Transceiver52M/device/lms/Makefile \ tests/Makefile \ tests/CommonLibs/Makefile \ tests/Transceiver52M/Makefile \ -- To view, visit https://gerrit.osmocom.org/9601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I239e1b37263a62b374d84974c9347e3654072e87 Gerrit-Change-Number: 9601 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:30 +0000 Subject: Change in osmo-trx[master]: update .gitignore to include osmo-trx-lms Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9602 Change subject: update .gitignore to include osmo-trx-lms ...................................................................... update .gitignore to include osmo-trx-lms Change-Id: I52efd2f71eb61baa80427ab9f7b518f17d514792 --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/02/9602/1 diff --git a/.gitignore b/.gitignore index 93c21e4..83c59d9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *.la Transceiver52M/osmo-trx-uhd Transceiver52M/osmo-trx-usrp1 +Transceiver52M/osmo-trx-lms # tests tests/CommonLibs/BitVectorTest -- To view, visit https://gerrit.osmocom.org/9602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I52efd2f71eb61baa80427ab9f7b518f17d514792 Gerrit-Change-Number: 9602 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:30 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Call LMS_Init() before setting sample rate Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9603 Change subject: LMSDevice: Call LMS_Init() before setting sample rate ...................................................................... LMSDevice: Call LMS_Init() before setting sample rate LMS_Init() will override basically all device settings with their default value, including the sample rate. We hence have to make sure to call it before any other API function that changes the device config such as sample rate, frequency, filter bandwidth, ... Change-Id: I4cdbae8406b5e1e93da491e90f8bad41d4be748b --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 6 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/03/9603/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 603b23d..0442e27 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -112,6 +112,12 @@ delete [] info_list; + LOG(INFO) << "Init LMS device"; + if (LMS_Init(m_lms_dev) != 0) { + LOG(ERROR) << "LMS_Init() failed"; + return -1; + } + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; @@ -139,10 +145,6 @@ goto out_close; } - LOG(INFO) << "Init LMS device"; - if (LMS_Init(m_lms_dev) < 0) - goto out_close; - /* Perform Rx and Tx calibration */ for (i=0; i Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:31 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Print sample rate range + actual sample rate after setting it Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9604 Change subject: LMSDevice: Print sample rate range + actual sample rate after setting it ...................................................................... LMSDevice: Print sample rate range + actual sample rate after setting it Change-Id: I19c1a5b2d2431b8d39e277244e313f6e559e4d25 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/04/9604/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 0442e27..9301cf4 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -118,9 +118,18 @@ return -1; } + lms_range_t range; + if (LMS_GetSampleRateRange(m_lms_dev, LMS_CH_RX, &range)) + goto out_close; + LOG(DEBUG) << "Sample Rate: Min=" << range.min << " Max=" << range.max << " Step=" << range.step; + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; + float_type sr_host, sr_rf; + if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf)) + goto out_close; + LOG(DEBUG) << "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); -- To view, visit https://gerrit.osmocom.org/9604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I19c1a5b2d2431b8d39e277244e313f6e559e4d25 Gerrit-Change-Number: 9604 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:31 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Typo fix: s/Internal/External Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9605 Change subject: LMSDevice: Typo fix: s/Internal/External ...................................................................... LMSDevice: Typo fix: s/Internal/External Change-Id: Icacfe6da90a89c7f00d62c580948fb913998eaa7 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/05/9605/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9301cf4..c131aea 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -144,7 +144,7 @@ goto out_close; break; case REF_EXTERNAL: - LOG(DEBUG) << "Setting Internal clock reference to " << 10000000.0; + LOG(DEBUG) << "Setting External clock reference to " << 10000000.0; /* Assume an external 10 MHz reference clock */ if (LMS_SetClockFreq(m_lms_dev, LMS_CLOCK_EXTREF, 10000000.0) < 0) goto out_close; -- To view, visit https://gerrit.osmocom.org/9605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icacfe6da90a89c7f00d62c580948fb913998eaa7 Gerrit-Change-Number: 9605 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:31 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Set low-pass filters to smallest possible option Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9606 Change subject: LMSDevice: Set low-pass filters to smallest possible option ...................................................................... LMSDevice: Set low-pass filters to smallest possible option Rx 1.4 MHz, Tx 5MHz. Both massively too wide for GSM, but there's no smaller band-width available. Change-Id: I9723c9a2ea77f65bfa9d796d7c44adc2417e89cf --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/06/9606/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index c131aea..3b2ce5e 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -156,6 +156,10 @@ /* Perform Rx and Tx calibration */ for (i=0; i Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:32 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Fix initial timestamp offset of 2500 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9607 Change subject: LMSDevice: Fix initial timestamp offset of 2500 ...................................................................... LMSDevice: Fix initial timestamp offset of 2500 ts_initial must not point to the timestamp of the first sample in the last "flush" sample buffer, but to the first timestamp we expect in the next buffer. Change-Id: I23af62870544d4c6cf5f6e2d6578936603bceb91 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/07/9607/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 3b2ce5e..9cfa96d 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -345,7 +345,7 @@ return false; } - ts_initial = rx_metadata.timestamp; + ts_initial = rx_metadata.timestamp + len; } LOG(INFO) << "Initial timestamp " << ts_initial << std::endl; -- To view, visit https://gerrit.osmocom.org/9607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I23af62870544d4c6cf5f6e2d6578936603bceb91 Gerrit-Change-Number: 9607 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:32 +0000 Subject: Change in osmo-trx[master]: LMS_Device: Set ts_offset to 0. Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9608 Change subject: LMS_Device: Set ts_offset to 0. ...................................................................... LMS_Device: Set ts_offset to 0. I'm not quite sure what the ts_offset is for, but by using "0" we are now receiving exactly the timestamp that we're expecting: LMSDevice.cpp:486 [tid=140576250332928] chan 0 recv buffer of len 2500 expect 305ed0 got 305ed0 (305ed0) diff=0 Change-Id: I270c94945b1af9662cfc468cfda1ae3af3ac0a27 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/08/9608/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9cfa96d..5f25da5 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -131,7 +131,8 @@ goto out_close; LOG(DEBUG) << "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); + //ts_offset = static_cast(8.9e-5 * GSMRATE); + ts_offset = 0; switch (ref) { case REF_INTERNAL: -- To view, visit https://gerrit.osmocom.org/9608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I270c94945b1af9662cfc468cfda1ae3af3ac0a27 Gerrit-Change-Number: 9608 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:32 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9609 Change subject: LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps ...................................................................... LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps Change-Id: I06b35efb7368616b9f4d348da574cd524ffe3ea6 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/09/9609/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 5f25da5..2a40f46 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -483,7 +483,8 @@ for (i = 0; i Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:32 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Set correct values for Max{Tx, Rx}Gain Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9610 Change subject: LMSDevice: Set correct values for Max{Tx,Rx}Gain ...................................................................... LMSDevice: Set correct values for Max{Tx,Rx}Gain Change-Id: I3b3a7080a69e15d8d6770186810d922227439099 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/10/9610/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 2a40f46..f1714a0 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -250,7 +250,7 @@ double LMSDevice::maxTxGain() { - return 60.0; + return 73.0; } double LMSDevice::minTxGain() @@ -260,7 +260,7 @@ double LMSDevice::maxRxGain() { - return 70.0; + return 73.0; } double LMSDevice::minRxGain() -- To view, visit https://gerrit.osmocom.org/9610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3b3a7080a69e15d8d6770186810d922227439099 Gerrit-Change-Number: 9610 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:33 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Fix setup failure with LimeSuite > 18.04.1 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9611 Change subject: LMSDevice: Fix setup failure with LimeSuite > 18.04.1 ...................................................................... LMSDevice: Fix setup failure with LimeSuite > 18.04.1 Fixes: https://github.com/myriadrf/LimeSuite/issues/184 Change-Id: Ia9f37995cd10d19d6820e3e12b8ee8f3efbff5d4 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/11/9611/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index f1714a0..fb1b794 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -159,7 +159,7 @@ for (i=0; i Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:33 +0000 Subject: Change in osmo-trx[master]: lms: Makefile.am: Reorder params to fix link issue Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9612 Change subject: lms: Makefile.am: Reorder params to fix link issue ...................................................................... lms: Makefile.am: Reorder params to fix link issue It seems the order in which static code and -lfoo is passed to the linker matters. This commit is a lms specific follow-up of commit 2a8183bdf0dfd5c5a59c3933fb932e827ddf811c. Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4 --- M Transceiver52M/Makefile.am 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/12/9612/1 diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am index a2163bf..28c47ab 100644 --- a/Transceiver52M/Makefile.am +++ b/Transceiver52M/Makefile.am @@ -104,8 +104,8 @@ bin_PROGRAMS += osmo-trx-lms osmo_trx_lms_SOURCES = osmo-trx.cpp osmo_trx_lms_LDADD = \ + $(builddir)/device/lms/libdevice.la \ $(COMMON_LDADD) \ - $(LMS_LIBS) \ - $(builddir)/device/lms/libdevice.la + $(LMS_LIBS) osmo_trx_lms_CPPFLAGS = $(AM_CPPFLAGS) $(LMS_CFLAGS) endif -- To view, visit https://gerrit.osmocom.org/9612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4 Gerrit-Change-Number: 9612 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:34 +0000 Subject: Change in osmo-trx[master]: lms: Check LPBFW to set is within supported range Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9613 Change subject: lms: Check LPBFW to set is within supported range ...................................................................... lms: Check LPBFW to set is within supported range As of LimeSuite 618fbb9c3188b36d75ad5785a97b8887dcc468f6, it seems 5e6 is within the returned range, but LMS_SetLPFBW fails anyway. See for more information: https://github.com/myriadrf/LimeSuite/issues/184 Change-Id: I967e7da7c0e3e8138b76733ee4a0e6311d20b62e --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 26 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/13/9613/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index fb1b794..d9b5ba6 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -77,10 +77,18 @@ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); } +static void print_range(const char* name, lms_range_t *range) +{ + LOG(DEBUG) << name << ": Min=" << range->min << " Max=" << range->max + << " Step=" << range->step; +} + int LMSDevice::open(const std::string &args, int ref, bool swap_channels) { //lms_info_str_t dev_str; lms_info_str_t* info_list; + lms_range_t range_lpfbw_rx, range_lpfbw_tx, range_sr; + float_type sr_host, sr_rf, lpfbw_rx, lpfbw_tx; uint16_t dac_val; unsigned int i, n; int rc; @@ -118,18 +126,18 @@ return -1; } - lms_range_t range; - if (LMS_GetSampleRateRange(m_lms_dev, LMS_CH_RX, &range)) + if (LMS_GetSampleRateRange(m_lms_dev, LMS_CH_RX, &range_sr)) goto out_close; - LOG(DEBUG) << "Sample Rate: Min=" << range.min << " Max=" << range.max << " Step=" << range.step; + print_range("Sample Rate", &range_sr); LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; - float_type sr_host, sr_rf; + if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf)) goto out_close; LOG(DEBUG) << "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); ts_offset = 0; @@ -155,11 +163,23 @@ goto out_close; } + if (LMS_GetLPFBWRange(m_lms_dev, LMS_CH_RX, &range_lpfbw_rx)) + goto out_close; + print_range("LPFBWRange Rx", &range_lpfbw_rx); + if (LMS_GetLPFBWRange(m_lms_dev, LMS_CH_RX, &range_lpfbw_tx)) + goto out_close; + print_range("LPFBWRange Tx", &range_lpfbw_tx); + lpfbw_rx = OSMO_MIN(OSMO_MAX(1.4001e6, range_lpfbw_rx.min), range_lpfbw_rx.max); + lpfbw_tx = OSMO_MIN(OSMO_MAX(5.2e6, range_lpfbw_tx.min), range_lpfbw_tx.max); + + LOG(DEBUG) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx; + /* Perform Rx and Tx calibration */ for (i=0; i Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:34 +0000 Subject: Change in osmo-trx[master]: lms: Use same timestamp offset like when using LimeSDR via UHD Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9614 Change subject: lms: Use same timestamp offset like when using LimeSDR via UHD ...................................................................... lms: Use same timestamp offset like when using LimeSDR via UHD The tx timestamp offset was not set. We set it to the same value as it was in UHD interface for LimeSDR Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/14/9614/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index d9b5ba6..3e3c5f6 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -139,8 +139,7 @@ LOG(DEBUG) << "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); - ts_offset = 0; + ts_offset = static_cast(8.9e-5 * GSMRATE * sps); /* time * sample_rate */ switch (ref) { case REF_INTERNAL: @@ -489,8 +488,6 @@ lms_stream_meta_t rx_metadata = {}; rx_metadata.flushPartialPacket = false; rx_metadata.waitForTimestamp = false; - /* Shift read time with respect to transmit clock */ - timestamp += ts_offset; rx_metadata.timestamp = 0; if (bufs.size() != chans) { @@ -539,7 +536,7 @@ lms_stream_meta_t tx_metadata = {}; tx_metadata.flushPartialPacket = false; tx_metadata.waitForTimestamp = true; - tx_metadata.timestamp = timestamp; + tx_metadata.timestamp = timestamp - ts_offset; /* Shift Tx time by offset */ if (isControl) { LOG(ERR) << "Control packets not supported"; -- To view, visit https://gerrit.osmocom.org/9614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837 Gerrit-Change-Number: 9614 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:34 +0000 Subject: Change in osmo-trx[master]: lms: Reduce log level of "send buffer of len ..." Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9615 Change subject: lms: Reduce log level of "send buffer of len ..." ...................................................................... lms: Reduce log level of "send buffer of len ..." Log level of "send buffer of len ..." messages was changed as it was causing problems on some machines. Change-Id: I605d50e81966c7bd169b27788d62af6fb54c84e1 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/15/9615/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 3e3c5f6..9c74c0a 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -551,7 +551,7 @@ *underrun = false; for (i = 0; i -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:35 +0000 Subject: Change in osmo-trx[master]: lms: fix LMS_StartStream() handling for multiple channels Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9616 Change subject: lms: fix LMS_StartStream() handling for multiple channels ...................................................................... lms: fix LMS_StartStream() handling for multiple channels LMS_StartStream() (in LMSDevice::start()) was moved to separate loop. It is because LMS_SetupStream() would fail for second channel if streaming has already been started (LMS_StartStream()) for single channel configuration. Change-Id: I6704bb92864aa81417507c4ae24a22f41dc529c1 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/16/9616/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9c74c0a..ad6f67b 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -205,6 +205,7 @@ unsigned int i; + /* configure the channels/streams */ for (i=0; i -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:35 +0000 Subject: Change in osmo-trx[master]: lms: Reduce Rx gain from 47 to 34 dB Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9617 Change subject: lms: Reduce Rx gain from 47 to 34 dB ...................................................................... lms: Reduce Rx gain from 47 to 34 dB Initially, Rx gain was hardcoded to be 47. This was too high for our setup and we were constantly getting "clipping detected" messages. Reducing Rx gain to 34 solved the issue. However, it looks like gains should be controlled through configuration files. Change-Id: I30580f18c4ad630c09f725b1d24c125fc3119809 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/17/9617/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index ad6f67b..c531a7f 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -319,7 +319,7 @@ return 0.0; } - dB = 47.0; + dB = 34.0; if (dB > maxRxGain()) dB = maxRxGain(); -- To view, visit https://gerrit.osmocom.org/9617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I30580f18c4ad630c09f725b1d24c125fc3119809 Gerrit-Change-Number: 9617 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:35 +0000 Subject: Change in osmo-trx[master]: move set_antennas() from UHD to generic radioDevice base class Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9618 Change subject: move set_antennas() from UHD to generic radioDevice base class ...................................................................... move set_antennas() from UHD to generic radioDevice base class Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba --- M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 4 files changed, 29 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/18/9618/1 diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 99eed43..7b3479f 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -196,8 +196,6 @@ inline double numberWritten() { return samplesWritten; } - - std::vector < std::string > tx_paths, rx_paths; }; #endif // _LMS_DEVICE_H_ diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index c5cd461..469b574 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -19,6 +19,7 @@ #include #include "GSMCommon.h" +#include "Logger.h" extern "C" { #include "config_defs.h" @@ -163,6 +164,34 @@ virtual double numberRead()=0; virtual double numberWritten()=0; + std::vector tx_paths, rx_paths; + bool set_antennas() { + unsigned int i; + + for (i = 0; i < tx_paths.size(); i++) { + if (tx_paths[i] == "") + continue; + LOG(DEBUG) << "Configuring channel " << i << " with antenna " << tx_paths[i]; + if (!setTxAntenna(tx_paths[i], i)) { + LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << tx_paths[i]; + return false; + } + } + + for (i = 0; i < rx_paths.size(); i++) { + if (rx_paths[i] == "") + continue; + LOG(DEBUG) << "Configuring channel " << i << " with antenna " << rx_paths[i]; + if (!setRxAntenna(rx_paths[i], i)) { + LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << rx_paths[i]; + return false; + } + } + LOG(INFO) << "Antennas configured successfully"; + return true; + } + + }; #endif diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index a0052c8..77a3446 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -291,7 +291,6 @@ std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; - std::vector tx_paths, rx_paths; size_t tx_spp, rx_spp; bool started; @@ -307,7 +306,6 @@ void init_gains(); void set_channels(bool swap); void set_rates(); - bool set_antennas(); bool parse_dev_type(); bool flush_recv(size_t num_pkts); int check_rx_md_err(uhd::rx_metadata_t &md, ssize_t num_smpls); @@ -458,33 +456,6 @@ LOG(INFO) << "Rates configured for " << desc.str; } -bool uhd_device::set_antennas() -{ - unsigned int i; - - for (i = 0; i < tx_paths.size(); i++) { - if (tx_paths[i] == "") - continue; - LOG(DEBUG) << "Configuring channel " << i << " with antenna " << tx_paths[i]; - if (!setTxAntenna(tx_paths[i], i)) { - LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << tx_paths[i]; - return false; - } - } - - for (i = 0; i < rx_paths.size(); i++) { - if (rx_paths[i] == "") - continue; - LOG(DEBUG) << "Configuring channel " << i << " with antenna " << rx_paths[i]; - if (!setRxAntenna(rx_paths[i], i)) { - LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << rx_paths[i]; - return false; - } - } - LOG(INFO) << "Antennas configured successfully"; - return true; -} - double uhd_device::setTxGain(double db, size_t chan) { if (iface == MULTI_ARFCN) diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index 6304ea1..efdedb3 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -203,8 +203,6 @@ inline double getSampleRate() { return actualSampleRate; } inline double numberRead() { return samplesRead; } inline double numberWritten() { return samplesWritten; } - - std::vector tx_paths, rx_paths; }; #endif // _USRP_DEVICE_H_ -- To view, visit https://gerrit.osmocom.org/9618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba Gerrit-Change-Number: 9618 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:35 +0000 Subject: Change in osmo-trx[master]: lms: Fix support for rx_paths / tx_paths Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9619 Change subject: lms: Fix support for rx_paths / tx_paths ...................................................................... lms: Fix support for rx_paths / tx_paths Before this patch, any configuration in osmo-trx.cfg regarding the rx and tx "antenna" (path) would have been completely ignored, as the radioDevice::make() function would simply drop those arguments to the floor. Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h 2 files changed, 10 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/19/9619/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index c531a7f..b1f4519 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -40,11 +40,16 @@ #define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) -LMSDevice::LMSDevice(size_t sps, size_t chans): +LMSDevice::LMSDevice(size_t sps, size_t chans, + const std::vector& tx_paths, + const std::vector& rx_paths): m_lms_dev(NULL), sps(sps), chans(chans) { LOG(INFO) << "creating LMS device..."; + this->tx_paths = tx_paths; + this->rx_paths = rx_paths; + m_lms_stream_rx.resize(chans); m_lms_stream_tx.resize(chans); @@ -617,5 +622,5 @@ const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { - return new LMSDevice(tx_sps, chans); + return new LMSDevice(tx_sps, chans, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 7b3479f..ef6d2b4 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -65,7 +65,9 @@ public: /** Object constructor */ - LMSDevice(size_t sps, size_t chans); + LMSDevice(size_t sps, size_t chans, + const std::vector& tx_paths, + const std::vector& rx_paths); /** Instantiate the LMS */ int open(const std::string &args, int ref, bool swap_channels); -- To view, visit https://gerrit.osmocom.org/9619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3 Gerrit-Change-Number: 9619 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:36 +0000 Subject: Change in osmo-trx[master]: lms: Call set_antennas() during open() method Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9620 Change subject: lms: Call set_antennas() during open() method ...................................................................... lms: Call set_antennas() during open() method Without this call, the antenna/path configuration is not applied. Change-Id: I0bca58266b59f1315ec72b6407fe4f4495aff678 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/20/9620/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index b1f4519..518e581 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -178,6 +178,11 @@ LOG(DEBUG) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx; + if (!set_antennas()) { + LOG(ALERT) << "LMS antenna setting failed"; + return -1; + } + /* Perform Rx and Tx calibration */ for (i=0; i -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:36 +0000 Subject: Change in osmo-trx[master]: radioDevice: Move tx_sps from derived into base class Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9621 Change subject: radioDevice: Move tx_sps from derived into base class ...................................................................... radioDevice: Move tx_sps from derived into base class All three derived classes use a tx_sps member, let's move this into the base class. Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 6 files changed, 18 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/21/9621/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 518e581..68d4b97 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -40,13 +40,14 @@ #define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) -LMSDevice::LMSDevice(size_t sps, size_t chans, +LMSDevice::LMSDevice(size_t tx_sps, size_t chans, const std::vector& tx_paths, const std::vector& rx_paths): - m_lms_dev(NULL), sps(sps), chans(chans) + m_lms_dev(NULL), chans(chans) { LOG(INFO) << "creating LMS device..."; + this->tx_sps = tx_sps; this->tx_paths = tx_paths; this->rx_paths = rx_paths; @@ -135,8 +136,8 @@ goto out_close; print_range("Sample Rate", &range_sr); - LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; - if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*tx_sps << " " << tx_sps; + if (LMS_SetSampleRate(m_lms_dev, GSMRATE*tx_sps, 32) < 0) goto out_close; if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf)) @@ -144,7 +145,7 @@ LOG(DEBUG) << "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 * sps); /* time * sample_rate */ + ts_offset = static_cast(8.9e-5 * GSMRATE * tx_sps); /* time * sample_rate */ switch (ref) { case REF_INTERNAL: @@ -362,7 +363,7 @@ bool LMSDevice::flush_recv(size_t num_pkts) { #define CHUNK 625 - int len = CHUNK * sps; + int len = CHUNK * tx_sps; short *buffer = new short[len * 2]; int rc; lms_stream_meta_t rx_metadata = {}; diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index ef6d2b4..0fe4c15 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -46,7 +46,7 @@ std::vector m_last_tx_underruns; std::vector m_last_tx_overruns; - size_t sps, chans; + size_t chans; double actualSampleRate; ///< the actual USRP sampling rate unsigned long long samplesRead; ///< number of samples read from LMS @@ -65,7 +65,7 @@ public: /** Object constructor */ - LMSDevice(size_t sps, size_t chans, + LMSDevice(size_t tx_sps, size_t chans, const std::vector& tx_paths, const std::vector& rx_paths); diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index 469b574..a9328ec 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -165,6 +165,7 @@ virtual double numberWritten()=0; std::vector tx_paths, rx_paths; + size_t tx_sps; bool set_antennas() { unsigned int i; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 77a3446..ddcad3a 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -282,7 +282,7 @@ enum TxWindowType tx_window; enum uhd_dev_type dev_type; - size_t tx_sps, rx_sps, chans; + size_t rx_sps, chans; double tx_rate, rx_rate; double tx_gain_min, tx_gain_max; diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 7f73f43..07ba1c9 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -58,12 +58,12 @@ const double USRPDevice::masterClockRate = 52.0e6; -USRPDevice::USRPDevice(size_t sps) +USRPDevice::USRPDevice(size_t tx_sps) { LOG(INFO) << "creating USRP device..."; - this->sps = sps; - decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) sps)); + this->tx_sps = tx_sps; + decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) tx_sps)); actualSampleRate = masterClockRate/decimRate; rxGain = 0; @@ -73,9 +73,9 @@ * split sample rate Tx/Rx - 4/1 sps we need to need to * compensate for advance rather than delay. */ - if (sps == 1) + if (tx_sps == 1) pingOffset = 272; - else if (sps == 4) + else if (tx_sps == 4) pingOffset = 269 - 7500; else pingOffset = 0; @@ -100,7 +100,7 @@ if (!skipRx) { try { m_uRx = usrp_standard_rx_sptr(usrp_standard_rx::make( - 0, decimRate * sps, 1, -1, + 0, decimRate * tx_sps, 1, -1, usrp_standard_rx::FPGA_MODE_NORMAL, 1024, 16 * 8, rbf)); m_uRx->set_fpga_master_clock_freq(masterClockRate); diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index efdedb3..ff5b273 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -48,7 +48,6 @@ usrp_subdev_spec rxSubdevSpec; usrp_subdev_spec txSubdevSpec; - int sps; double actualSampleRate; ///< the actual USRP sampling rate unsigned int decimRate; ///< the USRP decimation rate @@ -96,7 +95,7 @@ public: /** Object constructor */ - USRPDevice(size_t sps); + USRPDevice(size_t tx_sps); /** Instantiate the USRP */ int open(const std::string &, int, bool); -- To view, visit https://gerrit.osmocom.org/9621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced Gerrit-Change-Number: 9621 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:36 +0000 Subject: Change in osmo-trx[master]: radioDevice: better encapsulation in base class Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9622 Change subject: radioDevice: better encapsulation in base class ...................................................................... radioDevice: better encapsulation in base class It's not good style to have the derived classes initialize members inherited from the base class using "this->foo = bar". Rather, let's make the base class have a constructor, and call that constructor to initialize the members of the base class. While doing this * rename 'offset' to 'lo_offset' to avoid confusion with timestamp offset * move 'InterfaceType' into the base class * move 'chans' into the base class * move 'rx_sps' into the base class * mark base class members as 'protected' Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 6 files changed, 37 insertions(+), 32 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/22/9622/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 68d4b97..c4d5f96 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -40,17 +40,14 @@ #define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) -LMSDevice::LMSDevice(size_t tx_sps, size_t chans, +LMSDevice::LMSDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths): - m_lms_dev(NULL), chans(chans) + RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths), + m_lms_dev(NULL) { LOG(INFO) << "creating LMS device..."; - this->tx_sps = tx_sps; - this->tx_paths = tx_paths; - this->rx_paths = rx_paths; - m_lms_stream_rx.resize(chans); m_lms_stream_tx.resize(chans); @@ -624,9 +621,9 @@ } RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { - return new LMSDevice(tx_sps, chans, tx_paths, rx_paths); + return new LMSDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 0fe4c15..7d8d44b 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -65,7 +65,7 @@ public: /** Object constructor */ - LMSDevice(size_t tx_sps, size_t chans, + LMSDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths); diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index a9328ec..806ee8a 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -58,6 +58,13 @@ /** Initialize the USRP */ virtual int open(const std::string &args, int ref, bool swap_channels)=0; + RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chans, double offset, + const std::vector& tx_paths, + const std::vector& rx_paths): + tx_sps(tx_sps), rx_sps(rx_sps), iface(type), chans(chans), lo_offset(offset), + tx_paths(tx_paths), rx_paths(rx_paths) + { } + virtual ~RadioDevice() { } /** Start the USRP */ @@ -164,8 +171,12 @@ virtual double numberRead()=0; virtual double numberWritten()=0; + protected: + size_t tx_sps, rx_sps; + InterfaceType iface; + size_t chans; + double lo_offset; std::vector tx_paths, rx_paths; - size_t tx_sps; bool set_antennas() { unsigned int i; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index ddcad3a..e8cec68 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -287,7 +287,6 @@ double tx_gain_min, tx_gain_max; double rx_gain_min, rx_gain_max; - double offset; std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; @@ -317,7 +316,6 @@ bool set_freq(double freq, size_t chan, bool tx); Thread *async_event_thrd; - InterfaceType iface; Mutex tune_lock; }; @@ -364,22 +362,16 @@ } uhd_device::uhd_device(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) - : tx_gain_min(0.0), tx_gain_max(0.0), + : RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths), + tx_gain_min(0.0), tx_gain_max(0.0), rx_gain_min(0.0), rx_gain_max(0.0), tx_spp(0), rx_spp(0), started(false), aligned(false), rx_pkt_cnt(0), drop_cnt(0), prev_ts(0,0), ts_initial(0), ts_offset(0), async_event_thrd(NULL) { - this->tx_sps = tx_sps; - this->rx_sps = rx_sps; - this->chans = chans; - this->offset = offset; - this->iface = iface; - this->tx_paths = tx_paths; - this->rx_paths = rx_paths; } uhd_device::~uhd_device() @@ -1057,8 +1049,8 @@ uhd::tune_request_t treq(freq); if (dev_type == UMTRX) { - if (offset != 0.0) - return uhd::tune_request_t(freq, offset); + if (lo_offset != 0.0) + return uhd::tune_request_t(freq, lo_offset); // Don't use DSP tuning, because LMS6002D PLL steps are small enough. // We end up with DSP tuning just for 2-3Hz, which is meaningless and @@ -1070,10 +1062,10 @@ treq.dsp_freq = 0.0; return treq; } else if (chans == 1) { - if (offset == 0.0) + if (lo_offset == 0.0) return treq; - return uhd::tune_request_t(freq, offset); + return uhd::tune_request_t(freq, lo_offset); } else if ((dev_type != B210) || (chans > 2) || (chan > 1)) { LOG(ALERT) << chans << " channels unsupported"; return treq; @@ -1556,9 +1548,9 @@ } RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) { - return new uhd_device(tx_sps, rx_sps, iface, chans, offset, tx_paths, rx_paths); + return new uhd_device(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 07ba1c9..7a31c97 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -58,11 +58,14 @@ const double USRPDevice::masterClockRate = 52.0e6; -USRPDevice::USRPDevice(size_t tx_sps) +USRPDevice::USRPDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, + size_t chans, double lo_offset, + const std::vector& tx_paths, + const std::vector& rx_paths): + RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths) { LOG(INFO) << "creating USRP device..."; - this->tx_sps = tx_sps; decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) tx_sps)); actualSampleRate = masterClockRate/decimRate; rxGain = 0; @@ -648,9 +651,9 @@ #endif RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) { - return new USRPDevice(tx_sps); + return new USRPDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index ff5b273..451b5a9 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -95,7 +95,9 @@ public: /** Object constructor */ - USRPDevice(size_t tx_sps); + USRPDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset, + const std::vector& tx_paths, + const std::vector& rx_paths); /** Instantiate the USRP */ int open(const std::string &, int, bool); -- To view, visit https://gerrit.osmocom.org/9622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab Gerrit-Change-Number: 9622 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:33:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:33:36 +0000 Subject: Change in osmo-trx[master]: lms: Fix coding style Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9623 Change subject: lms: Fix coding style ...................................................................... lms: Fix coding style In Change-Id Ib2fca81b76d027b08e2891056fa076d071597783 we introduced some coding style violations. Let's make newly-added code follows standard Osmocom coding style. Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp 3 files changed, 10 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/23/9623/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index c4d5f96..815a4c5 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -100,19 +100,19 @@ LMS_RegisterLogHandler(&lms_log_callback); - if ((n = LMS_GetDeviceList(NULL)) < 0) - LOG(ERROR) << "LMS_GetDeviceList(NULL) failed"; - LOG(DEBUG) << "Devices found: " << n; - if (n < 1) - return -1; + if ((n = LMS_GetDeviceList(NULL)) < 0) + LOG(ERROR) << "LMS_GetDeviceList(NULL) failed"; + LOG(DEBUG) << "Devices found: " << n; + if (n < 1) + return -1; - info_list = new lms_info_str_t[n]; + info_list = new lms_info_str_t[n]; - if (LMS_GetDeviceList(info_list) < 0) //Populate device list - LOG(ERROR) << "LMS_GetDeviceList(info_list) failed"; + if (LMS_GetDeviceList(info_list) < 0) + LOG(ERROR) << "LMS_GetDeviceList(info_list) failed"; - for (i = 0; i < n; i++) //print device list - LOG(DEBUG) << "Device [" << i << "]: " << info_list[i]; + for (i = 0; i < n; i++) + LOG(DEBUG) << "Device [" << i << "]: " << info_list[i]; rc = LMS_Open(&m_lms_dev, info_list[0], NULL); if (rc != 0) { diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 7d8d44b..349efbb 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -46,7 +46,6 @@ std::vector m_last_tx_underruns; std::vector m_last_tx_overruns; - size_t chans; double actualSampleRate; ///< the actual USRP sampling rate unsigned long long samplesRead; ///< number of samples read from LMS diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index e8cec68..4af8f87 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -282,7 +282,6 @@ enum TxWindowType tx_window; enum uhd_dev_type dev_type; - size_t rx_sps, chans; double tx_rate, rx_rate; double tx_gain_min, tx_gain_max; -- To view, visit https://gerrit.osmocom.org/9623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc Gerrit-Change-Number: 9623 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:43:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:43:17 +0000 Subject: Change in osmo-trx[master]: lms: Fail in case of unsupported configuration Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9624 Change subject: lms: Fail in case of unsupported configuration ...................................................................... lms: Fail in case of unsupported configuration There might be some configuration that's not supported by osmo-bts-lms, and we should reject that properly. Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2 Closes: OS#3347 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/24/9624/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 815a4c5..16585e6 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -625,5 +625,13 @@ const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { + if (tx_sps != rx_sps) { + LOG(ERROR) << "LMS Requires tx_sps == rx_sps"; + return NULL; + } + if (lo_offset != 0.0) { + LOG(ERROR) << "LMS doesn't support lo_offset"; + return NULL; + } return new LMSDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } -- To view, visit https://gerrit.osmocom.org/9624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2 Gerrit-Change-Number: 9624 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:43:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:43:18 +0000 Subject: Change in osmo-trx[master]: usrp1: Fail in case of unsupported configuration Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9625 Change subject: usrp1: Fail in case of unsupported configuration ...................................................................... usrp1: Fail in case of unsupported configuration There might be some configuration that's not supported by osmo-bts-usrp1, and we should reject that properly. Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Closes: OS#3348 --- M Transceiver52M/device/usrp1/USRPDevice.cpp 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/25/9625/1 diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 7a31c97..5705e22 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -655,5 +655,17 @@ const std::vector& tx_paths, const std::vector& rx_paths) { + if (tx_sps != rx_sps) { + LOG(ERROR) << "USRP1 requires tx_sps == rx_sps"; + return NULL; + } + if (chans != 1) { + LOG(ERROR) << "USRP1 supports only 1 channel"; + return NULL; + } + if (lo_offset != 0.0) { + LOG(ERROR) << "USRP1 doesn't support lo_offset"; + return NULL; + } return new USRPDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } -- To view, visit https://gerrit.osmocom.org/9625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Gerrit-Change-Number: 9625 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:15 +0000 Subject: Change in osmo-trx[master]: Initial work towards direct LimeSuite support in OsmoTRX In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9599 ) Change subject: Initial work towards direct LimeSuite support in OsmoTRX ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaef29c4c2585ef8c2f94866c9591919f538c1a2d Gerrit-Change-Number: 9599 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:20 +0000 Subject: Change in osmo-trx[master]: lms: Several improvements and compilation/runtime fixes In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9600 ) Change subject: lms: Several improvements and compilation/runtime fixes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib2fca81b76d027b08e2891056fa076d071597783 Gerrit-Change-Number: 9600 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:22 +0000 Subject: Change in osmo-trx[master]: build: Add support for LimeSuite device backend In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9601 ) Change subject: build: Add support for LimeSuite device backend ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I239e1b37263a62b374d84974c9347e3654072e87 Gerrit-Change-Number: 9601 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:26 +0000 Subject: Change in osmo-trx[master]: update .gitignore to include osmo-trx-lms In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9602 ) Change subject: update .gitignore to include osmo-trx-lms ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52efd2f71eb61baa80427ab9f7b518f17d514792 Gerrit-Change-Number: 9602 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:28 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Call LMS_Init() before setting sample rate In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9603 ) Change subject: LMSDevice: Call LMS_Init() before setting sample rate ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9603 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4cdbae8406b5e1e93da491e90f8bad41d4be748b Gerrit-Change-Number: 9603 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:31 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Print sample rate range + actual sample rate after setting it In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9604 ) Change subject: LMSDevice: Print sample rate range + actual sample rate after setting it ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19c1a5b2d2431b8d39e277244e313f6e559e4d25 Gerrit-Change-Number: 9604 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:33 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Typo fix: s/Internal/External In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9605 ) Change subject: LMSDevice: Typo fix: s/Internal/External ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icacfe6da90a89c7f00d62c580948fb913998eaa7 Gerrit-Change-Number: 9605 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:35 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Set low-pass filters to smallest possible option In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9606 ) Change subject: LMSDevice: Set low-pass filters to smallest possible option ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9606 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9723c9a2ea77f65bfa9d796d7c44adc2417e89cf Gerrit-Change-Number: 9606 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:37 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Fix initial timestamp offset of 2500 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9607 ) Change subject: LMSDevice: Fix initial timestamp offset of 2500 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23af62870544d4c6cf5f6e2d6578936603bceb91 Gerrit-Change-Number: 9607 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:39 +0000 Subject: Change in osmo-trx[master]: LMS_Device: Set ts_offset to 0. In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9608 ) Change subject: LMS_Device: Set ts_offset to 0. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I270c94945b1af9662cfc468cfda1ae3af3ac0a27 Gerrit-Change-Number: 9608 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:51 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9609 ) Change subject: LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9609 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I06b35efb7368616b9f4d348da574cd524ffe3ea6 Gerrit-Change-Number: 9609 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:54 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Set correct values for Max{Tx, Rx}Gain In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9610 ) Change subject: LMSDevice: Set correct values for Max{Tx,Rx}Gain ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3b3a7080a69e15d8d6770186810d922227439099 Gerrit-Change-Number: 9610 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:44:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:44:58 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Fix setup failure with LimeSuite > 18.04.1 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9611 ) Change subject: LMSDevice: Fix setup failure with LimeSuite > 18.04.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9611 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia9f37995cd10d19d6820e3e12b8ee8f3efbff5d4 Gerrit-Change-Number: 9611 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:44:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:03 +0000 Subject: Change in osmo-trx[master]: lms: Makefile.am: Reorder params to fix link issue In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9612 ) Change subject: lms: Makefile.am: Reorder params to fix link issue ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4 Gerrit-Change-Number: 9612 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:45:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:08 +0000 Subject: Change in osmo-trx[master]: lms: Check LPBFW to set is within supported range In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9613 ) Change subject: lms: Check LPBFW to set is within supported range ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9613 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I967e7da7c0e3e8138b76733ee4a0e6311d20b62e Gerrit-Change-Number: 9613 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 13 Jun 2018 21:45:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:15 +0000 Subject: Change in osmo-trx[master]: lms: Use same timestamp offset like when using LimeSDR via UHD In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9614 ) Change subject: lms: Use same timestamp offset like when using LimeSDR via UHD ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837 Gerrit-Change-Number: 9614 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:45:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:22 +0000 Subject: Change in osmo-trx[master]: lms: Reduce log level of "send buffer of len ..." In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9615 ) Change subject: lms: Reduce log level of "send buffer of len ..." ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9615 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I605d50e81966c7bd169b27788d62af6fb54c84e1 Gerrit-Change-Number: 9615 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:45:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:24 +0000 Subject: Change in osmo-trx[master]: lms: fix LMS_StartStream() handling for multiple channels In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9616 ) Change subject: lms: fix LMS_StartStream() handling for multiple channels ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9616 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6704bb92864aa81417507c4ae24a22f41dc529c1 Gerrit-Change-Number: 9616 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:45:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:26 +0000 Subject: Change in osmo-trx[master]: lms: Reduce Rx gain from 47 to 34 dB In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9617 ) Change subject: lms: Reduce Rx gain from 47 to 34 dB ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I30580f18c4ad630c09f725b1d24c125fc3119809 Gerrit-Change-Number: 9617 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:45:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:32 +0000 Subject: Change in osmo-trx[master]: Initial work towards direct LimeSuite support in OsmoTRX In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9599 ) Change subject: Initial work towards direct LimeSuite support in OsmoTRX ...................................................................... Initial work towards direct LimeSuite support in OsmoTRX This is work in progress towards a direct LimeSuite driver in OsmoTRX, bypassing the currently rather complex stack of wrappers by going through UHD, SoapyUHD, SoapySDR and LimeSuite. Change-Id: Iaef29c4c2585ef8c2f94866c9591919f538c1a2d --- A Transceiver52M/device/lms/LMSDevice.cpp A Transceiver52M/device/lms/LMSDevice.h 2 files changed, 648 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp new file mode 100644 index 0000000..ed51cdb --- /dev/null +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -0,0 +1,469 @@ +/* +* Copyright 2018 sysmocom - s.f.m.c. GmbH +* + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +#include +#include +#include +#include "Logger.h" +#include "Threads.h" +#include "LMSDevice.h" + +#include + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +using namespace std; + +const double LMSDevice::masterClockRate = 52.0e6; + +LMSDevice::LMSDevice(size_t sps) +{ + LOG(INFO) << "creating LMS device..."; + + m_lms_device = NULL; + this->sps = sps; +} + +static void lms_log_callback(int lvl, const char *msg) +{ + /* map lime specific log levels */ + static const lvl_map[4] = { + [0] = LOGL_FATAL, + [1] = LOGL_ERROR, + [2] = LOGL_NOTICE, + [3] = LOGL_INFO, + [4] = LOGL_DEBUG, + }; + /* protect against future higher log level values (lower importance) */ + if (lvl >= ARRAY_SIZE(lvl_map)) + lvl = ARRAY_SIZE(lvl_map)-1; + + LOG(lvl) << msg; +} + +int LMSDevice::open(const std::string &, int, bool) +{ + lms_info_str dev_str; + uint16_t dac_val; + + LOG(INFO) << "opening LMS device.."; + + LMS_RegisterLogHandler(&lms_log_callback); + + rc = LMS_Open(&m_lms_dev, NULL, NULL); + if (rc != 0) + return -1; + + if (LMS_SetSampleRate(m_lms_dev, GSMRATE, sps) < 0) + goto out_close; + /* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */ + ts_offset = static_caset(8.9e-5 * GSMRATE); + + switch (ref) { + case REF_INTERNAL: + /* Ugly API: Selecting clock source implicit by writing to VCTCXO DAC ?!? */ + if (LMS_VCTCXORead(m_lms_dev, &dac_val) < 0) + goto out_close; + + if (LMS_VCTCXOWrite(m_lms_dev, dac_val) < 0) + goto out_close; + break; + case REF_EXTENAL: + /* Assume an external 10 MHz reference clock */ + if (LMS_SetClockFreq(m_lms_dev, LMS_CLOCK_EXTREF, 10000000.0) < 0) + goto out_close; + break; + default: + LOG(ALERT) << "Invalid reference type"; + goto out_close; + } + + if (LMS_Init(m_lms_dev) < 0) + goto out_close; + + /* Perform Rx and Tx calibration */ + if (LMS_Calibrate(m_lms_dev, LMS_CH_RX, chan, 270000.0, 0) < 0) + goto out_close; + if (LMS_Calibrate(m_lms_dev, LMS_CH_TX, chan, 270000.0, 0) < 0) + goto out_close; + + samplesRead = 0; + samplesWritten = 0; + started = false; + + return NORMAL; + +out_close: + LOG(ALERT) << "Error in LMS open, closing: " << LMS_GetLastErrorMessage(); + LMS_Close(m_lms_dev); + return -1; +} + +bool LMSDevice::start() +{ + LOG(INFO) << "starting LMS..."; + + if (LMS_EnableChannel(m_lms_dev, LMS_CH_RX, 0, true) < 0) + return false; + + if (LMS_EnableChannel(m_lms_dev, LMS_CH_TX, 0, true) < 0) + return false; + + // Set gains to midpoint + setTxGain((minTxGain() + maxTxGain()) / 2); + setRxGain((minRxGain() + maxRxGain()) / 2); + + m_lms_stream_rx = { + .isTx = false, + .channel = 0, + .fifoSize = 1024 * 1024, + .throughputVsLatency = 0.3, + .dataFmt = LMS_FMT_I16, + } + m_lms_stream_tx = { + .ixTx = true, + .channel = 0, + .fifoSize = 1024 * 1024, + .throughputVsLatency = 0.3, + .dataFmt = LMS_FMT_I16, + } + + if (LMS_SetupStream(m_lms_dev, &m_lms_stream_rx) < 0) + return false; + + if (LMS_SetupStream(m_lms_dev, &m_lms_stream_tx) < 0) + return false; + + if (LMS_StartStream(&m_lms_stream_rx) < 0) + return false; + + if (LMS_StartStream(&m_lms_stream_tx) < 0) + return false; + + started = true; + return true; +} + +bool LMSDevice::stop() +{ + if (!started) + return true; + + LMS_StopStream(&m_lms_stream_tx); + LMS_StopStream(&m_lms_stream_rx); + + LMS_EnableChannel(m_lms_dev, LMS_CH_RX, 0, false); + LMS_EnableChannel(m_lms_dev, LMS_CH_TX, 0, false); + + return true; +} + +double LMSDevice::maxTxGain() +{ + return 60.0; +} + +double LMSDevice::minTxGain() +{ + return 0.0; +} + +double LMSDevice::maxRxGain() +{ + return 70.0; +} + +double LMSDevice::minRxGain() +{ + return 0.0; +} + +double LMSDevice::setTxGain(double dB, size_t chan) +{ + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return 0.0; + } + + if (dB > maxTxGain()) + dB = maxTxGain(); + if (dB < minTxGain()) + dB = minTxGain(); + + LOG(NOTICE) << "Setting TX gain to " << dB << " dB."; + + if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0) + LOG(ERR) << "Error setting TX gain"; + + return dB; +} + +double LMSDevice::setRxGain(double dB, size_t chan) +{ + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return 0.0; + } + + dB = 47.0; + + if (dB > maxRxGain()) + dB = maxRxGain(); + if (dB < minRxGain()) + dB = minRxGain(); + + LOG(NOTICE) << "Setting RX gain to " << dB << " dB."; + + if (LMS_SetGaindB(m_lms_dev, LMS_CH_RX, chan, dB) < 0) + LOG(ERR) << "Error setting RX gain"; + + return dB; +} + +int get_ant_idx(const char *name, bool dir_tx) +{ + lms_name_t name_list; + int num_names; + num_names = LMS_GetAntennaList(m_lms_dev, dir_tx, &name_list); + for (i = 0; i < num_names; i++) { + if (!strcmp(name, name_list[i])) + return i; + } + return -1; +} + +bool LMSDevice::setRxAntenna(const std::string & ant, size_t chan) +{ + int idx; + + if (chan >= rx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return false; + } + + idx = get_ant_idx(ant, LMS_CH_RX); + if (idx < 0) { + LOG(ALERT) << "Invalid Rx Antenna"; + return false; + } + + if (LMS_SetAntenna(m_lms_dev, LMS_CH_RX, chan, idx) < 0) { + LOG(ALERT) << "Unable to set Rx Antenna"; + } + + return true; +} + +std::string LMSDevice::getRxAntenna(size_t chan) +{ + if (chan >= rx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return ""; + } + + idx = LMS_GetAntenna(m_lms_dev, LMS_CH_RX, chan); + if (idx < 0) { + LOG(ALERT) << "Error getting Rx Antenna"; + return ""; + } + + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, &list) < idx) { + LOG(ALERT) << "Error getting Rx Antenna List"; + return ""; + } + + return list[idx]; +} + +bool LMSDevice::setTxAntenna(const std::string & ant, size_t chan) +{ + int idx; + + if (chan >= tx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return false; + } + + idx = get_ant_idx(ant, LMS_CH_TX); + if (idx < 0) { + LOG(ALERT) << "Invalid Rx Antenna"; + return false; + } + + if (LMS_SetAntenna(m_lms_dev, LMS_CH_TX, chan, idx) < 0) { + LOG(ALERT) << "Unable to set Rx Antenna"; + } + + return true; +} + +std::string LMSDevice::getTxAntenna(size_t chan) +{ + int idx; + + if (chan >= tx_paths.size()) { + LOG(ALERT) << "Requested non-existent channel " << chan; + return ""; + } + + idx = LMS_GetAntenna(m_lms_dev, LMS_CH_TX, chan); + if (idx < 0) { + LOG(ALERT) << "Error getting Tx Antenna"; + return ""; + } + + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, &list) < idx) { + LOG(ALERT) << "Error getting Tx Antenna List"; + return ""; + } + + return list[idx]; +} + +// NOTE: Assumes sequential reads +int LMSDevice::readSamples(std::vector < short *>&bufs, int len, bool * overrun, + TIMESTAMP timestamp, bool * underrun, unsigned *RSSI) +{ + lms_stream_meta_t rx_metadata = { + .flushPartialPacket = false, + .waitForTimestamp = false, + }; + int rc; + + if (bufs.size != 1) { + LOG(ALERT) << "Invalid channel combination " << bufs.size(); + return -1; + } + + /* Shift read time with respect to transmit clock */ + timestamp += ts_offset; + + rc = LMS_RecvStream(&m_lms_stream_rx, bufs[0], len, &rx_metadata, 100); + + *overrun = false; + *underrun = false; + + if (LMS_GetStreamStatus(&m_lms_stream_rx, &status) == 0) { + if (status.underrun > m_last_rx_underruns) + *underrun = true; + m_last_rx_underruns = status.underrun; + + if (status.overrun > m_last_rx_overruns) + *overrun = true; + m_last_rx_overruns = status.overrun; + } + + samplesRead += rc; + + return rc; +} + +int LMSDevice::writeSamples(std::vector < short *>&bufs, int len, + bool * underrun, unsigned long long timestamp, + bool isControl) +{ + lms_stream_status_t status; + lms_stream_meta_t tx_metadata = { + .flushPartialPacket = false, + .waitForTimestamp = true, + .timestamp = timestamp, + }; + int rc; + + if (isControl) { + LOG(ERR) << "Control packets not supported"; + return 0; + } + + if (bufs.size() != 1) { + LOG(ALERT) << "Invalid channel combination " << bufs.size(); + return -1; + } + + rc = LMS_Send_Stream(&m_lms_stream_tx, bufs[0], len, &tx_metadata, 100); + if (rc != len) { + LOG(ALERT) << "LMS: Device send timed out "; + } + + *underrun = false; + + if (LMS_GetStreamStatus(&m_lms_stream_tx, &status) == 0) { + if (status.underrun > m_last_tx_underruns) + *underrun = true; + m_last_tx_underruns = status.underrun; + } + + samplesWritten += rc; + + return rc; +} + +bool LMSDevice::updateAlignment(TIMESTAMP timestamp) +{ + short data[] = { 0x00, 0x02, 0x00, 0x00 }; + uint32_t *wordPtr = (uint32_t *) data; + *wordPtr = host_to_usrp_u32(*wordPtr); + bool tmpUnderrun; + + std::vector < short *>buf(1, data); + if (writeSamples(buf, 1, &tmpUnderrun, timestamp & 0x0ffffffffll, true)) { + pingTimestamp = timestamp; + return true; + } + return false; +} + +bool LMSDevice::setTxFreq(double wFreq, size_t chan) +{ + + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return false; + } + + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_TX, chan, wFreq) < 0) { + LOG(ALERT) << "set Tx: " << wFreq << " failed!"; + return false; + } + + return true; +} + +bool LMSDevice::setRxFreq(double wFreq, size_t chan) +{ + if (chan) { + LOG(ALERT) << "Invalid channel " << chan; + return false; + } + + if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_RX, chan, wFreq) < 0) { + LOG(ALERT) << "set Rx: " << wFreq << " failed!"; + return false; + } + + return true; +} + +RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, + InterfaceType iface, size_t chans, double offset, + const std::vector < std::string > &tx_paths, + const std::vector < std::string > &rx_paths) +{ + return new LMSDevice(tx_sps); +} diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h new file mode 100644 index 0000000..653d159 --- /dev/null +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -0,0 +1,179 @@ +/* +* Copyright 2018 sysmocom - s.f.m.c. GmbH +* +* This software is distributed under multiple licenses; see the COPYING file in the main directory for licensing information for this specific distribuion. +* +* This use of this software may be subject to additional restrictions. +* See the LEGAL file in the main directory for details. + + 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. + +*/ + +#ifndef _LMS_DEVICE_H_ +#define _LMS_DEVICE_H_ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "radioDevice.h" + +#include +#include +#include +#include +#include + +/** A class to handle a LimeSuite supported device */ +class LMSDevice:public RadioDevice { + +private: + + lms_device_t *m_lms_dev; + lms_stream_t m_lms_Stream_rx; + lms_stream_t m_lms_Stream_tx; + + int sps; + + unsigned long long samplesRead; ///< number of samples read from LMS + unsigned long long samplesWritten; ///< number of samples sent to LMS + + bool started; ///< flag indicates LMS has started + bool skipRx; ///< set if LMS is transmit-only. + + TIMESTAMP ts_offset; + +public: + + /** Object constructor */ + LMSDevice(size_t sps); + + /** Instantiate the LMS */ + int open(const std::string &, int, bool); + + /** Start the LMS */ + bool start(); + + /** Stop the LMS */ + bool stop(); + + /** Set priority not supported */ + void setPriority(float prio = 0.5) { + } enum TxWindowType getWindowType() { + return TX_WINDOW_LMS1; + } + + /** + Read samples from the LMS. + @param buf preallocated buf to contain read result + @param len number of samples desired + @param overrun Set if read buffer has been overrun, e.g. data not being read fast enough + @param timestamp The timestamp of the first samples to be read + @param underrun Set if LMS does not have data to transmit, e.g. data not being sent fast enough + @param RSSI The received signal strength of the read result + @return The number of samples actually read + */ + int readSamples(std::vector < short *>&buf, int len, bool * overrun, + TIMESTAMP timestamp = 0xffffffff, bool * underrun = + NULL, unsigned *RSSI = NULL); + /** + Write samples to the LMS. + @param buf Contains the data to be written. + @param len number of samples to write. + @param underrun Set if LMS does not have data to transmit, e.g. data not being sent fast enough + @param timestamp The timestamp of the first sample of the data buffer. + @param isControl Set if data is a control packet, e.g. a ping command + @return The number of samples actually written + */ + int writeSamples(std::vector < short *>&bufs, int len, bool * underrun, + TIMESTAMP timestamp = 0xffffffff, bool isControl = + false); + + /** Update the alignment between the read and write timestamps */ + bool updateAlignment(TIMESTAMP timestamp); + + /** Set the transmitter frequency */ + bool setTxFreq(double wFreq, size_t chan = 0); + + /** Set the receiver frequency */ + bool setRxFreq(double wFreq, size_t chan = 0); + + /** Returns the starting write Timestamp*/ + TIMESTAMP initialWriteTimestamp(void) { + return 20000; + } + + /** Returns the starting read Timestamp*/ + TIMESTAMP initialReadTimestamp(void) { + return 20000; + } + + /** returns the full-scale transmit amplitude **/ + double fullScaleInputValue() { + return 13500.0; + } + + /** returns the full-scale receive amplitude **/ + double fullScaleOutputValue() { + return 9450.0; + } + + /** sets the receive chan gain, returns the gain setting **/ + double setRxGain(double dB, size_t chan = 0); + + /** get the current receive gain */ + double getRxGain(size_t chan = 0) { + return rxGain; + } + + /** return maximum Rx Gain **/ + double maxRxGain(void); + + /** return minimum Rx Gain **/ + double minRxGain(void); + + /** sets the transmit chan gain, returns the gain setting **/ + double setTxGain(double dB, size_t chan = 0); + + /** return maximum Tx Gain **/ + double maxTxGain(void); + + /** return minimum Rx Gain **/ + double minTxGain(void); + + /** sets the RX path to use, returns true if successful and false otherwise */ + bool setRxAntenna(const std::string & ant, size_t chan = 0); + + /* return the used RX path */ + std::string getRxAntenna(size_t chan = 0); + + /** sets the RX path to use, returns true if successful and false otherwise */ + bool setTxAntenna(const std::string & ant, size_t chan = 0); + + /* return the used RX path */ + std::string getTxAntenna(size_t chan = 0); + + /** Return internal status values */ + inline double getTxFreq(size_t chan = 0) { + return 0; + } + inline double getRxFreq(size_t chan = 0) { + return 0; + } + inline double getSampleRate() { + return actualSampleRate; + } + inline double numberRead() { + return samplesRead; + } + inline double numberWritten() { + return samplesWritten; + } + + std::vector < std::string > tx_paths, rx_paths; +}; + +#endif // _LMS_DEVICE_H_ -- To view, visit https://gerrit.osmocom.org/9599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iaef29c4c2585ef8c2f94866c9591919f538c1a2d Gerrit-Change-Number: 9599 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:33 +0000 Subject: Change in osmo-trx[master]: lms: Several improvements and compilation/runtime fixes In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9600 ) Change subject: lms: Several improvements and compilation/runtime fixes ...................................................................... lms: Several improvements and compilation/runtime fixes Continuation of initial work done on LimeSuite support from Harald. Change-Id: Ib2fca81b76d027b08e2891056fa076d071597783 --- M CommonLibs/Logger.h M CommonLibs/debug.c M CommonLibs/debug.h M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h 6 files changed, 274 insertions(+), 127 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/CommonLibs/Logger.h b/CommonLibs/Logger.h index 5b0b05c..e18ecfb 100644 --- a/CommonLibs/Logger.h +++ b/CommonLibs/Logger.h @@ -53,6 +53,9 @@ #define LOGC(category, level) \ Log(category, LOGL_##level, __BASE_FILE__, __LINE__).get() << "[tid=" << pthread_self() << "] " +#define LOGLV(category, level) \ + Log(category, level, __BASE_FILE__, __LINE__).get() << "[tid=" << pthread_self() << "] " + /** A C++ stream-based thread-safe logger. This object is NOT the global logger; diff --git a/CommonLibs/debug.c b/CommonLibs/debug.c index e4db2f3..01854c0 100644 --- a/CommonLibs/debug.c +++ b/CommonLibs/debug.c @@ -10,6 +10,12 @@ .color = NULL, .enabled = 1, .loglevel = LOGL_NOTICE, }, + [DLMS] = { + .name = "DLMS", + .description = "LimeSuite category", + .color = NULL, + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; const struct log_info log_info = { diff --git a/CommonLibs/debug.h b/CommonLibs/debug.h index 7038f4c..06ad74e 100644 --- a/CommonLibs/debug.h +++ b/CommonLibs/debug.h @@ -5,4 +5,5 @@ /* Debug Areas of the code */ enum { DMAIN, + DLMS, }; diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index ed51cdb..603b23d 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -24,26 +24,40 @@ #include +#include + #ifdef HAVE_CONFIG_H #include "config.h" #endif using namespace std; -const double LMSDevice::masterClockRate = 52.0e6; +constexpr double LMSDevice::masterClockRate; -LMSDevice::LMSDevice(size_t sps) +#define MAX_ANTENNA_LIST_SIZE 10 +#define LMS_SAMPLE_RATE GSMRATE*32 +#define GSM_CARRIER_BW 270000.0 /* 270kHz */ +#define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ +#define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) + +LMSDevice::LMSDevice(size_t sps, size_t chans): + m_lms_dev(NULL), sps(sps), chans(chans) { LOG(INFO) << "creating LMS device..."; - m_lms_device = NULL; - this->sps = sps; + m_lms_stream_rx.resize(chans); + m_lms_stream_tx.resize(chans); + + m_last_rx_underruns.resize(chans, 0); + m_last_rx_overruns.resize(chans, 0); + m_last_tx_underruns.resize(chans, 0); + m_last_tx_overruns.resize(chans, 0); } static void lms_log_callback(int lvl, const char *msg) { /* map lime specific log levels */ - static const lvl_map[4] = { + static const int lvl_map[5] = { [0] = LOGL_FATAL, [1] = LOGL_ERROR, [2] = LOGL_NOTICE, @@ -51,40 +65,71 @@ [4] = LOGL_DEBUG, }; /* protect against future higher log level values (lower importance) */ - if (lvl >= ARRAY_SIZE(lvl_map)) + if ((unsigned int) lvl >= ARRAY_SIZE(lvl_map)) lvl = ARRAY_SIZE(lvl_map)-1; - LOG(lvl) << msg; + LOGLV(DLMS, lvl) << msg; } -int LMSDevice::open(const std::string &, int, bool) +static void thread_enable_cancel(bool cancel) { - lms_info_str dev_str; - uint16_t dac_val; + cancel ? pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL) : + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); +} - LOG(INFO) << "opening LMS device.."; +int LMSDevice::open(const std::string &args, int ref, bool swap_channels) +{ + //lms_info_str_t dev_str; + lms_info_str_t* info_list; + uint16_t dac_val; + unsigned int i, n; + int rc; + + LOG(INFO) << "Opening LMS device.."; LMS_RegisterLogHandler(&lms_log_callback); - rc = LMS_Open(&m_lms_dev, NULL, NULL); - if (rc != 0) - return -1; + if ((n = LMS_GetDeviceList(NULL)) < 0) + LOG(ERROR) << "LMS_GetDeviceList(NULL) failed"; + LOG(DEBUG) << "Devices found: " << n; + if (n < 1) + return -1; - if (LMS_SetSampleRate(m_lms_dev, GSMRATE, sps) < 0) + info_list = new lms_info_str_t[n]; + + if (LMS_GetDeviceList(info_list) < 0) //Populate device list + LOG(ERROR) << "LMS_GetDeviceList(info_list) failed"; + + for (i = 0; i < n; i++) //print device list + LOG(DEBUG) << "Device [" << i << "]: " << info_list[i]; + + rc = LMS_Open(&m_lms_dev, info_list[0], NULL); + if (rc != 0) { + LOG(ERROR) << "LMS_GetDeviceList() failed)"; + delete [] info_list; + return -1; + } + + delete [] info_list; + + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; + if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; /* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */ - ts_offset = static_caset(8.9e-5 * GSMRATE); + ts_offset = static_cast(8.9e-5 * GSMRATE); switch (ref) { case REF_INTERNAL: + LOG(DEBUG) << "Setting Internal clock reference"; /* Ugly API: Selecting clock source implicit by writing to VCTCXO DAC ?!? */ if (LMS_VCTCXORead(m_lms_dev, &dac_val) < 0) goto out_close; - + LOG(DEBUG) << "Setting VCTCXO to " << dac_val; if (LMS_VCTCXOWrite(m_lms_dev, dac_val) < 0) goto out_close; break; - case REF_EXTENAL: + case REF_EXTERNAL: + LOG(DEBUG) << "Setting Internal clock reference to " << 10000000.0; /* Assume an external 10 MHz reference clock */ if (LMS_SetClockFreq(m_lms_dev, LMS_CLOCK_EXTREF, 10000000.0) < 0) goto out_close; @@ -94,14 +139,18 @@ goto out_close; } + LOG(INFO) << "Init LMS device"; if (LMS_Init(m_lms_dev) < 0) goto out_close; /* Perform Rx and Tx calibration */ - if (LMS_Calibrate(m_lms_dev, LMS_CH_RX, chan, 270000.0, 0) < 0) - goto out_close; - if (LMS_Calibrate(m_lms_dev, LMS_CH_TX, chan, 270000.0, 0) < 0) - goto out_close; + for (i=0; i 0)) { + rc = LMS_RecvStream(&m_lms_stream_rx[0], &buffer[0], len, &rx_metadata, 100); + LOG(DEBUG) << "Flush: Recv buffer of len " << rc << " at " << std::hex << rx_metadata.timestamp; + if (rc != len) { + LOG(ALERT) << "LMS: Device receive timed out"; + delete[] buffer; + return false; + } + + ts_initial = rx_metadata.timestamp; + } + + LOG(INFO) << "Initial timestamp " << ts_initial << std::endl; + delete[] buffer; + return true; +} + bool LMSDevice::setRxAntenna(const std::string & ant, size_t chan) { int idx; @@ -257,7 +347,7 @@ return false; } - idx = get_ant_idx(ant, LMS_CH_RX); + idx = get_ant_idx(ant, LMS_CH_RX, chan); if (idx < 0) { LOG(ALERT) << "Invalid Rx Antenna"; return false; @@ -272,6 +362,9 @@ std::string LMSDevice::getRxAntenna(size_t chan) { + lms_name_t name_list[MAX_ANTENNA_LIST_SIZE]; /* large enough list for antenna names. */ + int idx; + if (chan >= rx_paths.size()) { LOG(ALERT) << "Requested non-existent channel " << chan; return ""; @@ -283,12 +376,12 @@ return ""; } - if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, &list) < idx) { + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, name_list) < idx) { LOG(ALERT) << "Error getting Rx Antenna List"; return ""; } - return list[idx]; + return name_list[idx]; } bool LMSDevice::setTxAntenna(const std::string & ant, size_t chan) @@ -300,7 +393,7 @@ return false; } - idx = get_ant_idx(ant, LMS_CH_TX); + idx = get_ant_idx(ant, LMS_CH_TX, chan); if (idx < 0) { LOG(ALERT) << "Invalid Rx Antenna"; return false; @@ -315,6 +408,7 @@ std::string LMSDevice::getTxAntenna(size_t chan) { + lms_name_t name_list[MAX_ANTENNA_LIST_SIZE]; /* large enough list for antenna names. */ int idx; if (chan >= tx_paths.size()) { @@ -328,49 +422,73 @@ return ""; } - if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, &list) < idx) { + if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, name_list) < idx) { LOG(ALERT) << "Error getting Tx Antenna List"; return ""; } - return list[idx]; + return name_list[idx]; +} + +bool LMSDevice::requiresRadioAlign() +{ + return false; +} + +GSM::Time LMSDevice::minLatency() { + /* Empirical data from a handful of + relatively recent machines shows that the B100 will underrun when + the transmit threshold is reduced to a time of 6 and a half frames, + so we set a minimum 7 frame threshold. */ + return GSM::Time(6,7); } // NOTE: Assumes sequential reads int LMSDevice::readSamples(std::vector < short *>&bufs, int len, bool * overrun, TIMESTAMP timestamp, bool * underrun, unsigned *RSSI) { - lms_stream_meta_t rx_metadata = { - .flushPartialPacket = false, - .waitForTimestamp = false, - }; - int rc; + int rc = 0; + unsigned int i; + lms_stream_status_t status; + lms_stream_meta_t rx_metadata = {}; + rx_metadata.flushPartialPacket = false; + rx_metadata.waitForTimestamp = false; + /* Shift read time with respect to transmit clock */ + timestamp += ts_offset; + rx_metadata.timestamp = 0; - if (bufs.size != 1) { + if (bufs.size() != chans) { LOG(ALERT) << "Invalid channel combination " << bufs.size(); return -1; } - /* Shift read time with respect to transmit clock */ - timestamp += ts_offset; - - rc = LMS_RecvStream(&m_lms_stream_rx, bufs[0], len, &rx_metadata, 100); - *overrun = false; *underrun = false; + for (i = 0; i m_last_rx_underruns) - *underrun = true; - m_last_rx_underruns = status.underrun; + if (LMS_GetStreamStatus(&m_lms_stream_rx[i], &status) == 0) { + if (status.underrun > m_last_rx_underruns[i]) + *underrun = true; + m_last_rx_underruns[i] = status.underrun; - if (status.overrun > m_last_rx_overruns) - *overrun = true; - m_last_rx_overruns = status.overrun; + if (status.overrun > m_last_rx_overruns[i]) + *overrun = true; + m_last_rx_overruns[i] = status.overrun; + } + thread_enable_cancel(true); } samplesRead += rc; + if (((TIMESTAMP) rx_metadata.timestamp) < timestamp) + rc = 0; + return rc; } @@ -378,35 +496,40 @@ bool * underrun, unsigned long long timestamp, bool isControl) { - lms_stream_status_t status; - lms_stream_meta_t tx_metadata = { - .flushPartialPacket = false, - .waitForTimestamp = true, - .timestamp = timestamp, - }; int rc; + unsigned int i; + lms_stream_status_t status; + lms_stream_meta_t tx_metadata = {}; + tx_metadata.flushPartialPacket = false; + tx_metadata.waitForTimestamp = true; + tx_metadata.timestamp = timestamp; if (isControl) { LOG(ERR) << "Control packets not supported"; return 0; } - if (bufs.size() != 1) { + if (bufs.size() != chans) { LOG(ALERT) << "Invalid channel combination " << bufs.size(); return -1; } - rc = LMS_Send_Stream(&m_lms_stream_tx, bufs[0], len, &tx_metadata, 100); - if (rc != len) { - LOG(ALERT) << "LMS: Device send timed out "; - } - *underrun = false; - if (LMS_GetStreamStatus(&m_lms_stream_tx, &status) == 0) { - if (status.underrun > m_last_tx_underruns) - *underrun = true; - m_last_tx_underruns = status.underrun; + for (i = 0; i m_last_tx_underruns[i]) + *underrun = true; + m_last_tx_underruns[i] = status.underrun; + } + thread_enable_cancel(true); } samplesWritten += rc; @@ -416,17 +539,7 @@ bool LMSDevice::updateAlignment(TIMESTAMP timestamp) { - short data[] = { 0x00, 0x02, 0x00, 0x00 }; - uint32_t *wordPtr = (uint32_t *) data; - *wordPtr = host_to_usrp_u32(*wordPtr); - bool tmpUnderrun; - - std::vector < short *>buf(1, data); - if (writeSamples(buf, 1, &tmpUnderrun, timestamp & 0x0ffffffffll, true)) { - pingTimestamp = timestamp; - return true; - } - return false; + return true; } bool LMSDevice::setTxFreq(double wFreq, size_t chan) @@ -465,5 +578,5 @@ const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { - return new LMSDevice(tx_sps); + return new LMSDevice(tx_sps, chans); } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 653d159..99eed43 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -21,22 +21,33 @@ #include "radioDevice.h" -#include #include #include +#include #include #include +#include + +#define LIMESDR_TX_AMPL 0.3 /** A class to handle a LimeSuite supported device */ class LMSDevice:public RadioDevice { private: - lms_device_t *m_lms_dev; - lms_stream_t m_lms_Stream_rx; - lms_stream_t m_lms_Stream_tx; + static constexpr double masterClockRate = 52.0e6; - int sps; + lms_device_t *m_lms_dev; + std::vector m_lms_stream_rx; + std::vector m_lms_stream_tx; + + std::vector m_last_rx_underruns; + std::vector m_last_rx_overruns; + std::vector m_last_tx_underruns; + std::vector m_last_tx_overruns; + + size_t sps, chans; + double actualSampleRate; ///< the actual USRP sampling rate unsigned long long samplesRead; ///< number of samples read from LMS unsigned long long samplesWritten; ///< number of samples sent to LMS @@ -44,15 +55,20 @@ bool started; ///< flag indicates LMS has started bool skipRx; ///< set if LMS is transmit-only. - TIMESTAMP ts_offset; + TIMESTAMP ts_initial, ts_offset; + + double rxGain; + + int get_ant_idx(const std::string & name, bool dir_tx, size_t chan); + bool flush_recv(size_t num_pkts); public: /** Object constructor */ - LMSDevice(size_t sps); + LMSDevice(size_t sps, size_t chans); /** Instantiate the LMS */ - int open(const std::string &, int, bool); + int open(const std::string &args, int ref, bool swap_channels); /** Start the LMS */ bool start(); @@ -62,7 +78,9 @@ /** Set priority not supported */ void setPriority(float prio = 0.5) { - } enum TxWindowType getWindowType() { + } + + enum TxWindowType getWindowType() { return TX_WINDOW_LMS1; } @@ -103,22 +121,22 @@ /** Returns the starting write Timestamp*/ TIMESTAMP initialWriteTimestamp(void) { - return 20000; + return ts_initial; } /** Returns the starting read Timestamp*/ TIMESTAMP initialReadTimestamp(void) { - return 20000; + return ts_initial; } /** returns the full-scale transmit amplitude **/ double fullScaleInputValue() { - return 13500.0; + return(double) SHRT_MAX * LIMESDR_TX_AMPL; } /** returns the full-scale receive amplitude **/ double fullScaleOutputValue() { - return 9450.0; + return (double) SHRT_MAX; } /** sets the receive chan gain, returns the gain setting **/ @@ -156,6 +174,12 @@ /* return the used RX path */ std::string getTxAntenna(size_t chan = 0); + /** return whether user drives synchronization of Tx/Rx of USRP */ + bool requiresRadioAlign(); + + /** return whether user drives synchronization of Tx/Rx of USRP */ + virtual GSM::Time minLatency(); + /** Return internal status values */ inline double getTxFreq(size_t chan = 0) { return 0; diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index 44636d5..c5cd461 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -39,7 +39,7 @@ public: /* Available transport bus types */ - enum TxWindowType { TX_WINDOW_USRP1, TX_WINDOW_FIXED }; + enum TxWindowType { TX_WINDOW_USRP1, TX_WINDOW_FIXED, TX_WINDOW_LMS1 }; /* Radio interface types */ enum InterfaceType { -- To view, visit https://gerrit.osmocom.org/9600 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib2fca81b76d027b08e2891056fa076d071597783 Gerrit-Change-Number: 9600 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:33 +0000 Subject: Change in osmo-trx[master]: build: Add support for LimeSuite device backend In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9601 ) Change subject: build: Add support for LimeSuite device backend ...................................................................... build: Add support for LimeSuite device backend Change-Id: I239e1b37263a62b374d84974c9347e3654072e87 --- M Transceiver52M/Makefile.am M Transceiver52M/device/Makefile.am A Transceiver52M/device/lms/Makefile.am M configure.ac 4 files changed, 35 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am index bb253bb..a2163bf 100644 --- a/Transceiver52M/Makefile.am +++ b/Transceiver52M/Makefile.am @@ -99,3 +99,13 @@ $(USRP_LIBS) osmo_trx_usrp1_CPPFLAGS = $(AM_CPPFLAGS) $(USRP_CFLAGS) endif + +if DEVICE_LMS +bin_PROGRAMS += osmo-trx-lms +osmo_trx_lms_SOURCES = osmo-trx.cpp +osmo_trx_lms_LDADD = \ + $(COMMON_LDADD) \ + $(LMS_LIBS) \ + $(builddir)/device/lms/libdevice.la +osmo_trx_lms_CPPFLAGS = $(AM_CPPFLAGS) $(LMS_CFLAGS) +endif diff --git a/Transceiver52M/device/Makefile.am b/Transceiver52M/device/Makefile.am index 2788eaa..1a2d077 100644 --- a/Transceiver52M/device/Makefile.am +++ b/Transceiver52M/device/Makefile.am @@ -11,3 +11,7 @@ if DEVICE_UHD SUBDIRS += uhd endif + +if DEVICE_LMS +SUBDIRS += lms +endif diff --git a/Transceiver52M/device/lms/Makefile.am b/Transceiver52M/device/lms/Makefile.am new file mode 100644 index 0000000..8471074 --- /dev/null +++ b/Transceiver52M/device/lms/Makefile.am @@ -0,0 +1,10 @@ +include $(top_srcdir)/Makefile.common + +AM_CPPFLAGS = -Wall $(STD_DEFINES_AND_INCLUDES) -I${srcdir}/.. +AM_CXXFLAGS = -lpthread $(LIBOSMOCORE_CFLAGS) $(LIBOSMOCTRL_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LMS_CFLAGS) + +noinst_HEADERS = LMSDevice.h + +noinst_LTLIBRARIES = libdevice.la + +libdevice_la_SOURCES = LMSDevice.cpp diff --git a/configure.ac b/configure.ac index 5f66225..aae151b 100644 --- a/configure.ac +++ b/configure.ac @@ -100,6 +100,11 @@ [enable USRP1 gnuradio based transceiver]) ]) +AC_ARG_WITH(lms, [ + AS_HELP_STRING([--with-lms], + [enable LimeSuite gnuradio based transceiver]) +]) + AC_ARG_WITH(singledb, [ AS_HELP_STRING([--with-singledb], [enable single daughterboard use on USRP1]) @@ -133,6 +138,10 @@ PKG_CHECK_MODULES(USRP, usrp >= 3.3) ]) +AS_IF([test "x$with_lms" = "xyes"], [ + PKG_CHECK_MODULES(LMS, LimeSuite) +]) + AS_IF([test "x$with_uhd" != "xno"],[ PKG_CHECK_MODULES(UHD, uhd >= 003.011, [AC_DEFINE(USE_UHD_3_11, 1, UHD version 3.11.0 or higher)], @@ -184,6 +193,7 @@ AM_CONDITIONAL(DEVICE_UHD, [test "x$with_uhd" != "xno"]) AM_CONDITIONAL(DEVICE_USRP1, [test "x$with_usrp1" = "xyes"]) +AM_CONDITIONAL(DEVICE_LMS, [test "x$with_lms" = "xyes"]) AM_CONDITIONAL(ARCH_ARM, [test "x$with_neon" = "xyes" || test "x$with_neon_vfpv4" = "xyes"]) AM_CONDITIONAL(ARCH_ARM_A15, [test "x$with_neon_vfpv4" = "xyes"]) @@ -211,6 +221,7 @@ Transceiver52M/device/Makefile \ Transceiver52M/device/uhd/Makefile \ Transceiver52M/device/usrp1/Makefile \ + Transceiver52M/device/lms/Makefile \ tests/Makefile \ tests/CommonLibs/Makefile \ tests/Transceiver52M/Makefile \ -- To view, visit https://gerrit.osmocom.org/9601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I239e1b37263a62b374d84974c9347e3654072e87 Gerrit-Change-Number: 9601 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:33 +0000 Subject: Change in osmo-trx[master]: update .gitignore to include osmo-trx-lms In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9602 ) Change subject: update .gitignore to include osmo-trx-lms ...................................................................... update .gitignore to include osmo-trx-lms Change-Id: I52efd2f71eb61baa80427ab9f7b518f17d514792 --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/.gitignore b/.gitignore index 93c21e4..83c59d9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *.la Transceiver52M/osmo-trx-uhd Transceiver52M/osmo-trx-usrp1 +Transceiver52M/osmo-trx-lms # tests tests/CommonLibs/BitVectorTest -- To view, visit https://gerrit.osmocom.org/9602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I52efd2f71eb61baa80427ab9f7b518f17d514792 Gerrit-Change-Number: 9602 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:34 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Call LMS_Init() before setting sample rate In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9603 ) Change subject: LMSDevice: Call LMS_Init() before setting sample rate ...................................................................... LMSDevice: Call LMS_Init() before setting sample rate LMS_Init() will override basically all device settings with their default value, including the sample rate. We hence have to make sure to call it before any other API function that changes the device config such as sample rate, frequency, filter bandwidth, ... Change-Id: I4cdbae8406b5e1e93da491e90f8bad41d4be748b --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 6 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 603b23d..0442e27 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -112,6 +112,12 @@ delete [] info_list; + LOG(INFO) << "Init LMS device"; + if (LMS_Init(m_lms_dev) != 0) { + LOG(ERROR) << "LMS_Init() failed"; + return -1; + } + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; @@ -139,10 +145,6 @@ goto out_close; } - LOG(INFO) << "Init LMS device"; - if (LMS_Init(m_lms_dev) < 0) - goto out_close; - /* Perform Rx and Tx calibration */ for (i=0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:34 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Print sample rate range + actual sample rate after setting it In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9604 ) Change subject: LMSDevice: Print sample rate range + actual sample rate after setting it ...................................................................... LMSDevice: Print sample rate range + actual sample rate after setting it Change-Id: I19c1a5b2d2431b8d39e277244e313f6e559e4d25 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 9 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 0442e27..9301cf4 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -118,9 +118,18 @@ return -1; } + lms_range_t range; + if (LMS_GetSampleRateRange(m_lms_dev, LMS_CH_RX, &range)) + goto out_close; + LOG(DEBUG) << "Sample Rate: Min=" << range.min << " Max=" << range.max << " Step=" << range.step; + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; + float_type sr_host, sr_rf; + if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf)) + goto out_close; + LOG(DEBUG) << "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); -- To view, visit https://gerrit.osmocom.org/9604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I19c1a5b2d2431b8d39e277244e313f6e559e4d25 Gerrit-Change-Number: 9604 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:35 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Typo fix: s/Internal/External In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9605 ) Change subject: LMSDevice: Typo fix: s/Internal/External ...................................................................... LMSDevice: Typo fix: s/Internal/External Change-Id: Icacfe6da90a89c7f00d62c580948fb913998eaa7 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9301cf4..c131aea 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -144,7 +144,7 @@ goto out_close; break; case REF_EXTERNAL: - LOG(DEBUG) << "Setting Internal clock reference to " << 10000000.0; + LOG(DEBUG) << "Setting External clock reference to " << 10000000.0; /* Assume an external 10 MHz reference clock */ if (LMS_SetClockFreq(m_lms_dev, LMS_CLOCK_EXTREF, 10000000.0) < 0) goto out_close; -- To view, visit https://gerrit.osmocom.org/9605 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icacfe6da90a89c7f00d62c580948fb913998eaa7 Gerrit-Change-Number: 9605 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:35 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Set low-pass filters to smallest possible option In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9606 ) Change subject: LMSDevice: Set low-pass filters to smallest possible option ...................................................................... LMSDevice: Set low-pass filters to smallest possible option Rx 1.4 MHz, Tx 5MHz. Both massively too wide for GSM, but there's no smaller band-width available. Change-Id: I9723c9a2ea77f65bfa9d796d7c44adc2417e89cf --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index c131aea..3b2ce5e 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -156,6 +156,10 @@ /* Perform Rx and Tx calibration */ for (i=0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:36 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Fix initial timestamp offset of 2500 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9607 ) Change subject: LMSDevice: Fix initial timestamp offset of 2500 ...................................................................... LMSDevice: Fix initial timestamp offset of 2500 ts_initial must not point to the timestamp of the first sample in the last "flush" sample buffer, but to the first timestamp we expect in the next buffer. Change-Id: I23af62870544d4c6cf5f6e2d6578936603bceb91 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 3b2ce5e..9cfa96d 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -345,7 +345,7 @@ return false; } - ts_initial = rx_metadata.timestamp; + ts_initial = rx_metadata.timestamp + len; } LOG(INFO) << "Initial timestamp " << ts_initial << std::endl; -- To view, visit https://gerrit.osmocom.org/9607 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I23af62870544d4c6cf5f6e2d6578936603bceb91 Gerrit-Change-Number: 9607 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:36 +0000 Subject: Change in osmo-trx[master]: LMS_Device: Set ts_offset to 0. In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9608 ) Change subject: LMS_Device: Set ts_offset to 0. ...................................................................... LMS_Device: Set ts_offset to 0. I'm not quite sure what the ts_offset is for, but by using "0" we are now receiving exactly the timestamp that we're expecting: LMSDevice.cpp:486 [tid=140576250332928] chan 0 recv buffer of len 2500 expect 305ed0 got 305ed0 (305ed0) diff=0 Change-Id: I270c94945b1af9662cfc468cfda1ae3af3ac0a27 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9cfa96d..5f25da5 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -131,7 +131,8 @@ goto out_close; LOG(DEBUG) << "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); + //ts_offset = static_cast(8.9e-5 * GSMRATE); + ts_offset = 0; switch (ref) { case REF_INTERNAL: -- To view, visit https://gerrit.osmocom.org/9608 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I270c94945b1af9662cfc468cfda1ae3af3ac0a27 Gerrit-Change-Number: 9608 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:36 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9609 ) Change subject: LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps ...................................................................... LMSDevice: Reduce Rx logging verbosity: Only log unexpected timestamps Change-Id: I06b35efb7368616b9f4d348da574cd524ffe3ea6 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 5f25da5..2a40f46 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -483,7 +483,8 @@ for (i = 0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:36 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Set correct values for Max{Tx, Rx}Gain In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9610 ) Change subject: LMSDevice: Set correct values for Max{Tx,Rx}Gain ...................................................................... LMSDevice: Set correct values for Max{Tx,Rx}Gain Change-Id: I3b3a7080a69e15d8d6770186810d922227439099 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 2a40f46..f1714a0 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -250,7 +250,7 @@ double LMSDevice::maxTxGain() { - return 60.0; + return 73.0; } double LMSDevice::minTxGain() @@ -260,7 +260,7 @@ double LMSDevice::maxRxGain() { - return 70.0; + return 73.0; } double LMSDevice::minRxGain() -- To view, visit https://gerrit.osmocom.org/9610 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3b3a7080a69e15d8d6770186810d922227439099 Gerrit-Change-Number: 9610 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:37 +0000 Subject: Change in osmo-trx[master]: LMSDevice: Fix setup failure with LimeSuite > 18.04.1 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9611 ) Change subject: LMSDevice: Fix setup failure with LimeSuite > 18.04.1 ...................................................................... LMSDevice: Fix setup failure with LimeSuite > 18.04.1 Fixes: https://github.com/myriadrf/LimeSuite/issues/184 Change-Id: Ia9f37995cd10d19d6820e3e12b8ee8f3efbff5d4 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index f1714a0..fb1b794 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -159,7 +159,7 @@ for (i=0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:37 +0000 Subject: Change in osmo-trx[master]: lms: Makefile.am: Reorder params to fix link issue In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9612 ) Change subject: lms: Makefile.am: Reorder params to fix link issue ...................................................................... lms: Makefile.am: Reorder params to fix link issue It seems the order in which static code and -lfoo is passed to the linker matters. This commit is a lms specific follow-up of commit 2a8183bdf0dfd5c5a59c3933fb932e827ddf811c. Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4 --- M Transceiver52M/Makefile.am 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/Makefile.am b/Transceiver52M/Makefile.am index a2163bf..28c47ab 100644 --- a/Transceiver52M/Makefile.am +++ b/Transceiver52M/Makefile.am @@ -104,8 +104,8 @@ bin_PROGRAMS += osmo-trx-lms osmo_trx_lms_SOURCES = osmo-trx.cpp osmo_trx_lms_LDADD = \ + $(builddir)/device/lms/libdevice.la \ $(COMMON_LDADD) \ - $(LMS_LIBS) \ - $(builddir)/device/lms/libdevice.la + $(LMS_LIBS) osmo_trx_lms_CPPFLAGS = $(AM_CPPFLAGS) $(LMS_CFLAGS) endif -- To view, visit https://gerrit.osmocom.org/9612 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I59c20d268ecac4c22689124165c47295bd9176d4 Gerrit-Change-Number: 9612 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:37 +0000 Subject: Change in osmo-trx[master]: lms: Check LPBFW to set is within supported range In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9613 ) Change subject: lms: Check LPBFW to set is within supported range ...................................................................... lms: Check LPBFW to set is within supported range As of LimeSuite 618fbb9c3188b36d75ad5785a97b8887dcc468f6, it seems 5e6 is within the returned range, but LMS_SetLPFBW fails anyway. See for more information: https://github.com/myriadrf/LimeSuite/issues/184 Change-Id: I967e7da7c0e3e8138b76733ee4a0e6311d20b62e --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 26 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index fb1b794..d9b5ba6 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -77,10 +77,18 @@ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); } +static void print_range(const char* name, lms_range_t *range) +{ + LOG(DEBUG) << name << ": Min=" << range->min << " Max=" << range->max + << " Step=" << range->step; +} + int LMSDevice::open(const std::string &args, int ref, bool swap_channels) { //lms_info_str_t dev_str; lms_info_str_t* info_list; + lms_range_t range_lpfbw_rx, range_lpfbw_tx, range_sr; + float_type sr_host, sr_rf, lpfbw_rx, lpfbw_tx; uint16_t dac_val; unsigned int i, n; int rc; @@ -118,18 +126,18 @@ return -1; } - lms_range_t range; - if (LMS_GetSampleRateRange(m_lms_dev, LMS_CH_RX, &range)) + if (LMS_GetSampleRateRange(m_lms_dev, LMS_CH_RX, &range_sr)) goto out_close; - LOG(DEBUG) << "Sample Rate: Min=" << range.min << " Max=" << range.max << " Step=" << range.step; + print_range("Sample Rate", &range_sr); LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) goto out_close; - float_type sr_host, sr_rf; + if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf)) goto out_close; LOG(DEBUG) << "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); ts_offset = 0; @@ -155,11 +163,23 @@ goto out_close; } + if (LMS_GetLPFBWRange(m_lms_dev, LMS_CH_RX, &range_lpfbw_rx)) + goto out_close; + print_range("LPFBWRange Rx", &range_lpfbw_rx); + if (LMS_GetLPFBWRange(m_lms_dev, LMS_CH_RX, &range_lpfbw_tx)) + goto out_close; + print_range("LPFBWRange Tx", &range_lpfbw_tx); + lpfbw_rx = OSMO_MIN(OSMO_MAX(1.4001e6, range_lpfbw_rx.min), range_lpfbw_rx.max); + lpfbw_tx = OSMO_MIN(OSMO_MAX(5.2e6, range_lpfbw_tx.min), range_lpfbw_tx.max); + + LOG(DEBUG) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx; + /* Perform Rx and Tx calibration */ for (i=0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:37 +0000 Subject: Change in osmo-trx[master]: lms: Use same timestamp offset like when using LimeSDR via UHD In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9614 ) Change subject: lms: Use same timestamp offset like when using LimeSDR via UHD ...................................................................... lms: Use same timestamp offset like when using LimeSDR via UHD The tx timestamp offset was not set. We set it to the same value as it was in UHD interface for LimeSDR Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 2 insertions(+), 5 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index d9b5ba6..3e3c5f6 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -139,8 +139,7 @@ LOG(DEBUG) << "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); - ts_offset = 0; + ts_offset = static_cast(8.9e-5 * GSMRATE * sps); /* time * sample_rate */ switch (ref) { case REF_INTERNAL: @@ -489,8 +488,6 @@ lms_stream_meta_t rx_metadata = {}; rx_metadata.flushPartialPacket = false; rx_metadata.waitForTimestamp = false; - /* Shift read time with respect to transmit clock */ - timestamp += ts_offset; rx_metadata.timestamp = 0; if (bufs.size() != chans) { @@ -539,7 +536,7 @@ lms_stream_meta_t tx_metadata = {}; tx_metadata.flushPartialPacket = false; tx_metadata.waitForTimestamp = true; - tx_metadata.timestamp = timestamp; + tx_metadata.timestamp = timestamp - ts_offset; /* Shift Tx time by offset */ if (isControl) { LOG(ERR) << "Control packets not supported"; -- To view, visit https://gerrit.osmocom.org/9614 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837 Gerrit-Change-Number: 9614 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:38 +0000 Subject: Change in osmo-trx[master]: lms: Reduce log level of "send buffer of len ..." In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9615 ) Change subject: lms: Reduce log level of "send buffer of len ..." ...................................................................... lms: Reduce log level of "send buffer of len ..." Log level of "send buffer of len ..." messages was changed as it was causing problems on some machines. Change-Id: I605d50e81966c7bd169b27788d62af6fb54c84e1 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 3e3c5f6..9c74c0a 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -551,7 +551,7 @@ *underrun = false; for (i = 0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:39 +0000 Subject: Change in osmo-trx[master]: lms: fix LMS_StartStream() handling for multiple channels In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9616 ) Change subject: lms: fix LMS_StartStream() handling for multiple channels ...................................................................... lms: fix LMS_StartStream() handling for multiple channels LMS_StartStream() (in LMSDevice::start()) was moved to separate loop. It is because LMS_SetupStream() would fail for second channel if streaming has already been started (LMS_StartStream()) for single channel configuration. Change-Id: I6704bb92864aa81417507c4ae24a22f41dc529c1 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 9c74c0a..ad6f67b 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -205,6 +205,7 @@ unsigned int i; + /* configure the channels/streams */ for (i=0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:39 +0000 Subject: Change in osmo-trx[master]: lms: Reduce Rx gain from 47 to 34 dB In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9617 ) Change subject: lms: Reduce Rx gain from 47 to 34 dB ...................................................................... lms: Reduce Rx gain from 47 to 34 dB Initially, Rx gain was hardcoded to be 47. This was too high for our setup and we were constantly getting "clipping detected" messages. Reducing Rx gain to 34 solved the issue. However, it looks like gains should be controlled through configuration files. Change-Id: I30580f18c4ad630c09f725b1d24c125fc3119809 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index ad6f67b..c531a7f 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -319,7 +319,7 @@ return 0.0; } - dB = 47.0; + dB = 34.0; if (dB > maxRxGain()) dB = maxRxGain(); -- To view, visit https://gerrit.osmocom.org/9617 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I30580f18c4ad630c09f725b1d24c125fc3119809 Gerrit-Change-Number: 9617 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:45:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:45:43 +0000 Subject: Change in osmo-trx[master]: move set_antennas() from UHD to generic radioDevice base class In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9618 ) Change subject: move set_antennas() from UHD to generic radioDevice base class ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba Gerrit-Change-Number: 9618 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:45:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:46:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:46:49 +0000 Subject: Change in osmo-trx[master]: move set_antennas() from UHD to generic radioDevice base class In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9618 ) Change subject: move set_antennas() from UHD to generic radioDevice base class ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba Gerrit-Change-Number: 9618 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:46:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:46:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:46:55 +0000 Subject: Change in osmo-trx[master]: move set_antennas() from UHD to generic radioDevice base class In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9618 ) Change subject: move set_antennas() from UHD to generic radioDevice base class ...................................................................... Patch Set 2: -Verified -- To view, visit https://gerrit.osmocom.org/9618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba Gerrit-Change-Number: 9618 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:46:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:47:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:47:12 +0000 Subject: Change in osmo-trx[master]: lms: Fix support for rx_paths / tx_paths In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9619 ) Change subject: lms: Fix support for rx_paths / tx_paths ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3 Gerrit-Change-Number: 9619 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:47:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 13 21:47:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Jun 2018 21:47:19 +0000 Subject: Change in osmo-trx[master]: lms: Call set_antennas() during open() method In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9620 ) Change subject: lms: Call set_antennas() during open() method ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0bca58266b59f1315ec72b6407fe4f4495aff678 Gerrit-Change-Number: 9620 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 13 Jun 2018 21:47:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 02:18:45 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 14 Jun 2018 02:18:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9626 Change subject: bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL ...................................................................... bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL The intention is to ignore RLL REL requests, and not to actually block the alt statement in f_expect_chan_rel() if any RLL REL messages show up. Change-Id: I3bbcdc41d186a3464cd4adb5c5b770bdec056993 --- M bsc/BSC_Tests.ttcn 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/26/9626/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index bab56d1..df51e7f 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -763,6 +763,11 @@ f_ipa_tx(0, ts_RSL_REL_CONF(rsl_chan_nr, main_dcch)); repeat; } + [not handle_rll_rel] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, + tr_RSL_REL_REQ(rsl_chan_nr, ?))) { + /* Do not reply, just continue */ + repeat; + } /* Expect RF channel release from BSC on Abis */ [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL))) { -- To view, visit https://gerrit.osmocom.org/9626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3bbcdc41d186a3464cd4adb5c5b770bdec056993 Gerrit-Change-Number: 9626 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 02:18:46 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 14 Jun 2018 02:18:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: log / comment tweaks Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9627 Change subject: log / comment tweaks ...................................................................... log / comment tweaks MSC_ConnectionHandler: log content of IPA CRCX ACK. The IPACC CRCX isn't easily readable in wireshark, and I wanted to see what we were actually sending. BSC_Tests: sprinkle logs to illustrate what the dyn PDCH tests expect. BSC_Tests: tweak comment to mention that inter-BSC HO MT *does* allow N-CONNECT from MSC. f_tc_assignment_fr_a5_1_codec_missing: mark the missing IE beyond doubt. Change-Id: I93c2914e766e200d89308cc81dd803e939b9b28c --- M bsc/BSC_Tests.ttcn M bsc/MSC_ConnectionHandler.ttcn 2 files changed, 12 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/9627/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index df51e7f..3bd1096 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -522,7 +522,8 @@ * Assignment Testing ***********************************************************************/ -/* Verify that the BSC refuses any BSSAP connection from the MSC (They are all BSC->MSC direction) */ +/* Verify that the BSC refuses any BSSAP connection from the MSC (They are all BSC->MSC direction, + * except for the inter-BSC handover, MT side) */ testcase TC_outbound_connect() runs on test_CT { f_init(1); @@ -1577,6 +1578,8 @@ const OCT8 kc := '0001020304050607'O; ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); + /* Omit: ass_cmd.pdu.bssmap.assignmentRequest.codecList */ + f_establish_fully(ass_cmd, exp_fail); } testcase TC_assignment_fr_a5_1_codec_missing() runs on test_CT { @@ -2289,26 +2292,31 @@ var RslChannelNr chan_nr := valueof(t_RslChanNr_Bm(6)); + log("TCH/F_PDCH pchan starts out in TCH/F mode:"); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, TCHF_MODE); /* The BSC will activate the dynamic PDCH by default, so confirm that */ rsl_unused := f_exp_ipa_rx(0, tr_RSL_IPA_PDCH_ACT(chan_nr)); f_ipa_tx(0, ts_RSL_IPA_PDCH_ACT_ACK(chan_nr, ts_RSL_IE_FrameNumber(2342))); f_sleep(1.0); + log("TCH/F_PDCH pchan, PDCH ACT was ACKed, so now in PDCH mode:"); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, PDCH_MODE); /* De-activate it via VTY */ f_dyn_ipa_pdch_deact(0, 0, chan_nr.tn); f_sleep(1.0); + log("TCH/F_PDCH pchan, PDCH DEACT via VTY, so now back in TCH/F mode:"); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, TCHF_MODE); /* re-activate it via VTY */ f_dyn_ipa_pdch_act(0, 0, chan_nr.tn); f_sleep(1.0); + log("TCH/F_PDCH pchan, PDCH ACT via VTY, so now in PDCH mode:"); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, PDCH_MODE); /* and finally de-activate it again */ f_dyn_ipa_pdch_deact(0, 0, chan_nr.tn); f_sleep(1.0); + log("TCH/F_PDCH pchan, PDCH DEACT via VTY, so now back in TCH/F mode:"); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, TCHF_MODE); setverdict(pass); @@ -2401,12 +2409,14 @@ var RslChannelNr chan_nr := valueof(t_RslChanNr_PDCH(6)); + log("TCH/F_TCH/H_PDCH pchan starts out in disabled mode:"); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, NONE_MODE); /* The BSC will activate the dynamic PDCH by default, so confirm that */ rsl_unused := f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?)); f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342)); f_sleep(1.0); + log("TCH/F_TCH/H_PDCH requested to PDCH ACT on startup, which was ACKed, so now in PDCH:"); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, PDCH_MODE); setverdict(pass); diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 0846762..dffe331 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -147,6 +147,7 @@ if (f_rsl_find_ie(rsl, RSL_IE_IPAC_RTP_PAYLOAD2, ie)) { g_media.bts.rtp_pt := ie.ipa_rtp_pt2; } + log("Sending IPA CRCX ACK: host=", g_media.bts.bts.host, " port=", g_media.bts.bts.port_nr, " pt=", g_media.bts.rtp_pt); RSL.send(ts_RSL_IPA_CRCX_ACK(g_chan_nr, g_media.bts.conn_id, oct2int(f_inet_addr(g_media.bts.bts.host)), g_media.bts.bts.port_nr, -- To view, visit https://gerrit.osmocom.org/9627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I93c2914e766e200d89308cc81dd803e939b9b28c Gerrit-Change-Number: 9627 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 06:31:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 06:31:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_closed_add_vty In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9583 ) Change subject: sgsn: add TC_attach_closed_add_vty ...................................................................... sgsn: add TC_attach_closed_add_vty Check acl policy closed. VTY-> SGSN: policy close MS -> SGSN: Attach Request MS <- SGSN: Identity Request IMSI MS -> SGSN: Identity Response IMSI MS <- SGSN: Attach Reject VTY-> SGSN: policy imsi-acl add IMSI MS -> SGSN: Attach Request MS <- SGSN: Identity Request IMSI MS -> SGSN: Identity Response IMSI MS <- SGSN: Identity Request IMEI MS -> SGSN: Identity Response IMEI MS <- SGSN: Attach Accept Change-Id: I1832c339a9d54c0038433ad44e292031a8905e20 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 55 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 4b6fc4c..17abb95 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1496,6 +1496,60 @@ f_sgsn_vty_destroy_subscriber_imsi(SGSNVTY, imsi); } +private function f_TC_attach_closed_imsi_added(charstring id) runs on BSSGP_ConnHdlr { + var RoutingAreaIdentificationV old_ra := f_random_RAI(); + var BssgpDecoded bd; + + /* unregister the old IMSI */ + f_bssgp_client_unregister(g_pars.imsi); + /* Simulate a foreign IMSI */ + g_pars.imsi := '001010123456789'H; + f_bssgp_client_register(g_pars.imsi, g_pars.tlli, g_pars.bssgp_cell_id); + + /* there is no auth */ + g_pars.net.expect_auth := false; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), old_ra, false, false, omit, omit)); + f_gmm_auth(); + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + setverdict(fail, "Received unexpected GMM Attach REJECT"); + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) -> value bd { + f_process_attach_accept(bd.l3_mt.msgs.gprs_mm.attachAccept); + BSSGP.send(ts_GMM_ATTACH_COMPL); + setverdict(pass); + } + } +} +testcase TC_attach_closed_add_vty() runs on test_CT { + /* VTY-> SGSN: policy close + * MS -> SGSN: Attach Request + * MS <- SGSN: Identity Request IMSI + * MS -> SGSN: Identity Response IMSI + * MS <- SGSN: Attach Reject + * VTY-> SGSN: policy imsi-acl add IMSI + * MS -> SGSN: Attach Request + * MS <- SGSN: Identity Request IMSI + * MS -> SGSN: Identity Response IMSI + * MS <- SGSN: Identity Request IMEI + * MS -> SGSN: Identity Response IMEI + * MS <- SGSN: Attach Accept + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + f_vty_config(SGSNVTY, "sgsn", "auth-policy closed"); + f_vty_config(SGSNVTY, "sgsn", "imsi-acl del 001010123456789"); + /* test with foreign IMSI: Must Reject */ + vc_conn := f_start_handler(refers(f_TC_attach_closed_foreign), testcasename(), g_gb[0], 9); + vc_conn.done; + f_vty_config(SGSNVTY, "sgsn", "imsi-acl add 001010123456789"); + /* test with same IMSI: Must Accept */ + vc_conn := f_start_handler(refers(f_TC_attach_closed_imsi_added), testcasename(), g_gb[0], 10); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1511,6 +1565,7 @@ execute( TC_attach_closed() ); execute( TC_attach_no_imei_response() ); execute( TC_attach_no_imsi_response() ); + execute( TC_attach_closed_add_vty(), 10.0 ); execute( TC_attach_check_subscriber_list(), 10.0 ); execute( TC_attach_detach_check_subscriber_list(), 10.0 ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9583 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1832c339a9d54c0038433ad44e292031a8905e20 Gerrit-Change-Number: 9583 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 06:31:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 06:31:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9584 ) Change subject: sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept ...................................................................... sgsn: f_TC_attach_closed_foreign: fail on recv an Attach Accept The test expect a reject. Recv an attach accept should fail then. Change-Id: I8a4ae6aaaa71dabb1d8a2ee7585e624b962a3500 --- M sgsn/SGSN_Tests.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 17abb95..466c3ed 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -706,6 +706,9 @@ [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { setverdict(pass); } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { + setverdict(fail); + } } } testcase TC_attach_closed() runs on test_CT { -- To view, visit https://gerrit.osmocom.org/9584 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8a4ae6aaaa71dabb1d8a2ee7585e624b962a3500 Gerrit-Change-Number: 9584 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 06:31:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 06:31:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: sgsn: add TC_attach_check_complete_resend() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9585 ) Change subject: sgsn: add TC_attach_check_complete_resend() ...................................................................... sgsn: add TC_attach_check_complete_resend() MS -> SGSN: Attach Request IMSI MS <- SGSN: Identity Request * MS -> SGSN: Identity Response * MS <- SGSN: Attach Complete 5x Change-Id: I9bbbda01f3c41a2f8acf13042d6bcc86f18d74ce --- M sgsn/SGSN_Tests.ttcn 1 file changed, 37 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index 466c3ed..017c724 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -1553,6 +1553,42 @@ vc_conn.done; } +/* Attempt an attach, but never answer a Attach Complete */ +private function f_TC_attach_check_complete_resend(charstring id) runs on BSSGP_ConnHdlr { + var integer count_req := 0; + + BSSGP.send(ts_GMM_ATTACH_REQ(f_mi_get_lv(), f_random_RAI(), true, false, omit, omit)); + f_gmm_auth(); + + alt { + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_REJECT(?))) { + /* break */ + } + [] BSSGP.receive(tr_BD_L3_MT(tr_GMM_ATTACH_ACCEPT(*, *, *))) { + /* ignore */ + count_req := count_req + 1; + repeat; + } + } + if (count_req != 5) { + setverdict(fail, "Did not received GMM Attach Complete."); + } + setverdict(pass); +} + +testcase TC_attach_check_complete_resend() runs on test_CT { + /* MS -> SGSN: Attach Request IMSI + * MS <- SGSN: Identity Request * + * MS -> SGSN: Identity Response * + * MS <- SGSN: Attach Complete 5x + */ + var BSSGP_ConnHdlr vc_conn; + f_init(); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_TC_attach_check_complete_resend), testcasename(), g_gb[0], 36, 60.0); + vc_conn.done; +} + control { execute( TC_attach() ); execute( TC_attach_mnc3() ); @@ -1571,6 +1607,7 @@ execute( TC_attach_closed_add_vty(), 10.0 ); execute( TC_attach_check_subscriber_list(), 10.0 ); execute( TC_attach_detach_check_subscriber_list(), 10.0 ); + execute( TC_attach_check_complete_resend() ); execute( TC_hlr_location_cancel_request_update(), 10.0 ); execute( TC_hlr_location_cancel_request_withdraw(), 10.0 ); execute( TC_hlr_location_cancel_request_unknown_subscriber_withdraw(), 10.0 ); -- To view, visit https://gerrit.osmocom.org/9585 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9bbbda01f3c41a2f8acf13042d6bcc86f18d74ce Gerrit-Change-Number: 9585 Gerrit-PatchSet: 2 Gerrit-Owner: lynxis lazus Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 06:31:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 06:31:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9626 ) Change subject: bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3bbcdc41d186a3464cd4adb5c5b770bdec056993 Gerrit-Change-Number: 9626 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 06:31:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 06:32:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 06:32:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: log / comment tweaks In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9627 ) Change subject: log / comment tweaks ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9627/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9627/1//COMMIT_MSG at 9 PS1, Line 9: The IPACC CRCX isn't : easily readable in wireshark can you elaborate on that? Why is it not readable? I tihnk the decoder for that is merged some 6+ years? -- To view, visit https://gerrit.osmocom.org/9627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I93c2914e766e200d89308cc81dd803e939b9b28c Gerrit-Change-Number: 9627 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 14 Jun 2018 06:32:32 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:11:06 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Thu, 14 Jun 2018 09:11:06 +0000 Subject: Change in libosmo-sccp[master]: rename m3ua_example to sccp_test Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9628 Change subject: rename m3ua_example to sccp_test ...................................................................... rename m3ua_example to sccp_test The new name allows for more natural naming of variables in TTCN3 code when this program is used as a TTCN3 test component. Consider e.g. "SCCP_TEST_VTY" vs. "M3UA_EXAMPLE_VTY". Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe --- M .gitignore M examples/Makefile.am R examples/sccp_test.c 3 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/28/9628/1 diff --git a/.gitignore b/.gitignore index e63e4ee..f1356a7 100644 --- a/.gitignore +++ b/.gitignore @@ -60,7 +60,7 @@ tests/testsuite tests/testsuite.log -examples/m3ua_example +examples/sccp_test stp/osmo-stp diff --git a/examples/Makefile.am b/examples/Makefile.am index 6418aca..d000d67 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -4,8 +4,8 @@ noinst_HEADERS = internal.h -noinst_PROGRAMS = m3ua_example +noinst_PROGRAMS = sccp_test -m3ua_example_SOURCES = m3ua_example.c sccp_test_server.c sccp_test_vty.c -m3ua_example_LDADD = $(top_builddir)/src/libosmo-sigtran.la \ +sccp_test_SOURCES = sccp_test.c sccp_test_server.c sccp_test_vty.c +sccp_test_LDADD = $(top_builddir)/src/libosmo-sigtran.la \ $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) diff --git a/examples/m3ua_example.c b/examples/sccp_test.c similarity index 98% rename from examples/m3ua_example.c rename to examples/sccp_test.c index 2a99450..4989bf6 100644 --- a/examples/m3ua_example.c +++ b/examples/sccp_test.c @@ -90,7 +90,7 @@ #define DEFAULT_REMOTE_PORT M3UA_PORT static void usage(void) { - fprintf(stderr, "m3ua_example [-c] [-l LOCAL_ADDRESS[:LOCAL_PORT]]\n" + fprintf(stderr, "sccp_test [-c] [-l LOCAL_ADDRESS[:LOCAL_PORT]]\n" " [-r REMOTE_ADDRESS[:REMOTE_PORT]]\n" " [-L LOCAL_POINT_CODE] [-R REMOTE_POINT_CODE]\n" "Options:\n" -- To view, visit https://gerrit.osmocom.org/9628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Gerrit-Change-Number: 9628 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:45:55 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:45:55 +0000 Subject: Change in osmo-trx[master]: move set_antennas() from UHD to generic radioDevice base class In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9618 ) Change subject: move set_antennas() from UHD to generic radioDevice base class ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba Gerrit-Change-Number: 9618 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:45:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:47:11 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:47:11 +0000 Subject: Change in osmo-trx[master]: lms: Fix support for rx_paths / tx_paths In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9619 ) Change subject: lms: Fix support for rx_paths / tx_paths ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3 Gerrit-Change-Number: 9619 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:47:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:47:55 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:47:55 +0000 Subject: Change in osmo-trx[master]: lms: Call set_antennas() during open() method In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9620 ) Change subject: lms: Call set_antennas() during open() method ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9620 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0bca58266b59f1315ec72b6407fe4f4495aff678 Gerrit-Change-Number: 9620 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:47:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:49:25 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:49:25 +0000 Subject: Change in osmo-trx[master]: radioDevice: Move tx_sps from derived into base class In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9621 ) Change subject: radioDevice: Move tx_sps from derived into base class ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced Gerrit-Change-Number: 9621 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:49:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:50:12 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:50:12 +0000 Subject: Change in osmo-trx[master]: move set_antennas() from UHD to generic radioDevice base class In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9618 ) Change subject: move set_antennas() from UHD to generic radioDevice base class ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9618/2/Transceiver52M/device/radioDevice.h File Transceiver52M/device/radioDevice.h: https://gerrit.osmocom.org/#/c/9618/2/Transceiver52M/device/radioDevice.h at 168 PS2, Line 168: bool set_antennas() { I'd prefer having this in a new file radioDevice.cpp, but it's fine for now like this. -- To view, visit https://gerrit.osmocom.org/9618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba Gerrit-Change-Number: 9618 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:50:12 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:53:42 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:53:42 +0000 Subject: Change in osmo-trx[master]: radioDevice: better encapsulation in base class In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9622 ) Change subject: radioDevice: better encapsulation in base class ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9622/2/Transceiver52M/device/radioDevice.h File Transceiver52M/device/radioDevice.h: https://gerrit.osmocom.org/#/c/9622/2/Transceiver52M/device/radioDevice.h at 61 PS2, Line 61: RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chans, double offset, As this class is virtual, shouldn't the constructor be in protected section? -- To view, visit https://gerrit.osmocom.org/9622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab Gerrit-Change-Number: 9622 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:53:42 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:54:57 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:54:57 +0000 Subject: Change in osmo-trx[master]: lms: Fix coding style In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9623 ) Change subject: lms: Fix coding style ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/#/c/9623/2/Transceiver52M/device/lms/LMSDevice.h File Transceiver52M/device/lms/LMSDevice.h: https://gerrit.osmocom.org/#/c/9623/2/Transceiver52M/device/lms/LMSDevice.h at a49 PS2, Line 49: This belongs to previous commit right? https://gerrit.osmocom.org/#/c/9623/2/Transceiver52M/device/uhd/UHDDevice.cpp File Transceiver52M/device/uhd/UHDDevice.cpp: https://gerrit.osmocom.org/#/c/9623/2/Transceiver52M/device/uhd/UHDDevice.cpp at a285 PS2, Line 285: Same here -- To view, visit https://gerrit.osmocom.org/9623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc Gerrit-Change-Number: 9623 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:54:57 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:55:42 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:55:42 +0000 Subject: Change in osmo-trx[master]: lms: Fail in case of unsupported configuration In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9624 ) Change subject: lms: Fail in case of unsupported configuration ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2 Gerrit-Change-Number: 9624 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:55:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:56:51 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 09:56:51 +0000 Subject: Change in osmo-trx[master]: usrp1: Fail in case of unsupported configuration In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9625 ) Change subject: usrp1: Fail in case of unsupported configuration ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Gerrit-Change-Number: 9625 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 09:56:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 09:58:53 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Thu, 14 Jun 2018 09:58:53 +0000 Subject: Change in libosmo-sccp[master]: rename m3ua_example to sccp_test In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9628 to look at the new patch set (#2). Change subject: rename m3ua_example to sccp_test ...................................................................... rename m3ua_example to sccp_test The new name allows for more natural naming of variables in TTCN3 code when this program is used as a TTCN3 test component. Consider e.g. "SCCP_TEST_VTY" vs. "M3UA_EXAMPLE_VTY". Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Related: OS#2666 --- M .gitignore M examples/Makefile.am R examples/sccp_test.c 3 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/28/9628/2 -- To view, visit https://gerrit.osmocom.org/9628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Gerrit-Change-Number: 9628 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 10:02:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 10:02:33 +0000 Subject: Change in osmo-trx[master]: radioDevice: better encapsulation in base class In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9622 ) Change subject: radioDevice: better encapsulation in base class ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9622/2/Transceiver52M/device/radioDevice.h File Transceiver52M/device/radioDevice.h: https://gerrit.osmocom.org/#/c/9622/2/Transceiver52M/device/radioDevice.h at 61 PS2, Line 61: RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chans, double offset, > As this class is virtual, shouldn't the constructor be in protected section? Don't ask me, I'm the person who has last written C++ code in the 1990ies and barely remembers anything. Feel free to change as needed. -- To view, visit https://gerrit.osmocom.org/9622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab Gerrit-Change-Number: 9622 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 10:02:33 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 10:07:09 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 10:07:09 +0000 Subject: Change in libosmo-sccp[master]: rename m3ua_example to sccp_test In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9628 ) Change subject: rename m3ua_example to sccp_test ...................................................................... Patch Set 2: sorry to be arguing about naming, but "sccp_test" to me means that it is testing SCCP, which it clearly is not. Rather, it is a small tool that you can use to create one or multiple SCCP users running on top of a M3UA client or M3UA server. -- To view, visit https://gerrit.osmocom.org/9628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Gerrit-Change-Number: 9628 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 14 Jun 2018 10:07:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 11:24:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 11:24:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9567 ) Change subject: move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifd258da7a0fb53eadb2aa080348a5250c307fe85 Gerrit-Change-Number: 9567 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 11:24:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 11:24:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 11:24:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9567 ) Change subject: move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 ...................................................................... move M3UA_Emulation dependency repository to commit R.2.A-2-g742cf02 Change-Id: Ifd258da7a0fb53eadb2aa080348a5250c307fe85 --- M deps/Makefile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/deps/Makefile b/deps/Makefile index cf0bf4d..cb9e359 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -55,7 +55,7 @@ # In order to keep local changes in the repository of a dependency, set its commit to the # name of a local branch here (e.g. 'master'). titan.Libraries.TCCUsefulFunctions_commit= R.30.A -titan.ProtocolEmulations.M3UA_commit= R.2.A-1-g53dead2 +titan.ProtocolEmulations.M3UA_commit= R.2.A-2-g742cf02 titan.ProtocolEmulations.SCCP_commit= R.7.A-2-g724c83f titan.ProtocolModules.BSSAPP_v7.3.0_commit= R.2.A titan.ProtocolModules.BSSGP_v13.0.0_commit= R.2.A -- To view, visit https://gerrit.osmocom.org/9567 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifd258da7a0fb53eadb2aa080348a5250c307fe85 Gerrit-Change-Number: 9567 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 11:42:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 11:42:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9629 Change subject: bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() ...................................................................... bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() There's a sequence of commands which was repeated over at least four test cases. Let's factor this out into the new f_exp_chan_rel_and_clear() function, and use that function from all the former copy+pasted sections. Change-Id: Ic6791fce4e8787e38b818a12ed526d3e47f313ef --- M bsc/BSC_Tests.ttcn 1 file changed, 19 insertions(+), 40 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/29/9629/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index bab56d1..a5509fd 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -667,9 +667,23 @@ return dt; } +/* expect RF CAN REL from BTS, acknowledge it and clear the MSC side */ +private function f_exp_chan_rel_and_clear(DchanTuple dt, integer bts_nr := 0) runs on test_CT { + var RSL_Message rx_rsl; + /* expect BSC to disable the channel */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); + /* respond with CHAN REL ACK */ + f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); + + /* expect Clear Complete from BSC */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); + + /* MSC disconnects as instructed. */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); +} + /* Test behavior of channel release after unilateral RLL REL IND (DISC from MS) */ testcase TC_chan_rel_rll_rel_ind() runs on test_CT { - var RSL_Message rx_rsl; var BSSAP_N_DATA_ind rx_di; var DchanTuple dt; @@ -688,15 +702,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* release the SCCP connection */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); /* wait for SCCP emulation to do its job */ f_sleep(1.0); @@ -707,7 +713,6 @@ /* Test behavior of channel release after CONN FAIL IND from BTS */ testcase TC_chan_rel_conn_fail() runs on test_CT { var BSSAP_N_DATA_ind rx_di; - var RSL_Message rx_rsl; var DchanTuple dt; f_init(1); @@ -726,15 +731,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* release the SCCP connection */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); /* wait for SCCP emulation to do its job */ f_sleep(1.0); @@ -2092,7 +2089,6 @@ var integer i; var DchanTuple dt; var BSSAP_N_DATA_ind rx_di; - var RSL_Message rx_rsl; var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; var BssmapCause cause := enum2int(cause_val); @@ -2120,15 +2116,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* MSC disconnects as instructed. */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); } /* In the buggy behavior, a timeout of 2 seconds happens between above @@ -2148,7 +2136,6 @@ var integer i; var DchanTuple dt; var BSSAP_N_DATA_ind rx_di; - var RSL_Message rx_rsl; var integer j; f_init(); @@ -2182,15 +2169,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* MSC disconnects as instructed. */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); } /* In the buggy behavior, a timeout of 2 seconds happens between above -- To view, visit https://gerrit.osmocom.org/9629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic6791fce4e8787e38b818a12ed526d3e47f313ef Gerrit-Change-Number: 9629 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 11:42:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 11:42:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add TC_{early, late}_conn_fail() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9630 Change subject: bsc: Add TC_{early,late}_conn_fail() ...................................................................... bsc: Add TC_{early,late}_conn_fail() Those test cases simulate a BTS-originated RLL CONN FAIL IND at "unusual" time: a) before we actually establish any RLL b) after / while we're tearing down the RLL This is triggering an osmo-bsc segfault, see OS#3182. Change-Id: I324c410d7565c189dbc91df577d92b87c036732c Related: OS#3182 --- M bsc/BSC_Tests.ttcn 1 file changed, 61 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/30/9630/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index a5509fd..59aab02 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -739,6 +739,62 @@ setverdict(pass); } +/* Test behavior of early CONN FAIL IND from BTS (before EST IND!) */ +/* See also https://www.osmocom.org/issues/3182 */ +testcase TC_early_conn_fail() runs on test_CT { + var RSL_Message rx_rsl; + var DchanTuple dt; + + f_init(1); + + /* BTS->BSC: Send CHAN RQD and wait for allocation; acknowledge it */ + dt.rsl_chan_nr := f_chreq_act_ack(f_rnd_octstring(1), 23); + + /* BTS->BSC: simulate CONN FAIL IND */ + f_ipa_tx(0, ts_RSL_CONN_FAIL_IND(dt.rsl_chan_nr, RSL_ERR_RADIO_LINK_FAIL)); + + /* BTS->BSC: Expect RF channel release from BSC on Abis */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)); + + /* BTS<-BSC: respond with CHAN REL ACK */ + f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); + + setverdict(pass); +} + +/* Test behavior of late CONN FAIL IND from BTS (ater REL IND!) */ +/* See also https://www.osmocom.org/issues/3182 */ +testcase TC_late_conn_fail() runs on test_CT { + var RSL_Message rx_rsl; + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + + /* BSC<-MSC: Instruct BSC to clear connection */ + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(0))); + + /* BTS->BSC: expect BSC to deactivate SACCH */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_DEACT_SACCH(dt.rsl_chan_nr)); + + /* BTS->BSC: simulate a late CONN FAIL IND from BTS */ + f_ipa_tx(0, ts_RSL_CONN_FAIL_IND(dt.rsl_chan_nr, RSL_ERR_RADIO_LINK_FAIL)); + + /* BTS<-BSC: Expect RF channel release from BSC on Abis */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)); + /* BTS->BSC: respond with CHAN REL ACK */ + f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); + + /* BSC->MSC: expect Clear Complete from BSC */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); + + /* BSC<-MSC: MSC disconnects as requested. */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + + setverdict(pass); +} + function f_expect_chan_rel(integer bts_nr, RslChannelNr rsl_chan_nr, boolean flush := true, boolean handle_rll_rel := true) runs on test_CT { @@ -2515,6 +2571,11 @@ execute( TC_dyn_pdch_ipa_act_nack() ); execute( TC_dyn_pdch_osmo_act_deact() ); execute( TC_dyn_pdch_osmo_act_nack() ); + + /* at bottom as they might crash OsmoBSC before OS#3182 is fixed */ + execute( TC_early_conn_fail() ); + execute( TC_late_conn_fail() ); + } } -- To view, visit https://gerrit.osmocom.org/9630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I324c410d7565c189dbc91df577d92b87c036732c Gerrit-Change-Number: 9630 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 11:56:03 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Thu, 14 Jun 2018 11:56:03 +0000 Subject: Change in libosmo-sccp[master]: rename m3ua_example to sccp_demo_user In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9628 to look at the new patch set (#3). Change subject: rename m3ua_example to sccp_demo_user ...................................................................... rename m3ua_example to sccp_demo_user The new name allows for more natural naming of variables in TTCN3 code when this program is used as a TTCN3 test component. Consider e.g. "SCCP_DEMO_USER_VTY" vs. "M3UA_EXAMPLE_VTY". Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Related: OS#2666 --- M .gitignore M examples/Makefile.am R examples/sccp_demo_user.c 3 files changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/28/9628/3 -- To view, visit https://gerrit.osmocom.org/9628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Gerrit-Change-Number: 9628 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 12:10:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 12:10:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add TC_{early, late}_conn_fail() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9630 to look at the new patch set (#2). Change subject: bsc: Add TC_{early,late}_conn_fail() ...................................................................... bsc: Add TC_{early,late}_conn_fail() Those test cases simulate a BTS-originated RLL CONN FAIL IND at "unusual" time: a) before we actually establish any RLL b) after / while we're tearing down the RLL This is triggering an osmo-bsc segfault, see OS#3182. Change-Id: I324c410d7565c189dbc91df577d92b87c036732c Related: OS#3182 --- M bsc/BSC_Tests.ttcn 1 file changed, 61 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/30/9630/2 -- To view, visit https://gerrit.osmocom.org/9630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I324c410d7565c189dbc91df577d92b87c036732c Gerrit-Change-Number: 9630 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 12:36:09 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 12:36:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add TC_{early, late}_conn_fail() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9630 ) Change subject: bsc: Add TC_{early,late}_conn_fail() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I324c410d7565c189dbc91df577d92b87c036732c Gerrit-Change-Number: 9630 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 12:36:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 12:36:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 12:36:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9629 ) Change subject: bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic6791fce4e8787e38b818a12ed526d3e47f313ef Gerrit-Change-Number: 9629 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 12:36:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 12:36:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 12:36:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9629 ) Change subject: bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() ...................................................................... bsc: Factor out duplicated code into f_exp_chan_rel_and_clear() There's a sequence of commands which was repeated over at least four test cases. Let's factor this out into the new f_exp_chan_rel_and_clear() function, and use that function from all the former copy+pasted sections. Change-Id: Ic6791fce4e8787e38b818a12ed526d3e47f313ef --- M bsc/BSC_Tests.ttcn 1 file changed, 19 insertions(+), 40 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index bab56d1..a5509fd 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -667,9 +667,23 @@ return dt; } +/* expect RF CAN REL from BTS, acknowledge it and clear the MSC side */ +private function f_exp_chan_rel_and_clear(DchanTuple dt, integer bts_nr := 0) runs on test_CT { + var RSL_Message rx_rsl; + /* expect BSC to disable the channel */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); + /* respond with CHAN REL ACK */ + f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); + + /* expect Clear Complete from BSC */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); + + /* MSC disconnects as instructed. */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); +} + /* Test behavior of channel release after unilateral RLL REL IND (DISC from MS) */ testcase TC_chan_rel_rll_rel_ind() runs on test_CT { - var RSL_Message rx_rsl; var BSSAP_N_DATA_ind rx_di; var DchanTuple dt; @@ -688,15 +702,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* release the SCCP connection */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); /* wait for SCCP emulation to do its job */ f_sleep(1.0); @@ -707,7 +713,6 @@ /* Test behavior of channel release after CONN FAIL IND from BTS */ testcase TC_chan_rel_conn_fail() runs on test_CT { var BSSAP_N_DATA_ind rx_di; - var RSL_Message rx_rsl; var DchanTuple dt; f_init(1); @@ -726,15 +731,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* release the SCCP connection */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); /* wait for SCCP emulation to do its job */ f_sleep(1.0); @@ -2092,7 +2089,6 @@ var integer i; var DchanTuple dt; var BSSAP_N_DATA_ind rx_di; - var RSL_Message rx_rsl; var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; var BssmapCause cause := enum2int(cause_val); @@ -2120,15 +2116,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* MSC disconnects as instructed. */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); } /* In the buggy behavior, a timeout of 2 seconds happens between above @@ -2148,7 +2136,6 @@ var integer i; var DchanTuple dt; var BSSAP_N_DATA_ind rx_di; - var RSL_Message rx_rsl; var integer j; f_init(); @@ -2182,15 +2169,7 @@ BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(cause))); /* expect BSC to disable the channel */ - rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX); - /* respond with CHAN REL ACK */ - f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); - - /* expect Clear Complete from BSC */ - BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); - - /* MSC disconnects as instructed. */ - BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + f_exp_chan_rel_and_clear(dt, 0); } /* In the buggy behavior, a timeout of 2 seconds happens between above -- To view, visit https://gerrit.osmocom.org/9629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic6791fce4e8787e38b818a12ed526d3e47f313ef Gerrit-Change-Number: 9629 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 12:36:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 12:36:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Add TC_{early, late}_conn_fail() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9630 ) Change subject: bsc: Add TC_{early,late}_conn_fail() ...................................................................... bsc: Add TC_{early,late}_conn_fail() Those test cases simulate a BTS-originated RLL CONN FAIL IND at "unusual" time: a) before we actually establish any RLL b) after / while we're tearing down the RLL This is triggering an osmo-bsc segfault, see OS#3182. Change-Id: I324c410d7565c189dbc91df577d92b87c036732c Related: OS#3182 --- M bsc/BSC_Tests.ttcn 1 file changed, 61 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index a5509fd..2f99bcb 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -739,6 +739,62 @@ setverdict(pass); } +/* Test behavior of early CONN FAIL IND from BTS (before EST IND!) */ +/* See also https://www.osmocom.org/issues/3182 */ +testcase TC_early_conn_fail() runs on test_CT { + var RSL_Message rx_rsl; + var DchanTuple dt; + + f_init(1); + + /* BTS->BSC: Send CHAN RQD and wait for allocation; acknowledge it */ + dt.rsl_chan_nr := f_chreq_act_ack(f_rnd_octstring(1), 23); + + /* BTS->BSC: simulate CONN FAIL IND */ + f_ipa_tx(0, ts_RSL_CONN_FAIL_IND(dt.rsl_chan_nr, RSL_ERR_RADIO_LINK_FAIL)); + + /* BTS->BSC: Expect RF channel release from BSC on Abis */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), 10.0); + + /* BTS<-BSC: respond with CHAN REL ACK */ + f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); + + setverdict(pass); +} + +/* Test behavior of late CONN FAIL IND from BTS (ater REL IND!) */ +/* See also https://www.osmocom.org/issues/3182 */ +testcase TC_late_conn_fail() runs on test_CT { + var RSL_Message rx_rsl; + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + + /* BSC<-MSC: Instruct BSC to clear connection */ + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommand(0))); + + /* BTS->BSC: expect BSC to deactivate SACCH */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_DEACT_SACCH(dt.rsl_chan_nr)); + + /* BTS->BSC: simulate a late CONN FAIL IND from BTS */ + f_ipa_tx(0, ts_RSL_CONN_FAIL_IND(dt.rsl_chan_nr, RSL_ERR_RADIO_LINK_FAIL)); + + /* BTS<-BSC: Expect RF channel release from BSC on Abis */ + rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), 10.0); + /* BTS->BSC: respond with CHAN REL ACK */ + f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr)); + + /* BSC->MSC: expect Clear Complete from BSC */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)); + + /* BSC<-MSC: MSC disconnects as requested. */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + + setverdict(pass); +} + function f_expect_chan_rel(integer bts_nr, RslChannelNr rsl_chan_nr, boolean flush := true, boolean handle_rll_rel := true) runs on test_CT { @@ -2515,6 +2571,11 @@ execute( TC_dyn_pdch_ipa_act_nack() ); execute( TC_dyn_pdch_osmo_act_deact() ); execute( TC_dyn_pdch_osmo_act_nack() ); + + /* at bottom as they might crash OsmoBSC before OS#3182 is fixed */ + execute( TC_early_conn_fail() ); + execute( TC_late_conn_fail() ); + } } -- To view, visit https://gerrit.osmocom.org/9630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I324c410d7565c189dbc91df577d92b87c036732c Gerrit-Change-Number: 9630 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 12:36:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 12:36:27 +0000 Subject: Change in libosmo-sccp[master]: rename m3ua_example to sccp_demo_user In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9628 ) Change subject: rename m3ua_example to sccp_demo_user ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Gerrit-Change-Number: 9628 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 12:36:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 12:36:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 12:36:28 +0000 Subject: Change in libosmo-sccp[master]: rename m3ua_example to sccp_demo_user In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9628 ) Change subject: rename m3ua_example to sccp_demo_user ...................................................................... rename m3ua_example to sccp_demo_user The new name allows for more natural naming of variables in TTCN3 code when this program is used as a TTCN3 test component. Consider e.g. "SCCP_DEMO_USER_VTY" vs. "M3UA_EXAMPLE_VTY". Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Related: OS#2666 --- M .gitignore M examples/Makefile.am R examples/sccp_demo_user.c 3 files changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/.gitignore b/.gitignore index e63e4ee..9423d67 100644 --- a/.gitignore +++ b/.gitignore @@ -60,7 +60,7 @@ tests/testsuite tests/testsuite.log -examples/m3ua_example +examples/sccp_demo_user stp/osmo-stp diff --git a/examples/Makefile.am b/examples/Makefile.am index 6418aca..1993a01 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -4,8 +4,8 @@ noinst_HEADERS = internal.h -noinst_PROGRAMS = m3ua_example +noinst_PROGRAMS = sccp_demo_user -m3ua_example_SOURCES = m3ua_example.c sccp_test_server.c sccp_test_vty.c -m3ua_example_LDADD = $(top_builddir)/src/libosmo-sigtran.la \ +sccp_demo_user_SOURCES = sccp_demo_user.c sccp_test_server.c sccp_test_vty.c +sccp_demo_user_LDADD = $(top_builddir)/src/libosmo-sigtran.la \ $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) diff --git a/examples/m3ua_example.c b/examples/sccp_demo_user.c similarity index 97% rename from examples/m3ua_example.c rename to examples/sccp_demo_user.c index 2a99450..f0b1a3e 100644 --- a/examples/m3ua_example.c +++ b/examples/sccp_demo_user.c @@ -78,7 +78,7 @@ } static struct vty_app_info vty_info = { - .name = "sccp-test", + .name = "sccp-demo-user", .version = 0, }; @@ -90,7 +90,7 @@ #define DEFAULT_REMOTE_PORT M3UA_PORT static void usage(void) { - fprintf(stderr, "m3ua_example [-c] [-l LOCAL_ADDRESS[:LOCAL_PORT]]\n" + fprintf(stderr, "sccp_demo_user [-c] [-l LOCAL_ADDRESS[:LOCAL_PORT]]\n" " [-r REMOTE_ADDRESS[:REMOTE_PORT]]\n" " [-L LOCAL_POINT_CODE] [-R REMOTE_POINT_CODE]\n" "Options:\n" -- To view, visit https://gerrit.osmocom.org/9628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I92b5e16e765a1ac36371a16933389903628f8dfe Gerrit-Change-Number: 9628 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 14:15:18 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 14:15:18 +0000 Subject: Change in osmo-trx[master]: radioDevice: better encapsulation in base class In-Reply-To: References: Message-ID: Pau Espin Pedrol has uploaded a new patch set (#3) to the change originally created by Harald Welte. ( https://gerrit.osmocom.org/9622 ) Change subject: radioDevice: better encapsulation in base class ...................................................................... radioDevice: better encapsulation in base class It's not good style to have the derived classes initialize members inherited from the base class using "this->foo = bar". Rather, let's make the base class have a constructor, and call that constructor to initialize the members of the base class. While doing this * rename 'offset' to 'lo_offset' to avoid confusion with timestamp offset * move 'InterfaceType' into the base class * move 'chans' into the base class * move 'rx_sps' into the base class * mark base class members as 'protected' Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 6 files changed, 38 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/22/9622/3 -- To view, visit https://gerrit.osmocom.org/9622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab Gerrit-Change-Number: 9622 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 14:16:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 14:16:31 +0000 Subject: Change in osmo-trx[master]: usrp1: Fail in case of unsupported configuration In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9625 ) Change subject: usrp1: Fail in case of unsupported configuration ...................................................................... Patch Set 3: Tested up to here with LimeSDR mini and UHD (Ettus b200 usinh osmo-gsm-tester). -- To view, visit https://gerrit.osmocom.org/9625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Gerrit-Change-Number: 9625 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Jun 2018 14:16:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Jun 14 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 14 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#154?= In-Reply-To: <629611711.168.1528902606381.JavaMail.jenkins@jenkins.osmocom.org> References: <629611711.168.1528902606381.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1319943397.178.1528989006587.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.67 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Jun 14 15:44:36 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Jun 2018 15:44:36 +0000 Subject: Change in libosmocore[master]: Add function gprs_nsvc_state_append Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9631 Change subject: Add function gprs_nsvc_state_append ...................................................................... Add function gprs_nsvc_state_append A common function to append the nsvc state from osmo-sgsn or osmo-gbproxy Change-Id: I7f0eaff7329ab98cad792d30b20ab053007aab85 --- M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/libosmogb.map 3 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/31/9631/1 diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index b368ad9..7b95099 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -226,4 +226,6 @@ void gprs_ns_set_log_ss(int ss); +char *gprs_nsvc_state_append(char *s, struct gprs_nsvc *nsvc); + /*! @} */ diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 47d170d..75c3141 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -1705,4 +1705,26 @@ DNS = ss; } +/*! Append the nsvc state to a talloc string + * \param s The string to append to (allocated with talloc) + * \param[in] nsvc The NS-VC to print the state of + * \returns The new string with state information appended to it + * + * This function will append a comma-separated state of the NS-VC to the + * string. The string needs to be allocated with talloc (e.g. talloc_strdup) + */ +char *gprs_nsvc_state_append(char *s, struct gprs_nsvc *nsvc) +{ + s = talloc_asprintf_append(s, + "%u,%u,%s,%s,%s,%s,%s\n", + nsvc->nsei, nsvc->nsvci, + NS_DESC_A(nsvc->state), + NS_DESC_B(nsvc->state), + nsvc->remote_end_is_sgsn ? "SGSN" : "BSS", + NS_DESC_A(nsvc->remote_state), + NS_DESC_B(nsvc->remote_state)); + + return s; +} + /*! @} */ diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 83a3621..d56e651 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -70,6 +70,7 @@ gprs_nsvc_reset; gprs_nsvc_by_nsvci; gprs_nsvc_by_nsei; +gprs_nsvc_state_append; gprs_log_filter_fn; -- To view, visit https://gerrit.osmocom.org/9631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7f0eaff7329ab98cad792d30b20ab053007aab85 Gerrit-Change-Number: 9631 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 15:45:17 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Jun 2018 15:45:17 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9402 to look at the new patch set (#4). Change subject: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands ...................................................................... gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands This patch adds a control interface to osmo-gbproxy as well as the first two commands to query the state of each NSVC and gbproxy peer. The "nsvc-state" command replies with nsei, nsvci, local state, role, remote state of all NSVCs. The "gbproxy-state" command replies with nsei, bvci, mcc, mnc, lac, rac, and state of each peer. Entries are separated by a newline '\n' character. If there are no entries an empty list is returned. This behaviour is similar to that of the subscriber-list-active-v1 command in osmo-sgsn. $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g nsvc-state Got message: b'GET_REPLY 23 nsvc-state 101,101,DEAD,BLOCKED,SGSN,DEAD,UNBLOCKED\n' $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g gbproxy-state Got message: b'GET_REPLY 4871085901306801158 gbproxy-state ' Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Ticket: OS#3281, SYS#4235 Sponsored-by: On-Waves ehf --- M include/osmocom/sgsn/gb_proxy.h M src/gprs/Makefile.am A src/gprs/gb_proxy_ctrl.c M src/gprs/gb_proxy_main.c 4 files changed, 107 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/02/9402/4 -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 15:48:19 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Jun 2018 15:48:19 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/9402 ) Change subject: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands ...................................................................... Patch Set 4: (2 comments) Needs https://gerrit.osmocom.org/#/c/libosmocore/+/9631/ to pass https://gerrit.osmocom.org/#/c/9402/3/src/gprs/gb_proxy_ctrl.c File src/gprs/gb_proxy_ctrl.c: https://gerrit.osmocom.org/#/c/9402/3/src/gprs/gb_proxy_ctrl.c at 47 PS3, Line 47: > This might be taking it a bit too far, but I think it makes sense to have the "convert a NSVC to a C [?] Sounds good. Patch is in https://gerrit.osmocom.org/#/c/libosmocore/+/9631/ https://gerrit.osmocom.org/#/c/9402/3/src/gprs/gb_proxy_ctrl.c at 61 PS3, Line 61: cmd->reply = talloc_strdup(cmd, ""); > as we're printing NSVC state, I think it might also make sense to call the command "nsvc-state". [?] Done. I also changed the function names to align with the command names. -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 14 Jun 2018 15:48:19 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 15:55:06 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 15:55:06 +0000 Subject: Change in osmo-bts[master]: pcu_sock: Log event pcu_sock created Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9632 Change subject: pcu_sock: Log event pcu_sock created ...................................................................... pcu_sock: Log event pcu_sock created Change-Id: I2aa55e05ac481fee59af5bad87baf707831df088 --- M src/common/pcu_sock.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/32/9632/1 diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 5f94050..bdebf65 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -932,6 +932,8 @@ bts_gsmnet.pcu_state = state; + LOGP(DPCU, LOGL_INFO, "Started listening on PCU socket: %s\n", path); + return 0; } -- To view, visit https://gerrit.osmocom.org/9632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2aa55e05ac481fee59af5bad87baf707831df088 Gerrit-Change-Number: 9632 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 15:58:19 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jun 2018 15:58:19 +0000 Subject: Change in pysim[master]: cards: update smsp with fixed record length In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/9561 ) Change subject: cards: update smsp with fixed record length ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/9561 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Iea078f8171b6dbe94bd966807802bc30b5824758 Gerrit-Change-Number: 9561 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: dexter Gerrit-CC: Harald Welte Gerrit-CC: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 16:02:15 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Jun 2018 16:02:15 +0000 Subject: Change in pysim[master]: __init__: allow wildcards in expected SW for send_apdu_checksw() In-Reply-To: References: Message-ID: dexter has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9571 ) Change subject: __init__: allow wildcards in expected SW for send_apdu_checksw() ...................................................................... __init__: allow wildcards in expected SW for send_apdu_checksw() The method send_apdu_checksw() is used to check the SW of the final response against some pre defined value. However, in many cases the last two digits of the SW are used to return varying information (e.g. length information or a more specific status info). To cover those cases it would be helfpul to define status words that contain wildcards (e.g. 61**) in order to be able to accept all SWs from 6100 to 61ff. - When the user supplies an expected SW with wildcards, mask out those digits in the response before comparing Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 --- M pySim/transport/__init__.py 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/71/9571/2 -- To view, visit https://gerrit.osmocom.org/9571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 Gerrit-Change-Number: 9571 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 16:57:40 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Jun 2018 16:57:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add README.md file for several suites Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9633 Change subject: Add README.md file for several suites ...................................................................... Add README.md file for several suites Content grabbed from [1] and converted to markdown as it's more probable to have it displayed correctly on popular git repo hosting platforms. Syntax for embedded graphviz taken from [2]. [1] http://git.gnumonks.org/laforge-slides/plain/2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.adoc [2] https://github.com/stlehmann/markdown-graphviz Change-Id: I9aad03e605569e9613665a7585d60bf308bcb54f --- A bsc/README.md A bts/README.md A ggsn_tests/README.md A hlr/README.md A mgw/README.md A msc/README.md A sgsn/README.md A sip/README.md 8 files changed, 159 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/33/9633/1 diff --git a/bsc/README.md b/bsc/README.md new file mode 100644 index 0000000..6efaa7f --- /dev/null +++ b/bsc/README.md @@ -0,0 +1,23 @@ +# BSC_Tests.ttcn + +* external interfaces + * A-bis side: RSL (emulates BTS-side client) + * A-side: BSSAP/SCCP/M3UA (emulates MSC-side) + * MGW side: MGCP (emulates MGW side) + +{% dot bsc_tests.svg +digraph G { + rankdir=LR; + { rank=same; BTS; STP; }; + BSC [label="IUT\nosmo-bsc",shape="box"]; + ATS [label="ATS\nBSC_Tests.ttcn"]; + BTS [label="osmo-bts-omldummy\nOML only"]; + + BTS -> BSC [label="A-bis OML"]; + ATS -> BSC [label="A-bis RSL"]; + ATS -> BSC [label="CTRL"]; + ATS -> BSC [label="VTY"]; + ATS -> STP [label="A BSSAP\nSCCP/M3UA"]; + BSC -> STP [label="A BSSAP\nSCCP/M3UA"]; +} +%} diff --git a/bts/README.md b/bts/README.md new file mode 100644 index 0000000..058e1d2 --- /dev/null +++ b/bts/README.md @@ -0,0 +1,26 @@ +# BTS_Tests.ttcn + +* external interfaces + * A-bis side: RSL (emulates BSC-side server) + * Um side: L1CTL to control MS + * PCU side: pcu_socket + +{% dot bts_tests.svg +digraph G { + rankdir=LR; + { rank=same; BTS, BSC}; + BTS [label="IUT\nosmo-bts-trx",shape="box"]; + ATS [label="ATS\nBTS_Tests.ttcn"]; + BSC [label="osmo-bsc\nOML only"]; + BTS -> fake_trx [label="bursts"]; + fake_trx -> trxcon [label="bursts"]; + trxcon -> ATS [label="bursts"]; + + BTS -> BSC [label="A-bis OML"]; + BTS -> ATS [label="A-bis RSL"]; + + ATS -> BTS [label="pcu_sock"]; + ATS -> BSC [label="VTY"]; + ATS -> BTS [label="CTRL"]; +} +%} diff --git a/ggsn_tests/README.md b/ggsn_tests/README.md new file mode 100644 index 0000000..288018f --- /dev/null +++ b/ggsn_tests/README.md @@ -0,0 +1,17 @@ +# GGSN_Tests.ttcn + +* external interfaces + * Gp: GTP (emulates SGSN) + * Gi: IP (emulates Internet) + +{% dot ggsn_tests.svg +digraph G { + rankdir=LR; + GGSN [label="GGSN\nosmo-ggsn",shape="box"]; + ATS [label="ATS\nGGSN_Tests.ttcn"]; + + ATS -> GGSN [label="Gp (GTP)"]; + GGSN -> ATS [label="Gi (IP)"]; + ATS -> GGSN [label="VTY"]; +} +%} diff --git a/hlr/README.md b/hlr/README.md new file mode 100644 index 0000000..a08c03f --- /dev/null +++ b/hlr/README.md @@ -0,0 +1,16 @@ +# HLR_Tests.ttcn + +* external interfaces + * GSUP (emulates VLR/SGSN side) + * VTY + +{% dot hlr_tests.svg +digraph G { + rankdir=LR; + HLR [label="IUT\nosmo-hlr",shape="box"]; + ATS [label="ATS\nHLR_Tests.ttcn"]; + + ATS -> HLR [label="GSUP"]; + ATS -> HLR [label="VTY"]; +} +%} diff --git a/mgw/README.md b/mgw/README.md new file mode 100644 index 0000000..8f08262 --- /dev/null +++ b/mgw/README.md @@ -0,0 +1,17 @@ +== MGW_Test.ttcn + +* external interfaces + * MGCP (emulates call agent) + * RTP (stream source/sink) + +{% dot mgw_tests.svg +digraph G { + rankdir=LR; + MGW [label="IUT\nosmo-mgw",shape="box"]; + ATS [label="ATS\nMGCP_Test.ttcn"]; + + ATS -> MGW [label="RTP"]; + ATS -> MGW [label="MGCP"]; + MGW -> ATS [label="RTP"]; +} +%} diff --git a/msc/README.md b/msc/README.md new file mode 100644 index 0000000..6be15ce --- /dev/null +++ b/msc/README.md @@ -0,0 +1,24 @@ + +# MSC_Tests.ttcn + +* external interfaces + * A: BSSAP/SCCP/M3UA (emulates BSC-side) + * MNCC: MNCC/unix-domain (emulates ext. MNCC side) + * MGW: MGCP (emulates MGW side) + * GSUP (impllements HLR side) + +{% dot msc_tests.svg +digraph G { + rankdir=LR; + MSC [label="IUT\nosmo-msc",shape="box"]; + ATS [label="ATS\nMSC_Tests.ttcn"]; + + ATS -> MSC [label="MNCC"]; + ATS -> MSC [label="SMPP",style="dashed"]; + ATS -> MSC [label="CTRL"]; + ATS -> MSC [label="VTY"]; + MSC -> ATS [label="GSUP"]; + ATS -> STP [label="A BSSAP\nSCCP/M3UA"]; + MSC -> STP [label="A BSSAP\nSCCP/M3UA"]; +} +%} diff --git a/sgsn/README.md b/sgsn/README.md new file mode 100644 index 0000000..4ed7ea4 --- /dev/null +++ b/sgsn/README.md @@ -0,0 +1,18 @@ +# SGSN_Tests.ttcn + +* external interfaces + * Gb (emulates PCU side NS/BSSGP + MS) + * GSUP (emulates HLR) + * VTY + +{% dot sgsn_tests.svg +digraph G { + rankdir=LR; + SGSN [label="SGSN\nosmo-sgsn",shape="box"]; + ATS [label="ATS\nSGSN_Tests.ttcn"]; + + ATS -> SGSN [label="Gb"]; + SGSN-> ATS [label="Gp (GTP)"]; + ATS -> SGSN [label="VTY"]; +} +%} diff --git a/sip/README.md b/sip/README.md new file mode 100644 index 0000000..ac880dd --- /dev/null +++ b/sip/README.md @@ -0,0 +1,18 @@ +* SIP_Tests.ttcn + +* external interfaces + * MNCC (emulates MSC side) + * SIP (emulates SIP switch) + * VTY + +{% dot sip_tests.svg +digraph G { + rankdir=LR; + SIP [label="SIP\nosmo-sip-connector",shape="box"]; + ATS [label="ATS\nSIP_Tests.ttcn"]; + + ATS -> SIP [label="MNCC"]; + ATS -> SIP [label="SIP"]; + ATS -> SIP [label="VTY"]; +} +%} -- To view, visit https://gerrit.osmocom.org/9633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9aad03e605569e9613665a7585d60bf308bcb54f Gerrit-Change-Number: 9633 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 20:45:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 20:45:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add README.md file for several suites In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9633 ) Change subject: Add README.md file for several suites ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9aad03e605569e9613665a7585d60bf308bcb54f Gerrit-Change-Number: 9633 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 20:45:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 20:45:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 20:45:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add README.md file for several suites In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9633 ) Change subject: Add README.md file for several suites ...................................................................... Add README.md file for several suites Content grabbed from [1] and converted to markdown as it's more probable to have it displayed correctly on popular git repo hosting platforms. Syntax for embedded graphviz taken from [2]. [1] http://git.gnumonks.org/laforge-slides/plain/2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.adoc [2] https://github.com/stlehmann/markdown-graphviz Change-Id: I9aad03e605569e9613665a7585d60bf308bcb54f --- A bsc/README.md A bts/README.md A ggsn_tests/README.md A hlr/README.md A mgw/README.md A msc/README.md A sgsn/README.md A sip/README.md 8 files changed, 159 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/README.md b/bsc/README.md new file mode 100644 index 0000000..6efaa7f --- /dev/null +++ b/bsc/README.md @@ -0,0 +1,23 @@ +# BSC_Tests.ttcn + +* external interfaces + * A-bis side: RSL (emulates BTS-side client) + * A-side: BSSAP/SCCP/M3UA (emulates MSC-side) + * MGW side: MGCP (emulates MGW side) + +{% dot bsc_tests.svg +digraph G { + rankdir=LR; + { rank=same; BTS; STP; }; + BSC [label="IUT\nosmo-bsc",shape="box"]; + ATS [label="ATS\nBSC_Tests.ttcn"]; + BTS [label="osmo-bts-omldummy\nOML only"]; + + BTS -> BSC [label="A-bis OML"]; + ATS -> BSC [label="A-bis RSL"]; + ATS -> BSC [label="CTRL"]; + ATS -> BSC [label="VTY"]; + ATS -> STP [label="A BSSAP\nSCCP/M3UA"]; + BSC -> STP [label="A BSSAP\nSCCP/M3UA"]; +} +%} diff --git a/bts/README.md b/bts/README.md new file mode 100644 index 0000000..058e1d2 --- /dev/null +++ b/bts/README.md @@ -0,0 +1,26 @@ +# BTS_Tests.ttcn + +* external interfaces + * A-bis side: RSL (emulates BSC-side server) + * Um side: L1CTL to control MS + * PCU side: pcu_socket + +{% dot bts_tests.svg +digraph G { + rankdir=LR; + { rank=same; BTS, BSC}; + BTS [label="IUT\nosmo-bts-trx",shape="box"]; + ATS [label="ATS\nBTS_Tests.ttcn"]; + BSC [label="osmo-bsc\nOML only"]; + BTS -> fake_trx [label="bursts"]; + fake_trx -> trxcon [label="bursts"]; + trxcon -> ATS [label="bursts"]; + + BTS -> BSC [label="A-bis OML"]; + BTS -> ATS [label="A-bis RSL"]; + + ATS -> BTS [label="pcu_sock"]; + ATS -> BSC [label="VTY"]; + ATS -> BTS [label="CTRL"]; +} +%} diff --git a/ggsn_tests/README.md b/ggsn_tests/README.md new file mode 100644 index 0000000..288018f --- /dev/null +++ b/ggsn_tests/README.md @@ -0,0 +1,17 @@ +# GGSN_Tests.ttcn + +* external interfaces + * Gp: GTP (emulates SGSN) + * Gi: IP (emulates Internet) + +{% dot ggsn_tests.svg +digraph G { + rankdir=LR; + GGSN [label="GGSN\nosmo-ggsn",shape="box"]; + ATS [label="ATS\nGGSN_Tests.ttcn"]; + + ATS -> GGSN [label="Gp (GTP)"]; + GGSN -> ATS [label="Gi (IP)"]; + ATS -> GGSN [label="VTY"]; +} +%} diff --git a/hlr/README.md b/hlr/README.md new file mode 100644 index 0000000..a08c03f --- /dev/null +++ b/hlr/README.md @@ -0,0 +1,16 @@ +# HLR_Tests.ttcn + +* external interfaces + * GSUP (emulates VLR/SGSN side) + * VTY + +{% dot hlr_tests.svg +digraph G { + rankdir=LR; + HLR [label="IUT\nosmo-hlr",shape="box"]; + ATS [label="ATS\nHLR_Tests.ttcn"]; + + ATS -> HLR [label="GSUP"]; + ATS -> HLR [label="VTY"]; +} +%} diff --git a/mgw/README.md b/mgw/README.md new file mode 100644 index 0000000..8f08262 --- /dev/null +++ b/mgw/README.md @@ -0,0 +1,17 @@ +== MGW_Test.ttcn + +* external interfaces + * MGCP (emulates call agent) + * RTP (stream source/sink) + +{% dot mgw_tests.svg +digraph G { + rankdir=LR; + MGW [label="IUT\nosmo-mgw",shape="box"]; + ATS [label="ATS\nMGCP_Test.ttcn"]; + + ATS -> MGW [label="RTP"]; + ATS -> MGW [label="MGCP"]; + MGW -> ATS [label="RTP"]; +} +%} diff --git a/msc/README.md b/msc/README.md new file mode 100644 index 0000000..6be15ce --- /dev/null +++ b/msc/README.md @@ -0,0 +1,24 @@ + +# MSC_Tests.ttcn + +* external interfaces + * A: BSSAP/SCCP/M3UA (emulates BSC-side) + * MNCC: MNCC/unix-domain (emulates ext. MNCC side) + * MGW: MGCP (emulates MGW side) + * GSUP (impllements HLR side) + +{% dot msc_tests.svg +digraph G { + rankdir=LR; + MSC [label="IUT\nosmo-msc",shape="box"]; + ATS [label="ATS\nMSC_Tests.ttcn"]; + + ATS -> MSC [label="MNCC"]; + ATS -> MSC [label="SMPP",style="dashed"]; + ATS -> MSC [label="CTRL"]; + ATS -> MSC [label="VTY"]; + MSC -> ATS [label="GSUP"]; + ATS -> STP [label="A BSSAP\nSCCP/M3UA"]; + MSC -> STP [label="A BSSAP\nSCCP/M3UA"]; +} +%} diff --git a/sgsn/README.md b/sgsn/README.md new file mode 100644 index 0000000..4ed7ea4 --- /dev/null +++ b/sgsn/README.md @@ -0,0 +1,18 @@ +# SGSN_Tests.ttcn + +* external interfaces + * Gb (emulates PCU side NS/BSSGP + MS) + * GSUP (emulates HLR) + * VTY + +{% dot sgsn_tests.svg +digraph G { + rankdir=LR; + SGSN [label="SGSN\nosmo-sgsn",shape="box"]; + ATS [label="ATS\nSGSN_Tests.ttcn"]; + + ATS -> SGSN [label="Gb"]; + SGSN-> ATS [label="Gp (GTP)"]; + ATS -> SGSN [label="VTY"]; +} +%} diff --git a/sip/README.md b/sip/README.md new file mode 100644 index 0000000..ac880dd --- /dev/null +++ b/sip/README.md @@ -0,0 +1,18 @@ +* SIP_Tests.ttcn + +* external interfaces + * MNCC (emulates MSC side) + * SIP (emulates SIP switch) + * VTY + +{% dot sip_tests.svg +digraph G { + rankdir=LR; + SIP [label="SIP\nosmo-sip-connector",shape="box"]; + ATS [label="ATS\nSIP_Tests.ttcn"]; + + ATS -> SIP [label="MNCC"]; + ATS -> SIP [label="SIP"]; + ATS -> SIP [label="VTY"]; +} +%} -- To view, visit https://gerrit.osmocom.org/9633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9aad03e605569e9613665a7585d60bf308bcb54f Gerrit-Change-Number: 9633 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 20:45:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 20:45:50 +0000 Subject: Change in pysim[master]: __init__: allow wildcards in expected SW for send_apdu_checksw() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9571 ) Change subject: __init__: allow wildcards in expected SW for send_apdu_checksw() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 Gerrit-Change-Number: 9571 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 14 Jun 2018 20:45:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 20:46:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 20:46:12 +0000 Subject: Change in osmo-bts[master]: pcu_sock: Log event pcu_sock created In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9632 ) Change subject: pcu_sock: Log event pcu_sock created ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2aa55e05ac481fee59af5bad87baf707831df088 Gerrit-Change-Number: 9632 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 20:46:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 14 20:46:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Jun 2018 20:46:24 +0000 Subject: Change in osmo-bts[master]: pcu_sock: Log event pcu_sock created In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9632 ) Change subject: pcu_sock: Log event pcu_sock created ...................................................................... Patch Set 1: might make sense to have the same patch for osmo-bsc -- To view, visit https://gerrit.osmocom.org/9632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2aa55e05ac481fee59af5bad87baf707831df088 Gerrit-Change-Number: 9632 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 14 Jun 2018 20:46:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 07:25:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 07:25:13 +0000 Subject: Change in libosmocore[master]: Add function gprs_nsvc_state_append In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9631 ) Change subject: Add function gprs_nsvc_state_append ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7f0eaff7329ab98cad792d30b20ab053007aab85 Gerrit-Change-Number: 9631 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 07:25:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 07:25:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 07:25:14 +0000 Subject: Change in libosmocore[master]: Add function gprs_nsvc_state_append In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9631 ) Change subject: Add function gprs_nsvc_state_append ...................................................................... Add function gprs_nsvc_state_append A common function to append the nsvc state from osmo-sgsn or osmo-gbproxy Change-Id: I7f0eaff7329ab98cad792d30b20ab053007aab85 --- M include/osmocom/gprs/gprs_ns.h M src/gb/gprs_ns.c M src/gb/libosmogb.map 3 files changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index b368ad9..7b95099 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -226,4 +226,6 @@ void gprs_ns_set_log_ss(int ss); +char *gprs_nsvc_state_append(char *s, struct gprs_nsvc *nsvc); + /*! @} */ diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 47d170d..75c3141 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -1705,4 +1705,26 @@ DNS = ss; } +/*! Append the nsvc state to a talloc string + * \param s The string to append to (allocated with talloc) + * \param[in] nsvc The NS-VC to print the state of + * \returns The new string with state information appended to it + * + * This function will append a comma-separated state of the NS-VC to the + * string. The string needs to be allocated with talloc (e.g. talloc_strdup) + */ +char *gprs_nsvc_state_append(char *s, struct gprs_nsvc *nsvc) +{ + s = talloc_asprintf_append(s, + "%u,%u,%s,%s,%s,%s,%s\n", + nsvc->nsei, nsvc->nsvci, + NS_DESC_A(nsvc->state), + NS_DESC_B(nsvc->state), + nsvc->remote_end_is_sgsn ? "SGSN" : "BSS", + NS_DESC_A(nsvc->remote_state), + NS_DESC_B(nsvc->remote_state)); + + return s; +} + /*! @} */ diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 83a3621..d56e651 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -70,6 +70,7 @@ gprs_nsvc_reset; gprs_nsvc_by_nsvci; gprs_nsvc_by_nsei; +gprs_nsvc_state_append; gprs_log_filter_fn; -- To view, visit https://gerrit.osmocom.org/9631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7f0eaff7329ab98cad792d30b20ab053007aab85 Gerrit-Change-Number: 9631 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 07:26:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 07:26:31 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9402 ) Change subject: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 15 Jun 2018 07:26:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 07:33:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 07:33:46 +0000 Subject: Change in osmo-sgsn[master]: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9402 ) Change subject: gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands ...................................................................... gb_proxy: Add ctrl interface and nsvc-state, gbproxy-state commands This patch adds a control interface to osmo-gbproxy as well as the first two commands to query the state of each NSVC and gbproxy peer. The "nsvc-state" command replies with nsei, nsvci, local state, role, remote state of all NSVCs. The "gbproxy-state" command replies with nsei, bvci, mcc, mnc, lac, rac, and state of each peer. Entries are separated by a newline '\n' character. If there are no entries an empty list is returned. This behaviour is similar to that of the subscriber-list-active-v1 command in osmo-sgsn. $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g nsvc-state Got message: b'GET_REPLY 23 nsvc-state 101,101,DEAD,BLOCKED,SGSN,DEAD,UNBLOCKED\n' $ ./osmo_ctrl.py -d 127.0.0.1 -p 4263 -g gbproxy-state Got message: b'GET_REPLY 4871085901306801158 gbproxy-state ' Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Ticket: OS#3281, SYS#4235 Sponsored-by: On-Waves ehf --- M include/osmocom/sgsn/gb_proxy.h M src/gprs/Makefile.am A src/gprs/gb_proxy_ctrl.c M src/gprs/gb_proxy_main.c 4 files changed, 107 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/sgsn/gb_proxy.h b/include/osmocom/sgsn/gb_proxy.h index 2540a7e..70de3d7 100644 --- a/include/osmocom/sgsn/gb_proxy.h +++ b/include/osmocom/sgsn/gb_proxy.h @@ -184,6 +184,9 @@ int gbproxy_vty_init(void); int gbproxy_parse_config(const char *config_file, struct gbproxy_config *cfg); +/* gb_proxy_ctrl.c */ +int gb_ctrl_cmds_install(void); + /* gb_proxy.c */ int gbproxy_init_config(struct gbproxy_config *cfg); diff --git a/src/gprs/Makefile.am b/src/gprs/Makefile.am index 4c7f730..1cf6785 100644 --- a/src/gprs/Makefile.am +++ b/src/gprs/Makefile.am @@ -44,6 +44,7 @@ gb_proxy.c \ gb_proxy_main.c \ gb_proxy_vty.c \ + gb_proxy_ctrl.c \ gb_proxy_patch.c \ gb_proxy_tlli.c \ gb_proxy_peer.c \ diff --git a/src/gprs/gb_proxy_ctrl.c b/src/gprs/gb_proxy_ctrl.c new file mode 100644 index 0000000..032d8d4 --- /dev/null +++ b/src/gprs/gb_proxy_ctrl.c @@ -0,0 +1,85 @@ +/* Control Interface Implementation for the Gb-proxy */ +/* + * (C) 2018 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Daniel Willmann + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include + + +#include +#include + +#include +#include +#include +#include + +extern vector ctrl_node_vec; + +static int get_nsvc_state(struct ctrl_cmd *cmd, void *data) +{ + struct gbproxy_config *cfg = data; + struct gprs_ns_inst *nsi = cfg->nsi; + struct gprs_nsvc *nsvc; + + cmd->reply = talloc_strdup(cmd, ""); + + llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { + if (nsvc == nsi->unknown_nsvc) + continue; + + cmd->reply = gprs_nsvc_state_append(cmd->reply, nsvc); + } + + return CTRL_CMD_REPLY; +} + +CTRL_CMD_DEFINE_RO(nsvc_state, "nsvc-state"); + +static int get_gbproxy_state(struct ctrl_cmd *cmd, void *data) +{ + struct gbproxy_config *cfg = data; + struct gbproxy_peer *peer; + + cmd->reply = talloc_strdup(cmd, ""); + + llist_for_each_entry(peer, &cfg->bts_peers, list) { + struct gprs_ra_id raid; + gsm48_parse_ra(&raid, peer->ra); + + cmd->reply = talloc_asprintf_append(cmd->reply, "%u,%u,%u,%u,%u,%u,%s\n", + peer->nsei, peer->bvci, + raid.mcc, raid.mnc, + raid.lac, raid.rac, + peer->blocked ? "BLOCKED" : "UNBLOCKED"); + } + + return CTRL_CMD_REPLY; +} + +CTRL_CMD_DEFINE_RO(gbproxy_state, "gbproxy-state"); + +int gb_ctrl_cmds_install(void) +{ + int rc = 0; + rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_nsvc_state); + rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_gbproxy_state); + return rc; +} diff --git a/src/gprs/gb_proxy_main.c b/src/gprs/gb_proxy_main.c index 474aa52..97e6342 100644 --- a/src/gprs/gb_proxy_main.c +++ b/src/gprs/gb_proxy_main.c @@ -46,6 +46,10 @@ #include #include +#include +#include +#include + #include #include #include @@ -263,6 +267,7 @@ int main(int argc, char **argv) { int rc; + struct ctrl_handle *ctrl; tall_bsc_ctx = talloc_named_const(NULL, 0, "nsip_proxy"); msgb_talloc_ctx_init(tall_bsc_ctx, 0); @@ -334,6 +339,19 @@ if (rc < 0) exit(1); + /* Start control interface after getting config for + * ctrl_vty_get_bind_addr() */ + ctrl = ctrl_interface_setup_dynip(gbcfg, ctrl_vty_get_bind_addr(), OSMO_CTRL_PORT_GBPROXY, NULL); + if (!ctrl) { + LOGP(DGPRS, LOGL_FATAL, "Failed to create CTRL interface.\n"); + exit(1); + } + + if (gb_ctrl_cmds_install() != 0) { + LOGP(DGPRS, LOGL_FATAL, "Failed to install CTRL commands.\n"); + exit(1); + } + if (!gprs_nsvc_by_nsei(gbcfg->nsi, gbcfg->nsip_sgsn_nsei)) { LOGP(DGPRS, LOGL_FATAL, "You cannot proxy to NSEI %u " "without creating that NSEI before\n", -- To view, visit https://gerrit.osmocom.org/9402 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I82c74fd0bfcb9ba4ec3619d9fdaa0cae201b3177 Gerrit-Change-Number: 9402 Gerrit-PatchSet: 5 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 08:34:16 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 08:34:16 +0000 Subject: Change in osmo-bsc[master]: pcu_sock: Log event pcu_sock created Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9634 Change subject: pcu_sock: Log event pcu_sock created ...................................................................... pcu_sock: Log event pcu_sock created Change-Id: If5691d8e8bae7166e06382db589850ce94c20a30 --- M src/osmo-bsc/pcu_sock.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/34/9634/1 diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index 64422c7..5a3fefa 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -715,6 +715,8 @@ return rc; } + LOGP(DPCU, LOGL_INFO, "Started listening on PCU socket: %s\n", path); + bts->pcu_state = state; return 0; } -- To view, visit https://gerrit.osmocom.org/9634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If5691d8e8bae7166e06382db589850ce94c20a30 Gerrit-Change-Number: 9634 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 11:43:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 11:43:31 +0000 Subject: Change in osmo-bsc[master]: pcu_sock: Log event pcu_sock created In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9634 ) Change subject: pcu_sock: Log event pcu_sock created ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If5691d8e8bae7166e06382db589850ce94c20a30 Gerrit-Change-Number: 9634 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 11:43:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 11:43:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 11:43:34 +0000 Subject: Change in osmo-bsc[master]: pcu_sock: Log event pcu_sock created In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9634 ) Change subject: pcu_sock: Log event pcu_sock created ...................................................................... pcu_sock: Log event pcu_sock created Change-Id: If5691d8e8bae7166e06382db589850ce94c20a30 --- M src/osmo-bsc/pcu_sock.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index 64422c7..5a3fefa 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -715,6 +715,8 @@ return rc; } + LOGP(DPCU, LOGL_INFO, "Started listening on PCU socket: %s\n", path); + bts->pcu_state = state; return 0; } -- To view, visit https://gerrit.osmocom.org/9634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If5691d8e8bae7166e06382db589850ce94c20a30 Gerrit-Change-Number: 9634 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 11:43:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 11:43:42 +0000 Subject: Change in osmo-bts[master]: pcu_sock: Log event pcu_sock created In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9632 ) Change subject: pcu_sock: Log event pcu_sock created ...................................................................... pcu_sock: Log event pcu_sock created Change-Id: I2aa55e05ac481fee59af5bad87baf707831df088 --- M src/common/pcu_sock.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 5f94050..bdebf65 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -932,6 +932,8 @@ bts_gsmnet.pcu_state = state; + LOGP(DPCU, LOGL_INFO, "Started listening on PCU socket: %s\n", path); + return 0; } -- To view, visit https://gerrit.osmocom.org/9632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2aa55e05ac481fee59af5bad87baf707831df088 Gerrit-Change-Number: 9632 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 12:58:45 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 12:58:45 +0000 Subject: Change in osmo-msc[master]: msc_main: Fix typo in description of version param Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9635 Change subject: msc_main: Fix typo in description of version param ...................................................................... msc_main: Fix typo in description of version param Change-Id: I553a2695aec19517b3c67f5eb5d495180e24d7e8 --- M src/osmo-msc/msc_main.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/35/9635/1 diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index 85a8fe1..b83691f 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -125,7 +125,7 @@ printf(" -s --disable-color\n"); printf(" -l --database db-name The database to use.\n"); printf(" -T --timestamp Prefix every log line with a timestamp.\n"); - printf(" -V --version Print the version of OpenBSC.\n"); + printf(" -V --version Print the version of OsmoMSC.\n"); printf(" -e --log-level number Set a global loglevel.\n"); printf(" -M --mncc-sock-path PATH Disable built-in MNCC handler and offer socket.\n"); printf(" -C --no-dbcounter Disable regular syncing of counters to database.\n"); -- To view, visit https://gerrit.osmocom.org/9635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I553a2695aec19517b3c67f5eb5d495180e24d7e8 Gerrit-Change-Number: 9635 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 13:05:22 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 13:05:22 +0000 Subject: Change in osmo-msc[master]: msc_main: Set copyright description field statically Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9636 Change subject: msc_main: Set copyright description field statically ...................................................................... msc_main: Set copyright description field statically Change-Id: I432990624e7c375e29ef57998691327bffc89227 --- M src/osmo-msc/msc_main.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/36/9636/1 diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index b83691f..8fa0131 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -316,6 +316,7 @@ static struct vty_app_info msc_vty_info = { .name = "OsmoMSC", .version = PACKAGE_VERSION, + .copyright = osmomsc_copyright, .go_parent_cb = msc_vty_go_parent, .is_config_node = msc_vty_is_config_node, }; @@ -521,8 +522,6 @@ { int rc; - msc_vty_info.copyright = osmomsc_copyright; - tall_msc_ctx = talloc_named_const(NULL, 1, "osmo_msc"); msc_vty_info.tall_ctx = tall_msc_ctx; -- To view, visit https://gerrit.osmocom.org/9636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I432990624e7c375e29ef57998691327bffc89227 Gerrit-Change-Number: 9636 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 13:19:54 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 13:19:54 +0000 Subject: Change in osmo-trx[master]: Add -V param to print version Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9637 Change subject: Add -V param to print version ...................................................................... Add -V param to print version Change-Id: I9f2d6c4b1a508aceb1ccc0559f0902eedf2ec5af --- M Transceiver52M/osmo-trx.cpp 1 file changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/37/9637/1 diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp index 09ba14e..1c40fcf 100644 --- a/Transceiver52M/osmo-trx.cpp +++ b/Transceiver52M/osmo-trx.cpp @@ -49,6 +49,8 @@ #include #include #include +#include + #include "convolve.h" #include "convert.h" #include "trx_vty.h" @@ -194,6 +196,7 @@ fprintf(stdout, "Options:\n" " -h This text\n" " -C Filename The config file to use\n" + " -V Print the version of OsmoTRX\n" ); } @@ -211,7 +214,7 @@ std::vector rx_paths, tx_paths; bool rx_paths_set = false, tx_paths_set = false; - while ((option = getopt(argc, argv, "ha:l:i:j:p:c:dmxgfo:s:b:r:A:R:Set:y:z:C:")) != -1) { + while ((option = getopt(argc, argv, "ha:l:i:j:p:c:dmxgfo:s:b:r:A:R:Set:y:z:C:V")) != -1) { switch (option) { case 'h': print_help(); @@ -311,6 +314,10 @@ case 'C': config_file = optarg; break; + case 'V': + print_version(1); + exit(0); + break; default: goto bad_config; } -- To view, visit https://gerrit.osmocom.org/9637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9f2d6c4b1a508aceb1ccc0559f0902eedf2ec5af Gerrit-Change-Number: 9637 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 13:26:40 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 13:26:40 +0000 Subject: Change in osmo-msc[master]: msc_main: Set copyright description field statically In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9636 ) Change subject: msc_main: Set copyright description field statically ...................................................................... Patch Set 1: Strange, this worked fine with gcc 8 on my PC. -- To view, visit https://gerrit.osmocom.org/9636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I432990624e7c375e29ef57998691327bffc89227 Gerrit-Change-Number: 9636 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 15 Jun 2018 13:26:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 13:29:58 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 13:29:58 +0000 Subject: Change in osmo-msc[master]: msc_main: Set copyright description field statically In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9636 ) Change subject: msc_main: Set copyright description field statically ...................................................................... Patch Set 1: CC msc_main.o msc_main.c:319:2: error: initializer element is not constant .copyright = osmomsc_copyright, ^ msc_main.c:319:2: error: (near initialization for 'msc_vty_info.copyright') Makefile:474: recipe for target 'msc_main.o' faile However, copyright field is const (vty.h): /*! Information an application registers with the VTY */ struct vty_app_info { /*! name of the application */ const char *name; /*! version string of the application */ const char *version; /*! copyright string of the application */ const char *copyright; ... -- To view, visit https://gerrit.osmocom.org/9636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I432990624e7c375e29ef57998691327bffc89227 Gerrit-Change-Number: 9636 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 15 Jun 2018 13:29:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 13:49:15 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 13:49:15 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Clean help description of cmd line parameters Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9638 Change subject: osmo-bsc: Clean help description of cmd line parameters ...................................................................... osmo-bsc: Clean help description of cmd line parameters Change-Id: I2ce242e97445785c3f1d965d89e3f1b6ca6a37ab --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 10 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/38/9638/1 diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 8495608..6967e8c 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -86,16 +86,16 @@ static void print_help() { printf(" Some useful help...\n"); - printf(" -h --help this text\n"); - printf(" -D --daemonize Fork the process into a background daemon\n"); - printf(" -d option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging\n"); - printf(" -s --disable-color\n"); - printf(" -T --timestamp. Print a timestamp in the debug output.\n"); - printf(" -c --config-file filename The config file to use.\n"); - printf(" -l --local=IP. The local address of the MGCP.\n"); - printf(" -e --log-level number. Set a global loglevel.\n"); - printf(" -r --rf-ctl NAME. A unix domain socket to listen for cmds.\n"); - printf(" -t --testmode. A special mode to provoke failures at the MSC.\n"); + printf(" -h --help This text.\n"); + printf(" -D --daemonize Fork the process into a background daemon.\n"); + printf(" -d --debug option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging.\n"); + printf(" -s --disable-color Disable coloring log in stderr.\n"); + printf(" -T --timestamp Print a timestamp in the debug output.\n"); + printf(" -c --config-file filename The config file to use.\n"); + printf(" -l --local IP The local address of the MGCP.\n"); + printf(" -e --log-level number Set a global loglevel.\n"); + printf(" -r --rf-ctl NAME A unix domain socket to listen for cmds.\n"); + printf(" -t --testmode A special mode to provoke failures at the MSC.\n"); } static void handle_options(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/9638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2ce242e97445785c3f1d965d89e3f1b6ca6a37ab Gerrit-Change-Number: 9638 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 13:49:16 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 13:49:16 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Add -V param to print version Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9639 Change subject: osmo-bsc: Add -V param to print version ...................................................................... osmo-bsc: Add -V param to print version Change-Id: I74e0e40ee6b2ce66d76f151528d9a958683944c7 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/9639/1 diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 6967e8c..f21a0ea 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -91,6 +92,7 @@ printf(" -d --debug option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging.\n"); printf(" -s --disable-color Disable coloring log in stderr.\n"); printf(" -T --timestamp Print a timestamp in the debug output.\n"); + printf(" -V --version Print the version of OsmoBSC.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -l --local IP The local address of the MGCP.\n"); printf(" -e --log-level number Set a global loglevel.\n"); @@ -109,6 +111,7 @@ {"config-file", 1, 0, 'c'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, + {"version", 0, 0, 'V' }, {"local", 1, 0, 'l'}, {"log-level", 1, 0, 'e'}, {"rf-ctl", 1, 0, 'r'}, @@ -141,6 +144,10 @@ case 'T': log_set_print_timestamp(osmo_stderr_target, 1); break; + case 'V': + print_version(1); + exit(0); + break; case 'e': log_set_log_level(osmo_stderr_target, atoi(optarg)); break; -- To view, visit https://gerrit.osmocom.org/9639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I74e0e40ee6b2ce66d76f151528d9a958683944c7 Gerrit-Change-Number: 9639 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:34:05 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 14:34:05 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Add -V param to print version In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9639 to look at the new patch set (#2). Change subject: osmo-bsc: Add -V param to print version ...................................................................... osmo-bsc: Add -V param to print version Change-Id: I74e0e40ee6b2ce66d76f151528d9a958683944c7 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/9639/2 -- To view, visit https://gerrit.osmocom.org/9639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I74e0e40ee6b2ce66d76f151528d9a958683944c7 Gerrit-Change-Number: 9639 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:46:17 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 14:46:17 +0000 Subject: Change in openbsc[master]: gsm0408_dispatch: Fix uninitialized var warning Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9640 Change subject: gsm0408_dispatch: Fix uninitialized var warning ...................................................................... gsm0408_dispatch: Fix uninitialized var warning Got this warning since my upgrade to gcc 8.1.0. Quick check tells me it's probably a false positive, but let's fix the warning anyway. openbsc/openbsc/src/libmsc/gsm_04_08.c: In function ?gsm0408_dispatch?: openbsc/openbsc/src/libmsc/gsm_04_08.c:1260:5: error: ?res_len? may be used uninitialized in this function [-Werror=maybe-uninitialized] if (res_len != 4) { ^ openbsc/openbsc/src/libmsc/gsm_04_08.c:1223:10: note: ?res_len? was declared here uint8_t res_len; ^~~~~~~ Change-Id: Ifa45f73645c9ab022c18a012abe03214aa21526f --- M openbsc/src/libmsc/gsm_04_08.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/40/9640/1 diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 006de7f..09e35cc 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -1220,7 +1220,7 @@ { struct gsm_network *net = conn->network; uint8_t res[16]; - uint8_t res_len; + uint8_t res_len = 0; int rc; bool is_r99; -- To view, visit https://gerrit.osmocom.org/9640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifa45f73645c9ab022c18a012abe03214aa21526f Gerrit-Change-Number: 9640 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:46:18 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 14:46:18 +0000 Subject: Change in openbsc[master]: bsc-nat: Fix missing help description for -T timestamp cmdline option Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9641 Change subject: bsc-nat: Fix missing help description for -T timestamp cmdline option ...................................................................... bsc-nat: Fix missing help description for -T timestamp cmdline option Change-Id: I6a6fc3574630c0893797388bbbdeabe14572f988 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/41/9641/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index e912f60..a9f1c0b 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1464,6 +1464,7 @@ printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); printf(" -s --disable-color\n"); + printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -m --msc=IP. The address of the MSC.\n"); printf(" -l --local=IP. The local address of this BSC.\n"); -- To view, visit https://gerrit.osmocom.org/9641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6a6fc3574630c0893797388bbbdeabe14572f988 Gerrit-Change-Number: 9641 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:46:18 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 14:46:18 +0000 Subject: Change in openbsc[master]: bsc-nat: Add -V param to print version Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9642 Change subject: bsc-nat: Add -V param to print version ...................................................................... bsc-nat: Add -V param to print version Change-Id: I4dbf97905749aa9379bc6b6b448953d8b1825545 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/42/9642/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index a9f1c0b..ba7f542 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1465,6 +1465,7 @@ printf(" -D --daemonize Fork the process into a background daemon\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); + printf(" -V --version. Print the version of OsmoBSCNAT.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -m --msc=IP. The address of the MSC.\n"); printf(" -l --local=IP. The local address of this BSC.\n"); @@ -1481,12 +1482,13 @@ {"config-file", 1, 0, 'c'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, + {"version", 0, 0, 'V' }, {"msc", 1, 0, 'm'}, {"local", 1, 0, 'l'}, {0, 0, 0, 0} }; - c = getopt_long(argc, argv, "hd:sTPc:m:l:D", + c = getopt_long(argc, argv, "hd:sTVPc:m:l:D", long_options, &option_index); if (c == -1) break; @@ -1511,6 +1513,10 @@ case 'T': log_set_print_timestamp(osmo_stderr_target, 1); break; + case 'V': + print_version(1); + exit(0); + break; case 'm': msc_ip = optarg; break; -- To view, visit https://gerrit.osmocom.org/9642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4dbf97905749aa9379bc6b6b448953d8b1825545 Gerrit-Change-Number: 9642 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:46:18 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 14:46:18 +0000 Subject: Change in openbsc[master]: bsc-sccplite: Add -V param to print version Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9643 Change subject: bsc-sccplite: Add -V param to print version ...................................................................... bsc-sccplite: Add -V param to print version Change-Id: Iad663d36d70196408806de664a39863f4d12238b --- M openbsc/src/osmo-bsc/osmo_bsc_main.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/43/9643/1 diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c index 022cd3d..be24cbd 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_main.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c @@ -81,6 +81,7 @@ printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); + printf(" -V --version. Print the version of OsmoBSC.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -l --local=IP. The local address of the MGCP.\n"); printf(" -e --log-level number. Set a global loglevel.\n"); @@ -99,6 +100,7 @@ {"config-file", 1, 0, 'c'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, + {"version", 0, 0, 'V' }, {"local", 1, 0, 'l'}, {"log-level", 1, 0, 'e'}, {"rf-ctl", 1, 0, 'r'}, @@ -106,7 +108,7 @@ {0, 0, 0, 0} }; - c = getopt_long(argc, argv, "hd:DsTc:e:r:t", + c = getopt_long(argc, argv, "hd:DsTVc:e:r:t", long_options, &option_index); if (c == -1) break; @@ -131,6 +133,10 @@ case 'T': log_set_print_timestamp(osmo_stderr_target, 1); break; + case 'V': + print_version(1); + exit(0); + break; case 'e': log_set_log_level(osmo_stderr_target, atoi(optarg)); break; -- To view, visit https://gerrit.osmocom.org/9643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iad663d36d70196408806de664a39863f4d12238b Gerrit-Change-Number: 9643 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:50:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:50:00 +0000 Subject: Change in openbsc[master]: bsc-sccplite: Add -V param to print version In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9643 ) Change subject: bsc-sccplite: Add -V param to print version ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iad663d36d70196408806de664a39863f4d12238b Gerrit-Change-Number: 9643 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 14:50:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:50:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:50:10 +0000 Subject: Change in openbsc[master]: bsc-nat: Add -V param to print version In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9642 ) Change subject: bsc-nat: Add -V param to print version ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4dbf97905749aa9379bc6b6b448953d8b1825545 Gerrit-Change-Number: 9642 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 14:50:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:50:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:50:19 +0000 Subject: Change in openbsc[master]: bsc-nat: Fix missing help description for -T timestamp cmdline option In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9641 ) Change subject: bsc-nat: Fix missing help description for -T timestamp cmdline option ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a6fc3574630c0893797388bbbdeabe14572f988 Gerrit-Change-Number: 9641 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 14:50:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:50:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:50:32 +0000 Subject: Change in openbsc[master]: gsm0408_dispatch: Fix uninitialized var warning In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9640 ) Change subject: gsm0408_dispatch: Fix uninitialized var warning ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa45f73645c9ab022c18a012abe03214aa21526f Gerrit-Change-Number: 9640 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 14:50:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:50:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:50:56 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Clean help description of cmd line parameters In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9638 ) Change subject: osmo-bsc: Clean help description of cmd line parameters ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2ce242e97445785c3f1d965d89e3f1b6ca6a37ab Gerrit-Change-Number: 9638 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 14:50:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:50:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:50:58 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Add -V param to print version In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9639 ) Change subject: osmo-bsc: Add -V param to print version ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I74e0e40ee6b2ce66d76f151528d9a958683944c7 Gerrit-Change-Number: 9639 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 14:50:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:51:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:51:00 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Clean help description of cmd line parameters In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9638 ) Change subject: osmo-bsc: Clean help description of cmd line parameters ...................................................................... osmo-bsc: Clean help description of cmd line parameters Change-Id: I2ce242e97445785c3f1d965d89e3f1b6ca6a37ab --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 10 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 8495608..6967e8c 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -86,16 +86,16 @@ static void print_help() { printf(" Some useful help...\n"); - printf(" -h --help this text\n"); - printf(" -D --daemonize Fork the process into a background daemon\n"); - printf(" -d option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging\n"); - printf(" -s --disable-color\n"); - printf(" -T --timestamp. Print a timestamp in the debug output.\n"); - printf(" -c --config-file filename The config file to use.\n"); - printf(" -l --local=IP. The local address of the MGCP.\n"); - printf(" -e --log-level number. Set a global loglevel.\n"); - printf(" -r --rf-ctl NAME. A unix domain socket to listen for cmds.\n"); - printf(" -t --testmode. A special mode to provoke failures at the MSC.\n"); + printf(" -h --help This text.\n"); + printf(" -D --daemonize Fork the process into a background daemon.\n"); + printf(" -d --debug option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging.\n"); + printf(" -s --disable-color Disable coloring log in stderr.\n"); + printf(" -T --timestamp Print a timestamp in the debug output.\n"); + printf(" -c --config-file filename The config file to use.\n"); + printf(" -l --local IP The local address of the MGCP.\n"); + printf(" -e --log-level number Set a global loglevel.\n"); + printf(" -r --rf-ctl NAME A unix domain socket to listen for cmds.\n"); + printf(" -t --testmode A special mode to provoke failures at the MSC.\n"); } static void handle_options(int argc, char **argv) -- To view, visit https://gerrit.osmocom.org/9638 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2ce242e97445785c3f1d965d89e3f1b6ca6a37ab Gerrit-Change-Number: 9638 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:51:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:51:00 +0000 Subject: Change in osmo-bsc[master]: osmo-bsc: Add -V param to print version In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9639 ) Change subject: osmo-bsc: Add -V param to print version ...................................................................... osmo-bsc: Add -V param to print version Change-Id: I74e0e40ee6b2ce66d76f151528d9a958683944c7 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 8 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 6967e8c..69db32e 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -91,6 +92,7 @@ printf(" -d --debug option --debug=DRLL:DMM:DRR:DRSL:DNM enable debugging.\n"); printf(" -s --disable-color Disable coloring log in stderr.\n"); printf(" -T --timestamp Print a timestamp in the debug output.\n"); + printf(" -V --version Print the version of OsmoBSC.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -l --local IP The local address of the MGCP.\n"); printf(" -e --log-level number Set a global loglevel.\n"); @@ -109,6 +111,7 @@ {"config-file", 1, 0, 'c'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, + {"version", 0, 0, 'V' }, {"local", 1, 0, 'l'}, {"log-level", 1, 0, 'e'}, {"rf-ctl", 1, 0, 'r'}, @@ -116,7 +119,7 @@ {0, 0, 0, 0} }; - c = getopt_long(argc, argv, "hd:DsTc:e:r:t", + c = getopt_long(argc, argv, "hd:DsTVc:e:r:t", long_options, &option_index); if (c == -1) break; @@ -141,6 +144,10 @@ case 'T': log_set_print_timestamp(osmo_stderr_target, 1); break; + case 'V': + print_version(1); + exit(0); + break; case 'e': log_set_log_level(osmo_stderr_target, atoi(optarg)); break; -- To view, visit https://gerrit.osmocom.org/9639 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I74e0e40ee6b2ce66d76f151528d9a958683944c7 Gerrit-Change-Number: 9639 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:52:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:52:06 +0000 Subject: Change in osmo-msc[master]: msc_main: Set copyright description field statically In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9636 ) Change subject: msc_main: Set copyright description field statically ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9636/1/src/osmo-msc/msc_main.c File src/osmo-msc/msc_main.c: https://gerrit.osmocom.org/#/c/9636/1/src/osmo-msc/msc_main.c at 74 PS1, Line 74: const char * const maybe it's the const * const which is creating the compiler error? -- To view, visit https://gerrit.osmocom.org/9636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I432990624e7c375e29ef57998691327bffc89227 Gerrit-Change-Number: 9636 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 15 Jun 2018 14:52:06 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:52:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:52:10 +0000 Subject: Change in osmo-msc[master]: msc_main: Fix typo in description of version param In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9635 ) Change subject: msc_main: Fix typo in description of version param ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I553a2695aec19517b3c67f5eb5d495180e24d7e8 Gerrit-Change-Number: 9635 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 14:52:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 14:52:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 14:52:21 +0000 Subject: Change in osmo-msc[master]: msc_main: Fix typo in description of version param In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9635 ) Change subject: msc_main: Fix typo in description of version param ...................................................................... msc_main: Fix typo in description of version param Change-Id: I553a2695aec19517b3c67f5eb5d495180e24d7e8 --- M src/osmo-msc/msc_main.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index 85a8fe1..b83691f 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -125,7 +125,7 @@ printf(" -s --disable-color\n"); printf(" -l --database db-name The database to use.\n"); printf(" -T --timestamp Prefix every log line with a timestamp.\n"); - printf(" -V --version Print the version of OpenBSC.\n"); + printf(" -V --version Print the version of OsmoMSC.\n"); printf(" -e --log-level number Set a global loglevel.\n"); printf(" -M --mncc-sock-path PATH Disable built-in MNCC handler and offer socket.\n"); printf(" -C --no-dbcounter Disable regular syncing of counters to database.\n"); -- To view, visit https://gerrit.osmocom.org/9635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I553a2695aec19517b3c67f5eb5d495180e24d7e8 Gerrit-Change-Number: 9635 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 15:00:14 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 15:00:14 +0000 Subject: Change in osmo-msc[master]: msc_main: Set copyright description field statically In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9636 ) Change subject: msc_main: Set copyright description field statically ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9636/1/src/osmo-msc/msc_main.c File src/osmo-msc/msc_main.c: https://gerrit.osmocom.org/#/c/9636/1/src/osmo-msc/msc_main.c at 74 PS1, Line 74: const char * const > maybe it's the const * const which is creating the compiler error? Nope, If I use "static const char *osmomsc_copyright" here, I get in gcc 8.1.0: /home/pespin/dev/sysmocom/git/osmo-msc/src/osmo-msc/msc_main.c:319:15: error: initializer element is not constant .copyright = osmomsc_copyright, ^~~~~~~~~~~~~~~~~ /home/pespin/dev/sysmocom/git/osmo-msc/src/osmo-msc/msc_main.c:319:15: note: (near initialization for ?msc_vty_info.copyright?) So I guess it's a bug in older gcc versions and that's why we set it in main() instead. Another solution I think I saw in osmo-bsc, is to set the text directly in "static struct vty_app_info msc_vty_info = {": ... .copyright = " HERE THE ENTIRE COPYRIGHT TEXT ", ... That works. -- To view, visit https://gerrit.osmocom.org/9636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I432990624e7c375e29ef57998691327bffc89227 Gerrit-Change-Number: 9636 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 15 Jun 2018 15:00:14 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 15 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 15 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#155?= In-Reply-To: <1319943397.178.1528989006587.JavaMail.jenkins@jenkins.osmocom.org> References: <1319943397.178.1528989006587.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <215665521.190.1529075406584.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.92 KB...] checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Jun 15 15:15:38 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Jun 2018 15:15:38 +0000 Subject: Change in openbsc[master]: bsc-nat: show running-config now prints bsc nodes Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9644 Change subject: bsc-nat: show running-config now prints bsc nodes ...................................................................... bsc-nat: show running-config now prints bsc nodes Fixes: OS#3335 Change-Id: I847e84d5cc50619059cbae7a2c6471c60609aec6 --- M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 1 file changed, 41 insertions(+), 39 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/44/9644/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index e51de53..057d9ab 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -87,6 +87,46 @@ dump_lac(vty, &pgroup->lists); } +static void config_write_bsc_single(struct vty *vty, struct bsc_config *bsc) +{ + vty_out(vty, " bsc %u%s", bsc->nr, VTY_NEWLINE); + vty_out(vty, " token %s%s", bsc->token, VTY_NEWLINE); + if (bsc->key_present) + vty_out(vty, " auth-key %s%s", osmo_hexdump(bsc->key, 16), VTY_NEWLINE); + dump_lac(vty, &bsc->lac_list); + if (bsc->description) + vty_out(vty, " description %s%s", bsc->description, VTY_NEWLINE); + if (bsc->acc_lst_name) + vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); + vty_out(vty, " max-endpoints %d%s", bsc->max_endpoints, VTY_NEWLINE); + if (bsc->paging_group != -1) + vty_out(vty, " paging group %d%s", bsc->paging_group, VTY_NEWLINE); + vty_out(vty, " paging forbidden %d%s", bsc->forbid_paging, VTY_NEWLINE); + switch (bsc->osmux) { + case OSMUX_USAGE_ON: + vty_out(vty, " osmux on%s", VTY_NEWLINE); + break; + case OSMUX_USAGE_ONLY: + vty_out(vty, " osmux only%s", VTY_NEWLINE); + break; + } + if (bsc->bts_use_jibuf_override) + vty_out(vty, " %sbts-jitter-buffer%s", bsc->bts_use_jibuf? "" : "no ", VTY_NEWLINE); + if (bsc->bts_jitter_delay_min_override) + vty_out(vty, " bts-jitter-delay-min %"PRIu32"%s", bsc->bts_jitter_delay_min, VTY_NEWLINE); + if (bsc->bts_jitter_delay_max_override) + vty_out(vty, " bts-jitter-delay-max %"PRIu32"%s", bsc->bts_jitter_delay_max, VTY_NEWLINE); +} + +static int config_write_bsc(struct vty *vty) +{ + struct bsc_config *bsc; + + llist_for_each_entry(bsc, &_nat->bsc_configs, entry) + config_write_bsc_single(vty, bsc); + return CMD_SUCCESS; +} + static int config_write_nat(struct vty *vty) { struct bsc_msg_acc_lst *lst; @@ -148,46 +188,8 @@ vty_out(vty, " %ssdp-ensure-amr-mode-set%s", _nat->sdp_ensure_amr_mode_set ? "" : "no ", VTY_NEWLINE); - return CMD_SUCCESS; -} + config_write_bsc(vty); -static void config_write_bsc_single(struct vty *vty, struct bsc_config *bsc) -{ - vty_out(vty, " bsc %u%s", bsc->nr, VTY_NEWLINE); - vty_out(vty, " token %s%s", bsc->token, VTY_NEWLINE); - if (bsc->key_present) - vty_out(vty, " auth-key %s%s", osmo_hexdump(bsc->key, 16), VTY_NEWLINE); - dump_lac(vty, &bsc->lac_list); - if (bsc->description) - vty_out(vty, " description %s%s", bsc->description, VTY_NEWLINE); - if (bsc->acc_lst_name) - vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); - vty_out(vty, " max-endpoints %d%s", bsc->max_endpoints, VTY_NEWLINE); - if (bsc->paging_group != -1) - vty_out(vty, " paging group %d%s", bsc->paging_group, VTY_NEWLINE); - vty_out(vty, " paging forbidden %d%s", bsc->forbid_paging, VTY_NEWLINE); - switch (bsc->osmux) { - case OSMUX_USAGE_ON: - vty_out(vty, " osmux on%s", VTY_NEWLINE); - break; - case OSMUX_USAGE_ONLY: - vty_out(vty, " osmux only%s", VTY_NEWLINE); - break; - } - if (bsc->bts_use_jibuf_override) - vty_out(vty, " %sbts-jitter-buffer%s", bsc->bts_use_jibuf? "" : "no ", VTY_NEWLINE); - if (bsc->bts_jitter_delay_min_override) - vty_out(vty, " bts-jitter-delay-min %"PRIu32"%s", bsc->bts_jitter_delay_min, VTY_NEWLINE); - if (bsc->bts_jitter_delay_max_override) - vty_out(vty, " bts-jitter-delay-max %"PRIu32"%s", bsc->bts_jitter_delay_max, VTY_NEWLINE); -} - -static int config_write_bsc(struct vty *vty) -{ - struct bsc_config *bsc; - - llist_for_each_entry(bsc, &_nat->bsc_configs, entry) - config_write_bsc_single(vty, bsc); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/9644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I847e84d5cc50619059cbae7a2c6471c60609aec6 Gerrit-Change-Number: 9644 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 15:30:11 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 15 Jun 2018 15:30:11 +0000 Subject: Change in osmo-mgw[master]: mgcp_client_fsm: improve error logging Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9645 Change subject: mgcp_client_fsm: improve error logging ...................................................................... mgcp_client_fsm: improve error logging Change-Id: I2feefaeefc2d71b64714585ef8137afbb4055b7e --- M src/libosmo-mgcp-client/mgcp_client_fsm.c 1 file changed, 10 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/45/9645/1 diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 10a5b6d..25543ae 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -630,17 +630,24 @@ OSMO_ASSERT(fi->state != ST_DLCX_RESP); /* Check if IP/Port parameters make sense */ - if (conn_peer->port == 0) + if (conn_peer->port == 0) { + LOGPFSML(fi, LOGL_ERROR, "Cannot MDCX, port == 0\n"); return -EINVAL; - if (inet_aton(conn_peer->addr, &ip_test) == 0) + } + if (inet_aton(conn_peer->addr, &ip_test) == 0) { + LOGPFSML(fi, LOGL_ERROR, "Cannot MDCX, IP address == 0.0.0.0\n"); return -EINVAL; + } /*! The user may supply an endpoint identifier in conn_peer. The * identifier is then checked. This check is optional. Later steps do * not depend on the endpoint identifier supplied here because it is * already implicitly known from the CRCX phase. */ - if (strlen(conn_peer->endpoint) && strcmp(conn_peer->endpoint, mgcp_ctx->conn_peer_remote.endpoint)) + if (strlen(conn_peer->endpoint) && strcmp(conn_peer->endpoint, mgcp_ctx->conn_peer_remote.endpoint)) { + LOGPFSML(fi, LOGL_ERROR, "Cannot MDCX, endpoint mismatches: requested %s, should be %s\n", + conn_peer->endpoint, mgcp_ctx->conn_peer_remote.endpoint); return -EINVAL; + } /*! Note: The call-id is implicitly known from the previous CRCX and * will not be checked even when it is set in conn_peer. */ -- To view, visit https://gerrit.osmocom.org/9645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2feefaeefc2d71b64714585ef8137afbb4055b7e Gerrit-Change-Number: 9645 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:00:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:00:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr: Port HLR tests to use GSUP_Emulation Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9646 Change subject: hlr: Port HLR tests to use GSUP_Emulation ...................................................................... hlr: Port HLR tests to use GSUP_Emulation Going via GSUP_Emulation (rather than using GSUP_CodecPort directly) adds many benefits, such as: * ability to have multiple transactions in parallel * no silent discard/ignore of unexpected GSUP messages, like those for IMSIs we don't expect. Change-Id: Id2ddd6b81c374ad6350b62fcc5442436757d66cd --- M hlr/HLR_Tests.ttcn M hlr/gen_links.sh 2 files changed, 268 insertions(+), 130 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/9646/1 diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index b4cf195..51d45ba 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -1,6 +1,7 @@ module HLR_Tests { import from GSUP_Types all; +import from GSUP_Emulation all; import from IPA_Emulation all; import from General_Types all; @@ -13,7 +14,12 @@ type component test_CT extends CTRL_Adapter_CT { var IPA_Emulation_CT vc_IPA; var IPA_CCM_Parameters ccm_pars; + /* legacy tests without ConnHdlr */ port IPA_GSUP_PT GSUP; + /* new tests using ConnHdlr + GSUP_Emulation */ + var GSUP_Emulation_CT vc_GSUP; + /* only to get events from IPA underneath GSUP */ + port IPA_CTRL_PT GSUP_IPA_EVENT; port TELNETasp_PT VTY; @@ -47,6 +53,135 @@ type record of HlrSubscriber HlrSubscriberList; +type component HLR_ConnHdlr extends GSUP_ConnHdlr { + timer g_Tguard := 10.0; + var HLR_ConnHdlrPars g_pars; + port TELNETasp_PT VTY; +} + +type record HLR_ConnHdlrPars { + HlrSubscriber sub +} + +template (value) HLR_ConnHdlrPars t_Pars(hexstring imsi, hexstring msisdn := ''H) := { + sub := { + imsi := imsi, + msisdn := msisdn, + aud2g := omit, + aud3g := omit + } +} + +template (value) HLR_ConnHdlrPars t_Pars_sub(HlrSubscriber sub) := { + sub := sub +} + +type function void_fn() runs on HLR_ConnHdlr; + +/*********************************************************************** + * Main Component + ***********************************************************************/ + +function f_init_vty() runs on test_CT { + map(self:VTY, system:VTY); + f_vty_set_prompts(VTY); + f_vty_transceive(VTY, "enable"); +} + +private altstep as_Tguard() runs on test_CT { + [] g_Tguard.timeout { + setverdict(fail, "g_Tguard timeout"); + self.stop; + } +} + +function f_init_gsup(charstring id, boolean legacy) runs on test_CT { + id := id & "-GSUP"; + var GsupOps ops := { + create_cb := refers(GSUP_Emulation.ExpectedCreateCallback) + } + + ccm_pars := c_IPA_default_ccm_pars; + ccm_pars.name := "Osmocom TTCN-3 GSUP Simulator"; + + vc_IPA := IPA_Emulation_CT.create(id & "-IPA"); + log("legacy= ", legacy); + if (not legacy) { + log("in not legacy case 1"); + vc_GSUP := GSUP_Emulation_CT.create(id); + } + + map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT); + if (not legacy) { + log("in not legacy case 2"); + connect(vc_GSUP:GSUP, vc_IPA:IPA_GSUP_PORT); + connect(vc_IPA:IPA_CTRL_PORT, self:GSUP_IPA_EVENT); + vc_GSUP.start(GSUP_Emulation.main(ops, id)); + } else { + connect(vc_IPA:IPA_GSUP_PORT, self:GSUP); + } + + vc_IPA.start(IPA_Emulation.main_client(mp_hlr_ip, mp_hlr_gsup_port, "", -1, ccm_pars)); + + /* wait for incoming connection to GSUP port before proceeding */ + timer T := 10.0; + T.start; + alt { + [not legacy] GSUP_IPA_EVENT.receive(t_ASP_IPA_EVT_UD(ASP_IPA_EVENT_UP)) { } + [legacy] GSUP.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { } + [] T.timeout { + setverdict(fail, "No connection to GSUP Port"); + self.stop; + } + } +} + +function f_init(boolean legacy := true) runs on test_CT { + + /* activate default guard timer to ensure all tests eventually terminate */ + g_Tguard.start; + activate(as_Tguard()); + + f_init_gsup("HLR_Test", legacy); + f_init_vty(); + + f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); +} + +function f_start_handler(void_fn fn, HLR_ConnHdlrPars pars) runs on test_CT return HLR_ConnHdlr { + var HLR_ConnHdlr vc_conn; + var charstring id := testcasename(); + + vc_conn := HLR_ConnHdlr.create(id); + connect(vc_conn:GSUP, vc_GSUP:GSUP_CLIENT); + connect(vc_conn:GSUP_PROC, vc_GSUP:GSUP_PROC); + + vc_conn.start(f_handler_init(fn, id, pars)); + return vc_conn; +} + +private function f_handler_init_vty() runs on HLR_ConnHdlr { + map(self:VTY, system:VTY); + f_vty_set_prompts(VTY); + f_vty_transceive(VTY, "enable"); +} + +/* first function inside ConnHdlr component; sets g_pars + starts function */ +function f_handler_init(void_fn fn, charstring id, template (omit) HLR_ConnHdlrPars pars := omit) +runs on HLR_ConnHdlr +{ + if (isvalue(pars)) { + g_pars := valueof(pars); + f_create_gsup_expect(hex2str(g_pars.sub.imsi)); + } + f_handler_init_vty(); + fn.apply(); +} + +/*********************************************************************** + * Subscriber creation via VTY + ***********************************************************************/ + template (value) HlrSubscriber t_SubNoAuth(hexstring imsi, hexstring msisdn) := { imsi := imsi, msisdn := msisdn, @@ -131,52 +266,19 @@ return sl; } -function f_init_vty() runs on test_CT { - map(self:VTY, system:VTY); - f_vty_set_prompts(VTY); - f_vty_transceive(VTY, "enable"); -} - -private altstep as_Tguard() runs on test_CT { - [] g_Tguard.timeout { - setverdict(fail, "g_Tguard timeout"); +function f_vty_transceive_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { + var charstring ret := f_vty_transceive_ret(pt, cmd); + if (not match(ret, exp_ret)) { + setverdict(fail, "Non-matching VTY response: ", ret); self.stop; } } -function f_init() runs on test_CT { - - /* activate default guard timer to ensure all tests eventually terminate */ - g_Tguard.start; - activate(as_Tguard()); - - ccm_pars := c_IPA_default_ccm_pars; - ccm_pars.name := "Osmocom TTCN-3 GSUP Simulator"; - - vc_IPA := IPA_Emulation_CT.create("IPA"); - map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT); - connect(vc_IPA:IPA_GSUP_PORT, self:GSUP); - vc_IPA.start(IPA_Emulation.main_client(mp_hlr_ip, mp_hlr_gsup_port, "", -1, ccm_pars)); - - timer T:= 10.0; - alt { - [] GSUP.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { } - [] T.timeout { - setverdict(fail, "Timeout waiting for GSUP IPA Link to come up"); - self.stop; - } - } - - f_init_vty(); - - f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); -} - private template (value) charstring t_subscr_prefix(hexstring imsi) := "subscriber imsi " & hex2str(imsi) & " "; /* create a given subscriber using the VTY */ -function f_vty_subscr_create(HlrSubscriber sub) runs on test_CT { +function f_vty_subscr_create(TELNETasp_PT VTY, HlrSubscriber sub) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "create", pattern "% Created subscriber *"); f_vty_transceive_match(VTY, prefix & "update msisdn " & hex2str(sub.msisdn), @@ -202,29 +304,33 @@ } } -function f_vty_subscr_update_msisdn(HlrSubscriber sub, hexstring new_msisdn) runs on test_CT { +function f_vty_subscr_update_msisdn(TELNETasp_PT VTY, HlrSubscriber sub, hexstring new_msisdn) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "update msisdn " & hex2str(new_msisdn), pattern "% Updated subscriber *"); } /* perform 'delete' on subscriber */ -function f_vty_subscr_delete(HlrSubscriber sub) runs on test_CT { +function f_vty_subscr_delete(TELNETasp_PT VTY, HlrSubscriber sub) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "delete", pattern "% Deleted subscriber for IMSI *"); } /* perform 'show' on subscriber; match result with pattern 'exp' */ -function f_vty_subscr_show(HlrSubscriber sub, template charstring exp) runs on test_CT { +function f_vty_subscr_show(TELNETasp_PT VTY, HlrSubscriber sub, template charstring exp) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "show", exp); } +/*********************************************************************** + * Helper functions for ConnHdlr + ***********************************************************************/ + /* perform SendAuthInfo for given imsi, return the GSUP response/error */ function f_perform_SAI(hexstring imsi, template (omit) integer exp_err_cause := omit) -runs on test_CT return GSUP_PDU { +runs on HLR_ConnHdlr return GSUP_PDU { var GSUP_PDU ret; timer T := 3.0; var boolean exp_fail := false; @@ -261,7 +367,7 @@ function f_perform_UL(hexstring imsi, template hexstring msisdn, template (omit) integer exp_err_cause := omit) -runs on test_CT return GSUP_PDU { +runs on HLR_ConnHdlr return GSUP_PDU { var GSUP_PDU ret; timer T := 3.0; var boolean exp_fail := false; @@ -308,7 +414,7 @@ /* perform PurgeMS for given imsi, return the GSUP response/error */ function f_perform_PURGE(hexstring imsi, GSUP_CnDomain cn_dom, template (omit) integer exp_err_cause := omit) -runs on test_CT return GSUP_PDU { +runs on HLR_ConnHdlr return GSUP_PDU { var GSUP_PDU ret; timer T := 3.0; var boolean exp_fail := false; @@ -344,75 +450,101 @@ } -testcase TC_gsup_sai_err_invalid_imsi() runs on test_CT { - /* 23.003 Section 2.2 clearly states that an IMSI with less - * than 5 digits is impossible. Even 5 digits is still questionable */ - var hexstring imsi := '0123'H; +/*********************************************************************** + * Testcases + ***********************************************************************/ + +/* 23.003 Section 2.2 clearly states that an IMSI with less + * than 5 digits is impossible. Even 5 digits is still questionable */ +private function f_TC_gsup_sai_err_invalid_imsi() runs on HLR_ConnHdlr { var GSUP_PDU res; + res := f_perform_SAI(g_pars.sub.imsi, 96); /* Invalid Mandatory information */ + setverdict(pass); +} +testcase TC_gsup_sai_err_invalid_imsi() runs on test_CT { + var HLR_ConnHdlr vc_conn; + var HLR_ConnHdlrPars pars := valueof(t_Pars('0123'H)); + f_init(false); + vc_conn := f_start_handler(refers(f_TC_gsup_sai_err_invalid_imsi), pars); + vc_conn.done; +} - f_init(); - res := f_perform_SAI(imsi, 96); /* Invalid Mandatory information */ +private function f_TC_gsup_sai_err_unknown_imsi() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_SAI(g_pars.sub.imsi, 2); setverdict(pass); } testcase TC_gsup_sai_err_unknown_imsi() runs on test_CT { - var hexstring imsi := f_rnd_imsi('26242'H); - var GSUP_PDU res; - - f_init(); - - res := f_perform_SAI(imsi, 2); - setverdict(pass); + var HLR_ConnHdlr vc_conn; + var HLR_ConnHdlrPars pars := valueof(t_Pars(f_rnd_imsi('26242'H))); + f_init(false); + vc_conn := f_start_handler(refers(f_TC_gsup_sai_err_unknown_imsi), pars); + vc_conn.done; } +function f_start_handler_per_sub(void_fn fn, HlrSubscriberList sl) runs on test_CT { + for (var integer i := 0; i < sizeof(sl); i := i+1) { + var HlrSubscriber sub := sl[i]; + var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sub)); + var HLR_ConnHdlr vc_conn; + + f_vty_subscr_create(VTY, sub); + vc_conn := f_start_handler(fn, pars); + vc_conn.done; + f_vty_subscr_delete(VTY, sub); + } +} /* test SAI for a number of different subscriber cases (algo, 2g/3g, ...) */ +private function f_TC_gsup_sai() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_SAI(g_pars.sub.imsi); + /* TODO: match if tuple[s] matches expectation */ + setverdict(pass); +} testcase TC_gsup_sai() runs on test_CT { var HlrSubscriberList sl; var GSUP_PDU res; - f_init(); + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing SAI for ", sub); - f_vty_subscr_create(sub); - res := f_perform_SAI(sub.imsi); - /* TODO: match if tuple[s] matches expectation */ - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_sai), sl); setverdict(pass); } /* test UL for unknown IMSI */ -testcase TC_gsup_ul_unknown_imsi() runs on test_CT { - var hexstring imsi := f_rnd_imsi('26242'H); +private function f_TC_ul_unknown_imsi() runs on HLR_ConnHdlr { var GSUP_PDU res; - - f_init(); - - res := f_perform_UL(imsi, ?, 2); + res := f_perform_UL(g_pars.sub.imsi, ?, 2); setverdict(pass); } +testcase TC_gsup_ul_unknown_imsi() runs on test_CT { + var hexstring imsi := f_rnd_imsi('26242'H); + var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi)); + var HLR_ConnHdlr vc_conn; -/* test SAI for a number of different subscriber cases (algo, 2g/3g, ...) */ + f_init(false); + vc_conn := f_start_handler(refers(f_TC_ul_unknown_imsi), pars); + vc_conn.done; +} + +/* test UL for a number of different subscriber cases (algo, 2g/3g, ...) */ +private function f_TC_gsup_ul() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); + setverdict(pass); +} testcase TC_gsup_ul() runs on test_CT { var HlrSubscriberList sl; var GSUP_PDU res; - f_init(); - + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing UL for ", sub); - f_vty_subscr_create(sub); - res := f_perform_UL(sub.imsi, sub.msisdn); - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_ul), sl); setverdict(pass); } @@ -426,53 +558,49 @@ /* we're not using f_gen_subs() here as the expect pattern for the 'show' are different * from case to case */ sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); - f_vty_subscr_create(sub); - f_vty_subscr_show(sub, pattern "*IMSI: *2G auth: COMP128v1*"); - f_vty_subscr_delete(sub); + f_vty_subscr_create(VTY, sub); + f_vty_subscr_show(VTY, sub, pattern "*IMSI: *2G auth: COMP128v1*"); + f_vty_subscr_delete(VTY, sub); sub := valueof(t_Sub3G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "milenage", false)); - f_vty_subscr_create(sub); - f_vty_subscr_show(sub, pattern "*IMSI: *3G auth: MILENAGE*"); - f_vty_subscr_delete(sub); + f_vty_subscr_create(VTY, sub); + f_vty_subscr_show(VTY, sub, pattern "*IMSI: *3G auth: MILENAGE*"); + f_vty_subscr_delete(VTY, sub); sub := valueof(t_Sub2G3G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1", "milenage", false)); - f_vty_subscr_create(sub); - f_vty_subscr_show(sub, pattern "*IMSI: *2G auth: COMP128v1*3G auth: MILENAGE*"); - f_vty_subscr_delete(sub); + f_vty_subscr_create(VTY, sub); + f_vty_subscr_show(VTY, sub, pattern "*IMSI: *2G auth: COMP128v1*3G auth: MILENAGE*"); + f_vty_subscr_delete(VTY, sub); setverdict(pass); } /* VTY changes to MSISDN should result in ISD to current VLR */ -testcase TC_vty_msisdn_isd() runs on test_CT { - var HlrSubscriber sub; +private function f_TC_vty_msisdn_isd() runs on HLR_ConnHdlr { var hexstring new_msisdn; var GSUP_PDU res; timer T := 5.0; - f_init(); - /* Create Subscriber */ - sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); - f_vty_subscr_create(sub); + f_vty_subscr_create(VTY, g_pars.sub); /* Perform UpdateLocation (VLR now known to HLR) */ - res := f_perform_UL(sub.imsi, sub.msisdn); + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); /* Then change IMSI via VTY */ new_msisdn := '49161'H & f_rnd_hexstring(7, 9); - f_vty_subscr_update_msisdn(sub, new_msisdn); + f_vty_subscr_update_msisdn(VTY, g_pars.sub, new_msisdn); /* And expect InsertSubscriberData as result */ T.start; alt { - [] GSUP.receive(tr_GSUP_ISD_REQ(sub.imsi, new_msisdn)) { - GSUP.send(ts_GSUP_ISD_RES(sub.imsi)); - sub.msisdn := new_msisdn; + [] GSUP.receive(tr_GSUP_ISD_REQ(g_pars.sub.imsi, new_msisdn)) { + GSUP.send(ts_GSUP_ISD_RES(g_pars.sub.imsi)); + g_pars.sub.msisdn := new_msisdn; setverdict(pass); } - [] GSUP.receive(tr_GSUP_ISD_REQ(sub.imsi, sub.msisdn)) { + [] GSUP.receive(tr_GSUP_ISD_REQ(g_pars.sub.imsi, g_pars.sub.msisdn)) { log("received ISD req with old MSISDN"); setverdict(fail); } @@ -482,60 +610,70 @@ } } } +testcase TC_vty_msisdn_isd() runs on test_CT { + var HlrSubscriber sub; + var HLR_ConnHdlr vc_conn; + + f_init(false); + + /* Create Subscriber */ + sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); + + vc_conn := f_start_handler(refers(f_TC_vty_msisdn_isd), valueof(t_Pars_sub(sub))); + vc_conn.done; +} /* Test PURGE MS for CS services */ +private function f_TC_gsup_purge_cs() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); + res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_CS); +} testcase TC_gsup_purge_cs() runs on test_CT { var HlrSubscriberList sl; var GSUP_PDU res; - f_init(); - + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing CS Purge for ", sub); - f_vty_subscr_create(sub); - res := f_perform_UL(sub.imsi, sub.msisdn); - res := f_perform_PURGE(sub.imsi, OSMO_GSUP_CN_DOMAIN_CS); - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_purge_cs), sl); setverdict(pass); } /* Test PURGE MS for PS services */ +private function f_TC_gsup_purge_ps() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); + res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_PS); +} testcase TC_gsup_purge_ps() runs on test_CT { var HlrSubscriberList sl; - var GSUP_PDU res; - f_init(); - + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing PS Purge for ", sub); - f_vty_subscr_create(sub); - res := f_perform_UL(sub.imsi, sub.msisdn); - res := f_perform_PURGE(sub.imsi, OSMO_GSUP_CN_DOMAIN_PS); - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_purge_ps), sl); setverdict(pass); } /* Test PURGEG MS procedure for unknown IMSI */ + +private function f_TC_gsup_purge_unknown() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_CS, 2); +} testcase TC_gsup_purge_unknown() runs on test_CT { var hexstring imsi := '2345743413463'H; - var GSUP_PDU res; + var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi)); + var HLR_ConnHdlr vc_conn; - f_init(); - - res := f_perform_PURGE(imsi, OSMO_GSUP_CN_DOMAIN_CS, 2); + f_init(false); + vc_conn := f_start_handler(refers(f_TC_ul_unknown_imsi), pars); + vc_conn.done; setverdict(pass); } - /* TODO: * UL with ISD error * UL with ISD timeout diff --git a/hlr/gen_links.sh b/hlr/gen_links.sh index c265eb8..1e98cb2 100755 --- a/hlr/gen_links.sh +++ b/hlr/gen_links.sh @@ -22,7 +22,7 @@ gen_links $DIR $FILES DIR=../library -FILES="General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp GSUP_Types.ttcn " +FILES="General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp GSUP_Types.ttcn GSUP_Emulation.ttcn " FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " FILES+="Osmocom_VTY_Functions.ttcn " -- To view, visit https://gerrit.osmocom.org/9646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id2ddd6b81c374ad6350b62fcc5442436757d66cd Gerrit-Change-Number: 9646 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:04:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:04:52 +0000 Subject: Change in osmo-hlr[master]: disable blind subscriber insertion into every VLR/SGSN Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9647 Change subject: disable blind subscriber insertion into every VLR/SGSN ...................................................................... disable blind subscriber insertion into every VLR/SGSN During the attempt to fix OS#2785 in Change-Id I6a92ca34cdaadca9eacc774bb1ca386c325ba865, we introduced logic that would blindly insert a subscriber *concurrently* in all VLRs/SGSNs of the network on any update of the subscriber. Before that patch, we didn't update the current serving SGSN/VLR, and after the change we created subscribers in all SGSNs/VLRs, of which all-1 are not serving the subscriber at that time. We'll have to go back to the original behavior until a proper fix can be introduced. Change-Id: Ibf6f1b21b08560d4d8f41bbe7782d40abf4585f8 Related: OS#3091 Related: OS#2785 --- M src/hlr.c 1 file changed, 7 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/47/9647/1 diff --git a/src/hlr.c b/src/hlr.c index ee19795..940165f 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -47,14 +47,17 @@ /* Trigger 'Insert Subscriber Data' messages to all connected GSUP clients. * - * FIXME: In order to support large-scale networks this function should skip - * VLRs/SGSNs which do not currently serve the subscriber. - * * \param[in] subscr A subscriber we have new data to send for. */ void osmo_hlr_subscriber_update_notify(struct hlr_subscriber *subscr) { + /* FIXME: the below code can only be re-enabled after we make sure that an ISD + * is only sent tot the currently serving VLR and/or SGSN (if there are any). + * We cannot blindly flood the entire PLMN with this, as it would create subscriber + * state in every VLR/SGSN out there, even those that have never seen the subscriber. + * See https://osmocom.org/issues/3154 for details. */ +#if 0 struct osmo_gsup_conn *co; if (g_hlr->gs == NULL) @@ -118,6 +121,7 @@ continue; } } +#endif } /*********************************************************************** -- To view, visit https://gerrit.osmocom.org/9647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibf6f1b21b08560d4d8f41bbe7782d40abf4585f8 Gerrit-Change-Number: 9647 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:06:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:06:56 +0000 Subject: Change in osmo-hlr[master]: disable blind subscriber insertion into every VLR/SGSN In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9647 ) Change subject: disable blind subscriber insertion into every VLR/SGSN ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibf6f1b21b08560d4d8f41bbe7782d40abf4585f8 Gerrit-Change-Number: 9647 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 16:06:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:06:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:06:59 +0000 Subject: Change in osmo-hlr[master]: disable blind subscriber insertion into every VLR/SGSN In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9647 ) Change subject: disable blind subscriber insertion into every VLR/SGSN ...................................................................... disable blind subscriber insertion into every VLR/SGSN During the attempt to fix OS#2785 in Change-Id I6a92ca34cdaadca9eacc774bb1ca386c325ba865, we introduced logic that would blindly insert a subscriber *concurrently* in all VLRs/SGSNs of the network on any update of the subscriber. Before that patch, we didn't update the current serving SGSN/VLR, and after the change we created subscribers in all SGSNs/VLRs, of which all-1 are not serving the subscriber at that time. We'll have to go back to the original behavior until a proper fix can be introduced. Change-Id: Ibf6f1b21b08560d4d8f41bbe7782d40abf4585f8 Related: OS#3091 Related: OS#2785 --- M src/hlr.c 1 file changed, 7 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/hlr.c b/src/hlr.c index ee19795..940165f 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -47,14 +47,17 @@ /* Trigger 'Insert Subscriber Data' messages to all connected GSUP clients. * - * FIXME: In order to support large-scale networks this function should skip - * VLRs/SGSNs which do not currently serve the subscriber. - * * \param[in] subscr A subscriber we have new data to send for. */ void osmo_hlr_subscriber_update_notify(struct hlr_subscriber *subscr) { + /* FIXME: the below code can only be re-enabled after we make sure that an ISD + * is only sent tot the currently serving VLR and/or SGSN (if there are any). + * We cannot blindly flood the entire PLMN with this, as it would create subscriber + * state in every VLR/SGSN out there, even those that have never seen the subscriber. + * See https://osmocom.org/issues/3154 for details. */ +#if 0 struct osmo_gsup_conn *co; if (g_hlr->gs == NULL) @@ -118,6 +121,7 @@ continue; } } +#endif } /*********************************************************************** -- To view, visit https://gerrit.osmocom.org/9647 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibf6f1b21b08560d4d8f41bbe7782d40abf4585f8 Gerrit-Change-Number: 9647 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:08:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:08:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr: Port HLR tests to use GSUP_Emulation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9646 ) Change subject: hlr: Port HLR tests to use GSUP_Emulation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2ddd6b81c374ad6350b62fcc5442436757d66cd Gerrit-Change-Number: 9646 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 16:08:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:08:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:08:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: hlr: Port HLR tests to use GSUP_Emulation In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9646 ) Change subject: hlr: Port HLR tests to use GSUP_Emulation ...................................................................... hlr: Port HLR tests to use GSUP_Emulation Going via GSUP_Emulation (rather than using GSUP_CodecPort directly) adds many benefits, such as: * ability to have multiple transactions in parallel * no silent discard/ignore of unexpected GSUP messages, like those for IMSIs we don't expect. Change-Id: Id2ddd6b81c374ad6350b62fcc5442436757d66cd --- M hlr/HLR_Tests.ttcn M hlr/gen_links.sh 2 files changed, 268 insertions(+), 130 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/hlr/HLR_Tests.ttcn b/hlr/HLR_Tests.ttcn index b4cf195..51d45ba 100644 --- a/hlr/HLR_Tests.ttcn +++ b/hlr/HLR_Tests.ttcn @@ -1,6 +1,7 @@ module HLR_Tests { import from GSUP_Types all; +import from GSUP_Emulation all; import from IPA_Emulation all; import from General_Types all; @@ -13,7 +14,12 @@ type component test_CT extends CTRL_Adapter_CT { var IPA_Emulation_CT vc_IPA; var IPA_CCM_Parameters ccm_pars; + /* legacy tests without ConnHdlr */ port IPA_GSUP_PT GSUP; + /* new tests using ConnHdlr + GSUP_Emulation */ + var GSUP_Emulation_CT vc_GSUP; + /* only to get events from IPA underneath GSUP */ + port IPA_CTRL_PT GSUP_IPA_EVENT; port TELNETasp_PT VTY; @@ -47,6 +53,135 @@ type record of HlrSubscriber HlrSubscriberList; +type component HLR_ConnHdlr extends GSUP_ConnHdlr { + timer g_Tguard := 10.0; + var HLR_ConnHdlrPars g_pars; + port TELNETasp_PT VTY; +} + +type record HLR_ConnHdlrPars { + HlrSubscriber sub +} + +template (value) HLR_ConnHdlrPars t_Pars(hexstring imsi, hexstring msisdn := ''H) := { + sub := { + imsi := imsi, + msisdn := msisdn, + aud2g := omit, + aud3g := omit + } +} + +template (value) HLR_ConnHdlrPars t_Pars_sub(HlrSubscriber sub) := { + sub := sub +} + +type function void_fn() runs on HLR_ConnHdlr; + +/*********************************************************************** + * Main Component + ***********************************************************************/ + +function f_init_vty() runs on test_CT { + map(self:VTY, system:VTY); + f_vty_set_prompts(VTY); + f_vty_transceive(VTY, "enable"); +} + +private altstep as_Tguard() runs on test_CT { + [] g_Tguard.timeout { + setverdict(fail, "g_Tguard timeout"); + self.stop; + } +} + +function f_init_gsup(charstring id, boolean legacy) runs on test_CT { + id := id & "-GSUP"; + var GsupOps ops := { + create_cb := refers(GSUP_Emulation.ExpectedCreateCallback) + } + + ccm_pars := c_IPA_default_ccm_pars; + ccm_pars.name := "Osmocom TTCN-3 GSUP Simulator"; + + vc_IPA := IPA_Emulation_CT.create(id & "-IPA"); + log("legacy= ", legacy); + if (not legacy) { + log("in not legacy case 1"); + vc_GSUP := GSUP_Emulation_CT.create(id); + } + + map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT); + if (not legacy) { + log("in not legacy case 2"); + connect(vc_GSUP:GSUP, vc_IPA:IPA_GSUP_PORT); + connect(vc_IPA:IPA_CTRL_PORT, self:GSUP_IPA_EVENT); + vc_GSUP.start(GSUP_Emulation.main(ops, id)); + } else { + connect(vc_IPA:IPA_GSUP_PORT, self:GSUP); + } + + vc_IPA.start(IPA_Emulation.main_client(mp_hlr_ip, mp_hlr_gsup_port, "", -1, ccm_pars)); + + /* wait for incoming connection to GSUP port before proceeding */ + timer T := 10.0; + T.start; + alt { + [not legacy] GSUP_IPA_EVENT.receive(t_ASP_IPA_EVT_UD(ASP_IPA_EVENT_UP)) { } + [legacy] GSUP.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { } + [] T.timeout { + setverdict(fail, "No connection to GSUP Port"); + self.stop; + } + } +} + +function f_init(boolean legacy := true) runs on test_CT { + + /* activate default guard timer to ensure all tests eventually terminate */ + g_Tguard.start; + activate(as_Tguard()); + + f_init_gsup("HLR_Test", legacy); + f_init_vty(); + + f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); +} + +function f_start_handler(void_fn fn, HLR_ConnHdlrPars pars) runs on test_CT return HLR_ConnHdlr { + var HLR_ConnHdlr vc_conn; + var charstring id := testcasename(); + + vc_conn := HLR_ConnHdlr.create(id); + connect(vc_conn:GSUP, vc_GSUP:GSUP_CLIENT); + connect(vc_conn:GSUP_PROC, vc_GSUP:GSUP_PROC); + + vc_conn.start(f_handler_init(fn, id, pars)); + return vc_conn; +} + +private function f_handler_init_vty() runs on HLR_ConnHdlr { + map(self:VTY, system:VTY); + f_vty_set_prompts(VTY); + f_vty_transceive(VTY, "enable"); +} + +/* first function inside ConnHdlr component; sets g_pars + starts function */ +function f_handler_init(void_fn fn, charstring id, template (omit) HLR_ConnHdlrPars pars := omit) +runs on HLR_ConnHdlr +{ + if (isvalue(pars)) { + g_pars := valueof(pars); + f_create_gsup_expect(hex2str(g_pars.sub.imsi)); + } + f_handler_init_vty(); + fn.apply(); +} + +/*********************************************************************** + * Subscriber creation via VTY + ***********************************************************************/ + template (value) HlrSubscriber t_SubNoAuth(hexstring imsi, hexstring msisdn) := { imsi := imsi, msisdn := msisdn, @@ -131,52 +266,19 @@ return sl; } -function f_init_vty() runs on test_CT { - map(self:VTY, system:VTY); - f_vty_set_prompts(VTY); - f_vty_transceive(VTY, "enable"); -} - -private altstep as_Tguard() runs on test_CT { - [] g_Tguard.timeout { - setverdict(fail, "g_Tguard timeout"); +function f_vty_transceive_match(TELNETasp_PT pt, charstring cmd, template charstring exp_ret) { + var charstring ret := f_vty_transceive_ret(pt, cmd); + if (not match(ret, exp_ret)) { + setverdict(fail, "Non-matching VTY response: ", ret); self.stop; } } -function f_init() runs on test_CT { - - /* activate default guard timer to ensure all tests eventually terminate */ - g_Tguard.start; - activate(as_Tguard()); - - ccm_pars := c_IPA_default_ccm_pars; - ccm_pars.name := "Osmocom TTCN-3 GSUP Simulator"; - - vc_IPA := IPA_Emulation_CT.create("IPA"); - map(vc_IPA:IPA_PORT, system:IPA_CODEC_PT); - connect(vc_IPA:IPA_GSUP_PORT, self:GSUP); - vc_IPA.start(IPA_Emulation.main_client(mp_hlr_ip, mp_hlr_gsup_port, "", -1, ccm_pars)); - - timer T:= 10.0; - alt { - [] GSUP.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}) { } - [] T.timeout { - setverdict(fail, "Timeout waiting for GSUP IPA Link to come up"); - self.stop; - } - } - - f_init_vty(); - - f_ipa_ctrl_start(mp_hlr_ip, mp_hlr_ctrl_port); -} - private template (value) charstring t_subscr_prefix(hexstring imsi) := "subscriber imsi " & hex2str(imsi) & " "; /* create a given subscriber using the VTY */ -function f_vty_subscr_create(HlrSubscriber sub) runs on test_CT { +function f_vty_subscr_create(TELNETasp_PT VTY, HlrSubscriber sub) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "create", pattern "% Created subscriber *"); f_vty_transceive_match(VTY, prefix & "update msisdn " & hex2str(sub.msisdn), @@ -202,29 +304,33 @@ } } -function f_vty_subscr_update_msisdn(HlrSubscriber sub, hexstring new_msisdn) runs on test_CT { +function f_vty_subscr_update_msisdn(TELNETasp_PT VTY, HlrSubscriber sub, hexstring new_msisdn) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "update msisdn " & hex2str(new_msisdn), pattern "% Updated subscriber *"); } /* perform 'delete' on subscriber */ -function f_vty_subscr_delete(HlrSubscriber sub) runs on test_CT { +function f_vty_subscr_delete(TELNETasp_PT VTY, HlrSubscriber sub) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "delete", pattern "% Deleted subscriber for IMSI *"); } /* perform 'show' on subscriber; match result with pattern 'exp' */ -function f_vty_subscr_show(HlrSubscriber sub, template charstring exp) runs on test_CT { +function f_vty_subscr_show(TELNETasp_PT VTY, HlrSubscriber sub, template charstring exp) { var charstring prefix := valueof(t_subscr_prefix(sub.imsi)); f_vty_transceive_match(VTY, prefix & "show", exp); } +/*********************************************************************** + * Helper functions for ConnHdlr + ***********************************************************************/ + /* perform SendAuthInfo for given imsi, return the GSUP response/error */ function f_perform_SAI(hexstring imsi, template (omit) integer exp_err_cause := omit) -runs on test_CT return GSUP_PDU { +runs on HLR_ConnHdlr return GSUP_PDU { var GSUP_PDU ret; timer T := 3.0; var boolean exp_fail := false; @@ -261,7 +367,7 @@ function f_perform_UL(hexstring imsi, template hexstring msisdn, template (omit) integer exp_err_cause := omit) -runs on test_CT return GSUP_PDU { +runs on HLR_ConnHdlr return GSUP_PDU { var GSUP_PDU ret; timer T := 3.0; var boolean exp_fail := false; @@ -308,7 +414,7 @@ /* perform PurgeMS for given imsi, return the GSUP response/error */ function f_perform_PURGE(hexstring imsi, GSUP_CnDomain cn_dom, template (omit) integer exp_err_cause := omit) -runs on test_CT return GSUP_PDU { +runs on HLR_ConnHdlr return GSUP_PDU { var GSUP_PDU ret; timer T := 3.0; var boolean exp_fail := false; @@ -344,75 +450,101 @@ } -testcase TC_gsup_sai_err_invalid_imsi() runs on test_CT { - /* 23.003 Section 2.2 clearly states that an IMSI with less - * than 5 digits is impossible. Even 5 digits is still questionable */ - var hexstring imsi := '0123'H; +/*********************************************************************** + * Testcases + ***********************************************************************/ + +/* 23.003 Section 2.2 clearly states that an IMSI with less + * than 5 digits is impossible. Even 5 digits is still questionable */ +private function f_TC_gsup_sai_err_invalid_imsi() runs on HLR_ConnHdlr { var GSUP_PDU res; + res := f_perform_SAI(g_pars.sub.imsi, 96); /* Invalid Mandatory information */ + setverdict(pass); +} +testcase TC_gsup_sai_err_invalid_imsi() runs on test_CT { + var HLR_ConnHdlr vc_conn; + var HLR_ConnHdlrPars pars := valueof(t_Pars('0123'H)); + f_init(false); + vc_conn := f_start_handler(refers(f_TC_gsup_sai_err_invalid_imsi), pars); + vc_conn.done; +} - f_init(); - res := f_perform_SAI(imsi, 96); /* Invalid Mandatory information */ +private function f_TC_gsup_sai_err_unknown_imsi() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_SAI(g_pars.sub.imsi, 2); setverdict(pass); } testcase TC_gsup_sai_err_unknown_imsi() runs on test_CT { - var hexstring imsi := f_rnd_imsi('26242'H); - var GSUP_PDU res; - - f_init(); - - res := f_perform_SAI(imsi, 2); - setverdict(pass); + var HLR_ConnHdlr vc_conn; + var HLR_ConnHdlrPars pars := valueof(t_Pars(f_rnd_imsi('26242'H))); + f_init(false); + vc_conn := f_start_handler(refers(f_TC_gsup_sai_err_unknown_imsi), pars); + vc_conn.done; } +function f_start_handler_per_sub(void_fn fn, HlrSubscriberList sl) runs on test_CT { + for (var integer i := 0; i < sizeof(sl); i := i+1) { + var HlrSubscriber sub := sl[i]; + var HLR_ConnHdlrPars pars := valueof(t_Pars_sub(sub)); + var HLR_ConnHdlr vc_conn; + + f_vty_subscr_create(VTY, sub); + vc_conn := f_start_handler(fn, pars); + vc_conn.done; + f_vty_subscr_delete(VTY, sub); + } +} /* test SAI for a number of different subscriber cases (algo, 2g/3g, ...) */ +private function f_TC_gsup_sai() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_SAI(g_pars.sub.imsi); + /* TODO: match if tuple[s] matches expectation */ + setverdict(pass); +} testcase TC_gsup_sai() runs on test_CT { var HlrSubscriberList sl; var GSUP_PDU res; - f_init(); + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing SAI for ", sub); - f_vty_subscr_create(sub); - res := f_perform_SAI(sub.imsi); - /* TODO: match if tuple[s] matches expectation */ - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_sai), sl); setverdict(pass); } /* test UL for unknown IMSI */ -testcase TC_gsup_ul_unknown_imsi() runs on test_CT { - var hexstring imsi := f_rnd_imsi('26242'H); +private function f_TC_ul_unknown_imsi() runs on HLR_ConnHdlr { var GSUP_PDU res; - - f_init(); - - res := f_perform_UL(imsi, ?, 2); + res := f_perform_UL(g_pars.sub.imsi, ?, 2); setverdict(pass); } +testcase TC_gsup_ul_unknown_imsi() runs on test_CT { + var hexstring imsi := f_rnd_imsi('26242'H); + var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi)); + var HLR_ConnHdlr vc_conn; -/* test SAI for a number of different subscriber cases (algo, 2g/3g, ...) */ + f_init(false); + vc_conn := f_start_handler(refers(f_TC_ul_unknown_imsi), pars); + vc_conn.done; +} + +/* test UL for a number of different subscriber cases (algo, 2g/3g, ...) */ +private function f_TC_gsup_ul() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); + setverdict(pass); +} testcase TC_gsup_ul() runs on test_CT { var HlrSubscriberList sl; var GSUP_PDU res; - f_init(); - + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing UL for ", sub); - f_vty_subscr_create(sub); - res := f_perform_UL(sub.imsi, sub.msisdn); - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_ul), sl); setverdict(pass); } @@ -426,53 +558,49 @@ /* we're not using f_gen_subs() here as the expect pattern for the 'show' are different * from case to case */ sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); - f_vty_subscr_create(sub); - f_vty_subscr_show(sub, pattern "*IMSI: *2G auth: COMP128v1*"); - f_vty_subscr_delete(sub); + f_vty_subscr_create(VTY, sub); + f_vty_subscr_show(VTY, sub, pattern "*IMSI: *2G auth: COMP128v1*"); + f_vty_subscr_delete(VTY, sub); sub := valueof(t_Sub3G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "milenage", false)); - f_vty_subscr_create(sub); - f_vty_subscr_show(sub, pattern "*IMSI: *3G auth: MILENAGE*"); - f_vty_subscr_delete(sub); + f_vty_subscr_create(VTY, sub); + f_vty_subscr_show(VTY, sub, pattern "*IMSI: *3G auth: MILENAGE*"); + f_vty_subscr_delete(VTY, sub); sub := valueof(t_Sub2G3G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1", "milenage", false)); - f_vty_subscr_create(sub); - f_vty_subscr_show(sub, pattern "*IMSI: *2G auth: COMP128v1*3G auth: MILENAGE*"); - f_vty_subscr_delete(sub); + f_vty_subscr_create(VTY, sub); + f_vty_subscr_show(VTY, sub, pattern "*IMSI: *2G auth: COMP128v1*3G auth: MILENAGE*"); + f_vty_subscr_delete(VTY, sub); setverdict(pass); } /* VTY changes to MSISDN should result in ISD to current VLR */ -testcase TC_vty_msisdn_isd() runs on test_CT { - var HlrSubscriber sub; +private function f_TC_vty_msisdn_isd() runs on HLR_ConnHdlr { var hexstring new_msisdn; var GSUP_PDU res; timer T := 5.0; - f_init(); - /* Create Subscriber */ - sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); - f_vty_subscr_create(sub); + f_vty_subscr_create(VTY, g_pars.sub); /* Perform UpdateLocation (VLR now known to HLR) */ - res := f_perform_UL(sub.imsi, sub.msisdn); + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); /* Then change IMSI via VTY */ new_msisdn := '49161'H & f_rnd_hexstring(7, 9); - f_vty_subscr_update_msisdn(sub, new_msisdn); + f_vty_subscr_update_msisdn(VTY, g_pars.sub, new_msisdn); /* And expect InsertSubscriberData as result */ T.start; alt { - [] GSUP.receive(tr_GSUP_ISD_REQ(sub.imsi, new_msisdn)) { - GSUP.send(ts_GSUP_ISD_RES(sub.imsi)); - sub.msisdn := new_msisdn; + [] GSUP.receive(tr_GSUP_ISD_REQ(g_pars.sub.imsi, new_msisdn)) { + GSUP.send(ts_GSUP_ISD_RES(g_pars.sub.imsi)); + g_pars.sub.msisdn := new_msisdn; setverdict(pass); } - [] GSUP.receive(tr_GSUP_ISD_REQ(sub.imsi, sub.msisdn)) { + [] GSUP.receive(tr_GSUP_ISD_REQ(g_pars.sub.imsi, g_pars.sub.msisdn)) { log("received ISD req with old MSISDN"); setverdict(fail); } @@ -482,60 +610,70 @@ } } } +testcase TC_vty_msisdn_isd() runs on test_CT { + var HlrSubscriber sub; + var HLR_ConnHdlr vc_conn; + + f_init(false); + + /* Create Subscriber */ + sub := valueof(t_Sub2G(f_rnd_imsi('26242'H), '49161'H & f_rnd_hexstring(7, 9), "comp128v1")); + + vc_conn := f_start_handler(refers(f_TC_vty_msisdn_isd), valueof(t_Pars_sub(sub))); + vc_conn.done; +} /* Test PURGE MS for CS services */ +private function f_TC_gsup_purge_cs() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); + res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_CS); +} testcase TC_gsup_purge_cs() runs on test_CT { var HlrSubscriberList sl; var GSUP_PDU res; - f_init(); - + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing CS Purge for ", sub); - f_vty_subscr_create(sub); - res := f_perform_UL(sub.imsi, sub.msisdn); - res := f_perform_PURGE(sub.imsi, OSMO_GSUP_CN_DOMAIN_CS); - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_purge_cs), sl); setverdict(pass); } /* Test PURGE MS for PS services */ +private function f_TC_gsup_purge_ps() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_UL(g_pars.sub.imsi, g_pars.sub.msisdn); + res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_PS); +} testcase TC_gsup_purge_ps() runs on test_CT { var HlrSubscriberList sl; - var GSUP_PDU res; - f_init(); - + f_init(false); sl := f_gen_subs(); - for (var integer i := 0; i < sizeof(sl); i := i+1) { - var HlrSubscriber sub := sl[i]; - log("Testing PS Purge for ", sub); - f_vty_subscr_create(sub); - res := f_perform_UL(sub.imsi, sub.msisdn); - res := f_perform_PURGE(sub.imsi, OSMO_GSUP_CN_DOMAIN_PS); - f_vty_subscr_delete(sub); - } + f_start_handler_per_sub(refers(f_TC_gsup_purge_ps), sl); setverdict(pass); } /* Test PURGEG MS procedure for unknown IMSI */ + +private function f_TC_gsup_purge_unknown() runs on HLR_ConnHdlr { + var GSUP_PDU res; + res := f_perform_PURGE(g_pars.sub.imsi, OSMO_GSUP_CN_DOMAIN_CS, 2); +} testcase TC_gsup_purge_unknown() runs on test_CT { var hexstring imsi := '2345743413463'H; - var GSUP_PDU res; + var HLR_ConnHdlrPars pars := valueof(t_Pars(imsi)); + var HLR_ConnHdlr vc_conn; - f_init(); - - res := f_perform_PURGE(imsi, OSMO_GSUP_CN_DOMAIN_CS, 2); + f_init(false); + vc_conn := f_start_handler(refers(f_TC_ul_unknown_imsi), pars); + vc_conn.done; setverdict(pass); } - /* TODO: * UL with ISD error * UL with ISD timeout diff --git a/hlr/gen_links.sh b/hlr/gen_links.sh index c265eb8..1e98cb2 100755 --- a/hlr/gen_links.sh +++ b/hlr/gen_links.sh @@ -22,7 +22,7 @@ gen_links $DIR $FILES DIR=../library -FILES="General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp GSUP_Types.ttcn " +FILES="General_Types.ttcn Osmocom_Types.ttcn GSM_Types.ttcn IPA_Types.ttcn IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc IPA_Emulation.ttcnpp GSUP_Types.ttcn GSUP_Emulation.ttcn " FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn " FILES+="Osmocom_VTY_Functions.ttcn " -- To view, visit https://gerrit.osmocom.org/9646 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id2ddd6b81c374ad6350b62fcc5442436757d66cd Gerrit-Change-Number: 9646 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:08:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:08:44 +0000 Subject: Change in osmo-mgw[master]: mgcp_client_fsm: improve error logging In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9645 ) Change subject: mgcp_client_fsm: improve error logging ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2feefaeefc2d71b64714585ef8137afbb4055b7e Gerrit-Change-Number: 9645 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 15 Jun 2018 16:08:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:08:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Jun 2018 16:08:46 +0000 Subject: Change in osmo-mgw[master]: mgcp_client_fsm: improve error logging In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9645 ) Change subject: mgcp_client_fsm: improve error logging ...................................................................... mgcp_client_fsm: improve error logging Change-Id: I2feefaeefc2d71b64714585ef8137afbb4055b7e --- M src/libosmo-mgcp-client/mgcp_client_fsm.c 1 file changed, 10 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 10a5b6d..25543ae 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -630,17 +630,24 @@ OSMO_ASSERT(fi->state != ST_DLCX_RESP); /* Check if IP/Port parameters make sense */ - if (conn_peer->port == 0) + if (conn_peer->port == 0) { + LOGPFSML(fi, LOGL_ERROR, "Cannot MDCX, port == 0\n"); return -EINVAL; - if (inet_aton(conn_peer->addr, &ip_test) == 0) + } + if (inet_aton(conn_peer->addr, &ip_test) == 0) { + LOGPFSML(fi, LOGL_ERROR, "Cannot MDCX, IP address == 0.0.0.0\n"); return -EINVAL; + } /*! The user may supply an endpoint identifier in conn_peer. The * identifier is then checked. This check is optional. Later steps do * not depend on the endpoint identifier supplied here because it is * already implicitly known from the CRCX phase. */ - if (strlen(conn_peer->endpoint) && strcmp(conn_peer->endpoint, mgcp_ctx->conn_peer_remote.endpoint)) + if (strlen(conn_peer->endpoint) && strcmp(conn_peer->endpoint, mgcp_ctx->conn_peer_remote.endpoint)) { + LOGPFSML(fi, LOGL_ERROR, "Cannot MDCX, endpoint mismatches: requested %s, should be %s\n", + conn_peer->endpoint, mgcp_ctx->conn_peer_remote.endpoint); return -EINVAL; + } /*! Note: The call-id is implicitly known from the previous CRCX and * will not be checked even when it is set in conn_peer. */ -- To view, visit https://gerrit.osmocom.org/9645 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2feefaeefc2d71b64714585ef8137afbb4055b7e Gerrit-Change-Number: 9645 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:34:10 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 15 Jun 2018 16:34:10 +0000 Subject: Change in osmo-mgw[master]: mgw: clean up codec negotiation (sdp) Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9648 Change subject: mgw: clean up codec negotiation (sdp) ...................................................................... mgw: clean up codec negotiation (sdp) The codec negotiation via SDP is currently in a neglected state. Also osmo-mgw does some kind of codec decision wile the SDP is parsed, the result is information for one codec, even when there are multiple codecs negotiated. This is problematic because we loose all information about alternate codecs while we parse. This should be untangled and the information should be presevered. Also we are not really capable picking a default. Wehen we do not supply any codec information (not even LCO), then we should pick a sane default codec. - separate the codec decision from the sdp parser and concentrate codec related code in a separate c file - add support for multiple codecs in one SDP negotiation - do not initalize "magic" codec defaults during conn allocation - do not allow invalid payload types, especially not 255. When someone tries to select an invalid payload type, do not fail hard, just pick a sane default. - handle the codec decision in protocol.c, pick a sane default codec when no (valid) codec has been negotiated (no LCO, no SDP) Change-Id: If730d022ba6bdb217ad4e20b3fbbd1114dbb4b8f Closes: OS#2658 Related: OS#3114 Related: OS#2728 --- M include/osmocom/mgcp/Makefile.am A include/osmocom/mgcp/mgcp_codec.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_internal.h M include/osmocom/mgcp/mgcp_sdp.h M src/libosmo-mgcp/Makefile.am A src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c M tests/mgcp/mgcp_test.ok 14 files changed, 655 insertions(+), 247 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/48/9648/1 diff --git a/include/osmocom/mgcp/Makefile.am b/include/osmocom/mgcp/Makefile.am index 7e297e4..65ca670 100644 --- a/include/osmocom/mgcp/Makefile.am +++ b/include/osmocom/mgcp/Makefile.am @@ -5,5 +5,6 @@ mgcp_stat.h \ mgcp_endp.h \ mgcp_sdp.h \ + mgcp_codec.h \ debug.h \ $(NULL) diff --git a/include/osmocom/mgcp/mgcp_codec.h b/include/osmocom/mgcp/mgcp_codec.h new file mode 100644 index 0000000..f8d5e70 --- /dev/null +++ b/include/osmocom/mgcp/mgcp_codec.h @@ -0,0 +1,6 @@ +#pragma once + +void mgcp_codec_summary(struct mgcp_conn_rtp *conn); +void mgcp_codec_reset_all(struct mgcp_conn_rtp *conn); +int mgcp_codec_add(struct mgcp_conn_rtp *conn, int payload_type, const char *audio_name); +int mgcp_codec_decide(struct mgcp_conn_rtp *conn); diff --git a/include/osmocom/mgcp/mgcp_common.h b/include/osmocom/mgcp/mgcp_common.h index d23339f..eb6564f 100644 --- a/include/osmocom/mgcp/mgcp_common.h +++ b/include/osmocom/mgcp/mgcp_common.h @@ -82,4 +82,8 @@ /* A prefix to denote the virtual trunk (RTP on both ends) */ #define MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK "rtpbridge/" +/* Maximal number of payload types / codecs that can be negotiated via SDP at + * at once. */ +#define MGCP_MAX_CODECS 10 + #endif diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index bff7da0..b564905 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -114,12 +114,19 @@ /* in network byte order */ int rtp_port, rtcp_port; - /* audio codec information */ - struct mgcp_rtp_codec codec; + /* currently selected audio codec */ + struct mgcp_rtp_codec *codec; + + /* array with assigned audio codecs to choose from (SDP) */ + struct mgcp_rtp_codec codecs[MGCP_MAX_CODECS]; + + /* number of assigned audio codecs (SDP) */ + unsigned int codecs_assigned; /* per endpoint data */ int frames_per_packet; uint32_t packet_duration_ms; + int maximum_packet_time; /* -1: not set */ char *fmtp_extra; /* are we transmitting packets (1) or dropping (0) outbound packets */ int output_enabled; diff --git a/include/osmocom/mgcp/mgcp_sdp.h b/include/osmocom/mgcp/mgcp_sdp.h index 240f8cf..950092e 100644 --- a/include/osmocom/mgcp/mgcp_sdp.h +++ b/include/osmocom/mgcp/mgcp_sdp.h @@ -26,9 +26,6 @@ struct mgcp_conn_rtp *conn, struct mgcp_parse_data *p); -int mgcp_set_audio_info(void *ctx, struct mgcp_rtp_codec *codec, - int payload_type, const char *audio_name); - int mgcp_write_response_sdp(const struct mgcp_endpoint *endp, const struct mgcp_conn_rtp *conn, struct msgb *sdp, const char *addr); diff --git a/src/libosmo-mgcp/Makefile.am b/src/libosmo-mgcp/Makefile.am index a98c391..587bdd4 100644 --- a/src/libosmo-mgcp/Makefile.am +++ b/src/libosmo-mgcp/Makefile.am @@ -35,6 +35,7 @@ mgcp_vty.c \ mgcp_osmux.c \ mgcp_sdp.c \ + mgcp_codec.c \ mgcp_msg.c \ mgcp_conn.c \ mgcp_stat.c \ diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c new file mode 100644 index 0000000..2ce90dd --- /dev/null +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -0,0 +1,343 @@ +/* + * (C) 2009-2015 by Holger Hans Peter Freyther + * (C) 2009-2014 by On-Waves + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +#include +#include +#include + +/* Helper function to dump codec information of a specified codec to a printable + * string, used by dump_codec_summary() */ +static char *dump_codec(struct mgcp_rtp_codec *codec) +{ + static char str[256]; + char *pt_str; + + if (codec->payload_type > 76) + pt_str = "DYNAMIC"; + else if (codec->payload_type > 72) + pt_str = "RESERVED "; + else if (codec->payload_type != PTYPE_UNDEFINED) + pt_str = codec->subtype_name; + else + pt_str = "INVALID "; + + snprintf(str, sizeof(str), "(pt:%i=%s, audio:%s subt=%s, rate=%u, ch=%i, t=%u/%u)", codec->payload_type, pt_str, + codec->audio_name, codec->subtype_name, codec->rate, codec->channels, codec->frame_duration_num, + codec->frame_duration_den); + return str; +} + +/*! Dump a summary of all negotiated codecs to debug log + * \param[in] conn related rtp-connection. */ +void mgcp_codec_summary(struct mgcp_conn_rtp *conn) +{ + struct mgcp_rtp_end *rtp; + unsigned int i; + struct mgcp_rtp_codec *codec; + struct mgcp_endpoint *endp; + + rtp = &conn->end; + endp = conn->conn->endp; + + if (rtp->codecs_assigned == 0) { + LOGP(DLMGCP, LOGL_ERROR, "endpoint:0x%x conn:%s no codecs available\n", ENDPOINT_NUMBER(endp), + mgcp_conn_dump(conn->conn)); + return; + } + + /* Store parsed codec information */ + for (i = 0; i < rtp->codecs_assigned; i++) { + codec = &rtp->codecs[i]; + + LOGP(DLMGCP, LOGL_DEBUG, "endpoint:0x%x conn:%s codecs[%u]:%s", ENDPOINT_NUMBER(endp), + mgcp_conn_dump(conn->conn), i, dump_codec(codec)); + + if (codec == rtp->codec) + LOGPC(DLMGCP, LOGL_DEBUG, " [selected]"); + + LOGPC(DLMGCP, LOGL_DEBUG, "\n"); + } +} + +/* Initalize or reset codec information with default data. */ +void codec_init(struct mgcp_rtp_codec *codec) +{ + if (codec->subtype_name) + talloc_free(codec->subtype_name); + if (codec->audio_name) + talloc_free(codec->audio_name); + memset(codec, 0, sizeof(*codec)); + codec->payload_type = -1; + codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; + codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; + codec->rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; + codec->channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; +} + +/*! Initalize or reset codec information with default data. + * \param[out] conn related rtp-connection. */ +void mgcp_codec_reset_all(struct mgcp_conn_rtp *conn) +{ + memset(conn->end.codecs, 0, sizeof(conn->end.codecs)); + conn->end.codecs_assigned = 0; + conn->end.codec = NULL; +} + +/* Set members of struct mgcp_rtp_codec, extrapolate in missing information */ +static int codec_set(void *ctx, struct mgcp_rtp_codec *codec, + int payload_type, const char *audio_name, unsigned int pt_offset) +{ + int rate; + int channels; + char audio_codec[64]; + + /* Initalize the codec struct with some default data to begin with */ + codec_init(codec); + + if (payload_type != PTYPE_UNDEFINED) { + /* Make sure we do not get any reserved or undefined type numbers */ + /* See also: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml */ + if (payload_type == 1 || payload_type == 2 || payload_type == 19) + goto error; + if (payload_type >= 72 && payload_type <= 76) + goto error; + if (payload_type >= 127) + goto error; + + codec->payload_type = payload_type; + } + + /* When no audio name is given, we are forced to use the payload + * type to generate the audio name. This is only possible for + * non dynamic payload types, which are statically defined */ + if (!audio_name) { + switch (payload_type) { + case 0: + audio_name = talloc_strdup(ctx, "PCMU/8000/1"); + break; + case 3: + audio_name = talloc_strdup(ctx, "GSM/8000/1"); + break; + case 8: + audio_name = talloc_strdup(ctx, "PCMA/8000/1"); + break; + case 18: + audio_name = talloc_strdup(ctx, "G729/8000/1"); + break; + default: + /* The given payload type is not known to us, or it + * it is a dynamic payload type for which we do not + * know the audio name. We must give up here */ + goto error; + } + } + + /* Now we extract the codec subtype name, rate and channels. The latter + * two are optional. If they are not present we use the safe defaults + * above. */ + if (strlen(audio_name) > sizeof(audio_codec)) + goto error; + channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; + rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; + if (sscanf(audio_name, "%63[^/]/%d/%d", audio_codec, &rate, &channels) < 1) + goto error; + + /* Note: We only accept configurations with one audio channel! */ + if (channels != 1) + goto error; + + codec->rate = rate; + codec->channels = channels; + codec->subtype_name = talloc_strdup(ctx, audio_codec); + codec->audio_name = talloc_strdup(ctx, audio_name); + codec->payload_type = payload_type; + + if (!strcmp(audio_codec, "G729")) { + codec->frame_duration_num = 10; + codec->frame_duration_den = 1000; + } else { + codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; + codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; + } + + /* Derive the payload type if it is unknown */ + if (codec->payload_type == PTYPE_UNDEFINED) { + + /* For the known codecs from the static range we restore + * the IANA or 3GPP assigned payload type number */ + if (codec->rate == 8000 && codec->channels == 1) { + /* See also: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml */ + if (!strcmp(codec->subtype_name, "GSM")) + codec->payload_type = 3; + else if (!strcmp(codec->subtype_name, "PCMA")) + codec->payload_type = 8; + else if (!strcmp(codec->subtype_name, "PCMU")) + codec->payload_type = 0; + else if (!strcmp(codec->subtype_name, "G729")) + codec->payload_type = 18; + + /* See also: 3GPP TS 48.103, chapter 5.4.2.2 RTP Payload + * Note: These are not fixed payload types as the IANA + * defined once, they still remain dymanic payload + * types, but with a payload type number preference. */ + else if (!strcmp(codec->subtype_name, "GSM-EFR")) + codec->payload_type = 110; + else if (!strcmp(codec->subtype_name, "GSM-HR-08")) + codec->payload_type = 111; + else if (!strcmp(codec->subtype_name, "AMR")) + codec->payload_type = 112; + else if (!strcmp(codec->subtype_name, "AMR-WB")) + codec->payload_type = 113; + } + + /* If we could not determine a payload type we assume that + * we are dealing with a codec from the dynamic range. We + * choose a fixed identifier from 96-109. (Note: normally, + * the dynamic payload type rante is from 96-127, but from + * 110 onwards 3gpp defines prefered codec types, which are + * also fixed, see above) */ + if (codec->payload_type < 0) { + codec->payload_type = 96 + pt_offset; + if (codec->payload_type > 109) + goto error; + } + } + + return 0; +error: + /* Make sure we leave a clean codec entry on error. */ + codec_init(codec); + memset(codec, 0, sizeof(*codec)); + return -EINVAL; +} + +/*! Add codec configuration depending on payload type and/or codec name. This + * function uses the input parameters to extrapolate the full codec information. + * \param[out] codec configuration (caller provided memory). + * \param[out] conn related rtp-connection. + * \param[in] payload_type codec type id (e.g. 3 for GSM, -1 when undefined). + * \param[in] audio_name audio codec name (e.g. "GSM/8000/1"). + * \returns 0 on success, -EINVAL on failure. */ +int mgcp_codec_add(struct mgcp_conn_rtp *conn, int payload_type, const char *audio_name) +{ + int rc; + + /* The amount of codecs we can store is limited, make sure we do not + * overrun this limit. */ + if (conn->end.codecs_assigned >= MGCP_MAX_CODECS) + return -EINVAL; + + rc = codec_set(conn->conn, &conn->end.codecs[conn->end.codecs_assigned], payload_type, audio_name, + conn->end.codecs_assigned); + if (rc != 0) + return -EINVAL; + + conn->end.codecs_assigned++; + + return 0; +} + +/* Check if the given codec is applicable on the specified endpoint + * Helper function for mgcp_codec_decide() */ +static bool is_codec_compatible(const struct mgcp_endpoint *endp, const struct mgcp_rtp_codec *codec) +{ + char codec_name[64]; + + /* A codec name must be set, if not, this might mean that the codec + * (payload type) that was assigned is unknown to us so we must stop + * here. */ + if (!codec->subtype_name) + return false; + + /* We now extract the codec_name (letters before the /, e.g. "GSM" + * from the audio name that is stored in the trunk configuration. + * We do not compare to the full audio_name because we expect that + * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the + * audio name of the codec is set to "GSM" */ + if (sscanf(endp->tcfg->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) + return false; + + /* Finally we check if the subtype_name we have generated from the + * audio_name in the trunc struct patches the codec_name of the + * given codec */ + if (strcasecmp(codec_name, codec->subtype_name) == 0) + return true; + + /* FIXME: It is questinable that the method to pick a compatible + * codec can work properly. Since this useses tcfg->audio_name, as + * a reference, which is set to "AMR/8000" permanently. + * tcfg->audio_name must be updated by the first connection that + * has been made on an endpoint, so that the second connection + * can make a meaningful decision here */ + + return false; +} + +/*! Decide for one suitable codec + * \param[in] conn related rtp-connection. + * \returns 0 on success, -EINVAL on failure. */ +int mgcp_codec_decide(struct mgcp_conn_rtp *conn) +{ + struct mgcp_rtp_end *rtp; + unsigned int i; + struct mgcp_endpoint *endp; + bool codec_assigned = false; + + endp = conn->conn->endp; + rtp = &conn->end; + + /* This function works on the results the SDP/LCO parser has extracted + * from the MGCP message. The goal is to select a suitable codec for + * the given connection. When transcoding is available, the first codec + * from the codec list is taken without further checking. When + * transcoding is not available, then the choice must be made more + * carefully. Each codec in the list is checked until one is found that + * is rated compatible. The rating is done by the helper function + * is_codec_compatible(), which does the actual checking. */ + for (i = 0; i < rtp->codecs_assigned; i++) { + /* When no transcoding is available, avoid codecs that would + * require transcoding. */ + if (endp->tcfg->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) { + LOGP(DLMGCP, LOGL_NOTICE, "transcoding not available, skipping codec: %d/%s\n", + rtp->codecs[i].payload_type, rtp->codecs[i].subtype_name); + continue; + } + + rtp->codec = &rtp->codecs[i]; + codec_assigned = true; + break; + } + + /* FIXME: To the reviewes: This is problematic. I do not get why we + * need to reset the packet_duration_ms depending on the codec + * selection. I thought it were all 20ms? Is this to address some + * cornercase. (This piece of code was in the code path before, + * together with the note: "TODO/XXX: Store this per codec and derive + * it on use" */ + if (codec_assigned) { + if (rtp->maximum_packet_time >= 0 + && rtp->maximum_packet_time * rtp->codec->frame_duration_den > + rtp->codec->frame_duration_num * 1500) + rtp->packet_duration_ms = 0; + + return 0; + } + + return -EINVAL; +} diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 4926768..e49559c 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include #include #include @@ -88,22 +90,6 @@ return -1; } -/* Reset codec state and free memory */ -static void mgcp_rtp_codec_init(struct mgcp_rtp_codec *codec) -{ - /* see also mgcp_sdp.c, mgcp_set_audio_info() */ - talloc_free(codec->subtype_name); - talloc_free(codec->audio_name); - - codec->payload_type = -1; - codec->subtype_name = NULL; - codec->audio_name = NULL; - codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; - codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; - codec->rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; - codec->channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; -} - /* Initialize rtp connection struct with default values */ static void mgcp_rtp_conn_init(struct mgcp_conn_rtp *conn_rtp, struct mgcp_conn *conn) { @@ -130,13 +116,15 @@ end->frames_per_packet = 0; /* unknown */ end->packet_duration_ms = DEFAULT_RTP_AUDIO_PACKET_DURATION_MS; end->output_enabled = 0; - - mgcp_rtp_codec_init(&end->codec); + end->maximum_packet_time = -1; conn_rtp->rate_ctr_group = rate_ctr_group_alloc(conn, &rate_ctr_group_desc, rate_ctr_index); conn_rtp->state.in_stream.err_ts_ctr = &conn_rtp->rate_ctr_group->ctr[IN_STREAM_ERR_TSTMP_CTR]; conn_rtp->state.out_stream.err_ts_ctr = &conn_rtp->rate_ctr_group->ctr[OUT_STREAM_ERR_TSTMP_CTR]; rate_ctr_index++; + + /* Make sure codec table is reset */ + mgcp_codec_reset_all(conn_rtp); } /* Cleanup rtp connection struct */ diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 2da37b4..b47b76c 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -310,7 +310,7 @@ ENDPOINT_NUMBER(endp), tsdelta, inet_ntoa(addr->sin_addr), ntohs(addr->sin_port)); } else { - tsdelta = rtp_end->codec.rate * 20 / 1000; + tsdelta = rtp_end->codec->rate * 20 / 1000; LOGP(DRTP, LOGL_NOTICE, "Fixed packet duration and last timestamp delta " "are not available on 0x%x, " @@ -421,8 +421,8 @@ "endpoint:0x%x conn:%s using format defaults\n", ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn->conn)); - *payload_type = conn->end.codec.payload_type; - *audio_name = conn->end.codec.audio_name; + *payload_type = conn->end.codec->payload_type; + *audio_name = conn->end.codec->audio_name; *fmtp_extra = conn->end.fmtp_extra; } @@ -490,7 +490,7 @@ uint16_t seq; uint32_t timestamp, ssrc; struct rtp_hdr *rtp_hdr; - int payload = rtp_end->codec.payload_type; + int payload = rtp_end->codec->payload_type; if (len < sizeof(*rtp_hdr)) return; @@ -498,7 +498,7 @@ rtp_hdr = (struct rtp_hdr *)data; seq = ntohs(rtp_hdr->sequence); timestamp = ntohl(rtp_hdr->timestamp); - arrival_time = get_current_ts(rtp_end->codec.rate); + arrival_time = get_current_ts(rtp_end->codec->rate); ssrc = ntohl(rtp_hdr->ssrc); transit = arrival_time - timestamp; @@ -524,7 +524,7 @@ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port)); if (state->packet_duration == 0) { state->packet_duration = - rtp_end->codec.rate * 20 / 1000; + rtp_end->codec->rate * 20 / 1000; LOGP(DRTP, LOGL_NOTICE, "endpoint:0x%x fixed packet duration is not available, " "using fixed 20ms instead: %d from %s:%d\n", diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 21f6cf3..eea67a6 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -40,6 +40,7 @@ #include #include #include +#include struct mgcp_request { char *name; @@ -534,12 +535,15 @@ talloc_free(lco->string); lco->string = talloc_strdup(ctx, options); - + p_opt = strstr(lco->string, "p:"); if (p_opt && sscanf(p_opt, "p:%d-%d", &lco->pkt_period_min, &lco->pkt_period_max) == 1) lco->pkt_period_max = lco->pkt_period_min; + /* FIXME: LCO also supports the negotiation of more then one codec. + * (e.g. a:PCMU;G726-32) But this implementation only supports a single + * codec only. */ a_opt = strstr(lco->string, "a:"); if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) { talloc_free(lco->codec); @@ -585,15 +589,15 @@ /* Get the number of frames per channel and packet */ if (rtp->frames_per_packet) f = rtp->frames_per_packet; - else if (rtp->packet_duration_ms && rtp->codec.frame_duration_num) { - int den = 1000 * rtp->codec.frame_duration_num; - f = (rtp->packet_duration_ms * rtp->codec.frame_duration_den + + else if (rtp->packet_duration_ms && rtp->codec->frame_duration_num) { + int den = 1000 * rtp->codec->frame_duration_num; + f = (rtp->packet_duration_ms * rtp->codec->frame_duration_den + den / 2) / den; } - return rtp->codec.rate * f * rtp->codec.frame_duration_num / - rtp->codec.frame_duration_den; + return rtp->codec->rate * f * rtp->codec->frame_duration_num / + rtp->codec->frame_duration_den; } static int mgcp_osmux_setup(struct mgcp_endpoint *endp, const char *line) @@ -609,6 +613,68 @@ return mgcp_parse_osmux_cid(line); } +/* Process codec information contained in CRCX/MDCX */ +static int handle_codec_info(struct mgcp_conn_rtp *conn, + struct mgcp_parse_data *p, int have_sdp, bool crcx) +{ + struct mgcp_endpoint *endp = p->endp; + int rc; + char *cmd; + + if (crcx) + cmd = "CRCX"; + else + cmd = "MDCX"; + + /* Collect codec information */ + if (have_sdp) { + /* If we have SDP, we ignore the local connection options and + * use only the SDP information. */ + mgcp_codec_reset_all(conn); + rc = mgcp_parse_sdp_data(endp, conn, p); + if (rc != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "%s: endpoint:%x sdp not parseable\n", cmd, + ENDPOINT_NUMBER(endp)); + + /* See also RFC 3661: Protocol error */ + return 510; + } + } else if (endp->local_options.codec) { + /* When no SDP is available, we use the codec information from + * the local connection options (if present) */ + mgcp_codec_reset_all(conn); + rc = mgcp_codec_add(conn, PTYPE_UNDEFINED, endp->local_options.codec); + if (rc != 0) + goto error; + } + + /* Make sure we always set a sane default codec */ + if (conn->end.codecs_assigned == 0) { + /* When SDP and/or LCO did not supply any codec information, + * than it makes sense to pick a sane default: (payload-type 0, + * PCMU), see also: OS#2658 */ + mgcp_codec_reset_all(conn); + rc = mgcp_codec_add(conn, 0, NULL); + if (rc != 0) + goto error; + } + + /* Make codec decision */ + if (mgcp_codec_decide(conn) != 0) + goto error; + + return 0; + +error: + LOGP(DLMGCP, LOGL_ERROR, + "%s: endpoint:0x%x codec negotiation failure\n", cmd, + ENDPOINT_NUMBER(endp)); + + /* See also RFC 3661: Codec negotiation failure */ + return 534; +} + /* CRCX command handler, processes the received command */ static struct msgb *handle_create_con(struct mgcp_parse_data *p) { @@ -726,17 +792,6 @@ * connection ids) */ endp->callid = talloc_strdup(tcfg->endpoints, callid); - /* Extract audio codec information */ - rc = set_local_cx_options(endp->tcfg->endpoints, &endp->local_options, - local_options); - if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "CRCX: endpoint:%x inavlid local connection options!\n", - ENDPOINT_NUMBER(endp)); - error_code = rc; - goto error2; - } - snprintf(conn_name, sizeof(conn_name), "%s", callid); _conn = mgcp_conn_alloc(NULL, endp, MGCP_CONN_TYPE_RTP, conn_name); if (!_conn) { @@ -767,12 +822,27 @@ goto error2; } - /* set up RTP media parameters */ - if (have_sdp) - mgcp_parse_sdp_data(endp, conn, p); - else if (endp->local_options.codec) - mgcp_set_audio_info(p->cfg, &conn->end.codec, - PTYPE_UNDEFINED, endp->local_options.codec); + /* Set local connection options, if present */ + if (local_options) { + rc = set_local_cx_options(endp->tcfg->endpoints, + &endp->local_options, local_options); + if (rc != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "CRCX: endpoint:%x inavlid local connection options!\n", + ENDPOINT_NUMBER(endp)); + error_code = rc; + goto error2; + } + } + + /* Handle codec information and decide for a suitable codec */ + rc = handle_codec_info(conn, p, have_sdp, true); + mgcp_codec_summary(conn); + if (rc) { + error_code = rc; + goto error2; + } + conn->end.fmtp_extra = talloc_strdup(tcfg->endpoints, tcfg->audio_fmtp_extra); @@ -852,6 +922,10 @@ return create_err_response(endp, error_code, "CRCX", p->trans); } + + + + /* MDCX command handler, processes the received command */ static struct msgb *handle_modify_con(struct mgcp_parse_data *p) { @@ -943,23 +1017,27 @@ } else conn->conn->mode = conn->conn->mode_orig; - if (have_sdp) - mgcp_parse_sdp_data(endp, conn, p); + /* Set local connection options, if present */ + if (local_options) { + rc = set_local_cx_options(endp->tcfg->endpoints, + &endp->local_options, local_options); + if (rc != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "MDCX: endpoint:%x inavlid local connection options!\n", + ENDPOINT_NUMBER(endp)); + error_code = rc; + goto error3; + } + } - rc = set_local_cx_options(endp->tcfg->endpoints, &endp->local_options, - local_options); - if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "MDCX: endpoint:%x inavlid local connection options!\n", - ENDPOINT_NUMBER(endp)); + /* Handle codec information and decide for a suitable codec */ + rc = handle_codec_info(conn, p, have_sdp, false); + mgcp_codec_summary(conn); + if (rc) { error_code = rc; goto error3; } - if (!have_sdp && endp->local_options.codec) - mgcp_set_audio_info(p->cfg, &conn->end.codec, - PTYPE_UNDEFINED, endp->local_options.codec); - /* check connection mode setting */ if (conn->conn->mode != MGCP_CONN_LOOPBACK && conn->conn->mode != MGCP_CONN_RECV_ONLY @@ -971,6 +1049,7 @@ goto error3; } + if (setup_rtp_processing(endp, conn) != 0) goto error3; diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 5cc34ea..102c8c3 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -25,9 +25,13 @@ #include #include #include +#include #include +/* A struct to store intermediate parsing results. The function + * mgcp_parse_sdp_data() is using it as temporary storage for parsing the SDP + * codec information. */ struct sdp_rtp_map { /* the type */ int payload_type; @@ -40,89 +44,8 @@ int channels; }; -/*! Set codec configuration depending on payload type and codec name. - * \param[in] ctx talloc context. - * \param[out] codec configuration (caller provided memory). - * \param[in] payload_type codec type id (e.g. 3 for GSM, -1 when undefined). - * \param[in] audio_name audio codec name (e.g. "GSM/8000/1"). - * \returns 0 on success, -1 on failure. */ -int mgcp_set_audio_info(void *ctx, struct mgcp_rtp_codec *codec, - int payload_type, const char *audio_name) -{ - int rate = codec->rate; - int channels = codec->channels; - char audio_codec[64]; - - talloc_free(codec->subtype_name); - codec->subtype_name = NULL; - talloc_free(codec->audio_name); - codec->audio_name = NULL; - - if (payload_type != PTYPE_UNDEFINED) - codec->payload_type = payload_type; - - if (!audio_name) { - switch (payload_type) { - case 0: - audio_name = "PCMU/8000/1"; - break; - case 3: - audio_name = "GSM/8000/1"; - break; - case 8: - audio_name = "PCMA/8000/1"; - break; - case 18: - audio_name = "G729/8000/1"; - break; - default: - /* Payload type is unknown, don't change rate and - * channels. */ - /* TODO: return value? */ - return 0; - } - } - - if (sscanf(audio_name, "%63[^/]/%d/%d", - audio_codec, &rate, &channels) < 1) - return -EINVAL; - - codec->rate = rate; - codec->channels = channels; - codec->subtype_name = talloc_strdup(ctx, audio_codec); - codec->audio_name = talloc_strdup(ctx, audio_name); - - if (!strcmp(audio_codec, "G729")) { - codec->frame_duration_num = 10; - codec->frame_duration_den = 1000; - } else { - codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; - codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; - } - - if (payload_type < 0) { - payload_type = 96; - if (rate == 8000 && channels == 1) { - if (!strcmp(audio_codec, "GSM")) - payload_type = 3; - else if (!strcmp(audio_codec, "PCMA")) - payload_type = 8; - else if (!strcmp(audio_codec, "PCMU")) - payload_type = 0; - else if (!strcmp(audio_codec, "G729")) - payload_type = 18; - } - - codec->payload_type = payload_type; - } - - if (channels != 1) - LOGP(DLMGCP, LOGL_NOTICE, - "Channels != 1 in SDP: '%s'\n", audio_name); - - return 0; -} - +/* Helper function to extrapolate missing codec parameters in a codec mao from + * an already filled in payload_type, called from: mgcp_parse_sdp_data() */ static void codecs_initialize(void *ctx, struct sdp_rtp_map *codecs, int used) { int i; @@ -149,10 +72,16 @@ codecs[i].rate = 8000; codecs[i].channels = 1; break; + default: + codecs[i].codec_name = NULL; + codecs[i].rate = 0; + codecs[i].channels = 0; } } } +/* Helper function to update codec map information with additional data from + * SDP, called from: mgcp_parse_sdp_data() */ static void codecs_update(void *ctx, struct sdp_rtp_map *codecs, int used, int payload, const char *audio_name) { @@ -162,8 +91,13 @@ char audio_codec[64]; int rate = -1; int channels = -1; + + /* Note: We can only update payload codecs that already exist + * in our codec list. If we get an unexpected payload type, + * we just drop it */ if (codecs[i].payload_type != payload) continue; + if (sscanf(audio_name, "%63[^/]/%d/%d", audio_codec, &rate, &channels) < 1) { LOGP(DLMGCP, LOGL_ERROR, "Failed to parse '%s'\n", @@ -182,43 +116,72 @@ audio_name); } -/* Check if the codec matches what is set up in the trunk config */ -static int is_codec_compatible(const struct mgcp_endpoint *endp, - const struct sdp_rtp_map *codec) +/* Extract payload types from SDP, also check for duplicates */ +static int pt_from_sdp(void *ctx, struct sdp_rtp_map *codecs, + unsigned int codecs_len, char *sdp) { - char *codec_str; - char audio_codec[64]; + char *str; + char *str_ptr; + char *pt_str; + unsigned int pt; + unsigned int count = 0; + unsigned int i; - if (!codec->codec_name) - return 0; + str = talloc_zero_size(ctx, strlen(sdp) + 1); + str_ptr = str; + strcpy(str_ptr, sdp); - /* GSM, GSM/8000 and GSM/8000/1 should all be compatible... - * let's go by name first. */ - codec_str = endp->tcfg->audio_name; - if (sscanf(codec_str, "%63[^/]/%*d/%*d", audio_codec) < 1) - return 0; + str_ptr = strstr(str_ptr, "RTP/AVP "); + if (!str_ptr) + goto exit; - return strcasecmp(audio_codec, codec->codec_name) == 0; + pt_str = strtok(str_ptr, " "); + if (!pt_str) + goto exit; + + while (1) { + /* Do not allow excessive payload types */ + if (count > codecs_len) + goto error; + + pt_str = strtok(NULL, " "); + if (!pt_str) + break; + + pt = atoi(pt_str); + + /* Do not allow duplicate payload types */ + for (i = 0; i < count; i++) + if (codecs[i].payload_type == pt) + goto error; + + codecs[count].payload_type = pt; + count++; + } + +exit: + talloc_free(str); + return count; +error: + talloc_free(str); + return -EINVAL; } /*! Analyze SDP input string. * \param[in] endp trunk endpoint. * \param[out] conn associated rtp connection. * \param[out] caller provided memory to store the parsing results. - * \returns 1 when a codec is assigned, 0 when no codec is assigned * * Note: In conn (conn->end) the function returns the packet duration, - * rtp port, rtcp port and the assigned codec. */ + * rtp port, rtcp port and the codec information. + * \returns 0 on success, -1 on failure. */ int mgcp_parse_sdp_data(const struct mgcp_endpoint *endp, - struct mgcp_conn_rtp *conn, - struct mgcp_parse_data *p) + struct mgcp_conn_rtp *conn, struct mgcp_parse_data *p) { - struct sdp_rtp_map codecs[10]; - int codecs_used = 0; + struct sdp_rtp_map codecs[MGCP_MAX_CODECS]; + unsigned int codecs_used = 0; char *line; - int maxptime = -1; - int i; - bool codec_assigned = false; + unsigned int i; void *tmp_ctx = talloc_new(NULL); struct mgcp_rtp_end *rtp; @@ -255,34 +218,21 @@ rtp->packet_duration_ms = 0; else rtp->packet_duration_ms = ptime; - } else if (sscanf(line, "a=maxptime:%d", &ptime2) - == 1) { - maxptime = ptime2; + } else if (sscanf(line, "a=maxptime:%d", &ptime2) == 1) { + rtp->maximum_packet_time = ptime2; } break; case 'm': - rc = sscanf(line, - "m=audio %d RTP/AVP %d %d %d %d %d %d %d %d %d %d", - &port, &codecs[0].payload_type, - &codecs[1].payload_type, - &codecs[2].payload_type, - &codecs[3].payload_type, - &codecs[4].payload_type, - &codecs[5].payload_type, - &codecs[6].payload_type, - &codecs[7].payload_type, - &codecs[8].payload_type, - &codecs[9].payload_type); - if (rc >= 2) { + rc = sscanf(line, "m=audio %d RTP/AVP", &port); + if (rc == 1) { rtp->rtp_port = htons(port); rtp->rtcp_port = htons(port + 1); - codecs_used = rc - 1; - - /* So far we have only set the payload type in - * the codec struct. Now we fill up the - * remaining fields of the codec description */ - codecs_initialize(tmp_ctx, codecs, codecs_used); } + + rc = pt_from_sdp(conn->conn, codecs, + ARRAY_SIZE(codecs), line); + if (rc > 0) + codecs_used = rc; break; case 'c': @@ -303,47 +253,36 @@ break; } } + OSMO_ASSERT(codecs_used <= MGCP_MAX_CODECS); - /* Now select a suitable codec */ + /* So far we have only set the payload type in the codec struct. Now we + * fill up the remaining fields of the codec description with some default + * information */ + codecs_initialize(tmp_ctx, codecs, codecs_used); + + /* Store parsed codec information */ for (i = 0; i < codecs_used; i++) { - - /* When no transcoding is available, avoid codecs that would - * require transcoding. */ - if (endp->tcfg->no_audio_transcoding && - !is_codec_compatible(endp, &codecs[i])) { - LOGP(DLMGCP, LOGL_NOTICE, "Skipping codec %s\n", - codecs[i].codec_name); - continue; - } - - mgcp_set_audio_info(p->cfg, &rtp->codec, - codecs[i].payload_type, codecs[i].map_line); - - codec_assigned = true; - break; - } - - if (codec_assigned) { - /* TODO/XXX: Store this per codec and derive it on use */ - if (maxptime >= 0 && maxptime * rtp->codec.frame_duration_den > - rtp->codec.frame_duration_num * 1500) { - /* more than 1 frame */ - rtp->packet_duration_ms = 0; - } - - LOGP(DLMGCP, LOGL_NOTICE, - "Got media info via SDP: port %d, payload %d (%s), " - "duration %d, addr %s\n", - ntohs(rtp->rtp_port), rtp->codec.payload_type, - rtp->codec.subtype_name ? rtp-> - codec.subtype_name : "unknown", rtp->packet_duration_ms, - inet_ntoa(rtp->addr)); + rc = mgcp_codec_add(conn, codecs[i].payload_type, codecs[i].map_line); + if (rc < 0) + LOGP(DLMGCP, LOGL_NOTICE, "endpoint:0x%x, failed to add codec\n", ENDPOINT_NUMBER(p->endp)); } talloc_free(tmp_ctx); - if (codec_assigned) - return 1; + LOGP(DLMGCP, LOGL_NOTICE, + "Got media info via SDP: port:%d, addr:%s, duration:%d, payload-types:", + ntohs(rtp->rtp_port), inet_ntoa(rtp->addr), + rtp->packet_duration_ms); + if (codecs_used == 0) + LOGPC(DLMGCP, LOGL_NOTICE, "none"); + for (i = 0; i < codecs_used; i++) { + LOGPC(DLMGCP, LOGL_NOTICE, "%d=%s", + rtp->codecs[i].payload_type, + rtp->codecs[i].subtype_name ? rtp-> codecs[i].subtype_name : "unknown"); + LOGPC(DLMGCP, LOGL_NOTICE, " "); + } + LOGPC(DLMGCP, LOGL_NOTICE, "\n"); + return 0; } @@ -389,7 +328,9 @@ if (rc < 0) goto buffer_too_small; - if (audio_name && endp->tcfg->audio_send_name) { + /* FIXME: Check if the payload type is from the static range, + * if yes, omitthe a=rtpmap since it is unnecessary */ + if (audio_name && endp->tcfg->audio_send_name && (payload_type >= 96 && payload_type <= 127)) { rc = msgb_printf(sdp, "a=rtpmap:%d %s\r\n", payload_type, audio_name); diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 3c1b596..a7a1feb 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -157,7 +157,7 @@ static void dump_rtp_end(struct vty *vty, struct mgcp_rtp_state *state, struct mgcp_rtp_end *end) { - struct mgcp_rtp_codec *codec = &end->codec; + struct mgcp_rtp_codec *codec = end->codec; vty_out(vty, " Timestamp Errs: %lu->%lu%s" diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index 3fc8bc0..1d2cf4a 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -26,6 +26,8 @@ #include #include #include +#include +#include #include #include @@ -156,8 +158,8 @@ "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ - "m=audio 16002 RTP/AVP 96\r\n" \ - "a=rtpmap:96 AMR\r\n" \ + "m=audio 16002 RTP/AVP 112\r\n" \ + "a=rtpmap:112 AMR\r\n" \ "a=ptime:40\r\n" #define MDCX4_PT1 \ @@ -404,7 +406,7 @@ "v=0\r\n" \ "o=- 1439038275 1439038275 IN IP4 192.168.181.247\r\n" \ "s=-\r\nc=IN IP4 192.168.181.247\r\n" \ - "t=0 0\r\nm=audio 29084 RTP/AVP 255 0 8 3 18 4 96 97 101\r\n" \ + "t=0 0\r\nm=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101\r\n" \ "a=rtpmap:0 PCMU/8000\r\n" \ "a=rtpmap:8 PCMA/8000\r\n" \ "a=rtpmap:3 gsm/8000\r\n" \ @@ -425,7 +427,24 @@ "I: %s\r\n" \ "\r\n" \ "c=IN IP4 8.8.8.8\r\n" \ - "m=audio 16434 RTP/AVP 255\r\n" + "m=audio 16434 RTP/AVP 3\r\n" + +#define CRCX_NO_LCO_NO_SDP \ + "CRCX 2 6 at mgw MGCP 1.0\r\n" \ + "M: recvonly\r\n" \ + "C: 2\r\n" + +#define CRCX_NO_LCO_NO_SDP_RET \ + "200 2 OK\r\n" \ + "I: %s\r\n" \ + "\r\n" \ + "v=0\r\n" \ + "o=- %s 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ + "c=IN IP4 0.0.0.0\r\n" \ + "t=0 0\r\n" \ + "m=audio 16008 RTP/AVP 0\r\n" \ + "a=ptime:20\r\n" struct mgcp_test { const char *name; @@ -462,6 +481,7 @@ {"MDCX3", MDCX3, MDCX3_FMTP_RET, PTYPE_NONE,.extra_fmtp = "a=fmtp:126 0/1/2"}, {"DLCX", DLCX, DLCX_RET, PTYPE_IGNORE,.extra_fmtp = "a=fmtp:126 0/1/2"}, + {"CRCX", CRCX_NO_LCO_NO_SDP, CRCX_NO_LCO_NO_SDP_RET, 97}, }; static const struct mgcp_test retransmit[] = { @@ -764,14 +784,14 @@ fprintf(stderr, "endpoint %d: " "payload type %d (expected %d)\n", last_endpoint, - conn->end.codec.payload_type, t->ptype); + conn->end.codec->payload_type, t->ptype); if (t->ptype != PTYPE_IGNORE) - OSMO_ASSERT(conn->end.codec.payload_type == + OSMO_ASSERT(conn->end.codec->payload_type == t->ptype); /* Reset them again for next test */ - conn->end.codec.payload_type = PTYPE_NONE; + conn->end.codec->payload_type = PTYPE_NONE; } } @@ -1167,7 +1187,8 @@ rtp = &conn->end; - rtp->codec.payload_type = 98; + OSMO_ASSERT(mgcp_codec_add(conn, PTYPE_UNDEFINED, "AMR/8000/1") == 0); + rtp->codec = &rtp->codecs[0]; for (i = 0; i < ARRAY_SIZE(test_rtp_packets1); ++i) { struct rtp_packet_info *info = test_rtp_packets1 + i; @@ -1243,7 +1264,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 18); + OSMO_ASSERT(conn->end.codec->payload_type == 18); /* Allocate 2 at mgw with three codecs, last one ignored */ last_endpoint = -1; @@ -1258,9 +1279,14 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 18); + OSMO_ASSERT(conn->end.codec->payload_type == 18); - /* Allocate 3 at mgw with no codecs, check for PT == -1 */ + /* Allocate 3 at mgw with no codecs, check for PT == 0 */ + /* Note: It usually makes no sense to leave the payload type list + * out. However RFC 2327 does not clearly forbid this case and + * it makes and since we already decided in OS#2658 that a missing + * LCO should pick a sane default codec, it makes sense to expect + * the same behaviour if SDP lacks proper payload type information */ last_endpoint = -1; inp = create_msg(CRCX_MULT_3, NULL); resp = mgcp_handle_message(cfg, inp); @@ -1273,7 +1299,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == -1); + OSMO_ASSERT(conn->end.codec->payload_type == 0); /* Allocate 4 at mgw with a single codec */ last_endpoint = -1; @@ -1288,7 +1314,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 18); + OSMO_ASSERT(conn->end.codec->payload_type == 18); /* Allocate 5 at mgw at select GSM.. */ last_endpoint = -1; @@ -1306,7 +1332,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 3); + OSMO_ASSERT(conn->end.codec->payload_type == 3); inp = create_msg(MDCX_NAT_DUMMY, conn_id); last_endpoint = -1; @@ -1317,7 +1343,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 3); + OSMO_ASSERT(conn->end.codec->payload_type == 3); OSMO_ASSERT(conn->end.rtp_port == htons(16434)); memset(&addr, 0, sizeof(addr)); inet_aton("8.8.8.8", &addr); @@ -1347,7 +1373,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 255); + OSMO_ASSERT(conn->end.codec->payload_type == 0); talloc_free(cfg); } diff --git a/tests/mgcp/mgcp_test.ok b/tests/mgcp/mgcp_test.ok index e293533..9838f4d 100644 --- a/tests/mgcp/mgcp_test.ok +++ b/tests/mgcp/mgcp_test.ok @@ -408,6 +408,21 @@ Testing CRCX creating message from statically defined input: ---------8<--------- +CRCX 2 6 at mgw MGCP 1.0 +M: recvonly +C: 2 + +---------8<--------- +checking response: +using message with patched conn_id for comparison +Response matches our expectations. +(response does not contain a connection id) +Dummy packets: 2 + +================================================ +Testing CRCX +creating message from statically defined input: +---------8<--------- CRCX 2 1 at mgw MGCP 1.0 M: recvonly C: 2 @@ -1031,7 +1046,7 @@ s=- c=IN IP4 192.168.181.247 t=0 0 -m=audio 29084 RTP/AVP 255 0 8 3 18 4 96 97 101 +m=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 gsm/8000 @@ -1054,7 +1069,7 @@ I: %s c=IN IP4 8.8.8.8 -m=audio 16434 RTP/AVP 255 +m=audio 16434 RTP/AVP 3 ---------8<--------- creating message from statically defined input: @@ -1069,7 +1084,7 @@ s=- c=IN IP4 192.168.181.247 t=0 0 -m=audio 29084 RTP/AVP 255 0 8 3 18 4 96 97 101 +m=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 gsm/8000 -- To view, visit https://gerrit.osmocom.org/9648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If730d022ba6bdb217ad4e20b3fbbd1114dbb4b8f Gerrit-Change-Number: 9648 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 16:34:12 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 15 Jun 2018 16:34:12 +0000 Subject: Change in osmo-mgw[master]: client: add features to generate and parse codec information Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9649 Change subject: client: add features to generate and parse codec information ...................................................................... client: add features to generate and parse codec information The current implementation does not support any way to influence the codec that is negotiated via SDP or LCO. The client statically negotitates AMR on an invalid payload type number. Also we ignore any codec information in the responses. - Add struct members to allow setting of user defined codec information. - Add struct members to retrieve parsed codec info from responses. - Add code to generate codec information in SDP - Add code to parse SDP codec info in MGCP responses Change-Id: I78e72d41b73acfcb40599a0ff4823f17c3642059 Related: OS#2728 Related: OS#3334 --- M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_fsm.h M src/libosmo-mgcp-client/mgcp_client.c M src/libosmo-mgcp-client/mgcp_client_fsm.c M tests/mgcp_client/mgcp_client_test.c M tests/mgcp_client/mgcp_client_test.err M tests/mgcp_client/mgcp_client_test.ok 7 files changed, 721 insertions(+), 85 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/49/9649/1 diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 73f3bba..3cecb8f 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -26,6 +26,33 @@ typedef unsigned int mgcp_trans_id_t; +/*! Enumeration of the codec types that mgcp_client is able to handle. */ +enum mgcp_codecs { + CODEC_PCMU_8000_1 = 0, + CODEC_GSM_8000_1 = 3, + CODEC_PCMA_8000_1 = 8, + CODEC_G729_8000_1 = 18, + CODEC_GSMEFR_8000_1 = 110, + CODEC_GSMHR_8000_1 = 111, + CODEC_AMR_8000_1 = 112, + CODEC_AMRWB_16000_1 = 113, +}; +/* Note: when new codec types are added, the corresponding value strings + * in mgcp_client.c (codec_table) must be updated as well. Enumerations + * in enum mgcp_codecs must correspond to a valid payload type. However, + * this is an internal assumption that is made to avoid lookup tables. + * The API-User should not rely on this coincidence! */ + +/*! Structure to build a payload type map to allow the defiition custom payload + * types. */ +struct ptmap { + /*!< codec for which a payload type number should be defined */ + enum mgcp_codecs codec; + + /*!< payload type number (96-127) */ + unsigned int pt; +}; + struct mgcp_response_head { int response_code; mgcp_trans_id_t trans_id; @@ -39,6 +66,11 @@ struct mgcp_response_head head; uint16_t audio_port; char audio_ip[INET_ADDRSTRLEN]; + unsigned int ptime; + enum mgcp_codecs codecs[MGCP_MAX_CODECS]; + unsigned int codecs_len; + struct ptmap ptmap[MGCP_MAX_CODECS]; + unsigned int ptmap_len; }; enum mgcp_verb { @@ -66,6 +98,11 @@ uint16_t audio_port; char *audio_ip; enum mgcp_connection_mode conn_mode; + unsigned int ptime; + enum mgcp_codecs codecs[MGCP_MAX_CODECS]; + unsigned int codecs_len; + struct ptmap ptmap[MGCP_MAX_CODECS]; + unsigned int ptmap_len; }; void mgcp_client_conf_init(struct mgcp_client_conf *conf); @@ -117,3 +154,9 @@ { return get_value_string(mgcp_client_connection_mode_strs, mode); } + +enum mgcp_codecs map_str_to_codec(const char *str); +unsigned int map_codec_to_pt(struct ptmap *ptmap, unsigned int ptmap_len, + enum mgcp_codecs codec); +enum mgcp_codecs map_pt_to_codec(struct ptmap *ptmap, unsigned int ptmap_len, + unsigned int pt); diff --git a/include/osmocom/mgcp_client/mgcp_client_fsm.h b/include/osmocom/mgcp_client/mgcp_client_fsm.h index 93fe582..47d9fab 100644 --- a/include/osmocom/mgcp_client/mgcp_client_fsm.h +++ b/include/osmocom/mgcp_client/mgcp_client_fsm.h @@ -25,6 +25,15 @@ /*!< CALL ID (unique per connection) */ unsigned int call_id; + + /*!< RTP packetization interval (optional) */ + unsigned int ptime; + + /*!< RTP codec list (optional) */ + enum mgcp_codecs codecs[MGCP_MAX_CODECS]; + + /*!< Number of codecs in RTP codec list (optional) */ + unsigned int codecs_len; }; struct osmo_fsm_inst *mgcp_conn_create(struct mgcp_client *mgcp, struct osmo_fsm_inst *parent_fi, uint32_t parent_term_evt, diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index e054593..00b52f8 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -36,6 +36,150 @@ #include #include +/* Codec descripton for dynamic payload types (SDP) */ +static const struct value_string codec_table[] = { + { CODEC_PCMU_8000_1, "PCMU/8000/1" }, + { CODEC_GSM_8000_1, "GSM/8000/1" }, + { CODEC_PCMA_8000_1, "PCMA/8000/1" }, + { CODEC_G729_8000_1, "G729/8000/1" }, + { CODEC_GSMEFR_8000_1, "GSM-EFR/8000/1" }, + { CODEC_GSMHR_8000_1, "GSM-HR-08/8000/1" }, + { CODEC_AMR_8000_1, "AMR/8000/1" }, + { CODEC_AMRWB_16000_1, "AMR-WB/16000/1" }, + { 0, NULL }, +}; + +/* Get encoding name from a full codec string e,g. + * ("CODEC/8000/2" => returns "CODEC") */ +static char *extract_codec_name(const char *str) +{ + static char buf[64]; + unsigned int i; + + if (!str) + return NULL; + + /* FIXME osmo_strlcpy */ + osmo_strlcpy(buf, str, sizeof(buf)); + + for (i = 0; i < strlen(buf); i++) { + if (buf[i] == '/') + buf[i] = '\0'; + } + + return buf; +} + +/*! Map a string to a codec. + * \ptmap[in] str input string (e.g "GSM/8000/1", "GSM/8000" or "GSM") + * \returns codec that corresponds to the given string representation. */ +enum mgcp_codecs map_str_to_codec(const char *str) +{ + unsigned int i; + char *codec_name; + char str_buf[64]; + + osmo_strlcpy(str_buf, extract_codec_name(str), sizeof(str_buf)); + + for (i = 0; i < ARRAY_SIZE(codec_table); i++) { + codec_name = extract_codec_name(codec_table[i].str); + if (!codec_name) + continue; + if (strcmp(codec_name, str_buf) == 0) + return codec_table[i].value; + } + + return -1; +} + +/* Check the ptmap for illegal mappings */ +static int check_ptmap(struct ptmap *ptmap) +{ + /* Check if there are mappings that leave the IANA assigned dynamic + * payload type range. Under normal conditions such mappings should + * not occur */ + + /* Its ok to have a 1:1 mapping in the statically defined + * range, this won't hurt */ + if (ptmap->codec == ptmap->pt) + return 0; + + if (ptmap->codec < 96 || ptmap->codec > 127) + goto error; + if (ptmap->pt < 96 || ptmap->pt > 127) + goto error; + + return 0; +error: + LOGP(DLMGCP, LOGL_ERROR, + "ptmap contains illegal mapping: codec=%u maps to pt=%u\n", + ptmap->codec, ptmap->pt); + return -1; +} + +/*! Map a codec to a payload type. + * \ptmap[in] payload pointer to payload type map with specified payload types. + * \ptmap[in] ptmap_len length of the payload type map. + * \ptmap[in] codec the codec for which the payload type should be looked up. + * \returns assigned payload type */ +unsigned int map_codec_to_pt(struct ptmap *ptmap, unsigned int ptmap_len, + enum mgcp_codecs codec) +{ + unsigned int i; + + /*! Note: If the payload type map is empty or the codec is not found + * in the map, then a 1:1 mapping is performed. If the codec falls + * into the statically defined range or if the mapping table isself + * tries to map to the statically defined range, then the mapping + * is also ignored and a 1:1 mapping is performed instead. */ + + /* we may return the codec directly since enum mgcp_codecs directly + * corresponds to the stati?ally assigned payload types */ + if (codec < 96 || codec > 127) + return codec; + + for (i = 0; i < ptmap_len; i++) { + /* Skip illegal map entries */ + if (check_ptmap(ptmap) == 0 && ptmap->codec == codec) + return ptmap->pt; + ptmap++; + } + + /* If nothing is found, do not perform any mapping */ + return codec; +} + +/*! Map a payload type to a codec. + * \ptmap[in] payload pointer to payload type map with specified payload types. + * \ptmap[in] ptmap_len length of the payload type map. + * \ptmap[in] payload type for which the codec should be looked up. + * \returns codec that corresponds to the specified payload type */ +enum mgcp_codecs map_pt_to_codec(struct ptmap *ptmap, unsigned int ptmap_len, + unsigned int pt) +{ + unsigned int i; + + /*! Note: If the payload type map is empty or the payload type is not + * found in the map, then a 1:1 mapping is performed. If the payload + * type falls into the statically defined range or if the mapping + * table isself tries to map to the statically defined range, then + * the mapping is also ignored and a 1:1 mapping is performed + * instead. */ + + /* See also note in map_codec_to_pt() */ + if (pt < 96 || pt > 127) + return pt; + + for (i = 0; i < ptmap_len; i++) { + if (check_ptmap(ptmap) == 0 && ptmap->pt == pt) + return ptmap->codec; + ptmap++; + } + + /* If nothing is found, do not perform any mapping */ + return pt; +} + /*! Initalize MGCP client configuration struct with default values. * \param[out] conf Client configuration.*/ void mgcp_client_conf_init(struct mgcp_client_conf *conf) @@ -178,22 +322,114 @@ return true; } -/* Parse a line like "m=audio 16002 RTP/AVP 98" */ -static int mgcp_parse_audio_port(struct mgcp_response *r, const char *line) +/* Parse a line like "m=audio 16002 RTP/AVP 98", extract port and payload types */ +static int mgcp_parse_audio_port_pt(struct mgcp_response *r, char *line) { - if (sscanf(line, "m=audio %hu", - &r->audio_port) != 1) - goto response_parse_failure; + char *pt_str; + unsigned int pt; + unsigned int count = 0; + unsigned int i; + /* Extract port information */ + if (sscanf(line, "m=audio %hu", &r->audio_port) != 1) + goto response_parse_failure_port; if (r->audio_port == 0) - goto response_parse_failure; + goto response_parse_failure_port; + /* Extract payload types */ + line = strstr(line, "RTP/AVP "); + if (!line) + goto exit; + + pt_str = strtok(line, " "); + while (1) { + /* Do not allow excessive payload types */ + if (count > ARRAY_SIZE(r->codecs)) + goto response_parse_failure_pt; + + pt_str = strtok(NULL, " "); + if (!pt_str) + break; + pt = atoi(pt_str); + + /* Do not allow duplicate payload types */ + for (i = 0; i < count; i++) + if (r->codecs[i] == pt) + goto response_parse_failure_pt; + + /* Note: The payload type we store may not necessarly match + * the codec types we have defined in enum mgcp_codecs. To + * ensure that the end result only contains codec types which + * match enum mgcp_codecs, we will go through afterwards and + * remap the affected entries with the inrofmation we learn + * from rtpmap */ + r->codecs[count] = pt; + count++; + } + + r->codecs_len = count; + +exit: return 0; -response_parse_failure: +response_parse_failure_port: LOGP(DLMGCP, LOGL_ERROR, - "Failed to parse MGCP response header (audio port)\n"); + "Failed to parse SDP parameter port (%s)\n", line); return -EINVAL; + +response_parse_failure_pt: + LOGP(DLMGCP, LOGL_ERROR, + "Failed to parse SDP parameter payload types (%s)\n", line); + return -EINVAL; +} + +/* Parse a line like "m=audio 16002 RTP/AVP 98", extract port and payload types */ +static int mgcp_parse_audio_ptime_rtpmap(struct mgcp_response *r, const char *line) +{ + unsigned int pt; + char codec_resp[64]; + unsigned int codec; + + + if (strstr(line, "ptime")) { + if (sscanf(line, "a=ptime:%u", &r->ptime) != 1) + goto response_parse_failure_ptime; + } else if (strstr(line, "rtpmap")) { + if (sscanf(line, "a=rtpmap:%d %63s", &pt, codec_resp) == 2) { + /* The MGW may assign an own payload type in the + * response if the choosen codec falls into the IANA + * assigned dynamic payload type range (96-127). + * Normally the MGW should obey the 3gpp payload type + * assignments, which are fixed, so we likely wont see + * anything unexpected here. In order to be sure that + * we will now check the codec string and if the result + * does not match to what is IANA / 3gpp assigned, we + * will create an entry in the ptmap table so we can + * lookup later what has been assigned. */ + codec = map_str_to_codec(codec_resp); + if (codec != pt) { + if (r->ptmap_len < ARRAY_SIZE(r->ptmap)) { + r->ptmap[r->ptmap_len].pt = pt; + r->ptmap[r->ptmap_len].codec = codec; + r->ptmap_len++; + } else + goto response_parse_failure_rtpmap; + } + + } else + goto response_parse_failure_rtpmap; + } + + return 0; + +response_parse_failure_ptime: + LOGP(DLMGCP, LOGL_ERROR, + "Failed to parse SDP parameter, invalid ptime (%s)\n", line); + return -EINVAL; +response_parse_failure_rtpmap: + LOGP(DLMGCP, LOGL_ERROR, + "Failed to parse SDP parameter, invalid rtpmap (%s)\n", line); + return -EINVAL; } /* Parse a line like "c=IN IP4 10.11.12.13" */ @@ -253,6 +489,7 @@ int rc; char *data; char *data_ptr; + int i; /* Since this functions performs a destructive parsing, we create a * local copy of the body data */ @@ -277,8 +514,13 @@ return -EINVAL; switch (line[0]) { + case 'a': + rc = mgcp_parse_audio_ptime_rtpmap(r, line); + if (rc) + goto exit; + break; case 'm': - rc = mgcp_parse_audio_port(r, line); + rc = mgcp_parse_audio_port_pt(r, line); if (rc) goto exit; break; @@ -293,6 +535,10 @@ } } + /* See also note in mgcp_parse_audio_port_pt() */ + for (i = 0; i < r->codecs_len; i++) + r->codecs[i] = map_pt_to_codec(r->ptmap, r->ptmap_len, r->codecs[i]); + rc = 0; exit: talloc_free(data); @@ -813,6 +1059,119 @@ #define MGCP_AUEP_MANDATORY (MGCP_MSG_PRESENCE_ENDPOINT) #define MGCP_RSIP_MANDATORY 0 /* none */ +/* Helper function for mgcp_msg_gen(): Add LCO information to MGCP message */ +static int add_lco(struct msgb *msg, struct mgcp_msg *mgcp_msg) +{ + unsigned int i; + int rc = 0; + const char *codec; + unsigned int pt; + + rc += msgb_printf(msg, "L:"); + + if (mgcp_msg->ptime) + rc += msgb_printf(msg, " p:%u,", mgcp_msg->ptime); + + if (mgcp_msg->codecs_len) { + rc += msgb_printf(msg, " a:"); + for (i = 0; i < mgcp_msg->codecs_len; i++) { + pt = mgcp_msg->codecs[i]; + codec = get_value_string_or_null(codec_table, pt); + + /* Note: Use codec descriptors from enum mgcp_codecs + * in mgcp_client only! */ + OSMO_ASSERT(codec); + rc += msgb_printf(msg, "%s", extract_codec_name(codec)); + if (i < mgcp_msg->codecs_len - 1) + rc += msgb_printf(msg, ";"); + } + rc += msgb_printf(msg, ","); + } + + rc += msgb_printf(msg, " nt:IN\r\n"); + + return rc; +} + +/* Helper function for mgcp_msg_gen(): Add SDP information to MGCP message */ +static int add_sdp(struct msgb *msg, struct mgcp_msg *mgcp_msg, struct mgcp_client *mgcp) +{ + unsigned int i; + int rc = 0; + char local_ip[INET_ADDRSTRLEN]; + const char *codec; + unsigned int pt; + + /* Add separator to mark the beginning of the SDP block */ + rc += msgb_printf(msg, "\r\n"); + + /* Add SDP protocol version */ + rc += msgb_printf(msg, "v=0\r\n"); + + /* Determine local IP-Address */ + if (osmo_sock_local_ip(local_ip, mgcp->actual.remote_addr) < 0) { + LOGP(DLMGCP, LOGL_ERROR, + "Could not determine local IP-Address!\n"); + msgb_free(msg); + return -2; + } + + /* Add owner/creator (SDP) */ + rc += msgb_printf(msg, "o=- %x 23 IN IP4 %s\r\n", + mgcp_msg->call_id, local_ip); + + /* Add session name (none) */ + rc += msgb_printf(msg, "s=-\r\n"); + + /* Add RTP address and port */ + if (mgcp_msg->audio_port == 0) { + LOGP(DLMGCP, LOGL_ERROR, + "Invalid port number, can not generate MGCP message\n"); + msgb_free(msg); + return -2; + } + if (strlen(mgcp_msg->audio_ip) <= 0) { + LOGP(DLMGCP, LOGL_ERROR, + "Empty ip address, can not generate MGCP message\n"); + msgb_free(msg); + return -2; + } + rc += msgb_printf(msg, "c=IN IP4 %s\r\n", mgcp_msg->audio_ip); + + /* Add time description, active time (SDP) */ + rc += msgb_printf(msg, "t=0 0\r\n"); + + rc += msgb_printf(msg, "m=audio %u RTP/AVP", mgcp_msg->audio_port); + for (i = 0; i < mgcp_msg->codecs_len; i++) { + pt = map_codec_to_pt(mgcp_msg->ptmap, mgcp_msg->ptmap_len, mgcp_msg->codecs[i]); + rc += msgb_printf(msg, " %u", pt); + + } + rc += msgb_printf(msg, "\r\n"); + + for (i = 0; i < mgcp_msg->codecs_len; i++) { + pt = map_codec_to_pt(mgcp_msg->ptmap, mgcp_msg->ptmap_len, mgcp_msg->codecs[i]); + + /* Note: Only dynamic payload type from the range 96-127 + * require to be explained further via rtpmap. All others + * are implcitly definedby the number in m=audio */ + if (pt >= 96 && pt <= 127) { + codec = get_value_string_or_null(codec_table, mgcp_msg->codecs[i]); + + /* Note: Use codec descriptors from enum mgcp_codecs + * in mgcp_client only! */ + OSMO_ASSERT(codec); + + rc += msgb_printf(msg, "a=rtpmap:%u %s\r\n", pt, codec); + } + } + + if (mgcp_msg->ptime) + rc += msgb_printf(msg, "a=ptime:%u\r\n", mgcp_msg->ptime); + + return rc; +} + /*! Generate an MGCP message * \param[in] mgcp MGCP client descriptor. * \param[in] mgcp_msg Message description @@ -823,7 +1182,8 @@ uint32_t mandatory_mask; struct msgb *msg = msgb_alloc_headroom(4096, 128, "MGCP tx"); int rc = 0; - char local_ip[INET_ADDRSTRLEN]; + int rc_sdp; + bool use_sdp = false; msg->l2h = msg->data; msg->cb[MSGB_CB_MGCP_TRANS_ID] = trans_id; @@ -902,9 +1262,17 @@ rc += msgb_printf(msg, "I: %s\r\n", mgcp_msg->conn_id); } - /* Add local connection options */ - if (mgcp_msg->verb == MGCP_VERB_CRCX) - rc += msgb_printf(msg, "L: p:20, a:AMR, nt:IN\r\n"); + /* Using SDP makes sense when a valid IP/Port combination is specifiec, + * if we do not know this information yet, we fall back to LCO */ + if (mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_IP + && mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_PORT) + use_sdp = true; + + /* Add local connection options (LCO) */ + if (!use_sdp + && (mgcp_msg->verb == MGCP_VERB_CRCX + || mgcp_msg->verb == MGCP_VERB_MDCX)) + rc += add_lco(msg, mgcp_msg); /* Add mode */ if (mgcp_msg->presence & MGCP_MSG_PRESENCE_CONN_MODE) @@ -912,52 +1280,15 @@ msgb_printf(msg, "M: %s\r\n", mgcp_client_cmode_name(mgcp_msg->conn_mode)); - /* Add SDP body */ - if (mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_IP - && mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_PORT) { - - /* Add separator to mark the beginning of the SDP block */ - rc += msgb_printf(msg, "\r\n"); - - /* Add SDP protocol version */ - rc += msgb_printf(msg, "v=0\r\n"); - - /* Determine local IP-Address */ - if (osmo_sock_local_ip(local_ip, mgcp->actual.remote_addr) < 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Could not determine local IP-Address!\n"); - msgb_free(msg); + /* Add session description protocol (SDP) */ + if (use_sdp + && (mgcp_msg->verb == MGCP_VERB_CRCX + || mgcp_msg->verb == MGCP_VERB_MDCX)) { + rc_sdp = add_sdp(msg, mgcp_msg, mgcp); + if (rc_sdp == -2) return NULL; - } - - /* Add owner/creator (SDP) */ - rc += msgb_printf(msg, "o=- %x 23 IN IP4 %s\r\n", - mgcp_msg->call_id, local_ip); - - /* Add session name (none) */ - rc += msgb_printf(msg, "s=-\r\n"); - - /* Add RTP address and port */ - if (mgcp_msg->audio_port == 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Invalid port number, can not generate MGCP message\n"); - msgb_free(msg); - return NULL; - } - if (strlen(mgcp_msg->audio_ip) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty ip address, can not generate MGCP message\n"); - msgb_free(msg); - return NULL; - } - rc += msgb_printf(msg, "c=IN IP4 %s\r\n", mgcp_msg->audio_ip); - - /* Add time description, active time (SDP) */ - rc += msgb_printf(msg, "t=0 0\r\n"); - - rc += - msgb_printf(msg, "m=audio %u RTP/AVP 255\r\n", - mgcp_msg->audio_port); + else + rc += rc_sdp; } if (rc != 0) { diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 10a5b6d..eb97949 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -113,8 +113,11 @@ .presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | MGCP_MSG_PRESENCE_CONN_MODE), .call_id = mgcp_ctx->conn_peer_local.call_id, .conn_mode = MGCP_CONN_RECV_ONLY, + .ptime = mgcp_ctx->conn_peer_local.ptime, + .codecs_len = mgcp_ctx->conn_peer_local.codecs_len }; osmo_strlcpy(mgcp_msg.endpoint, mgcp_ctx->conn_peer_local.endpoint, MGCP_ENDPOINT_MAXLEN); + memcpy(mgcp_msg.codecs, mgcp_ctx->conn_peer_local.codecs, sizeof(mgcp_msg.codecs)); return mgcp_msg_gen(mgcp_ctx->mgcp, &mgcp_msg); } @@ -124,15 +127,19 @@ struct mgcp_msg mgcp_msg; mgcp_msg = (struct mgcp_msg) { - .verb = MGCP_VERB_CRCX,.presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | - MGCP_MSG_PRESENCE_CONN_MODE | MGCP_MSG_PRESENCE_AUDIO_IP | - MGCP_MSG_PRESENCE_AUDIO_PORT), + .verb = MGCP_VERB_CRCX, + .presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_MODE | MGCP_MSG_PRESENCE_AUDIO_IP | + MGCP_MSG_PRESENCE_AUDIO_PORT), .call_id = mgcp_ctx->conn_peer_local.call_id, .conn_mode = MGCP_CONN_RECV_SEND, .audio_ip = mgcp_ctx->conn_peer_local.addr, .audio_port = mgcp_ctx->conn_peer_local.port, + .ptime = mgcp_ctx->conn_peer_local.ptime, + .codecs_len = mgcp_ctx->conn_peer_local.codecs_len }; osmo_strlcpy(mgcp_msg.endpoint, mgcp_ctx->conn_peer_local.endpoint, MGCP_ENDPOINT_MAXLEN); + memcpy(mgcp_msg.codecs, mgcp_ctx->conn_peer_local.codecs, sizeof(mgcp_msg.codecs)); return mgcp_msg_gen(mgcp_ctx->mgcp, &mgcp_msg); } @@ -150,8 +157,11 @@ .conn_mode = MGCP_CONN_RECV_SEND, .audio_ip = mgcp_ctx->conn_peer_local.addr, .audio_port = mgcp_ctx->conn_peer_local.port, + .ptime = mgcp_ctx->conn_peer_local.ptime, + .codecs_len = mgcp_ctx->conn_peer_local.codecs_len }; osmo_strlcpy(mgcp_msg.endpoint, mgcp_ctx->conn_peer_remote.endpoint, MGCP_ENDPOINT_MAXLEN); + memcpy(mgcp_msg.codecs, mgcp_ctx->conn_peer_local.codecs, sizeof(mgcp_msg.codecs)); /* Note: We take the endpoint and the call_id from the remote * connection info, because we can be confident that the @@ -573,7 +583,7 @@ OSMO_ASSERT(mgcp); OSMO_ASSERT(conn_peer); - /* Check if IP/Port informstaion in conn info makes sense */ + /* Check if IP/Port information in conn info makes sense */ if (conn_peer->port && inet_aton(conn_peer->addr, &ip_test) == 0) return NULL; diff --git a/tests/mgcp_client/mgcp_client_test.c b/tests/mgcp_client/mgcp_client_test.c index 007b90c..9978f79 100644 --- a/tests/mgcp_client/mgcp_client_test.c +++ b/tests/mgcp_client/mgcp_client_test.c @@ -95,21 +95,26 @@ void test_response_cb(struct mgcp_response *response, void *priv) { + unsigned int i; OSMO_ASSERT(priv == mgcp); mgcp_response_parse_params(response); - printf("response cb received:\n" - " head.response_code = %d\n" - " head.trans_id = %u\n" - " head.comment = %s\n" - " audio_port = %u\n" - " audio_ip = %s\n", - response->head.response_code, - response->head.trans_id, - response->head.comment, - response->audio_port, - response->audio_ip - ); + printf("response cb received:\n"); + printf(" head.response_code = %d\n", response->head.response_code); + printf(" head.trans_id = %u\n", response->head.trans_id); + printf(" head.comment = %s\n", response->head.comment); + printf(" audio_port = %u\n", response->audio_port); + printf(" audio_ip = %s\n", response->audio_ip); + printf(" ptime = %u\n", response->ptime); + printf(" codecs_len = %u\n", response->codecs_len); + for(i=0;icodecs_len;i++) + printf(" codecs[%u] = %u\n", i, response->codecs[i]); + printf(" ptmap_len = %u\n", response->ptmap_len); + for(i=0;iptmap_len;i++) { + printf(" ptmap[%u].codec = %u\n", i, response->ptmap[i].codec); + printf(" ptmap[%u].pt = %u\n", i, response->ptmap[i].pt); + } + } mgcp_trans_id_t dummy_mgcp_send(struct msgb *msg) @@ -149,8 +154,9 @@ "s=-\r\n" "c=IN IP4 10.9.1.120\r\n" "t=0 0\r\n" - "m=audio 16002 RTP/AVP 98\r\n" - "a=rtpmap:98 AMR/8000\r\n" + "m=audio 16002 RTP/AVP 110 96\r\n" + "a=rtpmap:110 AMR/8000\r\n" + "a=rtpmap:96 GSM-EFR/8000\r\n" "a=ptime:20\r\n"); } @@ -166,7 +172,15 @@ .audio_port = 1234, .call_id = 47, .conn_id = "11", - .conn_mode = MGCP_CONN_RECV_SEND + .conn_mode = MGCP_CONN_RECV_SEND, + .ptime = 20, + .codecs[0] = CODEC_GSM_8000_1, + .codecs[1] = CODEC_AMR_8000_1, + .codecs[2] = CODEC_GSMEFR_8000_1, + .codecs_len = 1, + .ptmap[0].codec = CODEC_GSMEFR_8000_1, + .ptmap[0].pt = 96, + .ptmap_len = 1 }; if (mgcp) @@ -183,6 +197,26 @@ msg = mgcp_msg_gen(mgcp, &mgcp_msg); printf("%s\n", (char *)msg->data); + printf("Generated CRCX message (two codecs):\n"); + mgcp_msg.verb = MGCP_VERB_CRCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE); + mgcp_msg.codecs_len = 2; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + + printf("Generated CRCX message (three codecs, one with custom pt):\n"); + mgcp_msg.verb = MGCP_VERB_CRCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE); + mgcp_msg.codecs_len = 3; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + printf("Generated MDCX message:\n"); mgcp_msg.verb = MGCP_VERB_MDCX; mgcp_msg.presence = @@ -192,6 +226,28 @@ msg = mgcp_msg_gen(mgcp, &mgcp_msg); printf("%s\n", (char *)msg->data); + printf("Generated MDCX message (two codecs):\n"); + mgcp_msg.verb = MGCP_VERB_MDCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE | + MGCP_MSG_PRESENCE_AUDIO_IP | MGCP_MSG_PRESENCE_AUDIO_PORT); + mgcp_msg.codecs_len = 2; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + + printf("Generated MDCX message (three codecs, one with custom pt):\n"); + mgcp_msg.verb = MGCP_VERB_MDCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE | + MGCP_MSG_PRESENCE_AUDIO_IP | MGCP_MSG_PRESENCE_AUDIO_PORT); + mgcp_msg.codecs_len = 3; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + printf("Generated DLCX message:\n"); mgcp_msg.verb = MGCP_VERB_DLCX; mgcp_msg.presence = @@ -242,6 +298,9 @@ .conn_mode = MGCP_CONN_RECV_SEND, .presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE), + .ptime = 20, + .codecs[0] = CODEC_AMR_8000_1, + .codecs_len = 1 }; printf("\n%s():\n", __func__); @@ -376,6 +435,99 @@ OSMO_ASSERT(!failures); } +static void test_map_pt_to_codec(void) +{ + /* Full form */ + OSMO_ASSERT(map_str_to_codec("PCMU/8000/1") == CODEC_PCMU_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM/8000/1") == CODEC_GSM_8000_1); + OSMO_ASSERT(map_str_to_codec("PCMA/8000/1") == CODEC_PCMA_8000_1); + OSMO_ASSERT(map_str_to_codec("G729/8000/1") == CODEC_G729_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM-EFR/8000/1") == CODEC_GSMEFR_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM-HR-08/8000/1") == CODEC_GSMHR_8000_1); + OSMO_ASSERT(map_str_to_codec("AMR/8000/1") == CODEC_AMR_8000_1); + OSMO_ASSERT(map_str_to_codec("AMR-WB/16000/1") == CODEC_AMRWB_16000_1); + + /* Short form */ + OSMO_ASSERT(map_str_to_codec("GSM-EFR") == CODEC_GSMEFR_8000_1); + OSMO_ASSERT(map_str_to_codec("G729") == CODEC_G729_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM-HR-08") == CODEC_GSMHR_8000_1); + + /* We do not care about what is after the first delimiter */ + OSMO_ASSERT(map_str_to_codec("AMR-WB/123///456") == CODEC_AMRWB_16000_1); + OSMO_ASSERT(map_str_to_codec("PCMA/asdf") == CODEC_PCMA_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM/qwertz") == CODEC_GSM_8000_1); + + /* A trailing delimiter should not hurt */ + OSMO_ASSERT(map_str_to_codec("AMR/") == CODEC_AMR_8000_1); + OSMO_ASSERT(map_str_to_codec("G729/") == CODEC_G729_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM/") == CODEC_GSM_8000_1); + + /* This is expected to fail */ + OSMO_ASSERT(map_str_to_codec("INVALID/1234/7") == -1); + OSMO_ASSERT(map_str_to_codec(NULL) == -1); + OSMO_ASSERT(map_str_to_codec("") == -1); + OSMO_ASSERT(map_str_to_codec("/////") == -1); + + /* The buffers are 64 bytes long, check what happens with overlong + * strings as input (This schould still work.) */ + OSMO_ASSERT(map_str_to_codec("AMR-WB/16000/1############################################################################################################") == CODEC_AMRWB_16000_1); + + /* This should not work, as there is no delimiter after the codec + * name */ + OSMO_ASSERT(map_str_to_codec("AMR-WB####################################################################################################################") == -1); +} + +static void test_map_codec_to_pt_and_map_pt_to_codec(void) +{ + struct ptmap ptmap[10]; + unsigned int ptmap_len; + unsigned int i; + + ptmap[0].codec = CODEC_GSMEFR_8000_1; + ptmap[0].pt = 96; + ptmap[1].codec = CODEC_GSMHR_8000_1; + ptmap[1].pt = 97; + ptmap[2].codec = CODEC_AMR_8000_1; + ptmap[2].pt = 98; + ptmap[3].codec = CODEC_AMRWB_16000_1; + ptmap[3].pt = 99; + ptmap_len = 4; + + /* Mappings that are covered by the table */ + for (i = 0; i < ptmap_len; i++) + printf(" %u => %u\n", ptmap[i].codec, map_codec_to_pt(ptmap, ptmap_len, ptmap[i].codec)); + for (i = 0; i < ptmap_len; i++) + printf(" %u <= %u\n", ptmap[i].pt, map_pt_to_codec(ptmap, ptmap_len, ptmap[i].pt)); + printf("\n"); + + /* Map some codecs/payload types from the static range, result must + * always be a 1:1 mapping */ + printf(" %u => %u\n", CODEC_PCMU_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_PCMU_8000_1)); + printf(" %u => %u\n", CODEC_GSM_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_GSM_8000_1)); + printf(" %u => %u\n", CODEC_PCMA_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_PCMA_8000_1)); + printf(" %u => %u\n", CODEC_G729_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_G729_8000_1)); + printf(" %u <= %u\n", CODEC_PCMU_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_PCMU_8000_1)); + printf(" %u <= %u\n", CODEC_GSM_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_GSM_8000_1)); + printf(" %u <= %u\n", CODEC_PCMA_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_PCMA_8000_1)); + printf(" %u <= %u\n", CODEC_G729_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_G729_8000_1)); + printf("\n"); + + /* Try to do mappings from statically defined range to danymic range and vice versa. This + * is illegal and should result into a 1:1 mapping */ + ptmap[3].codec = CODEC_AMRWB_16000_1; + ptmap[3].pt = 2; + ptmap[4].codec = CODEC_PCMU_8000_1; + ptmap[4].pt = 100; + ptmap_len = 5; + + /* Apply all mappings again, the illegal ones we defined should result into 1:1 mappings */ + for (i = 0; i < ptmap_len; i++) + printf(" %u => %u\n", ptmap[i].codec, map_codec_to_pt(ptmap, ptmap_len, ptmap[i].codec)); + for (i = 0; i < ptmap_len; i++) + printf(" %u <= %u\n", ptmap[i].pt, map_pt_to_codec(ptmap, ptmap_len, ptmap[i].pt)); + printf("\n"); +} + static const struct log_info_cat log_categories[] = { }; @@ -403,6 +555,8 @@ test_mgcp_msg(); test_mgcp_client_cancel(); test_sdp_section_start(); + test_map_codec_to_pt_and_map_pt_to_codec(); + test_map_pt_to_codec(); printf("Done\n"); fprintf(stderr, "Done\n"); diff --git a/tests/mgcp_client/mgcp_client_test.err b/tests/mgcp_client/mgcp_client_test.err index 7309242..1d5a1a0 100644 --- a/tests/mgcp_client/mgcp_client_test.err +++ b/tests/mgcp_client/mgcp_client_test.err @@ -62,4 +62,8 @@ body: "some mgcp header data\r\nand header params\n\r\rm=audio 23\r\n" DLMGCP MGCP response: cannot find start of SDP parameters got rc=-22 +DLMGCP ptmap contains illegal mapping: codec=113 maps to pt=2 +DLMGCP ptmap contains illegal mapping: codec=0 maps to pt=100 +DLMGCP ptmap contains illegal mapping: codec=113 maps to pt=2 +DLMGCP ptmap contains illegal mapping: codec=0 maps to pt=100 Done diff --git a/tests/mgcp_client/mgcp_client_test.ok b/tests/mgcp_client/mgcp_client_test.ok index fc6db30..454ee3d 100644 --- a/tests/mgcp_client/mgcp_client_test.ok +++ b/tests/mgcp_client/mgcp_client_test.ok @@ -18,8 +18,9 @@ s=- c=IN IP4 10.9.1.120 t=0 0 -m=audio 16002 RTP/AVP 98 -a=rtpmap:98 AMR/8000 +m=audio 16002 RTP/AVP 110 96 +a=rtpmap:110 AMR/8000 +a=rtpmap:96 GSM-EFR/8000 a=ptime:20 ----- @@ -29,16 +30,39 @@ head.comment = OK audio_port = 16002 audio_ip = 10.9.1.120 + ptime = 20 + codecs_len = 2 + codecs[0] = 112 + codecs[1] = 110 + ptmap_len = 2 + ptmap[0].codec = 112 + ptmap[0].pt = 110 + ptmap[1].codec = 110 + ptmap[1].pt = 96 Generated CRCX message: CRCX 1 23 at mgw MGCP 1.0 C: 2f I: 11 -L: p:20, a:AMR, nt:IN +L: p:20, a:GSM, nt:IN +M: sendrecv + +Generated CRCX message (two codecs): +CRCX 2 23 at mgw MGCP 1.0 +C: 2f +I: 11 +L: p:20, a:GSM;AMR, nt:IN +M: sendrecv + +Generated CRCX message (three codecs, one with custom pt): +CRCX 3 23 at mgw MGCP 1.0 +C: 2f +I: 11 +L: p:20, a:GSM;AMR;GSM-EFR, nt:IN M: sendrecv Generated MDCX message: -MDCX 2 23 at mgw MGCP 1.0 +MDCX 4 23 at mgw MGCP 1.0 C: 2f I: 11 M: sendrecv @@ -48,18 +72,50 @@ s=- c=IN IP4 192.168.100.23 t=0 0 -m=audio 1234 RTP/AVP 255 +m=audio 1234 RTP/AVP 3 +a=ptime:20 + +Generated MDCX message (two codecs): +MDCX 5 23 at mgw MGCP 1.0 +C: 2f +I: 11 +M: sendrecv + +v=0 +o=- 2f 23 IN IP4 127.0.0.1 +s=- +c=IN IP4 192.168.100.23 +t=0 0 +m=audio 1234 RTP/AVP 3 112 +a=rtpmap:112 AMR/8000/1 +a=ptime:20 + +Generated MDCX message (three codecs, one with custom pt): +MDCX 6 23 at mgw MGCP 1.0 +C: 2f +I: 11 +M: sendrecv + +v=0 +o=- 2f 23 IN IP4 127.0.0.1 +s=- +c=IN IP4 192.168.100.23 +t=0 0 +m=audio 1234 RTP/AVP 3 112 96 +a=rtpmap:112 AMR/8000/1 +a=rtpmap:96 GSM-EFR/8000/1 +a=ptime:20 Generated DLCX message: -DLCX 3 23 at mgw MGCP 1.0 +DLCX 7 23 at mgw MGCP 1.0 C: 2f I: 11 Generated AUEP message: -AUEP 4 23 at mgw MGCP 1.0 +AUEP 8 23 at mgw MGCP 1.0 Generated RSIP message: -RSIP 5 23 at mgw MGCP 1.0 +RSIP 9 23 at mgw MGCP 1.0 Overfolow test: @@ -102,4 +158,33 @@ test_sdp_section_start() test [8]: test_sdp_section_start() test [9]: + 110 => 96 + 111 => 97 + 112 => 98 + 113 => 99 + 96 <= 110 + 97 <= 111 + 98 <= 112 + 99 <= 113 + + 0 => 0 + 3 => 3 + 8 => 8 + 18 => 18 + 0 <= 0 + 3 <= 3 + 8 <= 8 + 18 <= 18 + + 110 => 96 + 111 => 97 + 112 => 98 + 113 => 113 + 0 => 0 + 96 <= 110 + 97 <= 111 + 98 <= 112 + 2 <= 2 + 100 <= 100 + Done -- To view, visit https://gerrit.osmocom.org/9649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I78e72d41b73acfcb40599a0ff4823f17c3642059 Gerrit-Change-Number: 9649 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 15 19:06:35 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 15 Jun 2018 19:06:35 +0000 Subject: Change in osmo-bsc[master]: fix dyn TS init: properly identify BTS on OML OPSTART ACK Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9650 Change subject: fix dyn TS init: properly identify BTS on OML OPSTART ACK ...................................................................... fix dyn TS init: properly identify BTS on OML OPSTART ACK Commit "dyn ts, bts_ipaccess_nanobts.c: init PDCH on Chan OPSTART ACK" bf7099262adf0f27e71a08387747c5cb0d459360 Icf6e25ff068e8a2600562d52726ead65e864ec02 introduced signal S_NM_OPSTART_ACK and passed the FOM header to identify the BTS by. But the FOM header's BTS number is zero on each Abis/IP link, and the BTS and TRX are actually identified by msgb->dst == e1inp_sign_link, member trx. So the initial implementation associated *all* Channel OPSTART ACKs with BTS 0. Pass the entire msgb as S_NM_OPSTART_ACK signal argument, implement a abis_nm_get_ts() to retrieve the proper timeslot and use that during timeslot init. Related: OS#3351 OS#3205 Change-Id: I45ce5c24cb62d00f350df1af1be6c11104d74193 --- M include/osmocom/bsc/abis_nm.h M include/osmocom/bsc/signal.h M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c 4 files changed, 37 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/50/9650/1 diff --git a/include/osmocom/bsc/abis_nm.h b/include/osmocom/bsc/abis_nm.h index 9586ded..ef9e4f5 100644 --- a/include/osmocom/bsc/abis_nm.h +++ b/include/osmocom/bsc/abis_nm.h @@ -171,4 +171,6 @@ /* Helper functions for updating attributes */ int abis_nm_update_max_power_red(struct gsm_bts_trx *trx); +struct gsm_bts_trx_ts *abis_nm_get_ts(const struct msgb *oml_msg); + #endif /* _NM_H */ diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h index 1dde267..1b351aa 100644 --- a/include/osmocom/bsc/signal.h +++ b/include/osmocom/bsc/signal.h @@ -71,7 +71,7 @@ S_NM_STATECHG_OPER, /* Operational State changed*/ S_NM_STATECHG_ADM, /* Administrative State changed */ S_NM_OM2K_CONF_RES, /* OM2K Configuration Result */ - S_NM_OPSTART_ACK, /* Received OPSTART ACK, arg is struct abis_om_fom_hdr* */ + S_NM_OPSTART_ACK, /* Received OPSTART ACK, arg is struct msgb *oml_msg */ }; /* SS_LCHAN signals */ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 9dc1f62..cb1cc56 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -671,11 +671,36 @@ return 0; } +/* From a received OML message, determine the matching struct gsm_bts_trx_ts instance. + * Note that the BTS-TRX-TS numbers received in the FOM header do not correspond to the local bts->nr and + * bts->trx->nr. Rather, the trx is identified by the e1inp_sign_link* found in msg->dst, and the TS is + * then obtained by the FOM header's TS number. */ +struct gsm_bts_trx_ts *abis_nm_get_ts(const struct msgb *oml_msg) +{ + struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); + struct e1inp_sign_link *sign_link = oml_msg->dst; + struct gsm_bts_trx *trx = sign_link->trx; + uint8_t ts_nr = foh->obj_inst.ts_nr; + if (!trx) { + LOGP(DNM, LOGL_ERROR, "%s Channel OPSTART ACK for sign_link without trx\n", + abis_nm_dump_foh(foh)); + return NULL; + } + if (ts_nr >= ARRAY_SIZE(trx->ts)) { + LOGP(DNM, LOGL_ERROR, "bts%u-trx%u %s Channel OPSTART ACK for non-existent TS\n", + trx->bts->nr, trx->nr, abis_nm_dump_foh(foh)); + return NULL; + } + return &trx->ts[ts_nr]; +} + static int abis_nm_rx_opstart_ack(struct msgb *mb) { struct abis_om_fom_hdr *foh = msgb_l3(mb); - DEBUGPFOH(DNM, foh, "Opstart ACK\n"); - osmo_signal_dispatch(SS_NM, S_NM_OPSTART_ACK, foh); + struct e1inp_sign_link *sign_link = mb->dst; + struct gsm_bts_trx *trx = sign_link->trx; + DEBUGPFOH(DNM, foh, "bts=%u trx=%u Opstart ACK\n", trx->bts->nr, trx->nr); + osmo_signal_dispatch(SS_NM, S_NM_OPSTART_ACK, mb); return 0; } diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 843f264..0e23955 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -298,40 +298,23 @@ return 0; } -static struct gsm_bts_trx_ts *gsm_bts_trx_ts(struct gsm_network *net, - int bts_nr, int trx_nr, int ts_nr) -{ - struct gsm_bts *bts; - struct gsm_bts_trx *trx; - bts = gsm_bts_num(net, bts_nr); - if (!bts) - return NULL; - trx = gsm_bts_trx_by_nr(bts, trx_nr); - if (!trx) - return NULL; - if (ts_nr < 0 || ts_nr > ARRAY_SIZE(trx->ts)) - return NULL; - return &trx->ts[ts_nr]; -} - -static void nm_rx_opstart_ack_chan(struct abis_om_fom_hdr *foh) +static void nm_rx_opstart_ack_chan(struct msgb *oml_msg) { struct gsm_bts_trx_ts *ts; - ts = gsm_bts_trx_ts(bsc_gsmnet, foh->obj_inst.bts_nr, foh->obj_inst.trx_nr, foh->obj_inst.ts_nr); - if (!ts) { - LOGP(DNM, LOGL_ERROR, "%s Channel OPSTART ACK for non-existent TS\n", - abis_nm_dump_foh(foh)); + ts = abis_nm_get_ts(oml_msg); + if (!ts) + /* error already logged in abis_nm_get_ts() */ return; - } gsm_ts_check_init(ts); } -static void nm_rx_opstart_ack(struct abis_om_fom_hdr *foh) +static void nm_rx_opstart_ack(struct msgb *oml_msg) { + struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); switch (foh->obj_class) { case NM_OC_CHANNEL: - nm_rx_opstart_ack_chan(foh); + nm_rx_opstart_ack_chan(oml_msg); break; default: break; -- To view, visit https://gerrit.osmocom.org/9650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I45ce5c24cb62d00f350df1af1be6c11104d74193 Gerrit-Change-Number: 9650 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 09:11:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 09:11:18 +0000 Subject: Change in libosmocore[master]: gsup: Add value_string for Session State IE Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9651 Change subject: gsup: Add value_string for Session State IE ...................................................................... gsup: Add value_string for Session State IE In Change-Id I1cee271fed0284a134ffed103c0d4bebbcfde2a8 we added support for a new session state IE, but we didn't add any value_string array for string conversion of it. Let's fix this. Change-Id: I3d9f087786dc37c42498fa9a2be07483ec93ba7b --- M include/osmocom/gsm/gsup.h M src/gsm/gsup.c M src/gsm/libosmogsm.map 3 files changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/51/9651/1 diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h index e246639..0ef5a75 100644 --- a/include/osmocom/gsm/gsup.h +++ b/include/osmocom/gsm/gsup.h @@ -154,6 +154,11 @@ OSMO_GSUP_SESSION_STATE_END = 0x03, }; +extern const struct value_string osmo_gsup_session_state_names[]; +static inline const char * +osmo_gsup_session_state_name(enum osmo_gsup_session_state val) +{ return get_value_string(osmo_gsup_session_state_names, val); } + /*! parsed/decoded PDP context information */ struct osmo_gsup_pdp_info { unsigned int context_id; diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index e3eef02..9c2f817 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -70,6 +70,14 @@ { 0, NULL } }; +const struct value_string osmo_gsup_session_state_names[] = { + { OSMO_GSUP_SESSION_STATE_NONE, "NONE" }, + { OSMO_GSUP_SESSION_STATE_BEGIN, "BEGIN" }, + { OSMO_GSUP_SESSION_STATE_CONTINUE, "CONTINUE" }, + { OSMO_GSUP_SESSION_STATE_END, "END" }, + { 0, NULL } +}; + /*! return the error message type corresponding to \a type_in * \returns matching error message type; -1 on error */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index f98f7c9..4d9811b 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -469,6 +469,7 @@ osmo_gsup_encode; osmo_gsup_decode; osmo_gsup_message_type_names; +osmo_gsup_session_state_names; osmo_gsup_get_err_msg_type; osmo_oap_encode; -- To view, visit https://gerrit.osmocom.org/9651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3d9f087786dc37c42498fa9a2be07483ec93ba7b Gerrit-Change-Number: 9651 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 09:40:20 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Sat, 16 Jun 2018 09:40:20 +0000 Subject: Change in libosmo-sccp[master]: tweak the default point codes used by sccp_demo_user Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9652 Change subject: tweak the default point codes used by sccp_demo_user ...................................................................... tweak the default point codes used by sccp_demo_user commit 4dc9088cabedc40cb9072814237ad5926b12bd35 changed default point code values from: Client mode: 23 (local) Server mode: 1 (local) to Client mode: -1 (local) Server mode: 23 (local) Change the defaults again: Set local default point code to 23, and remote default point code to 1. Use the same default values for both client and server modes. This default behaviour is more consistent and will be assumed by the upcoming SCCP test suite. Change-Id: I7432e6fc2617e0fd77a098fcd7d14abc40db7229 Related: OS#2666 --- M examples/sccp_demo_user.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/52/9652/1 diff --git a/examples/sccp_demo_user.c b/examples/sccp_demo_user.c index f0b1a3e..b01574e 100644 --- a/examples/sccp_demo_user.c +++ b/examples/sccp_demo_user.c @@ -82,10 +82,10 @@ .version = 0, }; -#define DEFAULT_LOCAL_PC -1 +#define DEFAULT_LOCAL_PC 23 #define DEFAULT_LOCAL_ADDRESS "127.0.0.2" #define DEFAULT_LOCAL_PORT M3UA_PORT -#define DEFAULT_REMOTE_PC 23 +#define DEFAULT_REMOTE_PC 1 #define DEFAULT_REMOTE_ADDRESS "127.0.0.1" #define DEFAULT_REMOTE_PORT M3UA_PORT -- To view, visit https://gerrit.osmocom.org/9652 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7432e6fc2617e0fd77a098fcd7d14abc40db7229 Gerrit-Change-Number: 9652 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 09:43:30 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Sat, 16 Jun 2018 09:43:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: introduce a TTCN3 test suite for SCCP Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9653 Change subject: introduce a TTCN3 test suite for SCCP ...................................................................... introduce a TTCN3 test suite for SCCP This test suite acts as an SCCP server on top of M3UA. SCCP tests are run against the sccp_demo_user program which can be found in libosmo-sccp/examples. This program must be started in client mode: sccp_demo_user -c The SCCP test suite should then work out of the box with the provided SCCP_Tests.cfg file and this additional change to sccp_demo_user default point codes: https://gerrit.osmocom.org/#/c/libosmo-sccp/+/9652/ There is currently only one test, for the libosmo-sccp crash reported as issue OS#2666. The implementation of this test is currently using an ugly workaround due to shortcomings of the M3UA Emulation layer (see source code comments). Whether a better solution is feasible is still to be determined. The test requires a patch to the SCCP Protocol Emulation which has been submitted upstream: https://git.eclipse.org/r/#/c/124552/ I did attempt to cut down the number of dependencies on other TTCN3 modules. It seems the current dependency set is the minimal possible one, mostly due to use of the BSSAP_Adapter module. Change-Id: I03f5e8b282a7396b45417495c88d8fb81b26cda8 Related: OS#2666 --- M Makefile M library/BSSAP_Adapter.ttcn A sccp/SCCP_Tests.cfg A sccp/SCCP_Tests.default A sccp/SCCP_Tests.ttcn A sccp/gen_links.sh A sccp/regen_makefile.sh 7 files changed, 330 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/53/9653/1 diff --git a/Makefile b/Makefile index fcd6601..c23521f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -SUBDIRS=bsc bsc-nat bts ggsn_tests hlr lapdm mgw msc pcu selftest sgsn sip sysinfo +SUBDIRS=bsc bsc-nat bts ggsn_tests hlr lapdm mgw msc pcu sccp selftest sgsn sip sysinfo PARALLEL_MAKE ?= -j8 diff --git a/library/BSSAP_Adapter.ttcn b/library/BSSAP_Adapter.ttcn index e50487d..0517890 100644 --- a/library/BSSAP_Adapter.ttcn +++ b/library/BSSAP_Adapter.ttcn @@ -73,6 +73,25 @@ globalTitle := omit } +/* construct a SCCP_PAR_Address with only GT */ +template (value) SCCP_PAR_Address ts_SccpAddr_GT(hexstring global_address) := { + addressIndicator := { + pointCodeIndic := '0'B, + ssnIndicator := '0'B, + globalTitleIndic := '0001'B, // NAI only + routingIndicator := cg_route_on_GT // route on GT + }, + signPointCode := omit, + subsystemNumber := omit, + globalTitle := { + gti0001 := { + natureOfAddress := '0000011'B, + oddeven := '0'B, + globalTitleAddress := global_address + } + } +} + private function init_pars(inout BSSAP_Adapter ba, in BSSAP_Configuration cfg) { ba.sccp_pars := { sio := { diff --git a/sccp/SCCP_Tests.cfg b/sccp/SCCP_Tests.cfg new file mode 100644 index 0000000..4b7e742 --- /dev/null +++ b/sccp/SCCP_Tests.cfg @@ -0,0 +1,19 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" +# testsuite specific configuration, not expected to change +"./SCCP_Tests.default" + +# Local configuration below + +[LOGGING] + +[TESTPORT_PARAMETERS] + +[MODULE_PARAMETERS] + +[MAIN_CONTROLLER] + +[EXECUTE] +SCCP_Tests.control +#SCCP_Tests.TC_routing_global_title_crash diff --git a/sccp/SCCP_Tests.default b/sccp/SCCP_Tests.default new file mode 100644 index 0000000..4ed9862 --- /dev/null +++ b/sccp/SCCP_Tests.default @@ -0,0 +1,42 @@ +[LOGGING] +FileMask := LOG_ALL | TTCN_MATCHING | DEBUG_ENCDEC; + +BSSAP.FileMask := LOG_NOTHING; +"SCCP_Test_M3UA".FileMask := ERROR | WARNING; +"SCCP_Test_SCCP".FileMask := ERROR | WARNING; +"IPA-CTRL-IPA".FileMask := ERROR | WARNING; +mtc.FileMask := ERROR | WARNING; + +[TESTPORT_PARAMETERS] +*.SCCP_DEMO_USER_VTY.CTRL_MODE := "client" +*.SCCP_DEMO_USER_VTY.CTRL_HOSTNAME := "127.0.0.1" +*.SCCP_DEMO_USER_VTY.CTRL_PORTNUM := "2325" +*.SCCP_DEMO_USER_VTY.CTRL_LOGIN_SKIPPED := "yes" +*.SCCP_DEMO_USER_VTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes" +*.SCCP_DEMO_USER_VTY.CTRL_READMODE := "buffered" +*.SCCP_DEMO_USER_VTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" +*.SCCP_DEMO_USER_VTY.PROMPT1 := "sccp-demo-user> " + +[MODULE_PARAMETERS] +M3UA_Emulation.tsp_logVerbose := true; +M3UA_Emulation.tsp_SCTP_Server_Mode := true; +M3UA_Emulation.tsp_M3UA_Server_Mode := true; +SCCP_Tests.mp_bssap_cfg := { + { + transport := BSSAP_TRANSPORT_AoIP, + sccp_service_type := "mtp3_itu", + sctp_addr := { 2905, "127.0.0.1", 2905, "127.0.0.2" }, + own_pc := 185, + own_ssn := 254, + peer_pc := 23, + peer_ssn := 254, + sio := '83'O, + rctx := 0 + } +}; + +Osmocom_VTY_Functions.mp_prompt_prefix := "sccp-demo-user"; + +[MAIN_CONTROLLER] + +[EXECUTE] diff --git a/sccp/SCCP_Tests.ttcn b/sccp/SCCP_Tests.ttcn new file mode 100644 index 0000000..5b6748f --- /dev/null +++ b/sccp/SCCP_Tests.ttcn @@ -0,0 +1,157 @@ +/* (C) 2018 by sysmocom s.f.m.c. GmbH + * + * Author: Stefan Sperling + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +module SCCP_Tests { + +import from M3UA_Emulation all; + +import from SCCPasp_Types all; +import from SCCP_Types all; +import from SCCP_Emulation all; + +import from SCTPasp_PortType all; + +import from Osmocom_CTRL_Adapter all; + +import from TELNETasp_PortType all; +import from Osmocom_VTY_Functions all; + +import from BSSAP_Adapter all; + + +type component system_CT { + port SCTPasp_PT sctp; +}; + +type component MTC_CT extends CTRL_Adapter_CT { + /* VTY to sccp_demo_user (not used yet) */ + port TELNETasp_PT SCCP_DEMO_USER_VTY; + + /* SCCP protocol runs on top of M3UA Emulation. + * "System Under Test" is libosmo-sccp's sccp_demo_user example program. */ + var SCCP_CT vc_SCCP_A; + var M3UA_CT vc_M3UA; + port SCCPasp_PT A_PORT; +} + +type record of BSSAP_Configuration BSSAP_Configurations; +modulepar { + BSSAP_Configurations mp_bssap_cfg; +} + +function f_init(BSSAP_Configuration cfg) runs on MTC_CT { + var MSC_SCCP_MTP3_parameters v_param := { + sio := { + ni := substr(oct2bit(cfg.sio),0,2), + prio := substr(oct2bit(cfg.sio),2,2), + si := substr(oct2bit(cfg.sio),4,4) + }, + opc := cfg.own_pc, + dpc := cfg.peer_pc, + sls := 0, + sccp_serviceType := cfg.sccp_service_type, + ssn := cfg.own_ssn + }; + + map(self:SCCP_DEMO_USER_VTY, system:SCCP_DEMO_USER_VTY); + f_vty_set_prompts(SCCP_DEMO_USER_VTY); + f_vty_transceive(SCCP_DEMO_USER_VTY, "enable"); + + /* Create and connect test components for an SCCP connection with M3UA beneath. */ + vc_SCCP_A := SCCP_CT.create; + vc_M3UA := M3UA_CT.create; + connect(self:A_PORT, vc_SCCP_A:SCCP_SP_PORT); + connect(vc_M3UA:MTP3_SP_PORT, vc_SCCP_A:MTP3_SCCP_PORT); + map(vc_M3UA:SCTP_PORT, system:sctp); + + vc_M3UA.start(f_M3UA_Emulation(cfg.sctp_addr)); + vc_SCCP_A.start(SCCPStart(v_param)); +} + +function f_cleanup() runs on MTC_CT { + all component.stop; + unmap(vc_M3UA:SCTP_PORT, system:sctp); + disconnect(vc_M3UA:MTP3_SP_PORT, vc_SCCP_A:MTP3_SCCP_PORT); + disconnect(self:A_PORT, vc_SCCP_A:SCCP_SP_PORT); + self.stop +} + +/* + * libosmo-sccp does not support Global Title address as a routing indicator. + * But sccp_demo_user should not crash if such a message is received (see OS#2666). + */ +testcase TC_routing_global_title_crash() runs on MTC_CT system system_CT { + timer TL_timer:= 10.0; /* twice the sccp_demo_user connection attempt interval */ + var SCCP_PAR_Address v_CallingAddress; + var SCCP_PAR_Address v_CalledAddress; + var octetstring vl_userdata :='12345678901234567890'O; + var ASP_SCCP_N_UNITDATA_ind vl_N_UNITDATA_ind; + + f_init(mp_bssap_cfg[0]); + + /* Called address with routing indicator set to Global Title Address. This used to trigger the crash. */ + v_CalledAddress := valueof(ts_SccpAddr_GT('012345'H)); + + v_CallingAddress := valueof(ts_SccpAddr_PC_SSN(mp_bssap_cfg[0].own_pc, mp_bssap_cfg[0].own_ssn, + mp_bssap_cfg[0].sio, mp_bssap_cfg[0].sccp_service_type)); + A_PORT.send(t_ASP_N_UNITDATA_req(v_CalledAddress, v_CallingAddress, '00000001'B /* sequence control */, + '00000001'B /* return option */, vl_userdata, omit)); + + /* + * Start a timeout within which our DATA packet will be sent out. + * The M3UA Emulation layer has buffered the packet and is going + * to send it when the sccp_demo_user SCCP client connects. + * + * libosmo-sccp will echo the packet back at us in an SCCP UDTS packet. + * However, the current M3UA Emulation implementation will discard this + * response because it arrives on a separate SCTP association and the + * emulation only supports one association at a time. + * + * As a workaround, we wait for a fixed amount of time and then issue + * another command to the VTY of sccp_demo_user. If sccp_demo_user + * has crashed, this will result in a test failure. + */ + TL_timer.start; + alt { + [] A_PORT.receive(tr_ASP_N_UNITDATA_ind) -> value vl_N_UNITDATA_ind { + log("Received data from SCCP client."); + repeat; + } + + [] TL_timer.timeout { + log("Timeout...."); + } + } + TL_timer.stop; + + /* Check that the VTY is still active (implying that the process hasn't crashed). */ + f_vty_transceive_ret(SCCP_DEMO_USER_VTY, "?"); + setverdict(pass); + + f_cleanup(); +} + +control { + execute( TC_routing_global_title_crash() ); +} + + +} diff --git a/sccp/gen_links.sh b/sccp/gen_links.sh new file mode 100755 index 0000000..49a57a8 --- /dev/null +++ b/sccp/gen_links.sh @@ -0,0 +1,85 @@ +#!/bin/bash + +BASEDIR=../deps + +. ../gen_links.sh.inc + +DIR=$BASEDIR/titan.TestPorts.UNIX_DOMAIN_SOCKETasp/src +FILES="UD_PT.cc UD_PT.hh UD_PortType.ttcn UD_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src +FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h" +FILES+=" TCCEncoding_Functions.ttcn TCCEncoding.cc " # GSM 7-bit coding +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src +FILES="Socket_API_Definitions.ttcn" +gen_links $DIR $FILES + +# Required by MGCP and IPA +DIR=$BASEDIR/titan.TestPorts.IPL4asp/src +FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh" +gen_links $DIR $FILES + +# required by M3UA_Emulation +DIR=$BASEDIR/titan.ProtocolModules.M3UA/src +FILES="M3UA_Types.ttcn" +gen_links $DIR $FILES + +# required by M3UA_Emulation +DIR=$BASEDIR/titan.TestPorts.SCTPasp/src +FILES="SCTPasp_PT.cc SCTPasp_PT.hh SCTPasp_PortType.ttcn SCTPasp_Types.ttcn" +gen_links $DIR $FILES + +# required by M3UA Emulation +DIR=$BASEDIR/titan.TestPorts.MTP3asp/src +FILES="MTP3asp_PortType.ttcn MTP3asp_Types.ttcn" +gen_links $DIR $FILES + +# required by SCCP Emulation +DIR=$BASEDIR/titan.ProtocolEmulations.M3UA/src +FILES="M3UA_Emulation.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolEmulations.SCCP/src +FILES="SCCP_Emulation.ttcn SCCP_EncDec.cc SCCP_Mapping.ttcnpp SCCP_Types.ttcn SCCPasp_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.BSSMAP_v11.2.0/src +FILES="BSSAP_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.ROSE/src +FILES="Remote_Operations_Generic_ROS_PDUs.asn Remote_Operations_Information_Objects.asn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.MAP/src +FILES="MAP_ApplicationContexts.asn MAP_CH_DataTypes.asn MAP_CallHandlingOperations.asn MAP_CommonDataTypes.asn MAP_DialogueInformation.asn MAP_ER_DataTypes.asn MAP_EncDec.cc MAP_Errors.asn MAP_GR_DataTypes.asn MAP_Group_Call_Operations.asn MAP_LCS_DataTypes.asn MAP_LocationServiceOperations.asn MAP_MS_DataTypes.asn MAP_MobileServiceOperations.asn MAP_OM_DataTypes.asn MAP_OperationAndMaintenanceOperations.asn MAP_PDU_Defs.asn MAP_Protocol.asn MAP_SM_DataTypes.asn MAP_SS_Code.asn MAP_SS_DataTypes.asn MAP_ShortMessageServiceOperations.asn MAP_SupplementaryServiceOperations.asn MAP_TS_Code.asn MAP_Types.ttcn " +FILES+="MAP_BS_Code.asn MAP_ExtensionDataTypes.asn MobileDomainDefinitions.asn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.MobileL3_v13.4.0/src +FILES="MobileL3_CC_Types.ttcn MobileL3_CommonIE_Types.ttcn MobileL3_GMM_SM_Types.ttcn MobileL3_MM_Types.ttcn MobileL3_RRM_Types.ttcn MobileL3_SMS_Types.ttcn MobileL3_SS_Types.ttcn MobileL3_Types.ttcn " +FILES+="SS_DataTypes.asn SS_Errors.asn SS_Operations.asn SS_PDU_Defs.asn SS_Protocol.asn SS_Types.ttcn SS_EncDec.cc" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.ProtocolModules.SDP/src +FILES="SDP_EncDec.cc SDP_Types.ttcn SDP_parse_.tab.c SDP_parse_.tab.h SDP_parse_parser.h SDP_parser.l +SDP_parser.y lex.SDP_parse_.c" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.TELNETasp/src +FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn" +gen_links $DIR $FILES + + +DIR=../library +FILES="General_Types.ttcn GSM_Types.ttcn Osmocom_Types.ttcn MNCC_Types.ttcn MNCC_EncDec.cc MNCC_CodecPort.ttcn mncc.h MNCC_Emulation.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc " +FILES+="IPA_Types.ttcn IPA_Emulation.ttcnpp IPA_CodecPort.ttcn IPA_CodecPort_CtrlFunct.ttcn IPA_CodecPort_CtrlFunctDef.cc GSUP_Types.ttcn GSUP_Emulation.ttcn " +FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn L3_Templates.ttcn L3_Common.ttcn " +FILES+="BSSMAP_Emulation.ttcn BSSAP_CodecPort.ttcn BSSMAP_Templates.ttcn BSSAP_Adapter.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_Emulation.ttcn " +FILES+="MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunctDef.cc " +gen_links $DIR $FILES + +ignore_pp_results diff --git a/sccp/regen_makefile.sh b/sccp/regen_makefile.sh new file mode 100755 index 0000000..ddb7ace --- /dev/null +++ b/sccp/regen_makefile.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +FILES="*.ttcn *.ttcnpp SCCP_EncDec.cc SCTPasp_PT.cc TCCConversion.cc TCCInterface.cc UD_PT.cc MNCC_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc SDP_EncDec.cc IPA_CodecPort_CtrlFunctDef.cc MGCP_CodecPort_CtrlFunctDef.cc TELNETasp_PT.cc Native_FunctionDefs.cc MAP_EncDec.cc SS_EncDec.cc TCCEncoding.cc *.c *.asn" + +export CPPFLAGS_TTCN3="-DIPA_EMULATION_MGCP -DIPA_EMULATION_GSUP -DIPA_EMULATION_SCCP -DUSE_MTP3_DISTRIBUTOR" + +../regen-makefile.sh SCCP_Tests.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/9653 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I03f5e8b282a7396b45417495c88d8fb81b26cda8 Gerrit-Change-Number: 9653 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 11:22:52 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 16 Jun 2018 11:22:52 +0000 Subject: Change in libosmocore[master]: gsup: Add value_string for Session State IE In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9651 ) Change subject: gsup: Add value_string for Session State IE ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3d9f087786dc37c42498fa9a2be07483ec93ba7b Gerrit-Change-Number: 9651 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 16 Jun 2018 11:22:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 11:28:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 11:28:46 +0000 Subject: Change in libosmocore[master]: gsup: Add value_string for Session State IE In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9651 ) Change subject: gsup: Add value_string for Session State IE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3d9f087786dc37c42498fa9a2be07483ec93ba7b Gerrit-Change-Number: 9651 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 16 Jun 2018 11:28:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 11:28:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 11:28:49 +0000 Subject: Change in libosmocore[master]: gsup: Add value_string for Session State IE In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9651 ) Change subject: gsup: Add value_string for Session State IE ...................................................................... gsup: Add value_string for Session State IE In Change-Id I1cee271fed0284a134ffed103c0d4bebbcfde2a8 we added support for a new session state IE, but we didn't add any value_string array for string conversion of it. Let's fix this. Change-Id: I3d9f087786dc37c42498fa9a2be07483ec93ba7b --- M include/osmocom/gsm/gsup.h M src/gsm/gsup.c M src/gsm/libosmogsm.map 3 files changed, 14 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h index e246639..0ef5a75 100644 --- a/include/osmocom/gsm/gsup.h +++ b/include/osmocom/gsm/gsup.h @@ -154,6 +154,11 @@ OSMO_GSUP_SESSION_STATE_END = 0x03, }; +extern const struct value_string osmo_gsup_session_state_names[]; +static inline const char * +osmo_gsup_session_state_name(enum osmo_gsup_session_state val) +{ return get_value_string(osmo_gsup_session_state_names, val); } + /*! parsed/decoded PDP context information */ struct osmo_gsup_pdp_info { unsigned int context_id; diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index e3eef02..9c2f817 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -70,6 +70,14 @@ { 0, NULL } }; +const struct value_string osmo_gsup_session_state_names[] = { + { OSMO_GSUP_SESSION_STATE_NONE, "NONE" }, + { OSMO_GSUP_SESSION_STATE_BEGIN, "BEGIN" }, + { OSMO_GSUP_SESSION_STATE_CONTINUE, "CONTINUE" }, + { OSMO_GSUP_SESSION_STATE_END, "END" }, + { 0, NULL } +}; + /*! return the error message type corresponding to \a type_in * \returns matching error message type; -1 on error */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index f98f7c9..4d9811b 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -469,6 +469,7 @@ osmo_gsup_encode; osmo_gsup_decode; osmo_gsup_message_type_names; +osmo_gsup_session_state_names; osmo_gsup_get_err_msg_type; osmo_oap_encode; -- To view, visit https://gerrit.osmocom.org/9651 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3d9f087786dc37c42498fa9a2be07483ec93ba7b Gerrit-Change-Number: 9651 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 11:28:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 11:28:58 +0000 Subject: Change in osmo-bsc[master]: fix dyn TS init: properly identify BTS on OML OPSTART ACK In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9650 ) Change subject: fix dyn TS init: properly identify BTS on OML OPSTART ACK ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45ce5c24cb62d00f350df1af1be6c11104d74193 Gerrit-Change-Number: 9650 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 16 Jun 2018 11:28:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 11:29:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 11:29:00 +0000 Subject: Change in osmo-bsc[master]: fix dyn TS init: properly identify BTS on OML OPSTART ACK In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9650 ) Change subject: fix dyn TS init: properly identify BTS on OML OPSTART ACK ...................................................................... fix dyn TS init: properly identify BTS on OML OPSTART ACK Commit "dyn ts, bts_ipaccess_nanobts.c: init PDCH on Chan OPSTART ACK" bf7099262adf0f27e71a08387747c5cb0d459360 Icf6e25ff068e8a2600562d52726ead65e864ec02 introduced signal S_NM_OPSTART_ACK and passed the FOM header to identify the BTS by. But the FOM header's BTS number is zero on each Abis/IP link, and the BTS and TRX are actually identified by msgb->dst == e1inp_sign_link, member trx. So the initial implementation associated *all* Channel OPSTART ACKs with BTS 0. Pass the entire msgb as S_NM_OPSTART_ACK signal argument, implement a abis_nm_get_ts() to retrieve the proper timeslot and use that during timeslot init. Related: OS#3351 OS#3205 Change-Id: I45ce5c24cb62d00f350df1af1be6c11104d74193 --- M include/osmocom/bsc/abis_nm.h M include/osmocom/bsc/signal.h M src/osmo-bsc/abis_nm.c M src/osmo-bsc/bts_ipaccess_nanobts.c 4 files changed, 37 insertions(+), 27 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/abis_nm.h b/include/osmocom/bsc/abis_nm.h index 9586ded..ef9e4f5 100644 --- a/include/osmocom/bsc/abis_nm.h +++ b/include/osmocom/bsc/abis_nm.h @@ -171,4 +171,6 @@ /* Helper functions for updating attributes */ int abis_nm_update_max_power_red(struct gsm_bts_trx *trx); +struct gsm_bts_trx_ts *abis_nm_get_ts(const struct msgb *oml_msg); + #endif /* _NM_H */ diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h index 1dde267..1b351aa 100644 --- a/include/osmocom/bsc/signal.h +++ b/include/osmocom/bsc/signal.h @@ -71,7 +71,7 @@ S_NM_STATECHG_OPER, /* Operational State changed*/ S_NM_STATECHG_ADM, /* Administrative State changed */ S_NM_OM2K_CONF_RES, /* OM2K Configuration Result */ - S_NM_OPSTART_ACK, /* Received OPSTART ACK, arg is struct abis_om_fom_hdr* */ + S_NM_OPSTART_ACK, /* Received OPSTART ACK, arg is struct msgb *oml_msg */ }; /* SS_LCHAN signals */ diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index 9dc1f62..cb1cc56 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -671,11 +671,36 @@ return 0; } +/* From a received OML message, determine the matching struct gsm_bts_trx_ts instance. + * Note that the BTS-TRX-TS numbers received in the FOM header do not correspond to the local bts->nr and + * bts->trx->nr. Rather, the trx is identified by the e1inp_sign_link* found in msg->dst, and the TS is + * then obtained by the FOM header's TS number. */ +struct gsm_bts_trx_ts *abis_nm_get_ts(const struct msgb *oml_msg) +{ + struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); + struct e1inp_sign_link *sign_link = oml_msg->dst; + struct gsm_bts_trx *trx = sign_link->trx; + uint8_t ts_nr = foh->obj_inst.ts_nr; + if (!trx) { + LOGP(DNM, LOGL_ERROR, "%s Channel OPSTART ACK for sign_link without trx\n", + abis_nm_dump_foh(foh)); + return NULL; + } + if (ts_nr >= ARRAY_SIZE(trx->ts)) { + LOGP(DNM, LOGL_ERROR, "bts%u-trx%u %s Channel OPSTART ACK for non-existent TS\n", + trx->bts->nr, trx->nr, abis_nm_dump_foh(foh)); + return NULL; + } + return &trx->ts[ts_nr]; +} + static int abis_nm_rx_opstart_ack(struct msgb *mb) { struct abis_om_fom_hdr *foh = msgb_l3(mb); - DEBUGPFOH(DNM, foh, "Opstart ACK\n"); - osmo_signal_dispatch(SS_NM, S_NM_OPSTART_ACK, foh); + struct e1inp_sign_link *sign_link = mb->dst; + struct gsm_bts_trx *trx = sign_link->trx; + DEBUGPFOH(DNM, foh, "bts=%u trx=%u Opstart ACK\n", trx->bts->nr, trx->nr); + osmo_signal_dispatch(SS_NM, S_NM_OPSTART_ACK, mb); return 0; } diff --git a/src/osmo-bsc/bts_ipaccess_nanobts.c b/src/osmo-bsc/bts_ipaccess_nanobts.c index 843f264..0e23955 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts.c @@ -298,40 +298,23 @@ return 0; } -static struct gsm_bts_trx_ts *gsm_bts_trx_ts(struct gsm_network *net, - int bts_nr, int trx_nr, int ts_nr) -{ - struct gsm_bts *bts; - struct gsm_bts_trx *trx; - bts = gsm_bts_num(net, bts_nr); - if (!bts) - return NULL; - trx = gsm_bts_trx_by_nr(bts, trx_nr); - if (!trx) - return NULL; - if (ts_nr < 0 || ts_nr > ARRAY_SIZE(trx->ts)) - return NULL; - return &trx->ts[ts_nr]; -} - -static void nm_rx_opstart_ack_chan(struct abis_om_fom_hdr *foh) +static void nm_rx_opstart_ack_chan(struct msgb *oml_msg) { struct gsm_bts_trx_ts *ts; - ts = gsm_bts_trx_ts(bsc_gsmnet, foh->obj_inst.bts_nr, foh->obj_inst.trx_nr, foh->obj_inst.ts_nr); - if (!ts) { - LOGP(DNM, LOGL_ERROR, "%s Channel OPSTART ACK for non-existent TS\n", - abis_nm_dump_foh(foh)); + ts = abis_nm_get_ts(oml_msg); + if (!ts) + /* error already logged in abis_nm_get_ts() */ return; - } gsm_ts_check_init(ts); } -static void nm_rx_opstart_ack(struct abis_om_fom_hdr *foh) +static void nm_rx_opstart_ack(struct msgb *oml_msg) { + struct abis_om_fom_hdr *foh = msgb_l3(oml_msg); switch (foh->obj_class) { case NM_OC_CHANNEL: - nm_rx_opstart_ack_chan(foh); + nm_rx_opstart_ack_chan(oml_msg); break; default: break; -- To view, visit https://gerrit.osmocom.org/9650 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I45ce5c24cb62d00f350df1af1be6c11104d74193 Gerrit-Change-Number: 9650 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 13:46:38 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sat, 16 Jun 2018 13:46:38 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow terminating with ... In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9543 ) Change subject: verify_value_string_arrays_are_terminated.py: allow terminating with '{}' ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0822d2d997dccbfb31316953a7b6024c317d92cf Gerrit-Change-Number: 9543 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Sat, 16 Jun 2018 13:46:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 13:46:41 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sat, 16 Jun 2018 13:46:41 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow terminating with ... In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/9543 ) Change subject: verify_value_string_arrays_are_terminated.py: allow terminating with '{}' ...................................................................... verify_value_string_arrays_are_terminated.py: allow terminating with '{}' Writing '{ 0, NULL }' is actually identical to just '{}', and that's what I use these days in all sorts of other contexts. So allow this notation as well in the C code grepper. Change-Id: I0822d2d997dccbfb31316953a7b6024c317d92cf --- M scripts/verify_value_string_arrays_are_terminated.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Neels Hofmeyr: Verified diff --git a/scripts/verify_value_string_arrays_are_terminated.py b/scripts/verify_value_string_arrays_are_terminated.py index 020bb4d..ad936a5 100755 --- a/scripts/verify_value_string_arrays_are_terminated.py +++ b/scripts/verify_value_string_arrays_are_terminated.py @@ -18,7 +18,7 @@ re.MULTILINE | re.DOTALL) members = r'(\.(value|str)\s*=\s*)?' -terminator_re = re.compile('{\s*' + members + '(0|NULL)\s*,' +terminator_re = re.compile('{}|{\s*' + members + '(0|NULL)\s*,' '\s*' + members + '(0|NULL)\s*}') errors_found = 0 -- To view, visit https://gerrit.osmocom.org/9543 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0822d2d997dccbfb31316953a7b6024c317d92cf Gerrit-Change-Number: 9543 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 13:49:26 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sat, 16 Jun 2018 13:49:26 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow dir args and no args In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9544 ) Change subject: verify_value_string_arrays_are_terminated.py: allow dir args and no args ...................................................................... Patch Set 1: The reason was the humungous listing of paths in the jenkins job logs. So there is no pressing practical need to change it, but the invocation does look a bit scary:
+ find . -name *.[hc]
+ verify_value_string_arrays_are_terminated.py ./utils/osmo-sim-test.c ./utils/osmo-auc-gen.c ./utils/osmo-arfcn.c ./include/osmocom/codec/codec.h ./include/osmocom/codec/ecu.h ./include/osmocom/codec/gsm610_bits.h ./include/osmocom/vty/ports.h ./include/osmocom/vty/misc.h ./include/osmocom/vty/vty.h ./include/osmocom/vty/vector.h ./include/osmocom/vty/buffer.h ./include/osmocom/vty/telnet_interface.h ./include/osmocom/vty/stats.h ./include/osmocom/vty/command.h ./include/osmocom/vty/logging.h ./include/osmocom/ctrl/ports.h ./include/osmocom/ctrl/control_vty.h ./include/osmocom/ctrl/control_if.h ./include/osmocom/ctrl/control_cmd.h ./include/osmocom/coding/gsm0503_coding.h ./include/osmocom/coding/gsm0503_interleaving.h ./include/osmocom/coding/gsm0503_tables.h ./include/osmocom/coding/gsm0503_mapping.h ./include/osmocom/coding/gsm0503_parity.h ./include/osmocom/gprs/gprs_ns_frgre.h ./include/osmocom/gprs/gprs_bssgp.h ./include/osmocom/gprs/protocol/gsm_08_16.h ./include/osmocom/gprs/protocol/gsm_04_60.h ./include/osmocom/gprs/protocol/gsm_08_18.h ./include/osmocom/gprs/gprs_bssgp_bss.h ./include/osmocom/gprs/gprs_msgb.h ./include/osmocom/gprs/gprs_rlc.h ./include/osmocom/gprs/gprs_ns.h ./include/osmocom/gsm/kasumi.h ./include/osmocom/gsm/gsm0808.h ./include/osmocom/gsm/gan.h ./include/osmocom/gsm/gsm0480.h ./include/osmocom/gsm/gsm0341.h ./include/osmocom/gsm/ipa.h ./include/osmocom/gsm/oap.h ./include/osmocom/gsm/tlv.h ./include/osmocom/gsm/meas_rep.h ./include/osmocom/gsm/gsm_utils.h ./include/osmocom/gsm/bts_features.h ./include/osmocom/gsm/gsm0411_smc.h ./include/osmocom/gsm/apn.h ./include/osmocom/gsm/gsm23003.h ./include/osmocom/gsm/lapd_core.h ./include/osmocom/gsm/prim.h ./include/osmocom/gsm/l1sap.h ./include/osmocom/gsm/mncc.h ./include/osmocom/gsm/gsup.h ./include/osmocom/gsm/gea.h ./include/osmocom/gsm/comp128v23.h ./include/osmocom/gsm/a5.h ./include/osmocom/gsm/gsm48.h ./include/osmocom/gsm/rsl.h ./include/osmocom/gsm/protocol/gsm_09_02.h ./include/osmocom/gsm/protocol/gsm_03_40.h ./include/osmocom/gsm/protocol/gsm_12_21.h ./include/osmocom/gsm/protocol/gsm_04_08.h ./include/osmocom/gsm/protocol/smpp34_osmocom.h ./include/osmocom/gsm/protocol/gsm_03_41.h ./include/osmocom/gsm/protocol/gsm_04_14.h ./include/osmocom/gsm/protocol/gsm_44_318.h ./include/osmocom/gsm/protocol/gsm_08_58.h ./include/osmocom/gsm/protocol/gsm_08_08.h ./include/osmocom/gsm/protocol/ipaccess.h ./include/osmocom/gsm/protocol/gsm_04_12.h ./include/osmocom/gsm/protocol/gsm_04_11.h ./include/osmocom/gsm/protocol/gsm_04_80.h ./include/osmocom/gsm/protocol/gsm_04_08_gprs.h ./include/osmocom/gsm/protocol/gsm_23_003.h ./include/osmocom/gsm/gsm48_ie.h ./include/osmocom/gsm/rxlev_stat.h ./include/osmocom/gsm/bitvec_gsm.h ./include/osmocom/gsm/gsm0808_utils.h ./include/osmocom/gsm/gsm0502.h ./include/osmocom/gsm/abis_nm.h ./include/osmocom/gsm/gsm0411_utils.h ./include/osmocom/gsm/comp128.h ./include/osmocom/gsm/lapdm.h ./include/osmocom/gsm/sysinfo.h ./include/osmocom/gsm/gsm0411_smr.h ./include/osmocom/core/endian.h ./include/osmocom/core/backtrace.h ./include/osmocom/core/stat_item.h ./include/osmocom/core/signal.h ./include/osmocom/core/conv.h ./include/osmocom/core/timer_compat.h ./include/osmocom/core/application.h ./include/osmocom/core/select.h ./include/osmocom/core/timer.h ./include/osmocom/core/serial.h ./include/osmocom/core/statistics.h ./include/osmocom/core/sercomm.h ./include/osmocom/core/prim.h ./include/osmocom/core/panic.h ./include/osmocom/core/gsmtap.h ./include/osmocom/core/strrb.h ./include/osmocom/core/write_queue.h ./include/osmocom/core/linuxrbtree.h ./include/osmocom/core/loggingrb.h ./include/osmocom/core/msgb.h ./include/osmocom/core/bitcomp.h ./include/osmocom/core/crcgen.h ./include/osmocom/core/gsmtap_util.h ./include/osmocom/core/isdnhdlc.h ./include/osmocom/core/bits.h ./include/osmocom/core/msgfile.h ./include/osmocom/core/utils.h ./include/osmocom/core/macaddr.h ./include/osmocom/core/counter.h ./include/osmocom/core/linuxlist.h ./include/osmocom/core/crc16.h ./include/osmocom/core/byteswap.h ./include/osmocom/core/plugin.h ./include/osmocom/core/fsm.h ./include/osmocom/core/rate_ctr.h ./include/osmocom/core/talloc.h ./include/osmocom/core/prbs.h ./include/osmocom/core/defs.h ./include/osmocom/core/socket.h ./include/osmocom/core/bitvec.h ./include/osmocom/core/process.h ./include/osmocom/core/stats.h ./include/osmocom/core/logging.h ./include/osmocom/sim/sim.h ./include/osmocom/sim/class_tables.h ./include/osmocom/crypt/gprs_cipher.h ./include/osmocom/crypt/auth.h ./src/crc16.c ./src/bitcomp.c ./src/stats_statsd.c ./src/gb/gprs_bssgp.c ./src/gb/gprs_bssgp_util.c ./src/gb/gprs_ns_frgre.c ./src/gb/gprs_bssgp_vty.c ./src/gb/gprs_ns.c ./src/gb/common_vty.c ./src/gb/common_vty.h ./src/gb/gprs_ns_vty.c ./src/gb/gprs_bssgp_bss.c ./src/conv_acc.c ./src/rbtree.c ./src/codec/ecu_fr.c ./src/codec/gsm610.c ./src/codec/gsm620.c ./src/codec/gsm690.c ./src/codec/gsm660.c ./src/panic.c ./src/socket.c ./src/prim.c ./src/logging_syslog.c ./src/conv.c ./src/stat_item.c ./src/logging.c ./src/stats.c ./src/plugin.c ./src/loggingrb.c ./src/timer_clockgettime.c ./src/select.c ./src/signal.c ./src/utils.c ./src/bitvec.c ./src/fsm.c ./src/vty/talloc_ctx_vty.c ./src/vty/fsm_vty.c ./src/vty/telnet_interface.c ./src/vty/vector.c ./src/vty/vty.c ./src/vty/utils.c ./src/vty/stats_vty.c ./src/vty/logging_vty.c ./src/vty/command.c ./src/vty/buffer.c ./src/ctrl/control_vty.c ./src/ctrl/control_if.c ./src/ctrl/fsm_ctrl_commands.c ./src/ctrl/control_cmd.c ./src/coding/gsm0503_mapping.c ./src/coding/gsm0503_parity.c ./src/coding/gsm0503_interleaving.c ./src/coding/gsm0503_tables.c ./src/coding/gsm0503_coding.c ./src/sercomm.c ./src/conv_acc_sse_impl.h ./src/prbs.c ./src/pseudotalloc/pseudotalloc.c ./src/pseudotalloc/talloc.h ./src/application.c ./src/gsm/auth_core.c ./src/gsm/milenage/milenage.c ./src/gsm/milenage/crypto.h ./src/gsm/milenage/aes_wrap.h ./src/gsm/milenage/includes.h ./src/gsm/milenage/common.h ./src/gsm/milenage/aes-encblock.c ./src/gsm/milenage/aes_i.h ./src/gsm/milenage/aes.h ./src/gsm/milenage/aes-internal.c ./src/gsm/milenage/aes-internal-enc.c ./src/gsm/milenage/milenage.h ./src/gsm/rxlev_stat.c ./src/gsm/tlv_parser.c ./src/gsm/auth_comp128v23.c ./src/gsm/apn.c ./src/gsm/rsl.c ./src/gsm/gan.c ./src/gsm/gsm0411_utils.c ./src/gsm/gsm_utils.c ./src/gsm/gsm0808.c ./src/gsm/kasumi.c ./src/gsm/a5.c ./src/gsm/gprs_rlc.c ./src/gsm/bts_features.c ./src/gsm/auth_milenage.c ./src/gsm/gsup.c ./src/gsm/lapd_core.c ./src/gsm/oap.c ./src/gsm/gsm0411_smr.c ./src/gsm/gsm48_ie.c ./src/gsm/comp128v23.c ./src/gsm/ipa.c ./src/gsm/gsm0808_utils.c ./src/gsm/comp128.c ./src/gsm/gsm0414.c ./src/gsm/gsm23003.c ./src/gsm/gsm48.c ./src/gsm/gsm0341.c ./src/gsm/gsm0480.c ./src/gsm/abis_nm.c ./src/gsm/mncc.c ./src/gsm/lapdm.c ./src/gsm/gsm_04_08_gprs.c ./src/gsm/gea.c ./src/gsm/gprs_gea.c ./src/gsm/auth_comp128v1.c ./src/gsm/gprs_cipher_core.c ./src/gsm/gsm0411_smc.c ./src/gsm/sysinfo.c ./src/gsm/gsm0502.c ./src/serial.c ./src/msgfile.c ./src/sim/card_fs_uicc.c ./src/sim/reader.c ./src/sim/card_fs_sim.c ./src/sim/card_fs_usim.c ./src/sim/sim_int.h ./src/sim/card_fs_isim.c ./src/sim/card_fs_tetra.c ./src/sim/core.c ./src/sim/gsm_int.h ./src/sim/reader_pcsc.c ./src/sim/class_tables.c ./src/counter.c ./src/backtrace.c ./src/conv_acc_sse_avx.c ./src/timer_gettimeofday.c ./src/gsmtap_util.c ./src/bits.c ./src/macaddr.c ./src/conv_acc_sse.c ./src/msgb.c ./src/rate_ctr.c ./src/timer.c ./src/conv_acc_generic.c ./src/strrb.c ./src/write_queue.c ./src/logging_gsmtap.c ./src/isdnhdlc.c ./tests/kasumi/kasumi_test.c ./tests/gb/bssgp_fc_test.c ./tests/gb/gprs_bssgp_test.c ./tests/gb/gprs_ns_test.c ./tests/gea/gea_test.c ./tests/comp128/comp128_test.c ./tests/codec/codec_ecu_fr_test.c ./tests/codec/codec_test.c ./tests/ussd/ussd_test.c ./tests/abis/abis_test.c ./tests/gsm0408/gsm0408_test.c ./tests/a5/a5_test.c ./tests/endian/endian_test.c ./tests/tlv/tlv_test.c ./tests/gsm0808/gsm0808_test.c ./tests/utils/utils_test.c ./tests/vty/vty_test.c ./tests/msgb/msgb_test.c ./tests/ctrl/ctrl_test.c ./tests/coding/coding_test.c ./tests/stats/stats_test.c ./tests/gsm23003/gsm23003_test.c ./tests/gprs/gprs_test.c ./tests/bitvec/bitvec_test.c ./tests/msgfile/msgfile_test.c ./tests/write_queue/wqueue_test.c ./tests/oap/oap_test.c ./tests/sms/sms_test.c ./tests/strrb/strrb_test.c ./tests/sim/sim_test.c ./tests/sercomm/sercomm_test.c ./tests/socket/socket_test.c ./tests/auth/milenage_test.c ./tests/fr/fr_test.c ./tests/bits/bitfield_test.c ./tests/bits/bitrev_test.c ./tests/bits/bitcomp_test.c ./tests/logging/logging_test.c ./tests/loggingrb/loggingrb_test.c ./tests/lapd/lapd_test.c ./tests/timer/timer_test.c ./tests/timer/clk_override_test.c ./tests/gsup/gsup_test.c ./tests/smscb/gsm0341_test.c ./tests/smscb/smscb_test.c ./tests/prbs/prbs_test.c ./tests/conv/conv.h ./tests/conv/conv.c ./tests/conv/conv_test.c ./tests/conv/conv_gsm0503_test.c ./tests/fsm/fsm_test.c ./tests/libsercomstub.c
-- To view, visit https://gerrit.osmocom.org/9544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36456383906b6295c798b82aa131dda21f8efc02 Gerrit-Change-Number: 9544 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Sat, 16 Jun 2018 13:49:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Jun 16 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 16 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#156?= In-Reply-To: <215665521.190.1529075406584.JavaMail.jenkins@jenkins.osmocom.org> References: <215665521.190.1529075406584.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1207583297.199.1529161806475.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.67 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Jun 16 16:35:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 16:35:24 +0000 Subject: Change in libosmocore[master]: gsm 04.80: Add value_string for component type and op code Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9654 Change subject: gsm 04.80: Add value_string for component type and op code ...................................................................... gsm 04.80: Add value_string for component type and op code Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a --- M src/gsm/gsm0480.c M src/gsm/libosmogsm.map 2 files changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/54/9654/1 diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index 300c0ed..165b309 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -3,6 +3,7 @@ /* * (C) 2010 by Holger Hans Peter Freyther * (C) 2009 by Mike Haben + * (C) 2018 by Harald Welte * * All Rights Reserved * @@ -35,6 +36,37 @@ #include #include +const struct value_string gsm0480_comp_type_names[] = { + { GSM0480_CTYPE_INVOKE, "Invoke" }, + { GSM0480_CTYPE_RETURN_RESULT, "ReturnResult" }, + { GSM0480_CTYPE_RETURN_ERROR, "ReturnError" }, + { GSM0480_CTYPE_REJECT, "Reject" }, + { 0, NULL } +}; + +const struct value_string gsm0480_op_code_names[] = { + { GSM0480_OP_CODE_REGISTER_SS, "RegisterSS" }, + { GSM0480_OP_CODE_ERASE_SS, "EraseSS" }, + { GSM0480_OP_CODE_ACTIVATE_SS, "ActivateSS" }, + { GSM0480_OP_CODE_DEACTIVATE_SS, "DeactivateSS" }, + { GSM0480_OP_CODE_INTERROGATE_SS, "IngerrogateSS" }, + { GSM0480_OP_CODE_NOTIFY_SS, "NotifySS" }, + { GSM0480_OP_CODE_REGISTER_PASSWORD, "RegisterPassword" }, + { GSM0480_OP_CODE_GET_PASSWORD, "GetPassword" }, + { GSM0480_OP_CODE_PROCESS_USS_DATA, "ProcessUSSD" }, + { GSM0480_OP_CODE_FORWARD_CHECK_SS_IND, "ForwardChecckSSind" }, + { GSM0480_OP_CODE_PROCESS_USS_REQ, "ProcessUssReq" }, + { GSM0480_OP_CODE_USS_REQUEST, "UssRequest" }, + { GSM0480_OP_CODE_USS_NOTIFY, "UssNotify" }, + { GSM0480_OP_CODE_FORWARD_CUG_INFO, "ForwardCugInfo" }, + { GSM0480_OP_CODE_SPLIT_MPTY, "SplitMPTY" }, + { GSM0480_OP_CODE_RETRIEVE_MPTY, "RetrieveMPTY" }, + { GSM0480_OP_CODE_HOLD_MPTY, "HoldMPTY" }, + { GSM0480_OP_CODE_BUILD_MPTY, "BuildMPTY" }, + { GSM0480_OP_CODE_FORWARD_CHARGE_ADVICE, "ForwardChargeAdvice" }, + { 0, NULL } +}; + static inline unsigned char *msgb_wrap_with_TL(struct msgb *msgb, uint8_t tag) { uint8_t *data = msgb_push(msgb, 2); diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 4d9811b..3dccb22 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -95,6 +95,8 @@ gsm0480_decode_ss_request; gsm0480_wrap_facility; gsm0480_wrap_invoke; +gsm0480_comp_type_names; +gsm0480_op_code_names; gsm0502_calc_paging_group; -- To view, visit https://gerrit.osmocom.org/9654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a Gerrit-Change-Number: 9654 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 16:40:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 16:40:07 +0000 Subject: Change in libosmocore[master]: gsm 04.80: Add value_string for component type and op code In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9654 to look at the new patch set (#2). Change subject: gsm 04.80: Add value_string for component type and op code ...................................................................... gsm 04.80: Add value_string for component type and op code Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map 3 files changed, 44 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/54/9654/2 -- To view, visit https://gerrit.osmocom.org/9654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a Gerrit-Change-Number: 9654 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 18:21:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 16 Jun 2018 18:21:54 +0000 Subject: Change in osmo-hlr[master]: gsup_server: Add "priv" pointer and make it point to 'struct hlr' Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9655 Change subject: gsup_server: Add "priv" pointer and make it point to 'struct hlr' ...................................................................... gsup_server: Add "priv" pointer and make it point to 'struct hlr' Change-Id: Iada68996b7f4cbdcca92b254ddaf6b88b962e6f1 --- M src/gsup_server.c M src/gsup_server.h M src/hlr.c 3 files changed, 8 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/55/9655/1 diff --git a/src/gsup_server.c b/src/gsup_server.c index 4b8a0fa..e75bbd7 100644 --- a/src/gsup_server.c +++ b/src/gsup_server.c @@ -292,7 +292,7 @@ struct osmo_gsup_server * osmo_gsup_server_create(void *ctx, const char *ip_addr, uint16_t tcp_port, osmo_gsup_read_cb_t read_cb, - struct llist_head *lu_op_lst) + struct llist_head *lu_op_lst, void *priv) { struct osmo_gsup_server *gsups; int rc; @@ -312,6 +312,7 @@ goto failed; gsups->read_cb = read_cb; + gsups->priv = priv; rc = ipa_server_link_open(gsups->link); if (rc < 0) diff --git a/src/gsup_server.h b/src/gsup_server.h index e49d283..9c4d483 100644 --- a/src/gsup_server.h +++ b/src/gsup_server.h @@ -16,6 +16,9 @@ typedef int (*osmo_gsup_read_cb_t)(struct osmo_gsup_conn *conn, struct msgb *msg); struct osmo_gsup_server { + /* private data of the application/user */ + void *priv; + /* list of osmo_gsup_conn */ struct llist_head clients; @@ -53,7 +56,8 @@ const char *ip_addr, uint16_t tcp_port, osmo_gsup_read_cb_t read_cb, - struct llist_head *lu_op_lst); + struct llist_head *lu_op_lst, + void *priv); void osmo_gsup_server_destroy(struct osmo_gsup_server *gsups); diff --git a/src/hlr.c b/src/hlr.c index 940165f..643dfff 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -600,7 +600,7 @@ } g_hlr->gs = osmo_gsup_server_create(hlr_ctx, g_hlr->gsup_bind_addr, OSMO_GSUP_PORT, - read_cb, &g_lu_ops); + read_cb, &g_lu_ops, g_hlr); if (!g_hlr->gs) { LOGP(DMAIN, LOGL_FATAL, "Error starting GSUP server\n"); exit(1); -- To view, visit https://gerrit.osmocom.org/9655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iada68996b7f4cbdcca92b254ddaf6b88b962e6f1 Gerrit-Change-Number: 9655 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 19:17:13 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 16 Jun 2018 19:17:13 +0000 Subject: Change in libosmocore[master]: gsm 04.80: Add value_string for component type and op code In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9654 ) Change subject: gsm 04.80: Add value_string for component type and op code ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a Gerrit-Change-Number: 9654 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 16 Jun 2018 19:17:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 20:37:30 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 16 Jun 2018 20:37:30 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: introduce the generic GSUP message router Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9656 Change subject: libvlr/vlr.c: introduce the generic GSUP message router ...................................................................... libvlr/vlr.c: introduce the generic GSUP message router Some internal sub-systems, such as SS/USSD or SMS implementation, may also need to use GSUP connection with HLR. Previously, it was only available within the libvlr code, and nowhere else. Let's introduce the generic GSUP message router, which will receive messages unhandled by VLR itself, and route them to a handler depending on the message type. Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 --- M src/libvlr/vlr.c 1 file changed, 15 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/56/9656/1 diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 29098b1..fc5bc07 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -966,6 +966,18 @@ return rc; } +static int vlr_route_gsup_msg(struct vlr_instance *vlr, + struct osmo_gsup_message *gsup_msg) +{ + switch (gsup_msg->message_type) { + /* Nowhere to route for now */ + default: + LOGP(DVLR, LOGL_ERROR, "No handler found for %s, dropping message...\n", + osmo_gsup_message_type_name(gsup_msg->message_type)); + return -GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL; + } +} + /* Incoming handler for GSUP from HLR. * Keep this function non-static for direct invocation by unit tests. */ int vlr_gsupc_read_cb(struct gsup_client *gsupc, struct msgb *msg) @@ -1037,9 +1049,9 @@ break; default: LOGVSUBP(LOGL_ERROR, vsub, - "Rx GSUP msg_type=%d not valid at VLR/SGSN side\n", - gsup.message_type); - rc = -GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL; + "Rx GSUP msg_type=%d not handled at VLR, " + "forwarding to the router at MSC\n", gsup.message_type); + rc = vlr_route_gsup_msg(vlr, &gsup); break; } -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 20:37:31 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 16 Jun 2018 20:37:31 +0000 Subject: Change in osmo-msc[master]: msc_vlr_tests: don't abuse USSD-request to conclude connections Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9657 Change subject: msc_vlr_tests: don't abuse USSD-request to conclude connections ...................................................................... msc_vlr_tests: don't abuse USSD-request to conclude connections Previously the '*#100#' USSD-request was abused in order to conclude the current subscriber connection. This makes the unit tests depend on each other, for example, if one break something in the GSM 09.11 implementation, a half of tests would fail. Moreover, the further changes in the GSM 09.11 implementation will make the results less predictable (i.e. session ID, etc.). So let's introduce a separate unit test with simple request- response logic, while more complex tests will be in TTCN. Change-Id: I40b4caac3113263f5a06c861dff5e10d43c319b5 --- M tests/msc_vlr/Makefile.am M tests/msc_vlr/msc_vlr_test_authen_reuse.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_gsm_authen.c M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_no_authen.c M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.c M tests/msc_vlr/msc_vlr_test_reject_concurrency.err A tests/msc_vlr/msc_vlr_test_ss.c A tests/msc_vlr/msc_vlr_test_ss.err A tests/msc_vlr/msc_vlr_test_ss.ok M tests/msc_vlr/msc_vlr_test_umts_authen.c M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/msc_vlr/msc_vlr_tests.h M tests/testsuite.at 19 files changed, 482 insertions(+), 659 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/57/9657/1 diff --git a/tests/msc_vlr/Makefile.am b/tests/msc_vlr/Makefile.am index bafe743..8b29f79 100644 --- a/tests/msc_vlr/Makefile.am +++ b/tests/msc_vlr/Makefile.am @@ -80,6 +80,8 @@ msc_vlr_test_call.err \ msc_vlr_test_rest.ok \ msc_vlr_test_rest.err \ + msc_vlr_test_ss.ok \ + msc_vlr_test_ss.err \ $(NULL) noinst_PROGRAMS = \ @@ -94,6 +96,7 @@ msc_vlr_test_reject_concurrency \ msc_vlr_test_call \ msc_vlr_test_rest \ + msc_vlr_test_ss \ $(NULL) msc_vlr_test_no_authen_SOURCES = \ @@ -151,6 +154,11 @@ msc_vlr_tests.c \ $(NULL) +msc_vlr_test_ss_SOURCES = \ + msc_vlr_test_ss.c \ + msc_vlr_tests.c \ + $(NULL) + .PHONY: update_exp update_exp: $(builddir)/msc_vlr_test_no_authen >$(srcdir)/msc_vlr_test_no_authen.ok 2>$(srcdir)/msc_vlr_test_no_authen.err @@ -164,3 +172,4 @@ $(builddir)/msc_vlr_test_reject_concurrency >$(srcdir)/msc_vlr_test_reject_concurrency.ok 2>$(srcdir)/msc_vlr_test_reject_concurrency.err $(builddir)/msc_vlr_test_call >$(srcdir)/msc_vlr_test_call.ok 2>$(srcdir)/msc_vlr_test_call.err $(builddir)/msc_vlr_test_rest >$(srcdir)/msc_vlr_test_rest.ok 2>$(srcdir)/msc_vlr_test_rest.err + $(builddir)/msc_vlr_test_ss >$(srcdir)/msc_vlr_test_ss.ok 2>$(srcdir)/msc_vlr_test_ss.err diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.c b/tests/msc_vlr/msc_vlr_test_authen_reuse.c index 389837a..3b80e83 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.c +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.c @@ -177,12 +177,9 @@ VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); } - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 42342\r"); + /* Release connection */ expect_release_clear(via_ran); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - ASSERT_RELEASE_CLEAR(via_ran); + conn_conclude_cm_service_req(g_conn, via_ran); bss_rnc_sends_release_clear_complete(via_ran); btw("all requests serviced, conn has been released"); @@ -252,12 +249,9 @@ VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); } - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 42342\r"); + /* Release connection */ expect_release_clear(via_ran); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - ASSERT_RELEASE_CLEAR(via_ran); + conn_conclude_cm_service_req(g_conn, via_ran); bss_rnc_sends_release_clear_complete(via_ran); btw("all requests serviced, conn has been released"); diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.err b/tests/msc_vlr/msc_vlr_test_authen_reuse.err index 2fae418..e25396d 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.err +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.err @@ -253,31 +253,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000001) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -382,31 +361,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000002) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -739,31 +697,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -881,31 +818,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000004) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -1213,31 +1129,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000005) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -1328,31 +1223,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000006) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -1443,31 +1317,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000007) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -1800,31 +1653,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000008) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -1928,31 +1760,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000009) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -2056,31 +1867,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 2000000a) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -2402,31 +2192,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 2000000b) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -2773,31 +2542,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 2000000c) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.c b/tests/msc_vlr/msc_vlr_test_gsm_authen.c index a863d90..6555fbd 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.c @@ -114,12 +114,9 @@ ms_sends_msg("0554" "20bde240" /* 2nd vector's sres, s.a. */); VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); @@ -335,12 +332,9 @@ ms_sends_msg("0554" "20bde240" /* 2nd vector's sres, s.a. */); VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); @@ -833,12 +827,9 @@ ms_sends_msg("0554" "85aa3130"); /* 2nd vector's sres, s.a. */ VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 42342\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err index 22f5824..954934a 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.err @@ -246,31 +246,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:46071: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 46071 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:46071: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:46071 usage increases to: 3 DREF VLR subscr MSISDN:46071 usage decreases to: 2 @@ -754,31 +733,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:46071: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 46071 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:46071: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:46071 usage increases to: 3 DREF VLR subscr MSISDN:46071 usage decreases to: 2 @@ -1886,31 +1844,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index b426981..add9f7f 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -125,12 +125,9 @@ ms_sends_msg("0632"); VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); @@ -368,12 +365,9 @@ ms_sends_msg("0632"); VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); @@ -968,12 +962,9 @@ ms_sends_msg("0632"); VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 42342\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index e309c2e..83723ab 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -275,31 +275,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 46071 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:46071: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:46071 usage increases to: 3 DREF VLR subscr MSISDN:46071 usage decreases to: 2 @@ -838,31 +817,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 46071 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:46071: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:46071 usage increases to: 3 DREF VLR subscr MSISDN:46071 usage decreases to: 2 @@ -2087,31 +2045,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000003) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.c b/tests/msc_vlr/msc_vlr_test_no_authen.c index 85c01d9..afa03c3 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.c +++ b/tests/msc_vlr/msc_vlr_test_no_authen.c @@ -72,12 +72,9 @@ VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); EXPECT_ACCEPTED(true); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); @@ -238,11 +235,9 @@ VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); EXPECT_ACCEPTED(true); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err index af80da2..0a36094 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ b/tests/msc_vlr/msc_vlr_test_no_authen.err @@ -159,36 +159,14 @@ DREF MSISDN:46071: MSC conn use - compl_l3 == 1 (0x8: cm_service) cm_service_result_sent == 1 msc_subscr_conn_is_accepted() == true -- a USSD request is serviced - expecting USSD: - Your extension is 46071 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:46071: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:46071 usage increases to: 3 DREF VLR subscr MSISDN:46071 usage decreases to: 2 - BSSAP Clear --RAN_GERAN_A--> MS - dtap_tx_confirmed == 1 bssap_clear_sent == 1 - all requests serviced, conn has been released - BSS sends BSSMAP Clear Complete @@ -542,31 +520,10 @@ DREF MSISDN:46071: MSC conn use - compl_l3 == 1 (0x8: cm_service) cm_service_result_sent == 1 msc_subscr_conn_is_accepted() == true -- a USSD request is serviced - expecting USSD: - Your extension is 46071 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:46071 callref 20000002) New transaction -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:46071: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:46071 usage increases to: 3 DREF VLR subscr MSISDN:46071 usage decreases to: 2 diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c index ea8c32c..580135a 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c @@ -313,11 +313,10 @@ EXPECT_CONN_COUNT(1); BTW("The original CM Service Request can conclude"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + + /* Release connection */ + expect_bssap_clear(RAN_GERAN_A); + conn_conclude_cm_service_req(g_conn, RAN_GERAN_A); btw("all requests serviced, conn has been released"); bss_sends_clear_complete(); diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err index 8221e78..39199ef 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err @@ -1115,31 +1115,10 @@ llist_count(&net->subscr_conns) == 1 --- - The original CM Service Request can conclude -- a USSD request is serviced - expecting USSD: - Your extension is 46071 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:46071: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:46071 usage increases to: 3 DREF VLR subscr MSISDN:46071 usage decreases to: 2 diff --git a/tests/msc_vlr/msc_vlr_test_ss.c b/tests/msc_vlr/msc_vlr_test_ss.c new file mode 100644 index 0000000..de7b1e1 --- /dev/null +++ b/tests/msc_vlr/msc_vlr_test_ss.c @@ -0,0 +1,116 @@ +/* + * Osmocom MSC+VLR end-to-end tests + * + * (C) 2018 by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include "msc_vlr_tests.h" + +#define IMSI "901700000004620" + +static void _test_ss_ussd(enum ran_type via_ran) +{ + struct vlr_subscr *vsub; + + /* TODO: UTRAN requires auth and ciph */ + rx_from_ran = via_ran; + + btw("Location Update request causes a GSUP LU request to HLR"); + lu_result_sent = RES_NONE; + gsup_expect_tx("04010809710000004026f0"); + ms_sends_msg("050802008168000130089910070000006402"); + OSMO_ASSERT(gsup_tx_confirmed); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + + btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); + gsup_rx("10010809710000004026f00804036470f1", + "12010809710000004026f0"); + VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); + + btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); + expect_bssap_clear(); + gsup_rx("06010809710000004026f0", NULL); + + btw("LU was successful, and the conn has already been closed"); + VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); + VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); + + vsub = vlr_subscr_find_by_imsi(net->vlr, IMSI); + VERBOSE_ASSERT(vsub != NULL, == true, "%d"); + VERBOSE_ASSERT(strcmp(vsub->imsi, IMSI), == 0, "%d"); + VERBOSE_ASSERT(vsub->lac, == 23, "%u"); + vlr_subscr_put(vsub); + + bss_sends_clear_complete(); + EXPECT_CONN_COUNT(0); + + BTW("after a while, a new conn sends a CM Service Request"); + + cm_service_result_sent = RES_NONE; + ms_sends_msg("05247803305886089910070000006402"); + OSMO_ASSERT(g_conn); + OSMO_ASSERT(g_conn->fi); + OSMO_ASSERT(g_conn->vsub); + VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); + EXPECT_ACCEPTED(true); + +#define FACILITY_IE_REQ \ + "a113" /* Invoke component, len=19 */ \ + "020101" /* InvokeID=1 */ \ + "02013b" /* OpCode=GSM0480_OP_CODE_PROCESS_USS_REQ */ \ + "300b" /* Sequence tag, len=11 */ \ + "04010f" /* DCS: Default 7-bit alphabet */ \ + "0406aa510c061b01" /* USSD text: *#100#, len=6 */ + +#define FACILITY_IE_RSP \ + "a225" /* ReturnResult, len=37 */ \ + "020101" /* InvokeID=1 */ \ + "3020" /* Sequence tag, len=32 */ \ + "02013b" /* OpCode=GSM0480_OP_CODE_PROCESS_USS_REQ */ \ + "301b" /* Sequence tag, len=27 */ \ + "04010f" /* DCS: Default 7-bit alphabet */ \ + "0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d" + + /* MT: GSM 04.80 RELEASE COMPLETE with Facility IE */ + dtap_expect_tx("8b2a" "1c27" FACILITY_IE_RSP); + expect_release_clear(via_ran); + + /* MO: GSM 04.80 REGISTER with Facility IE and SS version IE */ + ms_sends_msg("0b7b" "1c15" FACILITY_IE_REQ "7f0100"); + VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); + ASSERT_RELEASE_CLEAR(via_ran); + + btw("all requests serviced, conn has been released"); + bss_sends_clear_complete(); + EXPECT_CONN_COUNT(0); +} + +static void test_ss_ussd_geran() +{ + comment_start(); + _test_ss_ussd(RAN_GERAN_A); + clear_vlr(); + comment_end(); +} + +msc_vlr_test_func_t msc_vlr_tests[] = { + /* TODO: UTRAN requires auth and enc */ + test_ss_ussd_geran, + NULL +}; diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err new file mode 100644 index 0000000..c7f7711 --- /dev/null +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -0,0 +1,206 @@ +full talloc report on 'msgb' (total 0 bytes in 1 blocks) +talloc_total_blocks(tall_bsc_ctx) == 12 + +===== test_ss_ussd_geran +- Location Update request causes a GSUP LU request to HLR + MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST + new conn +DMM Subscr_Conn{SUBSCR_CONN_S_NEW}: Allocated +DREF unknown: MSC conn use + compl_l3 == 1 (0x1: compl_l3) +DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_NEW}: Updated ID +DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH +DMM LU/new-LAC: 1/23 +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: Allocated +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(LU:901700000004620) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA +DREF VLR subscr unknown usage increases to: 1 +DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 +DVLR New subscr, IMSI: 901700000004620 +DREF VLR subscr IMSI:901700000004620 usage increases to: 2 +DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: Allocated +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(LU:901700000004620) +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START +DVLR GSUP tx: 04010809710000004026f0 +GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_COMPLETE_LAYER_3 +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_AUTH_CIPH +DREF IMSI:901700000004620: MSC conn use - compl_l3 == 0 (0x0: ) +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event SUBSCR_CONN_E_UNUSED + lu_result_sent == 0 +- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT +<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 +DVLR GSUP rx 17: 10010809710000004026f00804036470f1 +DREF VLR subscr IMSI:901700000004620 usage increases to: 2 +DVLR IMSI:901700000004620 has MSISDN:46071 +DVLR SUBSCR(MSISDN:46071) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2) +DVLR GSUP tx: 12010809710000004026f0 +GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 +DREF VLR subscr MSISDN:46071 usage decreases to: 1 +<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 + lu_result_sent == 0 +- HLR also sends GSUP _UPDATE_LOCATION_RESULT +<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 +DVLR GSUP rx 11: 06010809710000004026f0 +DREF VLR subscr MSISDN:46071 usage increases to: 2 +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(LU:901700000004620) +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: Allocated +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(LU:901700000004620) +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: Allocated +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(LU:901700000004620) +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(LU:901700000004620) +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL +- sending LU Accept for MSISDN:46071 +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(LU:901700000004620) +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: Received Event SUBSCR_CONN_E_ACCEPTED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING +DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) +DREF VLR subscr MSISDN:46071 usage increases to: 4 +DREF VLR subscr MSISDN:46071 usage decreases to: 3 +- BSSAP Clear --RAN_GERAN_A--> MS +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 +- LU was successful, and the conn has already been closed + lu_result_sent == 1 + bssap_clear_sent == 1 +DREF VLR subscr MSISDN:46071 usage increases to: 3 + vsub != NULL == 1 + strcmp(vsub->imsi, IMSI) == 0 + vsub->lac == 23 +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +- BSS sends BSSMAP Clear Complete +DREF MSISDN:46071: MSC conn use - release == 0 (0x0: ) +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASING}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASING}: state_chg to SUBSCR_CONN_S_RELEASED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(LU:901700000004620) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Freeing instance +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Deallocated +DRLL MSISDN:46071: Freeing subscriber connection +DREF VLR subscr MSISDN:46071 usage decreases to: 1 +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated + llist_count(&net->subscr_conns) == 0 +--- +- after a while, a new conn sends a CM Service Request + MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ + new conn +DMM Subscr_Conn{SUBSCR_CONN_S_NEW}: Allocated +DREF unknown: MSC conn use + compl_l3 == 1 (0x1: compl_l3) +DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) +DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_NEW}: Updated ID +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: Allocated +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(CM_SERVICE_REQ:901700000004620) +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START +DREF VLR subscr MSISDN:46071 usage increases to: 2 +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(PASSED) +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Process Access Request result: PASSED +- sending CM Service Accept for MSISDN:46071 +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED +DREF MSISDN:46071: MSC conn use + cm_service == 2 (0x9: compl_l3,cm_service) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMPLETE_LAYER_3 +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Event SUBSCR_CONN_E_COMPLETE_LAYER_3 not permitted +DREF MSISDN:46071: MSC conn use - compl_l3 == 1 (0x8: cm_service) + cm_service_result_sent == 1 +msc_subscr_conn_is_accepted() == true + MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER +DREF MSISDN:46071: MSC conn use + dtap == 2 (0xa: dtap,cm_service) +DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) +DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) +DMM -> (new transaction) +DCC (ti 08 sub MSISDN:46071 callref 20000001) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) +DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false +DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING +DMM USSD: Own number requested +DMM MSISDN:46071: MSISDN = 46071 +DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A +- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020101302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d +- DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) +DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +- BSSAP Clear --RAN_GERAN_A--> MS + dtap_tx_confirmed == 1 + bssap_clear_sent == 1 +- all requests serviced, conn has been released +- BSS sends BSSMAP Clear Complete +DREF MSISDN:46071: MSC conn use - release == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASING}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASING}: state_chg to SUBSCR_CONN_S_RELEASED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(CM_SERVICE_REQ:901700000004620) +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Freeing instance +DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Deallocated +DRLL MSISDN:46071: Freeing subscriber connection +DREF VLR subscr MSISDN:46071 usage decreases to: 1 +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance +DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated + llist_count(&net->subscr_conns) == 0 +DREF freeing VLR subscr MSISDN:46071 +===== test_ss_ussd_geran: SUCCESS + +full talloc report on 'msgb' (total 0 bytes in 1 blocks) +talloc_total_blocks(tall_bsc_ctx) == 12 + +full talloc report on 'msgb' (total 0 bytes in 1 blocks) +talloc_total_blocks(tall_bsc_ctx) == 12 + diff --git a/tests/msc_vlr/msc_vlr_test_ss.ok b/tests/msc_vlr/msc_vlr_test_ss.ok new file mode 100644 index 0000000..a965a70 --- /dev/null +++ b/tests/msc_vlr/msc_vlr_test_ss.ok @@ -0,0 +1 @@ +Done diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.c b/tests/msc_vlr/msc_vlr_test_umts_authen.c index 42d406c..03f516f 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.c +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.c @@ -211,12 +211,9 @@ VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); } - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 42342\r"); + /* Release connection */ expect_release_clear(via_ran); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - ASSERT_RELEASE_CLEAR(via_ran); + conn_conclude_cm_service_req(g_conn, via_ran); bss_rnc_sends_release_clear_complete(via_ran); btw("all requests serviced, conn has been released"); diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err index fcaaa97..4a060af 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.err @@ -259,31 +259,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request DREF MSISDN:42342: MSC conn use - dtap == 1 (0x8: cm_service) cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000001) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 @@ -770,31 +749,10 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: still awaiting first request after a CM Service Request cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342 - MSC <--RAN_UTRAN_IU-- MS: GSM0480_MTYPE_REGISTER -DREF MSISDN:42342: MSC conn use + dtap == 2 (0xa: dtap,cm_service) -DRLL Dispatching 04.08 message GSM0480_MTYPE_REGISTER (0xb:0x3b) -DMM Received SS/USSD data (trans_id=8, msg_type=GSM0480_MTYPE_REGISTER) -DMM -> (new transaction) -DCC (ti 08 sub MSISDN:42342 callref 20000002) New transaction -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DREF MSISDN:42342: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) -DMM MSISDN:42342: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false -DREF MSISDN:42342: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:42342: MSC conn use - dtap == 0 (0x0: ) -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED -DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +- Concluding CM Service Request +DREF MSISDN:42342: MSC conn use - cm_service == 0 (0x0: ) +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(CM_SERVICE_REQ:901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:42342: MSC conn use + release == 1 (0x100: release) DREF VLR subscr MSISDN:42342 usage increases to: 3 DREF VLR subscr MSISDN:42342 usage decreases to: 2 diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index 8910e32..b38bfe0 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -138,22 +138,6 @@ dtap_tx_confirmed = false; } -void dtap_expect_tx_ussd(char *ussd_text) -{ - uint8_t ussd_enc[128]; - int len; - /* header */ - char ussd_msg_hex[128] = "8b2a1c27a225020100302002013b301b04010f0416"; - - log("expecting USSD:\n %s", ussd_text); - /* append encoded USSD text */ - gsm_7bit_encode_n_ussd(ussd_enc, sizeof(ussd_enc), ussd_text, - &len); - strncat(ussd_msg_hex, osmo_hexdump_nospc(ussd_enc, len), - sizeof(ussd_msg_hex) - strlen(ussd_msg_hex)); - dtap_expect_tx(ussd_msg_hex); -} - int vlr_gsupc_read_cb(struct gsup_client *gsupc, struct msgb *msg); void gsup_rx(const char *rx_hex, const char *expect_tx_hex) @@ -186,6 +170,21 @@ return false; } +/* Simplified version of the cm_service_request_concludes() */ +void conn_conclude_cm_service_req(struct gsm_subscriber_connection *conn, + enum ran_type via_ran) +{ + btw("Concluding CM Service Request"); + + OSMO_ASSERT(conn); + OSMO_ASSERT(conn->received_cm_service_request); + + conn->received_cm_service_request = false; + msc_subscr_conn_put(conn, MSC_CONN_USE_CM_SERVICE); + + ASSERT_RELEASE_CLEAR(via_ran); +} + enum ran_type rx_from_ran = RAN_GERAN_A; struct gsm_subscriber_connection *conn_new(void) diff --git a/tests/msc_vlr/msc_vlr_tests.h b/tests/msc_vlr/msc_vlr_tests.h index a62cffa..4ca05d2 100644 --- a/tests/msc_vlr/msc_vlr_tests.h +++ b/tests/msc_vlr/msc_vlr_tests.h @@ -153,6 +153,8 @@ void clear_vlr(); bool conn_exists(struct gsm_subscriber_connection *conn); +void conn_conclude_cm_service_req(struct gsm_subscriber_connection *conn, + enum ran_type via_ran); void dtap_expect_tx(const char *hex); void dtap_expect_tx_ussd(char *ussd_text); diff --git a/tests/testsuite.at b/tests/testsuite.at index 5307899..f27b60c 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -92,3 +92,10 @@ cat $abs_srcdir/msc_vlr/msc_vlr_test_rest.err > experr AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_rest], [], [expout], [experr]) AT_CLEANUP + +AT_SETUP([msc_vlr_test_ss]) +AT_KEYWORDS([msc_vlr_test_ss]) +cat $abs_srcdir/msc_vlr/msc_vlr_test_ss.ok > expout +cat $abs_srcdir/msc_vlr/msc_vlr_test_ss.err > experr +AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_ss], [], [expout], [experr]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/9657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I40b4caac3113263f5a06c861dff5e10d43c319b5 Gerrit-Change-Number: 9657 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 21:01:18 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 16 Jun 2018 21:01:18 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: WIP: forward SS/USSD-requests to HLR Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9658 Change subject: libmsc/gsm_09_11.c: WIP: forward SS/USSD-requests to HLR ...................................................................... libmsc/gsm_09_11.c: WIP: forward SS/USSD-requests to HLR Change-Id: Ide5f7e350b537db80cd8326fc59c8bf2e01cb68c --- M include/osmocom/msc/gsm_09_11.h M src/libmsc/gsm_09_11.c M src/libvlr/vlr.c M tests/msc_vlr/msc_vlr_test_ss.c M tests/msc_vlr/msc_vlr_test_ss.err 5 files changed, 238 insertions(+), 64 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/58/9658/1 diff --git a/include/osmocom/msc/gsm_09_11.h b/include/osmocom/msc/gsm_09_11.h index 4e7a5b6..f1c33e7 100644 --- a/include/osmocom/msc/gsm_09_11.h +++ b/include/osmocom/msc/gsm_09_11.h @@ -1,5 +1,7 @@ #pragma once #include +#include int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg); +int gsm0911_gsup_handler(struct vlr_instance *vlr, struct osmo_gsup_message *gsup); diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index 799dfaa..67ea09e 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -26,10 +26,12 @@ */ #include -#include -#include #include +#include +#include +#include + #include #include #include @@ -37,34 +39,21 @@ #include #include #include +#include +#include /* FIXME: choose a proper range */ static uint32_t new_callref = 0x20000001; -/* Declarations of USSD strings to be recognised */ -const char USSD_TEXT_OWN_NUMBER[] = "*#100#"; - -/* A network-specific handler function */ -static int send_own_number(struct gsm_subscriber_connection *conn, - uint8_t tid, uint8_t invoke_id) -{ - char *own_number = conn->vsub->msisdn; - char response_string[GSM_EXTENSION_LENGTH + 20]; - - DEBUGP(DMM, "%s: MSISDN = %s\n", vlr_subscr_name(conn->vsub), - own_number); - - /* Need trailing CR as EOT character */ - snprintf(response_string, sizeof(response_string), "Your extension is %s\r", own_number); - return gsm0480_send_ussd_response(conn, tid, invoke_id, response_string); -} - /* Entry point for call independent MO SS messages */ int gsm0911_rcv_nc_ss(struct gsm_subscriber_connection *conn, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); + struct osmo_gsup_message gsup_msg; struct gsm_trans *trans; - struct ss_request req; + struct msgb *gsup_msgb; + uint16_t facility_ie_len; + uint8_t *facility_ie; uint8_t pdisc, tid; uint8_t msg_type; int rc; @@ -116,47 +105,203 @@ cm_service_request_concludes(conn, msg); } - memset(&req, 0, sizeof(req)); - rc = gsm0480_decode_ss_request(gh, msgb_l3len(msg), &req); - if (!rc) { - LOGP(DMM, LOGL_ERROR, "SS/USSD message parsing error, " - "rejecting request...\n"); - gsm0480_send_ussd_reject(conn, tid, -1, - GSM_0480_PROBLEM_CODE_TAG_GENERAL, - GSM_0480_GEN_PROB_CODE_UNRECOGNISED); - /* The GSM 04.80 API uses inverted codes (0 means error) */ - return -EPROTO; + /* Attempt to extract Facility IE */ + rc = gsm0480_extract_ie_by_tag(gh, msgb_l3len(msg), + &facility_ie, &facility_ie_len, GSM0480_IE_FACILITY); + if (rc) { + LOGP(DMM, LOGL_ERROR, "GSM 04.80 message parsing error, " + "couldn't extract Facility IE\n"); + goto error; } - /* Interrogation or releaseComplete? */ - if (req.ussd_text[0] == '\0' || req.ussd_text[0] == 0xFF) { - if (req.ss_code > 0) { - /* Assume interrogateSS or modification of it and reject */ - return gsm0480_send_ussd_return_error(conn, tid, - req.invoke_id, GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION); + /* Facility IE is optional for RELEASE COMPLETE */ + if (msg_type != GSM0480_MTYPE_RELEASE_COMPLETE) { + if (!facility_ie || facility_ie_len < 2) { + LOGP(DMM, LOGL_ERROR, "GSM 04.80 message parsing error, " + "missing mandatory Facility IE\n"); + rc = -EINVAL; + goto error; } - /* Still assuming a Release-Complete and returning */ + } + + /* Compose a mew GSUP message */ + memset(&gsup_msg, 0x00, sizeof(gsup_msg)); + gsup_msg.message_type = OSMO_GSUP_MSGT_PROC_SS_REQUEST; + gsup_msg.session_id = trans->callref; + + /** + * Perform A-interface to GSUP-interface mapping, + * according to GSM TS 09.11, table 4.2. + */ + switch (msg_type) { + case GSM0480_MTYPE_REGISTER: + gsup_msg.session_state = OSMO_GSUP_SESSION_STATE_BEGIN; + break; + case GSM0480_MTYPE_FACILITY: + gsup_msg.session_state = OSMO_GSUP_SESSION_STATE_CONTINUE; + break; + case GSM0480_MTYPE_RELEASE_COMPLETE: + gsup_msg.session_state = OSMO_GSUP_SESSION_STATE_END; + break; + } + + /* Fill in the (optional) message payload */ + if (facility_ie) { + gsup_msg.ss_info_len = facility_ie_len; + gsup_msg.ss_info = facility_ie; + } + + /* Fill in subscriber's IMSI */ + OSMO_STRLCPY_ARRAY(gsup_msg.imsi, conn->vsub->imsi); + + /* Allocate GSUP message buffer */ + gsup_msgb = gsup_client_msgb_alloc(); + if (!gsup_msgb) { + LOGP(DMM, LOGL_ERROR, "Couldn't allocate GSUP message\n"); + rc = -ENOMEM; + goto error; + } + + /* Encode GSUP message */ + rc = osmo_gsup_encode(gsup_msgb, &gsup_msg); + if (rc) { + LOGP(DMM, LOGL_ERROR, "Couldn't encode GSUP message\n"); + goto error; + } + + /* Finally send */ + rc = gsup_client_send(conn->network->vlr->gsup_client, gsup_msgb); + if (rc) { + LOGP(DMM, LOGL_ERROR, "Couldn't send GSUP message\n"); + goto error; + } + + /* Don't release connection, wait for response */ + msc_subscr_conn_communicating(conn); + + return 0; + +error: + /* Abort transaction on DTAP-interface */ + gsm0480_send_ussd_reject(conn, tid, -1, + GSM_0480_PROBLEM_CODE_TAG_GENERAL, + GSM_0480_GEN_PROB_CODE_UNRECOGNISED); + if (trans) + trans_free(trans); + + /* TODO: abort transaction on GSUP interface if any */ + return rc; +} + +int gsm0911_gsup_handler(struct vlr_instance *vlr, + struct osmo_gsup_message *gsup_msg) +{ + struct gsm_network *net; + struct vlr_subscr *vsub; + struct gsm_trans *trans; + struct gsm48_hdr *gh; + struct msgb *ss_msg; + + /* Obtain pointer to gsm_network */ + net = (struct gsm_network *) vlr->user_ctx; + OSMO_ASSERT(net); + + /** + * Persistence of IMSI and existence of subscriber + * is already checked by VLR code, but let's assert + * here, just to be sure... + */ + vsub = vlr_subscr_find_by_imsi(vlr, gsup_msg->imsi); + OSMO_ASSERT(vsub); + + /* Associate logging messages with this subscriber */ + log_set_context(LOG_CTX_VLR_SUBSCR, vsub); + + /* Handle errors */ + if (OSMO_GSUP_IS_MSGT_ERROR(gsup_msg->message_type)) { + /* FIXME: do something! */ return 0; } - msc_subscr_conn_communicating(conn); - if (!strcmp(USSD_TEXT_OWN_NUMBER, (const char *)req.ussd_text)) { - DEBUGP(DMM, "USSD: Own number requested\n"); - rc = send_own_number(conn, tid, req.invoke_id); - } else { - DEBUGP(DMM, "Unhandled USSD %s\n", req.ussd_text); - rc = gsm0480_send_ussd_return_error(conn, - tid, req.invoke_id, - GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE); + /* Attempt to find DTAP-transaction */ + trans = trans_find_by_callref(net, gsup_msg->session_id); + if (!trans) { + if (gsup_msg->session_state == OSMO_GSUP_SESSION_STATE_BEGIN) { + /* FIXME: network-originated sessions are not supported yet */ + LOGP(DMM, LOGL_ERROR, "Network-originated sessions " + "are not supported, dropping request...\n"); + /* TODO: send ERROR back to the HLR */ + return -ENOTSUP; + } else { + LOGP(DMM, LOGL_ERROR, "Received non-BEGIN message " + "for non-existing transaction\n"); + /* TODO: send ERROR back to the HLR */ + return -EINVAL; + } } - /** - * TODO: as we only handle *#100# for now, and always - * respond with RELEASE COMPLETE, let's manually free - * the transaction here, until the external interface - * is implemented. - */ - trans_free(trans); + /* Allocate and prepare a new MT message */ + ss_msg = gsm48_msgb_alloc_name("GSM 04.08 SS/USSD"); + gh = (struct gsm48_hdr *) msgb_push(ss_msg, sizeof(*gh)); + gh->proto_discr = GSM48_PDISC_NC_SS; + gh->proto_discr |= trans->transaction_id << 4; - return rc; + /** + * Perform GSUP-interface to A-interface mapping, + * according to GSM TS 09.11, table 4.1. + * + * TODO: see (note 3), both CONTINUE and END may + * be also mapped to REGISTER if a new transaction + * has to be established. + */ + switch (gsup_msg->session_state) { + case OSMO_GSUP_SESSION_STATE_BEGIN: + gh->msg_type = GSM0480_MTYPE_REGISTER; + break; + case OSMO_GSUP_SESSION_STATE_CONTINUE: + gh->msg_type = GSM0480_MTYPE_FACILITY; + break; + case OSMO_GSUP_SESSION_STATE_END: + gh->msg_type = GSM0480_MTYPE_RELEASE_COMPLETE; + break; + + /* Missing or incorrect session state */ + case OSMO_GSUP_SESSION_STATE_NONE: + default: + LOGP(DMM, LOGL_ERROR, "Unexpected session state %d\n", + gsup_msg->session_state); + /* FIXME: send ERROR back to the HLR */ + msgb_free(ss_msg); + return -EINVAL; + } + + /* Facility IE is optional only for RELEASE COMPLETE */ + if (gh->msg_type != GSM0480_MTYPE_RELEASE_COMPLETE) { + if (!gsup_msg->ss_info || gsup_msg->ss_info_len < 2) { + LOGP(DMM, LOGL_ERROR, "Missing mandatory Facility IE " + "for mapped 0x%02x message\n", gh->msg_type); + /* FIXME: send ERROR back to the HLR */ + msgb_free(ss_msg); + return -EINVAL; + } + } + + /* Append Facility IE if preset */ + if (gsup_msg->ss_info && gsup_msg->ss_info_len > 2) { + /* Facility IE carries LV, others carry TLV */ + if (gh->msg_type == GSM0480_MTYPE_FACILITY) + msgb_lv_put(ss_msg, gsup_msg->ss_info_len, gsup_msg->ss_info); + else + msgb_tlv_put(ss_msg, GSM0480_IE_FACILITY, + gsup_msg->ss_info_len, gsup_msg->ss_info); + } + + /* Sent to the MS */ + msc_tx_dtap(trans->conn, ss_msg); + + /* Release transaction if required */ + if (gh->msg_type == GSM0480_MTYPE_RELEASE_COMPLETE) + trans_free(trans); + + return 0; } diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index fc5bc07..8bee23f 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -966,11 +966,21 @@ return rc; } +/* Forward-declaration of message handlers */ +int gsm0911_gsup_handler(struct vlr_instance *vlr, + struct osmo_gsup_message *gsup_msg); + static int vlr_route_gsup_msg(struct vlr_instance *vlr, struct osmo_gsup_message *gsup_msg) { switch (gsup_msg->message_type) { - /* Nowhere to route for now */ + /* GSM 09.11 code implementing SS/USSD */ + case OSMO_GSUP_MSGT_PROC_SS_REQUEST: + case OSMO_GSUP_MSGT_PROC_SS_RESULT: + case OSMO_GSUP_MSGT_PROC_SS_ERROR: + DEBUGP(DMSC, "Routed to GSM 09.11 SS/USSD handler\n"); + return gsm0911_gsup_handler(vlr, gsup_msg); + default: LOGP(DVLR, LOGL_ERROR, "No handler found for %s, dropping message...\n", osmo_gsup_message_type_name(gsup_msg->message_type)); diff --git a/tests/msc_vlr/msc_vlr_test_ss.c b/tests/msc_vlr/msc_vlr_test_ss.c index de7b1e1..980b7ed 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.c +++ b/tests/msc_vlr/msc_vlr_test_ss.c @@ -88,11 +88,21 @@ "0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d" /* MT: GSM 04.80 RELEASE COMPLETE with Facility IE */ + gsup_expect_tx("20" /* OSMO_GSUP_MSGT_PROC_SS_REQUEST */ + "0108" "09710000004026f0" /* IMSI TLV */ + "3004" "20000001" /* Session ID TLV */ + "3101" "01" /* Session state: BEGIN */ + "3515" FACILITY_IE_REQ); dtap_expect_tx("8b2a" "1c27" FACILITY_IE_RSP); expect_release_clear(via_ran); /* MO: GSM 04.80 REGISTER with Facility IE and SS version IE */ ms_sends_msg("0b7b" "1c15" FACILITY_IE_REQ "7f0100"); + gsup_rx("20" /* OSMO_GSUP_MSGT_PROC_SS_REQUEST */ + "0108" "09710000004026f0" /* IMSI TLV */ + "3004" "20000001" /* Session ID TLV */ + "3101" "03" /* Session state: END */ + "3527" FACILITY_IE_RSP, NULL); VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); ASSERT_RELEASE_CLEAR(via_ran); diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index c7f7711..a5ce138 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -162,22 +162,29 @@ DREF MSISDN:46071: MSC conn use + trans_nc_ss == 3 (0x4a: dtap,cm_service,trans_nc_ss) DMM MSISDN:46071: rx msg GSM0480_MTYPE_REGISTER: received_cm_service_request changes to false DREF MSISDN:46071: MSC conn use - cm_service == 2 (0x42: dtap,trans_nc_ss) +GSUP --> HLR: OSMO_GSUP_MSGT_PROC_SS_REQUEST: 20010809710000004026f03004200000013101013515a11302010102013b300b04010f0406aa510c061b01 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 +DREF MSISDN:46071: MSC conn use - dtap == 1 (0x40: trans_nc_ss) +<-- GSUP rx OSMO_GSUP_MSGT_PROC_SS_REQUEST: 20010809710000004026f03004200000013101033527a225020101302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d +DVLR GSUP rx 61: 20010809710000004026f03004200000013101033527a225020101302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d +DREF VLR subscr MSISDN:46071 usage increases to: 4 +DVLR SUBSCR(MSISDN:46071) Rx GSUP msg_type=32 not handled at VLR, forwarding to the router at MSC +DMSC Routed to GSM 09.11 SS/USSD handler +DREF VLR subscr MSISDN:46071 usage increases to: 5 DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A - DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 8b2a1c27a225020101302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d - DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - trans_nc_ss == 1 (0x2: dtap) -DREF MSISDN:46071: MSC conn use - dtap == 0 (0x0: ) +DREF VLR subscr MSISDN:46071 usage decreases to: 4 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 0 (0x0: ) DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 +DREF VLR subscr MSISDN:46071 usage increases to: 5 +DREF VLR subscr MSISDN:46071 usage decreases to: 4 - BSSAP Clear --RAN_GERAN_A--> MS +DREF VLR subscr MSISDN:46071 usage decreases to: 3 +<-- GSUP rx OSMO_GSUP_MSGT_PROC_SS_REQUEST: vlr_gsupc_read_cb() returns 0 dtap_tx_confirmed == 1 bssap_clear_sent == 1 - all requests serviced, conn has been released @@ -191,7 +198,7 @@ DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Freeing instance DVLR Process_Access_Request_VLR(CM_SERVICE_REQ:901700000004620){PR_ARQ_S_DONE}: Deallocated DRLL MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 +DREF VLR subscr MSISDN:46071 usage decreases to: 2 DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated llist_count(&net->subscr_conns) == 0 -- To view, visit https://gerrit.osmocom.org/9658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ide5f7e350b537db80cd8326fc59c8bf2e01cb68c Gerrit-Change-Number: 9658 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 16 23:09:25 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 16 Jun 2018 23:09:25 +0000 Subject: Change in osmo-gsm-manuals[master]: common/gsup.adoc: document Supplementary Services extension Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9659 Change subject: common/gsup.adoc: document Supplementary Services extension ...................................................................... common/gsup.adoc: document Supplementary Services extension A while ago, we have introduced some new message types and IEs, related to TCAP-like transaction management and Supplementary Services. Let's document this extension. Change-Id: Ib1331246097db736d98baf1a162574cadca9ee36 --- M common/chapters/gsup.adoc 1 file changed, 95 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/59/9659/1 diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc index a231f7a..e87d979 100644 --- a/common/chapters/gsup.adoc +++ b/common/chapters/gsup.adoc @@ -454,6 +454,56 @@ |01|IMSI|<>|M|TLV|2-10 |=== +==== Process Supplementary Service Request + +Direction: bidirectional + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<>|M|V|1 +|01|IMSI|<>|M|TLV|2-10 +|30|Session ID|<>|M|TLV|6 +|31|Session State|<>|M|TLV|3 +|35|Supplementary Service Info|<>|O|TLV|2-... +|=== + +This message is used in both directions in case of USSD, because +it is not known is it request or response without parsing +the GSM 04.80 payload. + +==== Process Supplementary Service Error + +Direction: HLR => SGSN / VLR + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<>|M|V|1 +|01|IMSI|<>|M|TLV|2-10 +|30|Session ID|<>|M|TLV|6 +|31|Session State|<>|M|TLV|3 +|02|Cause|<>|M|TLV|3 +|=== + +==== Process Supplementary Service Response + +Direction: HLR => SGSN / VLR + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<>|M|V|1 +|01|IMSI|<>|M|TLV|2-10 +|30|Session ID|<>|M|TLV|6 +|31|Session State|<>|M|TLV|3 +|35|Supplementary Service Info|<>|O|TLV|2-... +|=== + +The purpose of this message is not clear yet. Probably, it +can be used to notify the MSC that a structured supplementary +service is successfully activated or deactivated, etc. + === Information Elements [[gsup-ie-msgtype]] @@ -481,6 +531,9 @@ |0x1c|Location Cancellation Request |0x1d|Location Cancellation Error |0x1e|Location Cancellation Result +|0x20|Supplementary Service Request +|0x21|Supplementary Service Error +|0x22|Supplementary Service Result |=== [[gsup-ie-ipaddr]] @@ -704,6 +757,9 @@ |0x26|AUTS|<> |0x27|RES|<> |0x28|CN Domain|<> +|0x30|Session ID|<> +|0x31|Session State|<> +|0x35|Supplementary Service Info|<> |=== [[gsup-ie-empty]] @@ -857,3 +913,42 @@ This IE shall be encoded according to the 'GMM Cause' as described in Chapter 10.5.5.14 of 3GPP TS 04.08. + +[[gsup-ie-ss-info]] +==== Supplementary Service Info + +This IE shall be used together with both <> +and <> IEs. It is used to carry the payload +of Supplementary Services encoded according to GSM TS 04.80. + +=== Session (transaction) management + +Unlike TCAP/MAP, GSUP is just a transport layer without the +dialogue/context. All communication is usually happening over +a single connection. In order to fill this gap, there is a few +optional IEs, which allow both communication sides to establish +and terminate TCAP-like transactions over GSUP. + +[[gsup-ie-session-id]] +==== Session ID + +This auxiliary IE shall be used together with <>. +The purpose of this IE is to identify a particular transaction using +the 4-byte unique identifier. + +[[gsup-ie-session-state]] +==== Session State + +This auxiliary IE shall be used together with <>. +The purpose of this IE is to indicate a state of a particular +transacrion, i.e. initiate, continue or terminate it. + +.Session state +[options="header",cols="15%,35%,50%"] +|=== +|State|TCAP alternative|Description +|0x00|Undefined|Used when session management is not required +|0x01|BEGIN|Used to initiate a new session +|0x02|CONTINUE|Used to continue an existing session +|0x03|END|Used to terminate an existing session +|=== -- To view, visit https://gerrit.osmocom.org/9659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib1331246097db736d98baf1a162574cadca9ee36 Gerrit-Change-Number: 9659 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 17 14:13:09 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 17 Jun 2018 14:13:09 +0000 Subject: Change in osmo-msc[master]: .gitignore: ignore src/libgsupclient/gsup_test_client Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9660 Change subject: .gitignore: ignore src/libgsupclient/gsup_test_client ...................................................................... .gitignore: ignore src/libgsupclient/gsup_test_client Change-Id: I1edf048207aaa0ced7a6ad0ae48df3f7d2533dc1 --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/60/9660/1 diff --git a/.gitignore b/.gitignore index a502ad4..4263f5a 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,7 @@ tests/msc_vlr/msc_vlr_test_* !tests/msc_vlr/msc_vlr_test_*.* tests/msc_vlr/msc_vlr_test_*.o +src/libgsupclient/gsup_test_client tests/atconfig -- To view, visit https://gerrit.osmocom.org/9660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1edf048207aaa0ced7a6ad0ae48df3f7d2533dc1 Gerrit-Change-Number: 9660 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Jun 17 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 17 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#157?= In-Reply-To: <1207583297.199.1529161806475.JavaMail.jenkins@jenkins.osmocom.org> References: <1207583297.199.1529161806475.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <365238892.208.1529248206596.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.74 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Jun 17 17:04:13 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 17 Jun 2018 17:04:13 +0000 Subject: Change in osmo-msc[master]: msc_vlr_tests: don't abuse USSD-request to conclude connections In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9657 to look at the new patch set (#2). Change subject: msc_vlr_tests: don't abuse USSD-request to conclude connections ...................................................................... msc_vlr_tests: don't abuse USSD-request to conclude connections Previously the '*#100#' USSD-request was abused in order to conclude the current subscriber connection. This makes the unit tests depend on each other, for example, if one break something in the GSM 09.11 implementation, a half of tests would fail. Moreover, the further changes in the GSM 09.11 implementation will make the results less predictable (i.e. session ID, etc.). So let's introduce a separate unit test with simple request- response logic, while more complex tests will be in TTCN. Change-Id: I40b4caac3113263f5a06c861dff5e10d43c319b5 --- M tests/msc_vlr/Makefile.am M tests/msc_vlr/msc_vlr_test_authen_reuse.c M tests/msc_vlr/msc_vlr_test_authen_reuse.err M tests/msc_vlr/msc_vlr_test_gsm_authen.c M tests/msc_vlr/msc_vlr_test_gsm_authen.err M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_no_authen.c M tests/msc_vlr/msc_vlr_test_no_authen.err M tests/msc_vlr/msc_vlr_test_reject_concurrency.c M tests/msc_vlr/msc_vlr_test_reject_concurrency.err A tests/msc_vlr/msc_vlr_test_ss.c A tests/msc_vlr/msc_vlr_test_ss.err A tests/msc_vlr/msc_vlr_test_ss.ok M tests/msc_vlr/msc_vlr_test_umts_authen.c M tests/msc_vlr/msc_vlr_test_umts_authen.err M tests/msc_vlr/msc_vlr_tests.c M tests/msc_vlr/msc_vlr_tests.h M tests/testsuite.at 19 files changed, 488 insertions(+), 659 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/57/9657/2 -- To view, visit https://gerrit.osmocom.org/9657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I40b4caac3113263f5a06c861dff5e10d43c319b5 Gerrit-Change-Number: 9657 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 17 17:04:14 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 17 Jun 2018 17:04:14 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement network-initiated sessions support Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9661 Change subject: libmsc/gsm_09_11.c: implement network-initiated sessions support ...................................................................... libmsc/gsm_09_11.c: implement network-initiated sessions support Change-Id: Ief14f8914ef013bd6efd7be842f81fbf053f02e2 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_09_11.c M tests/msc_vlr/msc_vlr_test_ss.c M tests/msc_vlr/msc_vlr_test_ss.err 4 files changed, 491 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/61/9661/1 diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index 63b1cc5..0f82f8f 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -77,6 +77,10 @@ struct gsm_sms *sms; } sms; + struct { + /* Stores a message to be sent */ + struct msgb *msg; + } ss; }; struct { diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index ea6d9a1..5a292b2 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -29,6 +29,7 @@ #include #include +#include #include #include #include @@ -194,6 +195,151 @@ return rc; } +/* Call-back from paging the B-end of the connection */ +static int handle_paging_event(unsigned int hooknum, unsigned int event, + struct msgb *msg, void *_conn, void *_transt) +{ + struct gsm_subscriber_connection *conn = _conn; + enum gsm_paging_event paging_event = event; + struct gsm_trans *transt = _transt; + struct gsm48_hdr *gh; + struct msgb *ss_msg; + int tid; + + OSMO_ASSERT(!transt->conn); + OSMO_ASSERT(transt->ss.msg); + OSMO_ASSERT(conn); + + switch (paging_event) { + case GSM_PAGING_SUCCEEDED: + DEBUGP(DMM, "Paging subscr %s succeeded!\n", + vlr_subscr_msisdn_or_name(transt->vsub)); + + /* Assign connection */ + transt->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_NC_SS); + transt->paging_request = NULL; + + /* Assign transaction ID */ + tid = trans_assign_trans_id(transt->net, + transt->vsub, GSM48_PDISC_NC_SS, 0); + if (tid < 0) { + LOGP(DMM, LOGL_ERROR, "No free transaction ID\n"); + /* TODO: inform HLR about this */ + /* TODO: release connection with subscriber */ + transt->callref = 0; + trans_free(transt); + return -EIO; + } + transt->transaction_id = tid; + + /* Send stored message */ + ss_msg = transt->ss.msg; + OSMO_ASSERT(ss_msg); + + gh = (struct gsm48_hdr *) msgb_push(ss_msg, sizeof(*gh)); + gh->proto_discr = GSM48_PDISC_NC_SS; + gh->proto_discr |= transt->transaction_id << 4; + gh->msg_type = GSM0480_MTYPE_REGISTER; + + /* Sent to the MS, give ownership of ss_msg */ + msc_tx_dtap(transt->conn, ss_msg); + transt->ss.msg = NULL; + break; + case GSM_PAGING_EXPIRED: + case GSM_PAGING_BUSY: + DEBUGP(DMM, "Paging subscr %s %s!\n", + vlr_subscr_msisdn_or_name(transt->vsub), + paging_event == GSM_PAGING_EXPIRED ? "expired" : "busy"); + + /* TODO: inform HLR about this failure */ + + msgb_free(transt->ss.msg); + transt->ss.msg = NULL; + + transt->callref = 0; + transt->paging_request = NULL; + trans_free(transt); + break; + } + + return 0; +} + +static struct gsm_trans *establish_nc_ss_trans(struct gsm_network *net, + struct vlr_subscr *vsub, struct osmo_gsup_message *gsup_msg) +{ + struct gsm_subscriber_connection *conn; + struct gsm_trans *trans, *transt; + + if (gsup_msg->session_state != OSMO_GSUP_SESSION_STATE_BEGIN) { + LOGP(DMM, LOGL_ERROR, "Received non-BEGIN message " + "for non-existing transaction\n"); + return NULL; + } + + if (!gsup_msg->ss_info || gsup_msg->ss_info_len < 2) { + LOGP(DMM, LOGL_ERROR, "Missing mandatory Facility IE\n"); + return NULL; + } + + /* If subscriber is not "attached" */ + if (!vsub->lac) { + LOGP(DMM, LOGL_ERROR, "Network-originated session " + "rejected - subscriber is not attached\n"); + return NULL; + } + + DEBUGP(DMM, "Establishing network-originated session\n"); + + /* Allocate a new transaction */ + trans = trans_alloc(net, vsub, GSM48_PDISC_NC_SS, + 0xff, gsup_msg->session_id); + if (!trans) { + DEBUGP(DMM, " -> No memory for trans\n"); + return NULL; + } + + /* Attempt to find connection */ + conn = connection_for_subscr(vsub); + if (conn) { + /* Assign connection */ + trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_NC_SS); + trans->dlci = 0x00; /* SAPI=0, not SACCH */ + return trans; + } + + DEBUGP(DMM, "Triggering Paging Request\n"); + + /* Find transaction with this subscriber already paging */ + llist_for_each_entry(transt, &net->trans_list, entry) { + /* Transaction of our conn? */ + if (transt == trans || transt->vsub != vsub) + continue; + + LOGP(DMM, LOGL_ERROR, "Paging already started, " + "rejecting message...\n"); + trans_free(trans); + return NULL; + } + + /* Trigger Paging Request */ + trans->paging_request = subscr_request_conn(vsub, + &handle_paging_event, trans, "GSM 09.11 SS/USSD"); + if (!trans->paging_request) { + LOGP(DMM, LOGL_ERROR, "Failed to allocate paging token\n"); + trans_free(trans); + return NULL; + } + + /* Store the Facility IE to be sent */ + OSMO_ASSERT(trans->ss.msg == NULL); + trans->ss.msg = gsm48_msgb_alloc_name("GSM 04.08 SS/USSD"); + msgb_tlv_put(trans->ss.msg, GSM0480_IE_FACILITY, + gsup_msg->ss_info_len, gsup_msg->ss_info); + + return NULL; +} + int gsm0911_gsup_handler(struct vlr_instance *vlr, struct osmo_gsup_message *gsup_msg) { @@ -229,12 +375,18 @@ /* Attempt to find DTAP-transaction */ trans = trans_find_by_callref(net, gsup_msg->session_id); if (!trans) { - /* FIXME: network-originated sessions are not supported yet */ - LOGP(DMM, LOGL_ERROR, "Network-originated sessions " - "are not supported, dropping request...\n"); - /* TODO: send ERROR back to the HLR */ - vlr_subscr_put(vsub); - return -ENOTSUP; + /* Attempt to establish a new transaction */ + trans = establish_nc_ss_trans(net, vsub, gsup_msg); + if (!trans) { + vlr_subscr_put(vsub); + return -EINVAL; + } + + /* Wait for Paging Response */ + if (trans->paging_request) { + vlr_subscr_put(vsub); + return 0; + } } /* Allocate and prepare a new MT message */ diff --git a/tests/msc_vlr/msc_vlr_test_ss.c b/tests/msc_vlr/msc_vlr_test_ss.c index f0652b0..88e8036 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.c +++ b/tests/msc_vlr/msc_vlr_test_ss.c @@ -75,7 +75,7 @@ EXPECT_CONN_COUNT(0); } -static void _test_ss_ussd(enum ran_type via_ran) +static void _test_ss_ussd_mo(enum ran_type via_ran) { /* TODO: UTRAN requires auth and ciph */ rx_from_ran = via_ran; @@ -117,16 +117,99 @@ EXPECT_CONN_COUNT(0); } -static void test_ss_ussd_geran() +static void _test_ss_ussd_no(enum ran_type via_ran) +{ + struct vlr_subscr *vsub; + + /* TODO: UTRAN requires auth and ciph */ + rx_from_ran = via_ran; + + /* Perform Location Update */ + perform_lu(); + + BTW("after a while, HLR initiates SS/USSD session"); + + paging_expect_imsi(IMSI); + paging_sent = false; + vsub = vlr_subscr_find_by_imsi(net->vlr, IMSI); + OSMO_ASSERT(vsub); + VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); + + /* MT: GSM 04.80 REGISTER with request */ + gsup_rx("20" /* OSMO_GSUP_MSGT_PROC_SS_REQUEST */ + "0108" "09710000004026f0" /* IMSI TLV */ + "3004" "20000101" /* Session ID TLV */ + "3101" "01" /* Session state: BEGIN */ + "3515" FACILITY_IE_REQ, NULL); + + VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); + vlr_subscr_put(vsub); + vsub = NULL; + VERBOSE_ASSERT(paging_sent, == true, "%d"); + VERBOSE_ASSERT(paging_stopped, == false, "%d"); + + btw("the subscriber and its pending request should remain"); + vsub = vlr_subscr_find_by_imsi(net->vlr, IMSI); + OSMO_ASSERT(vsub); + VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); + vlr_subscr_put(vsub); + + btw("MS replies with Paging Response, we deliver the NC/USSD"); + + dtap_expect_tx("0b3b" "1c15" FACILITY_IE_REQ); + ms_sends_msg("06270703305882089910070000006402"); + VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); + VERBOSE_ASSERT(paging_stopped, == true, "%d"); + + btw("MS responds to SS/USSD request"); + + /* MO: GSM 04.80 FACILITY with response */ + gsup_expect_tx("20" /* OSMO_GSUP_MSGT_PROC_SS_REQUEST */ + "0108" "09710000004026f0" /* IMSI TLV */ + "3004" "20000101" /* Session ID TLV */ + "3101" "02" /* Session state: CONTINUE */ + "3527" FACILITY_IE_RSP); + ms_sends_msg("8b3a" "27" FACILITY_IE_RSP); + VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); + VERBOSE_ASSERT(paging_stopped, == true, "%d"); + + btw("HLR terminates the session"); + + /* MT: GSM 04.80 RELEASE COMPLETE without Facility IE */ + dtap_expect_tx("0b2a"); + expect_release_clear(via_ran); + gsup_rx("20" /* OSMO_GSUP_MSGT_PROC_SS_REQUEST */ + "0108" "09710000004026f0" /* IMSI TLV */ + "3004" "20000101" /* Session ID TLV */ + "3101" "03", /* Session state: END */ + NULL); + VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); + ASSERT_RELEASE_CLEAR(via_ran); + + btw("all requests serviced, conn has been released"); + bss_sends_clear_complete(); + EXPECT_CONN_COUNT(0); +} + +static void test_ss_ussd_mo_geran() { comment_start(); - _test_ss_ussd(RAN_GERAN_A); + _test_ss_ussd_mo(RAN_GERAN_A); + clear_vlr(); + comment_end(); +} + +static void test_ss_ussd_no_geran() +{ + comment_start(); + _test_ss_ussd_no(RAN_GERAN_A); clear_vlr(); comment_end(); } msc_vlr_test_func_t msc_vlr_tests[] = { /* TODO: UTRAN requires auth and enc */ - test_ss_ussd_geran, + test_ss_ussd_mo_geran, /* MS-originated */ + test_ss_ussd_no_geran, /* Network-originated */ NULL }; diff --git a/tests/msc_vlr/msc_vlr_test_ss.err b/tests/msc_vlr/msc_vlr_test_ss.err index 35974a7..870bcf5 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.err +++ b/tests/msc_vlr/msc_vlr_test_ss.err @@ -1,7 +1,7 @@ full talloc report on 'msgb' (total 0 bytes in 1 blocks) talloc_total_blocks(tall_bsc_ctx) == 12 -===== test_ss_ussd_geran +===== test_ss_ussd_mo_geran - Location Update request causes a GSUP LU request to HLR MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST new conn @@ -204,7 +204,247 @@ DMM Subscr_Conn(CM_SERVICE_REQ:901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated llist_count(&net->subscr_conns) == 0 DREF freeing VLR subscr MSISDN:46071 -===== test_ss_ussd_geran: SUCCESS +===== test_ss_ussd_mo_geran: SUCCESS + +full talloc report on 'msgb' (total 0 bytes in 1 blocks) +talloc_total_blocks(tall_bsc_ctx) == 12 + +===== test_ss_ussd_no_geran +- Location Update request causes a GSUP LU request to HLR + MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST + new conn +DMM Subscr_Conn{SUBSCR_CONN_S_NEW}: Allocated +DREF unknown: MSC conn use + compl_l3 == 1 (0x1: compl_l3) +DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_NEW}: Updated ID +DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH +DMM LU/new-LAC: 1/23 +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: Allocated +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(LU:901700000004620) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA +DREF VLR subscr unknown usage increases to: 1 +DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 +DVLR New subscr, IMSI: 901700000004620 +DREF VLR subscr IMSI:901700000004620 usage increases to: 2 +DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: Allocated +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(LU:901700000004620) +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START +DVLR GSUP tx: 04010809710000004026f0 +GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_COMPLETE_LAYER_3 +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_AUTH_CIPH +DREF IMSI:901700000004620: MSC conn use - compl_l3 == 0 (0x0: ) +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: Awaiting results for Auth+Ciph, overruling event SUBSCR_CONN_E_UNUSED + lu_result_sent == 0 +- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT +<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 +DVLR GSUP rx 17: 10010809710000004026f00804036470f1 +DREF VLR subscr IMSI:901700000004620 usage increases to: 2 +DVLR IMSI:901700000004620 has MSISDN:46071 +DVLR SUBSCR(MSISDN:46071) VLR: update for IMSI=901700000004620 (MSISDN=46071, used=2) +DVLR GSUP tx: 12010809710000004026f0 +GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 +DREF VLR subscr MSISDN:46071 usage decreases to: 1 +<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 + lu_result_sent == 0 +- HLR also sends GSUP _UPDATE_LOCATION_RESULT +<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 +DVLR GSUP rx 11: 06010809710000004026f0 +DREF VLR subscr MSISDN:46071 usage increases to: 2 +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(LU:901700000004620) +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance +DVLR upd_hlr_vlr_fsm(LU:901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: Allocated +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(LU:901700000004620) +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: Allocated +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(LU:901700000004620) +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(LU:901700000004620) +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance +DVLR sub_pres_vlr_fsm(LU:901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL +- sending LU Accept for MSISDN:46071 +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(LU:901700000004620) +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance +DVLR lu_compl_vlr_fsm(LU:901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: Received Event SUBSCR_CONN_E_ACCEPTED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_AUTH_CIPH}: state_chg to SUBSCR_CONN_S_ACCEPTED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASING +DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) +DREF VLR subscr MSISDN:46071 usage increases to: 4 +DREF VLR subscr MSISDN:46071 usage decreases to: 3 +- BSSAP Clear --RAN_GERAN_A--> MS +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 +- LU was successful, and the conn has already been closed + lu_result_sent == 1 + bssap_clear_sent == 1 +DREF VLR subscr MSISDN:46071 usage increases to: 3 + vsub != NULL == 1 + strcmp(vsub->imsi, IMSI) == 0 + vsub->lac == 23 +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +- BSS sends BSSMAP Clear Complete +DREF MSISDN:46071: MSC conn use - release == 0 (0x0: ) +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASING}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASING}: state_chg to SUBSCR_CONN_S_RELEASED +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(LU:901700000004620) +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Freeing instance +DVLR vlr_lu_fsm(LU:901700000004620){VLR_ULA_S_DONE}: Deallocated +DRLL MSISDN:46071: Freeing subscriber connection +DREF VLR subscr MSISDN:46071 usage decreases to: 1 +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance +DMM Subscr_Conn(LU:901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated + llist_count(&net->subscr_conns) == 0 +--- +- after a while, HLR initiates SS/USSD session +DREF VLR subscr MSISDN:46071 usage increases to: 2 + llist_count(&vsub->cs.requests) == 0 +<-- GSUP rx OSMO_GSUP_MSGT_PROC_SS_REQUEST: 20010809710000004026f03004200001013101013515a11302010102013b300b04010f0406aa510c061b01 +DVLR GSUP rx 43: 20010809710000004026f03004200001013101013515a11302010102013b300b04010f0406aa510c061b01 +DREF VLR subscr MSISDN:46071 usage increases to: 3 +DVLR SUBSCR(MSISDN:46071) Rx GSUP msg_type=32 not handled at VLR, forwarding to the router at MSC +DMSC Routed to GSM 09.11 SS/USSD handler +DREF VLR subscr MSISDN:46071 usage increases to: 4 +DMM Establishing network-originated session +DCC (ti ff sub MSISDN:46071 callref 20000101) New transaction +DREF VLR subscr MSISDN:46071 usage increases to: 5 +DMM Triggering Paging Request +DMM Subscriber MSISDN:46071 not paged yet, start paging. + RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0xffffffff, LAC 23 + strcmp(paging_expecting_imsi, imsi) == 0 +DREF VLR subscr MSISDN:46071 usage increases to: 6 +DREF VLR subscr MSISDN:46071 usage decreases to: 5 +DREF VLR subscr MSISDN:46071 usage decreases to: 4 +<-- GSUP rx OSMO_GSUP_MSGT_PROC_SS_REQUEST: vlr_gsupc_read_cb() returns -22 + llist_count(&vsub->cs.requests) == 1 +DREF VLR subscr MSISDN:46071 usage decreases to: 3 + paging_sent == 1 + paging_stopped == 0 +- the subscriber and its pending request should remain +DREF VLR subscr MSISDN:46071 usage increases to: 4 + llist_count(&vsub->cs.requests) == 1 +DREF VLR subscr MSISDN:46071 usage decreases to: 3 +- MS replies with Paging Response, we deliver the NC/USSD + MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP + new conn +DMM Subscr_Conn{SUBSCR_CONN_S_NEW}: Allocated +DREF unknown: MSC conn use + compl_l3 == 1 (0x1: compl_l3) +DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) +DRR PAGING RESPONSE: MI(IMSI)=901700000004620 +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_NEW}: Updated ID +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: Allocated +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(PAGING_RESP:901700000004620) +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START +DREF VLR subscr MSISDN:46071 usage increases to: 4 +DREF VLR subscr MSISDN:46071 usage increases to: 5 +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(PASSED) +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_DONE}: Process Access Request result: PASSED +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED +DPAG Paging success for MSISDN:46071 (event=0) +DPAG Calling paging cbfn. +DMM Paging subscr 46071 succeeded! +DREF MSISDN:46071: MSC conn use + trans_nc_ss == 2 (0x41: compl_l3,trans_nc_ss) +DMSC msc_tx 25 bytes to MSISDN:46071 via RAN_GERAN_A +- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_REGISTER: 0b3b1c15a11302010102013b300b04010f0406aa510c061b01 +- DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 4 +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_ACCEPTED}: subscr_conn_fsm_has_active_transactions: connection still has active transaction: NCSS +DREF VLR subscr MSISDN:46071 usage decreases to: 3 +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMPLETE_LAYER_3 +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Event SUBSCR_CONN_E_COMPLETE_LAYER_3 not permitted +DREF MSISDN:46071: MSC conn use - compl_l3 == 1 (0x40: trans_nc_ss) + dtap_tx_confirmed == 1 + paging_stopped == 1 +- MS responds to SS/USSD request + MSC <--RAN_GERAN_A-- MS: GSM0480_MTYPE_FACILITY +DREF MSISDN:46071: MSC conn use + dtap == 2 (0x42: dtap,trans_nc_ss) +DRLL Dispatching 04.08 message GSM0480_MTYPE_FACILITY (0xb:0x3a) +DMM Received SS/USSD data (trans_id=0, msg_type=GSM0480_MTYPE_FACILITY) +GSUP --> HLR: OSMO_GSUP_MSGT_PROC_SS_REQUEST: 20010809710000004026f03004200001013101023527a225020101302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING +DREF MSISDN:46071: MSC conn use - dtap == 1 (0x40: trans_nc_ss) + dtap_tx_confirmed == 1 + paging_stopped == 1 +- HLR terminates the session +<-- GSUP rx OSMO_GSUP_MSGT_PROC_SS_REQUEST: 20010809710000004026f0300420000101310103 +DVLR GSUP rx 20: 20010809710000004026f0300420000101310103 +DREF VLR subscr MSISDN:46071 usage increases to: 4 +DVLR SUBSCR(MSISDN:46071) Rx GSUP msg_type=32 not handled at VLR, forwarding to the router at MSC +DMSC Routed to GSM 09.11 SS/USSD handler +DREF VLR subscr MSISDN:46071 usage increases to: 5 +DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A +- DTAP --RAN_GERAN_A--> MS: GSM0480_MTYPE_RELEASE_COMPLETE: 0b2a +- DTAP matches expected message +DREF VLR subscr MSISDN:46071 usage decreases to: 4 +DREF MSISDN:46071: MSC conn use - trans_nc_ss == 0 (0x0: ) +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASING +DREF MSISDN:46071: MSC conn use + release == 1 (0x100: release) +DREF VLR subscr MSISDN:46071 usage increases to: 5 +DREF VLR subscr MSISDN:46071 usage decreases to: 4 +- BSSAP Clear --RAN_GERAN_A--> MS +DREF VLR subscr MSISDN:46071 usage decreases to: 3 +DREF VLR subscr MSISDN:46071 usage decreases to: 2 +<-- GSUP rx OSMO_GSUP_MSGT_PROC_SS_REQUEST: vlr_gsupc_read_cb() returns 0 + dtap_tx_confirmed == 1 + bssap_clear_sent == 1 +- all requests serviced, conn has been released +- BSS sends BSSMAP Clear Complete +DREF MSISDN:46071: MSC conn use - release == 0 (0x0: ) +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_RELEASING}: Received Event SUBSCR_CONN_E_UNUSED +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_RELEASING}: state_chg to SUBSCR_CONN_S_RELEASED +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(PAGING_RESP:901700000004620) +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_DONE}: Freeing instance +DVLR Process_Access_Request_VLR(PAGING_RESP:901700000004620){PR_ARQ_S_DONE}: Deallocated +DRLL MSISDN:46071: Freeing subscriber connection +DREF VLR subscr MSISDN:46071 usage decreases to: 1 +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance +DMM Subscr_Conn(PAGING_RESP:901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated + llist_count(&net->subscr_conns) == 0 +DREF freeing VLR subscr MSISDN:46071 +===== test_ss_ussd_no_geran: SUCCESS full talloc report on 'msgb' (total 0 bytes in 1 blocks) talloc_total_blocks(tall_bsc_ctx) == 12 -- To view, visit https://gerrit.osmocom.org/9661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ief14f8914ef013bd6efd7be842f81fbf053f02e2 Gerrit-Change-Number: 9661 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 17 18:23:20 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sun, 17 Jun 2018 18:23:20 +0000 Subject: Change in osmocom-bb[master]: lua: Add API to enable passing credentials Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9662 Change subject: lua: Add API to enable passing credentials ...................................................................... lua: Add API to enable passing credentials This can be useful to have bidirectional communication between the mobile lua script an external control script. Change-Id: Ib4a5eef611f524f5d21cb6a7f4eace22b8ba60d0 --- M src/host/layer23/src/mobile/script_lua.c 1 file changed, 22 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/62/9662/1 diff --git a/src/host/layer23/src/mobile/script_lua.c b/src/host/layer23/src/mobile/script_lua.c index 8d3064d..4cfe55a 100644 --- a/src/host/layer23/src/mobile/script_lua.c +++ b/src/host/layer23/src/mobile/script_lua.c @@ -1,4 +1,4 @@ -/* (C) 2017 by Holger Hans Peter Freyther +/* (C) 2017-2018 by Holger Hans Peter Freyther * * All Rights Reserved * @@ -30,6 +30,9 @@ #include +#include +#include + struct timer_userdata { int cb_ref; }; @@ -410,6 +413,23 @@ return 1; } +/* Expect a fd on the stack and enable SO_PASSCRED */ +static int lua_unix_passcred(lua_State *L) +{ + int one = 1; + int fd, rc; + + luaL_argcheck(L, lua_isnumber(L, -1), 1, "needs to be a filedescriptor"); + fd = (int) lua_tonumber(L, -1); + + rc = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); + if (rc != 0) + LOGP(DLUA, LOGL_ERROR, "Failed to set SO_PASSCRED: %s\n", + strerror(errno)); + lua_pushinteger(L, rc); + return 1; +} + static const struct luaL_Reg ms_funcs[] = { { "imsi", lua_ms_imsi }, { "imei", lua_ms_imei }, @@ -426,6 +446,7 @@ static const struct luaL_Reg osmo_funcs[] = { { "timeout", lua_osmo_timeout }, + { "unix_passcred", lua_unix_passcred }, { "ms", lua_osmo_ms }, { NULL, NULL }, }; -- To view, visit https://gerrit.osmocom.org/9662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib4a5eef611f524f5d21cb6a7f4eace22b8ba60d0 Gerrit-Change-Number: 9662 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 17 18:37:37 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sun, 17 Jun 2018 18:37:37 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Use the new API to pass credentials to the event server Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9663 Change subject: ms: Use the new API to pass credentials to the event server ...................................................................... ms: Use the new API to pass credentials to the event server We are using the "autobind" feature of Linux to get a special socket address. This allows us to have roughly 2^20 clients on the system. Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f --- M src/osmo_ms_driver/event_server.py M src/osmo_ms_driver/location_update_test.py M src/osmo_ms_driver/lua/ms_support.lua 3 files changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/63/9663/1 diff --git a/src/osmo_ms_driver/event_server.py b/src/osmo_ms_driver/event_server.py index 6b0232b..b0f699d 100644 --- a/src/osmo_ms_driver/event_server.py +++ b/src/osmo_ms_driver/event_server.py @@ -27,7 +27,7 @@ def read_cb(self, obj, mask): # addresss doesn't give us the remote but currently we don't # need it. - (data, address) = self._server.recvfrom(4096) + data, ancdata, flags, addr = self._server.recvmsg(4096, 4096) now = time.clock_gettime(time.CLOCK_MONOTONIC) for handler in self._handlers: - handler(data, now) + handler(data, addr, now) diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 2d661ca..0d27d0e 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -167,7 +167,7 @@ for launcher in self._started: launcher.kill() - def handle_msg(self, _data, time): + def handle_msg(self, _data, addr, time): import json data = json.loads(_data.decode()) diff --git a/src/osmo_ms_driver/lua/ms_support.lua b/src/osmo_ms_driver/lua/ms_support.lua index 817a564..6490bec 100644 --- a/src/osmo_ms_driver/lua/ms_support.lua +++ b/src/osmo_ms_driver/lua/ms_support.lua @@ -11,6 +11,7 @@ function mod.register(ms, path) g_ms = ms + osmo.unix_passcred(g_c:getfd()) g_c:connect(path) local event = {} -- To view, visit https://gerrit.osmocom.org/9663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f Gerrit-Change-Number: 9663 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 17 18:37:38 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sun, 17 Jun 2018 18:37:38 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Remove debug left over for the test Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9664 Change subject: ms: Remove debug left over for the test ...................................................................... ms: Remove debug left over for the test Change-Id: I17aa97a99cb1b1f9205b3a951370fe5ad49ae3dc --- M src/osmo_ms_driver/__main__.py 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/64/9664/1 diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py index 6b61d64..0e35280 100644 --- a/src/osmo_ms_driver/__main__.py +++ b/src/osmo_ms_driver/__main__.py @@ -60,8 +60,6 @@ # Event server to handle MS->test events ev_server = EventServer("ev_server", event_server_path) ev_server.listen(loop) - #while True: - # loop.select() # Just a single test for now. test = MassUpdateLocationTest("lu_test", num_ms, cdf, ev_server, tmp_dir) -- To view, visit https://gerrit.osmocom.org/9664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I17aa97a99cb1b1f9205b3a951370fe5ad49ae3dc Gerrit-Change-Number: 9664 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:15 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:15 +0000 Subject: Change in osmo-bsc[master]: cosmetic / linking: move str_to_imsi() out of abis_rsl.c Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9665 Change subject: cosmetic / linking: move str_to_imsi() out of abis_rsl.c ...................................................................... cosmetic / linking: move str_to_imsi() out of abis_rsl.c Move to gsm_04_08_utils.c so that it's possible to use it without linking/stubbing all of RSL. Change-Id: I6e90831d7e618ce3c8e7417082a82c97f6681668 --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/gsm_04_08_utils.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c 6 files changed, 14 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/9665/1 diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index fc21238..2fe8c38 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -68,7 +68,6 @@ int abis_rsl_rcvmsg(struct msgb *msg); -uint64_t str_to_imsi(const char *imsi_str); int rsl_release_request(struct gsm_lchan *lchan, uint8_t link_id, enum rsl_rel_mode release_mode); diff --git a/include/osmocom/bsc/gsm_04_08_utils.h b/include/osmocom/bsc/gsm_04_08_utils.h index bdfca71..4349a37 100644 --- a/include/osmocom/bsc/gsm_04_08_utils.h +++ b/include/osmocom/bsc/gsm_04_08_utils.h @@ -39,3 +39,5 @@ return msgb_alloc_headroom(GSM48_ALLOC_SIZE, GSM48_ALLOC_HEADROOM, name); } + +uint64_t str_to_imsi(const char *imsi_str); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index add4390..ab3658d 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -167,16 +167,6 @@ return lchan; } -/* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ -uint64_t str_to_imsi(const char *imsi_str) -{ - uint64_t ret; - - ret = strtoull(imsi_str, NULL, 10); - - return ret; -} - static struct msgb *rsl_msgb_alloc(void) { return msgb_alloc_headroom(RSL_ALLOC_SIZE, RSL_ALLOC_HEADROOM, diff --git a/src/osmo-bsc/gsm_04_08_utils.c b/src/osmo-bsc/gsm_04_08_utils.c index 5bfdf97..e9aeb55 100644 --- a/src/osmo-bsc/gsm_04_08_utils.c +++ b/src/osmo-bsc/gsm_04_08_utils.c @@ -703,3 +703,13 @@ return gsm48_extract_mi(classmark2_lv, length - classmark_offset, mi_string, mi_type); } + +/* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ +uint64_t str_to_imsi(const char *imsi_str) +{ + uint64_t ret; + + ret = strtoull(imsi_str, NULL, 10); + + return ret; +} diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index 886d28b..feb9fea 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -50,6 +50,7 @@ #include #include #include +#include void *tall_paging_ctx = NULL; diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index 5a3fefa..8a3c331 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -43,6 +43,7 @@ #include #include #include +#include static int pcu_sock_send(struct gsm_bts *bts, struct msgb *msg); uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx); -- To view, visit https://gerrit.osmocom.org/9665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6e90831d7e618ce3c8e7417082a82c97f6681668 Gerrit-Change-Number: 9665 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:16 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:16 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9666 Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/neighbor_ident.c A src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/system_information.c M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am A tests/handover/neighbor_ident_test.c A tests/handover/neighbor_ident_test.err A tests/handover/neighbor_ident_test.ok A tests/neighbor_ident.vty M tests/testsuite.at 21 files changed, 1,958 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/9666/1 diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 5fa39eb..18737a3 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -27,6 +27,7 @@ meas_feed.h \ meas_rep.h \ misdn.h \ + neighbor_ident.h \ network_listen.h \ openbscdefines.h \ osmo_bsc.h \ diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 5794617..76a1b30 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -35,6 +35,7 @@ struct mgcp_client_conf; struct mgcp_client; struct mgcp_ctx; +struct gsm0808_cell_id; /** annotations for msgb ownership */ #define __uses @@ -750,6 +751,12 @@ unsigned int used; }; +/* Useful to track N-N relations between BTS, for example neighbors. */ +struct gsm_bts_ref { + struct llist_head entry; + struct gsm_bts *bts; +}; + /* One BTS */ struct gsm_bts { /* list header in net->bts_list */ @@ -984,6 +991,11 @@ struct handover_cfg *ho; + /* A list of struct gsm_bts_ref, indicating neighbors of this BTS. + * When the si_common neigh_list is in automatic mode, it is populated from this list as well as + * gsm_network->neighbor_bss_cells. */ + struct llist_head local_neighbors; + /* BTS-specific overrides for timer values from struct gsm_network. */ uint8_t T3122; /* ASSIGMENT REJECT wait indication */ @@ -998,6 +1010,10 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, uint8_t bts_num); struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); +bool gsm_bts_matches_cell_id(struct gsm_bts *bts, const struct gsm0808_cell_id *ci); +struct gsm_bts *gsm_bts_by_cell_id(struct gsm_network *net, const struct gsm0808_cell_id *ci); +int gsm_bts_local_neighbor_add(struct gsm_bts *bts, struct gsm_bts *neighbor); +int gsm_bts_local_neighbor_del(struct gsm_bts *bts, const struct gsm_bts *neighbor); struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts); struct gsm_bts_trx *gsm_bts_trx_num(const struct gsm_bts *bts, int num); @@ -1281,6 +1297,9 @@ struct mgcp_client_conf *conf; struct mgcp_client *client; } mgw; + + /* Remote BSS Cell Identifier Lists */ + struct neighbor_ident_list *neighbor_bss_cells; }; static inline const struct osmo_location_area_id *bts_lai(struct gsm_bts *bts) diff --git a/include/osmocom/bsc/handover.h b/include/osmocom/bsc/handover.h index eb03f6a..847d985 100644 --- a/include/osmocom/bsc/handover.h +++ b/include/osmocom/bsc/handover.h @@ -6,6 +6,8 @@ #include #include +#include + struct gsm_lchan; struct gsm_bts; struct gsm_subscriber_connection; @@ -93,3 +95,7 @@ void handover_decision_callbacks_register(struct handover_decision_callbacks *hdc); struct handover_decision_callbacks *handover_decision_callbacks_get(int hodec_id); + +struct gsm_bts *bts_by_neighbor_ident(const struct gsm_network *net, + const struct neighbor_ident_key *search_for); +struct neighbor_ident_key *bts_ident_key(const struct gsm_bts *bts); diff --git a/include/osmocom/bsc/neighbor_ident.h b/include/osmocom/bsc/neighbor_ident.h new file mode 100644 index 0000000..86e062a --- /dev/null +++ b/include/osmocom/bsc/neighbor_ident.h @@ -0,0 +1,60 @@ +/* Manage identity of neighboring BSS cells for inter-BSC handover */ +#pragma once + +#include +#include + +#include + +struct vty; +struct gsm_network; +struct gsm_bts; +struct neighbor_ident_list; +struct gsm0808_cell_id_list2; + +enum bsic_kind { + BSIC_NONE, + BSIC_6BIT, + BSIC_9BIT, +}; + +#define NEIGHBOR_IDENT_KEY_ANY_BTS -1 + +struct neighbor_ident_key { + int from_bts; /*< BTS nr 0..255 or NEIGHBOR_IDENT_KEY_ANY_BTS */ + uint16_t arfcn; + enum bsic_kind bsic_kind; + uint16_t bsic; +}; + +const char *neighbor_ident_key_name(const struct neighbor_ident_key *ni_key); + +struct neighbor_ident_list *neighbor_ident_init(void *talloc_ctx); +void neighbor_ident_free(struct neighbor_ident_list *nil); + +bool neighbor_ident_key_match(const struct neighbor_ident_key *entry, + const struct neighbor_ident_key *search_for, + bool exact_match); + +int neighbor_ident_add(struct neighbor_ident_list *nil, const struct neighbor_ident_key *key, + const struct gsm0808_cell_id_list2 *val); +const struct gsm0808_cell_id_list2 *neighbor_ident_get(const struct neighbor_ident_list *nil, + const struct neighbor_ident_key *key); +bool neighbor_ident_del(struct neighbor_ident_list *nil, const struct neighbor_ident_key *key); +void neighbor_ident_clear(struct neighbor_ident_list *nil); + +void neighbor_ident_iter(const struct neighbor_ident_list *nil, + bool (* iter_cb )(const struct neighbor_ident_key *key, + const struct gsm0808_cell_id_list2 *val, + void *cb_data), + void *cb_data); + +void neighbor_ident_vty_init(struct gsm_network *net, struct neighbor_ident_list *nil); +void neighbor_ident_vty_write(struct vty *vty, const char *indent, struct gsm_bts *bts); + +#define NEIGHBOR_IDENT_VTY_KEY_PARAMS "arfcn <0-1023> (bsic|bsic9) (<0-511>|any)" +#define NEIGHBOR_IDENT_VTY_KEY_DOC \ + "ARFCN of neighbor cell\n" "ARFCN value\n" \ + "BSIC of neighbor cell\n" "9-bit BSIC of neighbor cell\n" "BSIC value\n" \ + "for all BSICs / use any BSIC in this ARFCN\n" +bool neighbor_ident_vty_parse_key_params(struct vty *vty, const char **argv, struct neighbor_ident_key *key); diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index a459a92..afae0b6 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -64,6 +64,8 @@ handover_vty.c \ meas_feed.c \ meas_rep.c \ + neighbor_ident.c \ + neighbor_ident_vty.c \ net_init.c \ osmo_bsc_api.c \ osmo_bsc_audio.c \ diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index b6bd410..1fe4847 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -247,6 +247,7 @@ net->ho = ho_cfg_init(net, NULL); net->hodec2.congestion_check_interval_s = HO_CFG_CONGESTION_CHECK_DEFAULT; + net->neighbor_bss_cells = neighbor_ident_init(net); /* init statistics */ net->bsc_ctrs = rate_ctr_group_alloc(net, &bsc_ctrg_desc, 0); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 57c5363..f25f731 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -62,6 +62,8 @@ #include #include #include +#include +#include #include @@ -909,6 +911,8 @@ VTY_NEWLINE); } + neighbor_ident_vty_write(vty, " ", bts); + vty_out(vty, " codec-support fr"); if (bts->codec.hr) vty_out(vty, " hr"); @@ -4967,6 +4971,7 @@ install_element(BTS_NODE, &cfg_bts_no_acc_ramping_cmd); install_element(BTS_NODE, &cfg_bts_acc_ramping_step_interval_cmd); install_element(BTS_NODE, &cfg_bts_acc_ramping_step_size_cmd); + neighbor_ident_vty_init(network, network->neighbor_bss_cells); /* See also handover commands added on bts level from handover_vty.c */ install_element(BTS_NODE, &cfg_trx_cmd); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 0f062d2..734e2fb 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -563,6 +564,117 @@ return NULL; } +bool gsm_bts_matches_cell_id(struct gsm_bts *bts, const struct gsm0808_cell_id *ci) +{ + if (!bts || !ci) + return false; + switch (ci->id_discr) { + case CELL_IDENT_WHOLE_GLOBAL: + if (osmo_plmn_cmp(&bts->network->plmn, &ci->id.global.lai.plmn)) + return false; + if (bts->location_area_code != ci->id.global.lai.lac) + return false; + if (bts->cell_identity != ci->id.global.cell_identity) + return false; + return true; + case CELL_IDENT_LAC_AND_CI: + if (bts->location_area_code != ci->id.lac_and_ci.lac) + return false; + if (bts->cell_identity != ci->id.lac_and_ci.ci) + return false; + return true; + case CELL_IDENT_CI: + if (bts->cell_identity != ci->id.ci) + return false; + return true; + case CELL_IDENT_NO_CELL: + return false; + case CELL_IDENT_LAI_AND_LAC: + if (osmo_plmn_cmp(&bts->network->plmn, &ci->id.lai_and_lac.plmn)) + return false; + if (bts->location_area_code != ci->id.lai_and_lac.lac) + return false; + return true; + case CELL_IDENT_LAC: + if (bts->location_area_code != ci->id.lac) + return false; + return true; + case CELL_IDENT_BSS: + return true; + case CELL_IDENT_UTRAN_PLMN_LAC_RNC: + case CELL_IDENT_UTRAN_RNC: + case CELL_IDENT_UTRAN_LAC_RNC: + /* Not implemented */ + default: + return false; + } +} + +struct gsm_bts *gsm_bts_by_cell_id(struct gsm_network *net, const struct gsm0808_cell_id *ci) +{ + struct gsm_bts *bts; + + llist_for_each_entry(bts, &net->bts_list, list) { + if (gsm_bts_matches_cell_id(bts, ci)) + return bts; + } + + return NULL; +} + +struct gsm_bts_ref *gsm_bts_ref_find(const struct llist_head *list, const struct gsm_bts *bts) +{ + struct gsm_bts_ref *ref; + if (!bts) + return NULL; + llist_for_each_entry(ref, list, entry) { + if (ref->bts == bts) + return ref; + } + return NULL; +} + +/* Add a BTS reference to the local_neighbors list. + * Return 1 if added, 0 if such an entry already existed, and negative on errors. */ +int gsm_bts_local_neighbor_add(struct gsm_bts *bts, struct gsm_bts *neighbor) +{ + struct gsm_bts_ref *ref; + if (!bts || !neighbor) + return -ENOMEM; + + if (bts == neighbor) + return -EINVAL; + + /* Already got this entry? */ + ref = gsm_bts_ref_find(&bts->local_neighbors, neighbor); + if (ref) + return 0; + + ref = talloc_zero(bts, struct gsm_bts_ref); + if (!ref) + return -ENOMEM; + ref->bts = neighbor; + llist_add_tail(&ref->entry, &bts->local_neighbors); + return 1; +} + +/* Remove a BTS reference from the local_neighbors list. + * Return 1 if removed, 0 if no such entry existed, and negative on errors. */ +int gsm_bts_local_neighbor_del(struct gsm_bts *bts, const struct gsm_bts *neighbor) +{ + struct gsm_bts_ref *ref; + if (!bts || !neighbor) + return -ENOMEM; + + ref = gsm_bts_ref_find(&bts->local_neighbors, neighbor); + if (!ref) + return 0; + + llist_del(&ref->entry); + talloc_free(ref); + return 1; +} + struct gsm_bts_trx *gsm_bts_trx_alloc(struct gsm_bts *bts) { struct gsm_bts_trx *trx = talloc_zero(bts, struct gsm_bts_trx); @@ -756,6 +868,7 @@ INIT_LLIST_HEAD(&bts->abis_queue); INIT_LLIST_HEAD(&bts->loc_list); + INIT_LLIST_HEAD(&bts->local_neighbors); return bts; } diff --git a/src/osmo-bsc/handover_logic.c b/src/osmo-bsc/handover_logic.c index 960bf69..55af0ed 100644 --- a/src/osmo-bsc/handover_logic.c +++ b/src/osmo-bsc/handover_logic.c @@ -392,6 +392,50 @@ return 0; } +struct gsm_bts *bts_by_neighbor_ident(const struct gsm_network *net, + const struct neighbor_ident_key *search_for) +{ + struct gsm_bts *found = NULL; + struct gsm_bts *bts; + struct gsm_bts *wildcard_match = NULL; + + llist_for_each_entry(bts, &net->bts_list, list) { + struct neighbor_ident_key entry = { + .from_bts = NEIGHBOR_IDENT_KEY_ANY_BTS, + .arfcn = bts->c0->arfcn, + .bsic_kind = BSIC_6BIT, + .bsic = bts->bsic, + }; + if (neighbor_ident_key_match(&entry, search_for, true)) { + if (found) { + LOGP(DHO, LOGL_ERROR, "CONFIG ERROR: Multiple BTS match %s: %d and %d\n", + neighbor_ident_key_name(search_for), + found->nr, bts->nr); + return found; + } + found = bts; + } + if (neighbor_ident_key_match(&entry, search_for, false)) + wildcard_match = bts; + } + + if (found) + return found; + + return wildcard_match; +} + +struct neighbor_ident_key *bts_ident_key(const struct gsm_bts *bts) +{ + static struct neighbor_ident_key key; + key = (struct neighbor_ident_key){ + .arfcn = bts->c0->arfcn, + .bsic_kind = BSIC_6BIT, + .bsic = bts->bsic, + }; + return &key; +} + static int ho_logic_sig_cb(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { diff --git a/src/osmo-bsc/neighbor_ident.c b/src/osmo-bsc/neighbor_ident.c new file mode 100644 index 0000000..8a7c580 --- /dev/null +++ b/src/osmo-bsc/neighbor_ident.c @@ -0,0 +1,296 @@ +/* Manage identity of neighboring BSS cells for inter-BSC handover. + * + * Measurement reports tell us about neighbor ARFCN and BSIC. If that ARFCN and BSIC is not managed by + * this local BSS, we need to tell the MSC a cell identity, like CGI, LAC+CI, etc. -- hence we need a + * mapping from ARFCN+BSIC to Cell Identifier List, which needs to be configured by the user. + */ +/* (C) 2018 by sysmocom - s.f.m.c. GmbH + * + * All Rights Reserved + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include + +#include +#include +#include + +#include + +struct neighbor_ident_list { + struct llist_head list; +}; + +struct neighbor_ident { + struct llist_head entry; + + struct neighbor_ident_key key; + struct gsm0808_cell_id_list2 val; +}; + +#define APPEND_THING(func, args...) do { \ + int remain = buflen - (pos - buf); \ + int l = func(pos, remain, ##args); \ + if (l < 0 || l > remain) \ + pos = buf + buflen; \ + else \ + pos += l; \ + } while(0) +#define APPEND_STR(fmt, args...) APPEND_THING(snprintf, fmt, ##args) + +const char *_neighbor_ident_key_name(char *buf, size_t buflen, const struct neighbor_ident_key *ni_key) +{ + char *pos = buf; + + APPEND_STR("BTS "); + if (ni_key->from_bts == NEIGHBOR_IDENT_KEY_ANY_BTS) + APPEND_STR("*"); + else if (ni_key->from_bts >= 0 && ni_key->from_bts <= 255) + APPEND_STR("%d", ni_key->from_bts); + else + APPEND_STR("invalid(%d)", ni_key->from_bts); + + APPEND_STR(" to "); + switch (ni_key->bsic_kind) { + default: + case BSIC_NONE: + APPEND_STR("ARFCN %u (any BSIC)", ni_key->arfcn); + break; + case BSIC_6BIT: + APPEND_STR("ARFCN %u BSIC %u", ni_key->arfcn, ni_key->bsic & 0x3f); + break; + case BSIC_9BIT: + APPEND_STR("ARFCN %u BSIC %u(9bit)", ni_key->arfcn, ni_key->bsic & 0x1ff); + break; + } + return buf; +} + +const char *neighbor_ident_key_name(const struct neighbor_ident_key *ni_key) +{ + static char buf[64]; + return _neighbor_ident_key_name(buf, sizeof(buf), ni_key); +} + +struct neighbor_ident_list *neighbor_ident_init(void *talloc_ctx) +{ + struct neighbor_ident_list *nil = talloc_zero(talloc_ctx, struct neighbor_ident_list); + OSMO_ASSERT(nil); + INIT_LLIST_HEAD(&nil->list); + return nil; +} + +void neighbor_ident_free(struct neighbor_ident_list *nil) +{ + if (!nil) + return; + talloc_free(nil); +} + +/* Return true when the entry matches the search_for requirements. + * If exact_match is false, a BSIC_NONE entry acts as wildcard to match any search_for on that ARFCN, + * and a BSIC_NONE in search_for likewise returns any one entry that matches the ARFCN; + * also a from_bts == NEIGHBOR_IDENT_KEY_ANY_BTS in either entry or search_for will match. + * If exact_match is true, only identical bsic_kind values and identical from_bts values return a match. + * Note, typically wildcard BSICs are only in entry, e.g. the user configured list, and search_for + * contains a specific BSIC, e.g. as received from a Measurement Report. */ +bool neighbor_ident_key_match(const struct neighbor_ident_key *entry, + const struct neighbor_ident_key *search_for, + bool exact_match) +{ + uint16_t bsic_mask; + + if (exact_match + && entry->from_bts != search_for->from_bts) + return false; + + if (search_for->from_bts != NEIGHBOR_IDENT_KEY_ANY_BTS + && entry->from_bts != NEIGHBOR_IDENT_KEY_ANY_BTS + && entry->from_bts != search_for->from_bts) + return false; + + if (entry->arfcn != search_for->arfcn) + return false; + + switch (entry->bsic_kind) { + default: + return false; + case BSIC_NONE: + if (!exact_match) { + /* The neighbor identifier list entry matches any BSIC for this ARFCN. */ + return true; + } + /* Match exact entry */ + bsic_mask = 0; + break; + case BSIC_6BIT: + bsic_mask = 0x3f; + break; + case BSIC_9BIT: + bsic_mask = 0x1ff; + break; + } + if (!exact_match && search_for->bsic_kind == BSIC_NONE) { + /* The search is looking only for an ARFCN with any BSIC */ + return true; + } + if (search_for->bsic_kind == entry->bsic_kind + && (search_for->bsic & bsic_mask) == (entry->bsic & bsic_mask)) + return true; + return false; +} + +static struct neighbor_ident *_neighbor_ident_get(const struct neighbor_ident_list *nil, + const struct neighbor_ident_key *key, + bool exact_match) +{ + struct neighbor_ident *ni; + struct neighbor_ident *wildcard_match = NULL; + + /* Do both exact-bsic and wildcard matching in the same iteration: + * Any exact match returns immediately, while for a wildcard match we still go through all + * remaining items in case an exact match exists. */ + llist_for_each_entry(ni, &nil->list, entry) { + if (neighbor_ident_key_match(&ni->key, key, true)) + return ni; + if (!exact_match) { + if (neighbor_ident_key_match(&ni->key, key, false)) + wildcard_match = ni; + } + } + return wildcard_match; +} + +static void _neighbor_ident_free(struct neighbor_ident *ni) +{ + llist_del(&ni->entry); + talloc_free(ni); +} + +bool neighbor_ident_key_valid(const struct neighbor_ident_key *key) +{ + if (key->from_bts != NEIGHBOR_IDENT_KEY_ANY_BTS + && (key->from_bts < 0 || key->from_bts > 255)) + return false; + + switch (key->bsic_kind) { + case BSIC_6BIT: + if (key->bsic > 0x3f) + return false; + break; + case BSIC_9BIT: + if (key->bsic > 0x1ff) + return false; + break; + case BSIC_NONE: + break; + default: + return false; + } + return true; +} + +/*! Add Cell Identifiers to an ARFCN+BSIC entry. + * Exactly one kind of identifier is allowed per ARFCN+BSIC entry, and any number of entries of that kind + * may be added up to the capacity of gsm0808_cell_id_list2, by one or more calls to this function. To + * replace an existing entry, first call neighbor_ident_del(nil, key). + * \returns number of entries in the resulting identifier list, or negative on error: + * see gsm0808_cell_id_list_add() for the meaning of returned error codes; + * return -ENOMEM when the list is not initialized, -ERANGE when the BSIC value is too large. */ +int neighbor_ident_add(struct neighbor_ident_list *nil, const struct neighbor_ident_key *key, + const struct gsm0808_cell_id_list2 *val) +{ + struct neighbor_ident *ni; + int rc; + + if (!nil) + return -ENOMEM; + + if (!neighbor_ident_key_valid(key)) + return -ERANGE; + + ni = _neighbor_ident_get(nil, key, true); + if (!ni) { + ni = talloc_zero(nil, struct neighbor_ident); + OSMO_ASSERT(ni); + *ni = (struct neighbor_ident){ + .key = *key, + .val = *val, + }; + llist_add_tail(&ni->entry, &nil->list); + return ni->val.id_list_len; + } + + rc = gsm0808_cell_id_list_add(&ni->val, val); + + if (rc < 0) + return rc; + + return ni->val.id_list_len; +} + +/*! Find cell identity for given BTS, ARFCN and BSIC, as previously added by neighbor_ident_add(). + */ +const struct gsm0808_cell_id_list2 *neighbor_ident_get(const struct neighbor_ident_list *nil, + const struct neighbor_ident_key *key) +{ + struct neighbor_ident *ni; + if (!nil) + return NULL; + ni = _neighbor_ident_get(nil, key, false); + if (!ni) + return NULL; + return &ni->val; +} + +bool neighbor_ident_del(struct neighbor_ident_list *nil, const struct neighbor_ident_key *key) +{ + struct neighbor_ident *ni; + if (!nil) + return false; + ni = _neighbor_ident_get(nil, key, true); + if (!ni) + return false; + _neighbor_ident_free(ni); + return true; +} + +void neighbor_ident_clear(struct neighbor_ident_list *nil) +{ + struct neighbor_ident *ni; + while ((ni = llist_first_entry_or_null(&nil->list, struct neighbor_ident, entry))) + _neighbor_ident_free(ni); +} + +/*! Iterate all neighbor_ident_list entries and call iter_cb for each. + * If iter_cb returns false, the iteration is stopped. */ +void neighbor_ident_iter(const struct neighbor_ident_list *nil, + bool (* iter_cb )(const struct neighbor_ident_key *key, + const struct gsm0808_cell_id_list2 *val, + void *cb_data), + void *cb_data) +{ + struct neighbor_ident *ni, *ni_next; + if (!nil) + return; + llist_for_each_entry_safe(ni, ni_next, &nil->list, entry) { + if (!iter_cb(&ni->key, &ni->val, cb_data)) + return; + } +} diff --git a/src/osmo-bsc/neighbor_ident_vty.c b/src/osmo-bsc/neighbor_ident_vty.c new file mode 100644 index 0000000..5b659fd --- /dev/null +++ b/src/osmo-bsc/neighbor_ident_vty.c @@ -0,0 +1,561 @@ +/* Quagga VTY implementation to manage identity of neighboring BSS cells for inter-BSC handover. */ +/* (C) 2018 by sysmocom - s.f.m.c. GmbH + * + * All Rights Reserved + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include + +#include +#include +#include + +static struct gsm_network *g_net = NULL; +static struct neighbor_ident_list *g_neighbor_cells = NULL; + +/* Parse VTY parameters matching NEIGHBOR_IDENT_VTY_KEY_PARAMS. Pass a pointer so that argv[0] is the + * ARFCN value followed by the BSIC keyword and value. vty *must* reference a BTS_NODE. */ +bool neighbor_ident_vty_parse_key_params(struct vty *vty, const char **argv, struct neighbor_ident_key *key) +{ + struct gsm_bts *bts = vty->index; + const char *arfcn_str = argv[0]; + const char *bsic_kind = argv[1]; + const char *bsic_str = argv[2]; + + OSMO_ASSERT(vty->node == BTS_NODE && bts); + + *key = (struct neighbor_ident_key){ + .from_bts = bts->nr, + .arfcn = atoi(arfcn_str), + }; + + if (!strcmp(bsic_str, "any")) + key->bsic_kind = BSIC_NONE; + else { + key->bsic_kind = (!strcmp(bsic_kind, "bsic9")) ? BSIC_9BIT : BSIC_6BIT; + key->bsic = atoi(bsic_str); + if (key->bsic_kind == BSIC_6BIT && key->bsic > 0x3f) { + vty_out(vty, "%% Error: BSIC value surpasses 6-bit range: %u, use 'bsic9' instead%s", + key->bsic, VTY_NEWLINE); + return false; + } + } + return true; +} + +#define NEIGHBOR_ADD_CMD "neighbor add " +#define NEIGHBOR_DEL_CMD "neighbor del " +#define NEIGHBOR_DOC "Neighbor cell list\n" +#define NEIGHBOR_ADD_DOC NEIGHBOR_DOC "Add local or remote-BSS neighbor cell\n" +#define NEIGHBOR_DEL_DOC NEIGHBOR_DOC "Remove local or remote-BSS neighbor cell\n" + +static struct gsm_bts *neighbor_ident_vty_parse_bts_nr(struct vty *vty, const char **argv) +{ + const char *bts_nr_str = argv[0]; + struct gsm_bts *bts = gsm_bts_num(g_net, atoi(bts_nr_str)); + if (!bts) + vty_out(vty, "%% No such BTS: nr = %s%s\n", bts_nr_str, VTY_NEWLINE); + return bts; +} + +static struct gsm_bts *bts_by_cell_id(struct vty *vty, struct gsm0808_cell_id *cell_id) +{ + struct gsm_bts *bts = gsm_bts_by_cell_id(g_net, cell_id); + if (!bts) + vty_out(vty, "%% No such BTS: %s%s\n", gsm0808_cell_id_name(cell_id), VTY_NEWLINE); + return bts; +} + +static struct gsm0808_cell_id *neighbor_ident_vty_parse_lac(struct vty *vty, const char **argv) +{ + static struct gsm0808_cell_id cell_id; + cell_id = (struct gsm0808_cell_id){ + .id_discr = CELL_IDENT_LAC, + .id.lac = atoi(argv[0]), + }; + return &cell_id; +} + +static struct gsm0808_cell_id *neighbor_ident_vty_parse_lac_ci(struct vty *vty, const char **argv) +{ + static struct gsm0808_cell_id cell_id; + cell_id = (struct gsm0808_cell_id){ + .id_discr = CELL_IDENT_LAC_AND_CI, + .id.lac_and_ci = { + .lac = atoi(argv[0]), + .ci = atoi(argv[1]), + }, + }; + return &cell_id; +} + +static struct gsm0808_cell_id *neighbor_ident_vty_parse_cgi(struct vty *vty, const char **argv) +{ + static struct gsm0808_cell_id cell_id; + cell_id = (struct gsm0808_cell_id){ + .id_discr = CELL_IDENT_WHOLE_GLOBAL, + }; + struct osmo_cell_global_id *cgi = &cell_id.id.global; + const char *mcc = argv[0]; + const char *mnc = argv[1]; + const char *lac = argv[2]; + const char *ci = argv[3]; + + if (osmo_mcc_from_str(mcc, &cgi->lai.plmn.mcc)) { + vty_out(vty, "%% Error decoding MCC: %s%s", mcc, VTY_NEWLINE); + return NULL; + } + + if (osmo_mnc_from_str(mnc, &cgi->lai.plmn.mnc, &cgi->lai.plmn.mnc_3_digits)) { + vty_out(vty, "%% Error decoding MNC: %s%s", mnc, VTY_NEWLINE); + return NULL; + } + + cgi->lai.lac = atoi(lac); + cgi->cell_identity = atoi(ci); + return &cell_id; +} + +static int add_local_bts(struct vty *vty, struct gsm_bts *neigh) +{ + int rc; + struct gsm_bts *bts = vty->index; + if (vty->node != BTS_NODE) { + vty_out(vty, "%% Error: cannot add local BTS neighbor, not on BTS node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!bts) { + vty_out(vty, "%% Error: cannot add local BTS neighbor, no BTS on this node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!neigh) { + vty_out(vty, "%% Error: cannot add local BTS neighbor to BTS %u, no such neighbor BTS%s" + "%% (To add remote-BSS neighbors, pass full ARFCN and BSIC as well)%s", + bts->nr, VTY_NEWLINE, VTY_NEWLINE); + return CMD_WARNING; + } + rc = gsm_bts_local_neighbor_add(bts, neigh); + if (rc < 0) { + vty_out(vty, "%% Error: cannot add local BTS %u as neighbor to BTS %u: %s%s", + neigh->nr, bts->nr, strerror(-rc), VTY_NEWLINE); + return CMD_WARNING; + } else + vty_out(vty, "%% BTS %u %s local neighbor BTS %u with LAC %u CI %u and ARFCN %u BSIC %u%s", + bts->nr, rc? "now has" : "already had", + neigh->nr, neigh->location_area_code, neigh->cell_identity, + neigh->c0->arfcn, neigh->bsic, VTY_NEWLINE); + return CMD_SUCCESS; +} + +static int del_local_bts(struct vty *vty, struct gsm_bts *neigh) +{ + int rc; + struct gsm_bts *bts = vty->index; + if (vty->node != BTS_NODE) { + vty_out(vty, "%% Error: cannot remove local BTS neighbor, not on BTS node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!bts) { + vty_out(vty, "%% Error: cannot remove local BTS neighbor, no BTS on this node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!neigh) { + vty_out(vty, "%% Error: cannot remove local BTS neighbor from BTS %u, no such neighbor BTS%s", + bts->nr, VTY_NEWLINE); + return CMD_WARNING; + } + rc = gsm_bts_local_neighbor_del(bts, neigh); + if (rc < 0) { + vty_out(vty, "%% Error: cannot remove local BTS %u neighbor from BTS %u: %s%s", + neigh->nr, bts->nr, strerror(-rc), VTY_NEWLINE); + return CMD_WARNING; + } + if (rc == 0) + vty_out(vty, "%% BTS %u is no neighbor of BTS %u%s", + neigh->nr, bts->nr, VTY_NEWLINE); + return CMD_SUCCESS; +} + +DEFUN(cfg_neighbor_add_bts_nr, cfg_neighbor_add_bts_nr_cmd, + NEIGHBOR_ADD_CMD "bts <0-255>", + NEIGHBOR_ADD_DOC "Neighbor cell by local BTS number\n" "BTS number\n") +{ + return add_local_bts(vty, neighbor_ident_vty_parse_bts_nr(vty, argv)); +} + +DEFUN(cfg_neighbor_add_lac, cfg_neighbor_add_lac_cmd, + NEIGHBOR_ADD_CMD "lac <0-65535>", + NEIGHBOR_ADD_DOC "Neighbor cell by LAC\n" "LAC\n") +{ + return add_local_bts(vty, bts_by_cell_id(vty, neighbor_ident_vty_parse_lac(vty, argv))); +} + +DEFUN(cfg_neighbor_add_lac_ci, cfg_neighbor_add_lac_ci_cmd, + NEIGHBOR_ADD_CMD "lac-ci <0-65535> <0-255>", + NEIGHBOR_ADD_DOC "Neighbor cell by LAC and CI\n" "LAC\n" "CI\n") +{ + return add_local_bts(vty, bts_by_cell_id(vty, neighbor_ident_vty_parse_lac_ci(vty, argv))); +} + +bool neighbor_ident_key_matches_bts(const struct neighbor_ident_key *key, struct gsm_bts *bts) +{ + if (!bts || !key) + return false; + return key->arfcn == bts->c0->arfcn + && (key->bsic_kind == BSIC_NONE || key->bsic == bts->bsic); +} + +static int add_remote_or_local_bts(struct vty *vty, const struct gsm0808_cell_id *cell_id, + const struct neighbor_ident_key *key) +{ + int rc; + struct gsm_bts *local_neigh; + struct gsm0808_cell_id_list2 cil; + struct gsm_bts *bts = vty->index; + + if (vty->node != BTS_NODE) { + vty_out(vty, "%% Error: cannot add BTS neighbor, not on BTS node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!bts) { + vty_out(vty, "%% Error: cannot add BTS neighbor, no BTS on this node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + /* Is there a local BTS that matches the cell_id? */ + local_neigh = gsm_bts_by_cell_id(g_net, cell_id); + if (local_neigh) { + /* But do the advertised ARFCN and BSIC match as intended? + * The user may omit ARFCN and BSIC for local cells, but if they are provided, + * they need to match. */ + if (!neighbor_ident_key_matches_bts(key, local_neigh)) { + vty_out(vty, "%% Error: bts %u: neighbor cell id %s indicates local BTS %u," + " but it does not match ARFCN+BSIC %s%s", + bts->nr, gsm0808_cell_id_name(cell_id), local_neigh->nr, + neighbor_ident_key_name(key), VTY_NEWLINE); + /* TODO: error out fatally for non-interactive VTY? */ + return CMD_WARNING; + } + return add_local_bts(vty, local_neigh); + } + + /* The cell_id is not known in this BSS, so it must be a remote cell. */ + gsm0808_cell_id_to_list(&cil, cell_id); + rc = neighbor_ident_add(g_neighbor_cells, key, &cil); + + if (rc < 0) { + const char *reason; + switch (rc) { + case -EINVAL: + reason = ": mismatching type between current and newly added cell identifier"; + break; + case -ENOSPC: + reason = ": list is full"; + break; + default: + reason = ""; + break; + } + + vty_out(vty, "%% Error adding neighbor-BSS Cell Identifier %s%s%s", + gsm0808_cell_id_name(cell_id), reason, VTY_NEWLINE); + return CMD_WARNING; + } + + vty_out(vty, "%% %s now has %d remote BSS Cell Identifier List %s%s", + neighbor_ident_key_name(key), rc, rc == 1? "entry" : "entries", VTY_NEWLINE); + return CMD_SUCCESS; +} + +static int del_by_key(struct vty *vty, const struct neighbor_ident_key *key) +{ + int removed = 0; + int rc; + struct gsm_bts *bts = vty->index; + struct gsm_bts_ref *neigh, *safe; + + if (vty->node != BTS_NODE) { + vty_out(vty, "%% Error: cannot remove BTS neighbor, not on BTS node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!bts) { + vty_out(vty, "%% Error: cannot remove BTS neighbor, no BTS on this node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + /* Is there a local BTS that matches the key? */ + llist_for_each_entry_safe(neigh, safe, &bts->local_neighbors, entry) { + struct gsm_bts *neigh_bts = neigh->bts; + if (!neighbor_ident_key_matches_bts(key, neigh->bts)) + continue; + rc = gsm_bts_local_neighbor_del(bts, neigh->bts); + if (rc > 0) { + vty_out(vty, "%% Removed local neighbor bts %u to bts %u%s", + bts->nr, neigh_bts->nr, VTY_NEWLINE); + removed += rc; + } + } + + if (neighbor_ident_del(g_neighbor_cells, key)) { + vty_out(vty, "%% Removed remote BSS neighbor %s%s", + neighbor_ident_key_name(key), VTY_NEWLINE); + removed ++; + } + + if (!removed) { + vty_out(vty, "%% Cannot remove, no such neighbor: %s%s", + neighbor_ident_key_name(key), VTY_NEWLINE); + return CMD_WARNING; + } + return CMD_SUCCESS; +} + +DEFUN(cfg_neighbor_add_lac_arfcn_bsic, cfg_neighbor_add_lac_arfcn_bsic_cmd, + NEIGHBOR_ADD_CMD "lac <0-65535> " NEIGHBOR_IDENT_VTY_KEY_PARAMS, + NEIGHBOR_ADD_DOC "Neighbor cell by lac\n" "lac\n" NEIGHBOR_IDENT_VTY_KEY_DOC) +{ + struct neighbor_ident_key nik; + struct gsm0808_cell_id *cell_id = neighbor_ident_vty_parse_lac(vty, argv); + if (!cell_id) + return CMD_WARNING; + if (!neighbor_ident_vty_parse_key_params(vty, argv + 1, &nik)) + return CMD_WARNING; + return add_remote_or_local_bts(vty, cell_id, &nik); +} + +DEFUN(cfg_neighbor_add_lac_ci_arfcn_bsic, cfg_neighbor_add_lac_ci_arfcn_bsic_cmd, + NEIGHBOR_ADD_CMD "lac-ci <0-65535> <0-255> " NEIGHBOR_IDENT_VTY_KEY_PARAMS, + NEIGHBOR_ADD_DOC "Neighbor cell by LAC and CI\n" "LAC\n" "CI\n" NEIGHBOR_IDENT_VTY_KEY_DOC) +{ + struct neighbor_ident_key nik; + struct gsm0808_cell_id *cell_id = neighbor_ident_vty_parse_lac_ci(vty, argv); + if (!cell_id) + return CMD_WARNING; + if (!neighbor_ident_vty_parse_key_params(vty, argv + 2, &nik)) + return CMD_WARNING; + return add_remote_or_local_bts(vty, cell_id, &nik); +} + +DEFUN(cfg_neighbor_add_cgi_arfcn_bsic, cfg_neighbor_add_cgi_arfcn_bsic_cmd, + NEIGHBOR_ADD_CMD "cgi <0-999> <0-999> <0-65535> <0-255> " NEIGHBOR_IDENT_VTY_KEY_PARAMS, + NEIGHBOR_ADD_DOC "Neighbor cell by cgi\n" "MCC\n" "MNC\n" "LAC\n" "CI\n" NEIGHBOR_IDENT_VTY_KEY_DOC) +{ + struct neighbor_ident_key nik; + struct gsm0808_cell_id *cell_id = neighbor_ident_vty_parse_cgi(vty, argv); + if (!cell_id) + return CMD_WARNING; + if (!neighbor_ident_vty_parse_key_params(vty, argv + 4, &nik)) + return CMD_WARNING; + return add_remote_or_local_bts(vty, cell_id, &nik); +} + +DEFUN(cfg_neighbor_del_bts_nr, cfg_neighbor_del_bts_nr_cmd, + NEIGHBOR_DEL_CMD "bts <0-255>", + NEIGHBOR_DEL_DOC "Neighbor cell by local BTS number\n" "BTS number\n") +{ + return del_local_bts(vty, neighbor_ident_vty_parse_bts_nr(vty, argv)); +} + +DEFUN(cfg_neighbor_del_arfcn_bsic, cfg_neighbor_del_arfcn_bsic_cmd, + NEIGHBOR_DEL_CMD NEIGHBOR_IDENT_VTY_KEY_PARAMS, + NEIGHBOR_DEL_DOC NEIGHBOR_IDENT_VTY_KEY_DOC) +{ + struct neighbor_ident_key key; + + if (!neighbor_ident_vty_parse_key_params(vty, argv, &key)) + return CMD_WARNING; + + return del_by_key(vty, &key); +} + +struct write_neighbor_ident_entry_data { + struct vty *vty; + const char *indent; + struct gsm_bts *bts; +}; + +static bool write_neighbor_ident_list(const struct neighbor_ident_key *key, + const struct gsm0808_cell_id_list2 *val, + void *cb_data) +{ + struct write_neighbor_ident_entry_data *d = cb_data; + struct vty *vty = d->vty; + int i; + + if (d->bts) { + if (d->bts->nr != key->from_bts) + return true; + } else if (key->from_bts != NEIGHBOR_IDENT_KEY_ANY_BTS) + return true; + +#define NEIGH_BSS_WRITE(fmt, args...) do { \ + vty_out(vty, "%sneighbor add " fmt " arfcn %u ", d->indent, ## args, key->arfcn); \ + switch (key->bsic_kind) { \ + default: \ + case BSIC_NONE: \ + vty_out(vty, "bsic any"); \ + break; \ + case BSIC_6BIT: \ + vty_out(vty, "bsic %u", key->bsic & 0x3f); \ + break; \ + case BSIC_9BIT: \ + vty_out(vty, "bsic9 %u", key->bsic & 0x1ff); \ + break; \ + } \ + vty_out(vty, "%s", VTY_NEWLINE); \ + } while(0) + + switch (val->id_discr) { + case CELL_IDENT_LAC: + for (i = 0; i < val->id_list_len; i++) { + NEIGH_BSS_WRITE("lac %u", val->id_list[i].lac); + } + break; + case CELL_IDENT_LAC_AND_CI: + for (i = 0; i < val->id_list_len; i++) { + NEIGH_BSS_WRITE("lac-ci %u %u", + val->id_list[i].lac_and_ci.lac, + val->id_list[i].lac_and_ci.ci); + } + break; + case CELL_IDENT_WHOLE_GLOBAL: + for (i = 0; i < val->id_list_len; i++) { + const struct osmo_cell_global_id *cgi = &val->id_list[i].global; + NEIGH_BSS_WRITE("cgi %s %s %u %u", + osmo_mcc_name(cgi->lai.plmn.mcc), + osmo_mnc_name(cgi->lai.plmn.mnc, cgi->lai.plmn.mnc_3_digits), + cgi->lai.lac, cgi->cell_identity); + } + break; + default: + vty_out(vty, "%% Unsupported Cell Identity%s", VTY_NEWLINE); + } +#undef NEIGH_BSS_WRITE + + return true; +} + +void neighbor_ident_vty_write_remote_bss(struct vty *vty, const char *indent, struct gsm_bts *bts) +{ + struct write_neighbor_ident_entry_data d = { + .vty = vty, + .indent = indent, + .bts = bts, + }; + + neighbor_ident_iter(g_neighbor_cells, write_neighbor_ident_list, &d); +} + +void neighbor_ident_vty_write_local_neighbors(struct vty *vty, const char *indent, struct gsm_bts *bts) +{ + struct gsm_bts_ref *neigh; + + llist_for_each_entry(neigh, &bts->local_neighbors, entry) { + vty_out(vty, "%sneighbor add lac-ci %u %u%s", + indent, neigh->bts->location_area_code, neigh->bts->cell_identity, + VTY_NEWLINE); + } +} + +void neighbor_ident_vty_write(struct vty *vty, const char *indent, struct gsm_bts *bts) +{ + neighbor_ident_vty_write_local_neighbors(vty, indent, bts); + neighbor_ident_vty_write_remote_bss(vty, indent, bts); +} + +DEFUN(cfg_neighbor_resolve, cfg_neighbor_resolve_cmd, + "neighbor resolve " NEIGHBOR_IDENT_VTY_KEY_PARAMS, + NEIGHBOR_DOC + "Query which cell would be the target for this neighbor ARFCN+BSIC\n" + NEIGHBOR_IDENT_VTY_KEY_DOC) +{ + int found = 0; + struct neighbor_ident_key key; + struct gsm_bts_ref *neigh; + const struct gsm0808_cell_id_list2 *res; + struct gsm_bts *bts = vty->index; + struct write_neighbor_ident_entry_data d = { + .vty = vty, + .indent = "% ", + .bts = bts, + }; + + if (vty->node != BTS_NODE) { + vty_out(vty, "%% Error: cannot query BTS neighbor, not on BTS node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!bts) { + vty_out(vty, "%% Error: cannot query BTS neighbor, no BTS on this node%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if (!neighbor_ident_vty_parse_key_params(vty, argv, &key)) + return CMD_WARNING; + + /* Is there a local BTS that matches the key? */ + llist_for_each_entry(neigh, &bts->local_neighbors, entry) { + if (!neighbor_ident_key_matches_bts(&key, neigh->bts)) + continue; + vty_out(vty, "%% %s resolves to local BTS %u lac-ci %u %u%s", + neighbor_ident_key_name(&key), neigh->bts->nr, neigh->bts->location_area_code, + neigh->bts->cell_identity, VTY_NEWLINE); + found++; + } + + res = neighbor_ident_get(g_neighbor_cells, &key); + if (res) { + write_neighbor_ident_list(&key, res, &d); + found++; + } + + if (!found) + vty_out(vty, "%% No entry for %s%s", neighbor_ident_key_name(&key), VTY_NEWLINE); + + return CMD_SUCCESS; +} + +void neighbor_ident_vty_init(struct gsm_network *net, struct neighbor_ident_list *nil) +{ + g_net = net; + g_neighbor_cells = nil; + install_element(BTS_NODE, &cfg_neighbor_add_bts_nr_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_lac_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_lac_ci_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_lac_arfcn_bsic_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_lac_ci_arfcn_bsic_cmd); + install_element(BTS_NODE, &cfg_neighbor_add_cgi_arfcn_bsic_cmd); + install_element(BTS_NODE, &cfg_neighbor_del_bts_nr_cmd); + install_element(BTS_NODE, &cfg_neighbor_del_arfcn_bsic_cmd); + install_element(BTS_NODE, &cfg_neighbor_resolve_cmd); +} diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index 3ee35fe..db3d01c 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -22,6 +22,7 @@ #include #include #include +#include /* Initialize the bare minimum of struct gsm_network, minimizing required dependencies. * This part is shared among the thin programs in osmo-bsc/src/utils/. diff --git a/src/osmo-bsc/system_information.c b/src/osmo-bsc/system_information.c index d99153f..071baba 100644 --- a/src/osmo-bsc/system_information.c +++ b/src/osmo-bsc/system_information.c @@ -40,6 +40,9 @@ #include #include #include +#include + +struct gsm0808_cell_id_list2; /* * DCS1800 and PCS1900 have overlapping ARFCNs. We would need to set the @@ -588,6 +591,25 @@ return bitvec2freq_list(chan_list, bv, bts, false, false); } +struct generate_bcch_chan_list__ni_iter_data { + struct gsm_bts *bts; + struct bitvec *bv; +}; + +static bool generate_bcch_chan_list__ni_iter_cb(const struct neighbor_ident_key *key, + const struct gsm0808_cell_id_list2 *val, + void *cb_data) +{ + struct generate_bcch_chan_list__ni_iter_data *data = cb_data; + + if (key->from_bts != NEIGHBOR_IDENT_KEY_ANY_BTS + && key->from_bts != data->bts->nr) + return true; + + bitvec_set_bit_pos(data->bv, key->arfcn, 1); + return true; +} + /*! generate a cell channel list as per Section 10.5.2.22 of 04.08 * \param[out] chan_list caller-provided output buffer * \param[in] bts BTS descriptor used for input data @@ -602,6 +624,7 @@ struct bitvec *bv; int rc; + /* first we generate a bitvec of the BCCH ARFCN's in our BSC */ if (si5 && bts->neigh_list_manual_mode == NL_MODE_MANUAL_SI5SEP) bv = &bts->si_common.si5_neigh_list; else @@ -612,11 +635,29 @@ /* Zero-initialize the bit-vector */ memset(bv->data, 0, bv->data_len); - /* first we generate a bitvec of the BCCH ARFCN's in our BSC */ - llist_for_each_entry(cur_bts, &bts->network->bts_list, list) { - if (cur_bts == bts) - continue; - bitvec_set_bit_pos(bv, cur_bts->c0->arfcn, 1); + if (llist_empty(&bts->local_neighbors)) { + /* There are no explicit neighbors, assume all BTS are. */ + llist_for_each_entry(cur_bts, &bts->network->bts_list, list) { + if (cur_bts == bts) + continue; + bitvec_set_bit_pos(bv, cur_bts->c0->arfcn, 1); + } + } else { + /* Only add explicit neighbor cells */ + struct gsm_bts_ref *neigh; + llist_for_each_entry(neigh, &bts->local_neighbors, entry) { + bitvec_set_bit_pos(bv, neigh->bts->c0->arfcn, 1); + } + } + + /* Also add neighboring BSS cells' ARFCNs */ + { + struct generate_bcch_chan_list__ni_iter_data data = { + .bv = bv, + .bts = bts, + }; + neighbor_ident_iter(bts->network->neighbor_bss_cells, + generate_bcch_chan_list__ni_iter_cb, &data); } } diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index a930629..2e34d79 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -45,6 +45,7 @@ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/handover_cfg.o \ $(top_builddir)/src/osmo-bsc/handover_logic.o \ + $(top_builddir)/src/osmo-bsc/neighbor_ident.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ $(top_builddir)/src/osmo-bsc/paging.o \ $(top_builddir)/src/osmo-bsc/pcu_sock.o \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 6d10b9f..3eb47f6 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -28,6 +28,7 @@ $(top_builddir)/src/osmo-bsc/net_init.o \ $(top_builddir)/src/osmo-bsc/rest_octets.o \ $(top_builddir)/src/osmo-bsc/system_information.o \ + $(top_builddir)/src/osmo-bsc/neighbor_ident.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 07491d5..2f84d7a 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -23,6 +23,7 @@ noinst_PROGRAMS = \ handover_test \ + neighbor_ident_test \ $(NULL) handover_test_SOURCES = \ @@ -56,6 +57,7 @@ $(top_builddir)/src/osmo-bsc/handover_decision_2.o \ $(top_builddir)/src/osmo-bsc/handover_logic.o \ $(top_builddir)/src/osmo-bsc/meas_rep.o \ + $(top_builddir)/src/osmo-bsc/neighbor_ident.o \ $(top_builddir)/src/osmo-bsc/osmo_bsc_lcls.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ $(top_builddir)/src/osmo-bsc/paging.o \ @@ -69,3 +71,17 @@ $(LIBOSMOSIGTRAN_LIBS) \ $(LIBOSMOMGCPCLIENT_LIBS) \ $(NULL) + +neighbor_ident_test_SOURCES = \ + neighbor_ident_test.c \ + $(NULL) + +neighbor_ident_test_LDADD = \ + $(top_builddir)/src/osmo-bsc/neighbor_ident.o \ + $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOGSM_LIBS) \ + $(NULL) + +.PHONY: update_exp +update_exp: + $(builddir)/neighbor_ident_test >$(srcdir)/neighbor_ident_test.ok 2>$(srcdir)/neighbor_ident_test.err diff --git a/tests/handover/neighbor_ident_test.c b/tests/handover/neighbor_ident_test.c new file mode 100644 index 0000000..b67219c --- /dev/null +++ b/tests/handover/neighbor_ident_test.c @@ -0,0 +1,278 @@ +/* Test the neighbor_ident.h API */ +/* + * (C) 2018 by sysmocom - s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include + +#include + +struct neighbor_ident_list *nil; + +static const struct neighbor_ident_key *k(int from_bts, uint16_t arfcn, enum bsic_kind kind, uint16_t bsic) +{ + static struct neighbor_ident_key key; + key = (struct neighbor_ident_key){ + .from_bts = from_bts, + .arfcn = arfcn, + .bsic_kind = kind, + .bsic = bsic, + }; + return &key; +} + +static const struct gsm0808_cell_id_list2 cgi1 = { + .id_discr = CELL_IDENT_WHOLE_GLOBAL, + .id_list_len = 1, + .id_list = { + { + .global = { + .lai = { + .plmn = { .mcc = 1, .mnc = 2, .mnc_3_digits = false }, + .lac = 3, + }, + .cell_identity = 4, + } + }, + }, +}; + +static const struct gsm0808_cell_id_list2 cgi2 = { + .id_discr = CELL_IDENT_WHOLE_GLOBAL, + .id_list_len = 2, + .id_list = { + { + .global = { + .lai = { + .plmn = { .mcc = 1, .mnc = 2, .mnc_3_digits = false }, + .lac = 3, + }, + .cell_identity = 4, + } + }, + { + .global = { + .lai = { + .plmn = { .mcc = 5, .mnc = 6, .mnc_3_digits = true }, + .lac = 7, + }, + .cell_identity = 8, + } + }, + }, +}; + +static const struct gsm0808_cell_id_list2 lac1 = { + .id_discr = CELL_IDENT_LAC, + .id_list_len = 1, + .id_list = { + { + .lac = 123 + }, + }, +}; + +static const struct gsm0808_cell_id_list2 lac2 = { + .id_discr = CELL_IDENT_LAC, + .id_list_len = 2, + .id_list = { + { + .lac = 456 + }, + { + .lac = 789 + }, + }, +}; + +void print_cil(const struct gsm0808_cell_id_list2 *cil) +{ + unsigned int i; + if (!cil) { + printf(" cell_id_list == NULL\n"); + return; + } + switch (cil->id_discr) { + case CELL_IDENT_WHOLE_GLOBAL: + printf(" cell_id_list cgi[%u] = {\n", cil->id_list_len); + for (i = 0; i < cil->id_list_len; i++) + printf(" %2d: %s\n", i, osmo_cgi_name(&cil->id_list[i].global)); + printf(" }\n"); + break; + case CELL_IDENT_LAC: + printf(" cell_id_list lac[%u] = {\n", cil->id_list_len); + for (i = 0; i < cil->id_list_len; i++) + printf(" %2d: %u\n", i, cil->id_list[i].lac); + printf(" }\n"); + break; + default: + printf(" Unimplemented id_disc\n"); + } +} + +static int print_nil_i; + +bool nil_cb(const struct neighbor_ident_key *key, const struct gsm0808_cell_id_list2 *val, + void *cb_data) +{ + printf(" %2d: %s\n", print_nil_i++, neighbor_ident_key_name(key)); + print_cil(val); + return true; +} + +void print_nil() +{ + print_nil_i = 0; + neighbor_ident_iter(nil, nil_cb, NULL); + if (!print_nil_i) + printf(" (empty)\n"); +} + +#define check_add(key, val, expect_rc) \ + do { \ + int rc; \ + rc = neighbor_ident_add(nil, key, val); \ + printf("neighbor_ident_add(" #key ", " #val ") --> expect rc=" #expect_rc ", got %d\n", rc); \ + if (rc != expect_rc) \ + printf("ERROR\n"); \ + print_nil(); \ + } while(0) + +#define check_del(key, expect_rc) \ + do { \ + bool rc; \ + rc = neighbor_ident_del(nil, key); \ + printf("neighbor_ident_del(" #key ") --> %s\n", rc ? "entry deleted" : "nothing deleted"); \ + if (rc != expect_rc) \ + printf("ERROR: expected: %s\n", expect_rc ? "entry deleted" : "nothing deleted"); \ + print_nil(); \ + } while(0) + +#define check_get(key, expect_rc) \ + do { \ + const struct gsm0808_cell_id_list2 *rc; \ + rc = neighbor_ident_get(nil, key); \ + printf("neighbor_ident_get(" #key ") --> %s\n", \ + rc ? "entry returned" : "NULL"); \ + if (((bool)expect_rc) != ((bool) rc)) \ + printf("ERROR: expected %s\n", expect_rc ? "an entry" : "NULL"); \ + if (rc) \ + print_cil(rc); \ + } while(0) + +int main(void) +{ + void *ctx = talloc_named_const(NULL, 0, "neighbor_ident_test"); + + printf("\n--- testing NULL neighbor_ident_list\n"); + nil = NULL; + check_add(k(0, 1, BSIC_6BIT, 2), &cgi1, -ENOMEM); + check_get(k(0, 1, BSIC_6BIT, 2), false); + check_del(k(0, 1, BSIC_6BIT, 2), false); + + printf("\n--- adding entries, test that no two identical entries are added\n"); + nil = neighbor_ident_init(ctx); + check_add(k(0, 1, BSIC_6BIT, 2), &cgi1, 1); + check_get(k(0, 1, BSIC_6BIT, 2), true); + check_add(k(0, 1, BSIC_6BIT, 2), &cgi1, 1); + check_add(k(0, 1, BSIC_6BIT, 2), &cgi2, 2); + check_add(k(0, 1, BSIC_6BIT, 2), &cgi2, 2); + check_del(k(0, 1, BSIC_6BIT, 2), true); + + printf("\n--- Cannot mix cell identifier types for one entry\n"); + check_add(k(0, 1, BSIC_6BIT, 2), &cgi1, 1); + check_add(k(0, 1, BSIC_6BIT, 2), &lac1, -EINVAL); + check_del(k(0, 1, BSIC_6BIT, 2), true); + neighbor_ident_free(nil); + + printf("\n--- BTS matching: specific BTS is stronger\n"); + nil = neighbor_ident_init(ctx); + check_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, BSIC_6BIT, 2), &lac1, 1); + check_add(k(3, 1, BSIC_6BIT, 2), &lac2, 2); + check_get(k(2, 1, BSIC_6BIT, 2), true); + check_get(k(3, 1, BSIC_6BIT, 2), true); + check_get(k(4, 1, BSIC_6BIT, 2), true); + check_get(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, BSIC_6BIT, 2), true); + neighbor_ident_free(nil); + + printf("\n--- BSIC matching: 6bit and 9bit are different realms, and wildcard match is weaker\n"); + nil = neighbor_ident_init(ctx); + check_add(k(0, 1, BSIC_NONE, 0), &cgi1, 1); + check_add(k(0, 1, BSIC_6BIT, 2), &lac1, 1); + check_add(k(0, 1, BSIC_9BIT, 2), &lac2, 2); + check_get(k(0, 1, BSIC_6BIT, 2), true); + check_get(k(0, 1, BSIC_9BIT, 2), true); + printf("--- wildcard matches both 6bit and 9bit BSIC regardless:\n"); + check_get(k(0, 1, BSIC_6BIT, 23), true); + check_get(k(0, 1, BSIC_9BIT, 23), true); + neighbor_ident_free(nil); + + printf("\n--- Value ranges\n"); + nil = neighbor_ident_init(ctx); + check_add(k(0, 6, BSIC_6BIT, 1 << 6), &lac1, -ERANGE); + check_add(k(0, 9, BSIC_9BIT, 1 << 9), &lac1, -ERANGE); + check_add(k(0, 6, BSIC_6BIT, -1), &lac1, -ERANGE); + check_add(k(0, 9, BSIC_9BIT, -1), &lac1, -ERANGE); + check_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS - 1, 1, BSIC_NONE, 1), &cgi2, -ERANGE); + check_add(k(256, 1, BSIC_NONE, 1), &cgi2, -ERANGE); + check_add(k(0, 0, BSIC_NONE, 0), &cgi1, 1); + check_add(k(255, 65535, BSIC_NONE, 65535), &lac1, 1); + check_add(k(0, 0, BSIC_6BIT, 0), &cgi2, 2); + check_add(k(255, 65535, BSIC_6BIT, 0x3f), &lac2, 2); + check_add(k(0, 0, BSIC_9BIT, 0), &cgi1, 1); + check_add(k(255, 65535, BSIC_9BIT, 0x1ff), &cgi2, 2); + + neighbor_ident_free(nil); + + printf("\n--- size limits\n"); + { + int i; + struct gsm0808_cell_id_list2 a = { .id_discr = CELL_IDENT_LAC }; + struct gsm0808_cell_id_list2 b = { + .id_discr = CELL_IDENT_LAC, + .id_list = { + { .lac = 423 } + }, + .id_list_len = 1, + }; + for (i = 0; i < ARRAY_SIZE(a.id_list); i++) { + a.id_list[a.id_list_len ++].lac = i; + } + + nil = neighbor_ident_init(ctx); + + i = neighbor_ident_add(nil, k(0, 1, BSIC_6BIT, 2), &a); + printf("Added first cell identifier list (added %u) --> rc = %d\n", a.id_list_len, i); + i = neighbor_ident_add(nil, k(0, 1, BSIC_6BIT, 2), &b); + printf("Added second cell identifier list (tried to add %u) --> rc = %d\n", b.id_list_len, i); + if (i != -ENOSPC) + printf("ERROR: expected rc=%d\n", -ENOSPC); + neighbor_ident_free(nil); + } + + OSMO_ASSERT(talloc_total_blocks(ctx) == 1); + talloc_free(ctx); + + return 0; +} diff --git a/tests/handover/neighbor_ident_test.err b/tests/handover/neighbor_ident_test.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/tests/handover/neighbor_ident_test.err diff --git a/tests/handover/neighbor_ident_test.ok b/tests/handover/neighbor_ident_test.ok new file mode 100644 index 0000000..280b6f2 --- /dev/null +++ b/tests/handover/neighbor_ident_test.ok @@ -0,0 +1,249 @@ + +--- testing NULL neighbor_ident_list +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &cgi1) --> expect rc=-ENOMEM, got -12 + (empty) +neighbor_ident_get(k(0, 1, BSIC_6BIT, 2)) --> NULL +neighbor_ident_del(k(0, 1, BSIC_6BIT, 2)) --> nothing deleted + (empty) + +--- adding entries, test that no two identical entries are added +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &cgi1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_get(k(0, 1, BSIC_6BIT, 2)) --> entry returned + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &cgi1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &cgi2) --> expect rc=2, got 2 + 0: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list cgi[2] = { + 0: 001-02-3-4 + 1: 005-006-7-8 + } +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &cgi2) --> expect rc=2, got 2 + 0: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list cgi[2] = { + 0: 001-02-3-4 + 1: 005-006-7-8 + } +neighbor_ident_del(k(0, 1, BSIC_6BIT, 2)) --> entry deleted + (empty) + +--- Cannot mix cell identifier types for one entry +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &cgi1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &lac1) --> expect rc=-EINVAL, got -22 + 0: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_del(k(0, 1, BSIC_6BIT, 2)) --> entry deleted + (empty) + +--- BTS matching: specific BTS is stronger +neighbor_ident_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, BSIC_6BIT, 2), &lac1) --> expect rc=1, got 1 + 0: BTS * to ARFCN 1 BSIC 2 + cell_id_list lac[1] = { + 0: 123 + } +neighbor_ident_add(k(3, 1, BSIC_6BIT, 2), &lac2) --> expect rc=2, got 2 + 0: BTS * to ARFCN 1 BSIC 2 + cell_id_list lac[1] = { + 0: 123 + } + 1: BTS 3 to ARFCN 1 BSIC 2 + cell_id_list lac[2] = { + 0: 456 + 1: 789 + } +neighbor_ident_get(k(2, 1, BSIC_6BIT, 2)) --> entry returned + cell_id_list lac[1] = { + 0: 123 + } +neighbor_ident_get(k(3, 1, BSIC_6BIT, 2)) --> entry returned + cell_id_list lac[2] = { + 0: 456 + 1: 789 + } +neighbor_ident_get(k(4, 1, BSIC_6BIT, 2)) --> entry returned + cell_id_list lac[1] = { + 0: 123 + } +neighbor_ident_get(k(NEIGHBOR_IDENT_KEY_ANY_BTS, 1, BSIC_6BIT, 2)) --> entry returned + cell_id_list lac[1] = { + 0: 123 + } + +--- BSIC matching: 6bit and 9bit are different realms, and wildcard match is weaker +neighbor_ident_add(k(0, 1, BSIC_NONE, 0), &cgi1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 1 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_add(k(0, 1, BSIC_6BIT, 2), &lac1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 1 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 1: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list lac[1] = { + 0: 123 + } +neighbor_ident_add(k(0, 1, BSIC_9BIT, 2), &lac2) --> expect rc=2, got 2 + 0: BTS 0 to ARFCN 1 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 1: BTS 0 to ARFCN 1 BSIC 2 + cell_id_list lac[1] = { + 0: 123 + } + 2: BTS 0 to ARFCN 1 BSIC 2(9bit) + cell_id_list lac[2] = { + 0: 456 + 1: 789 + } +neighbor_ident_get(k(0, 1, BSIC_6BIT, 2)) --> entry returned + cell_id_list lac[1] = { + 0: 123 + } +neighbor_ident_get(k(0, 1, BSIC_9BIT, 2)) --> entry returned + cell_id_list lac[2] = { + 0: 456 + 1: 789 + } +--- wildcard matches both 6bit and 9bit BSIC regardless: +neighbor_ident_get(k(0, 1, BSIC_6BIT, 23)) --> entry returned + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_get(k(0, 1, BSIC_9BIT, 23)) --> entry returned + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + +--- Value ranges +neighbor_ident_add(k(0, 6, BSIC_6BIT, 1 << 6), &lac1) --> expect rc=-ERANGE, got -34 + (empty) +neighbor_ident_add(k(0, 9, BSIC_9BIT, 1 << 9), &lac1) --> expect rc=-ERANGE, got -34 + (empty) +neighbor_ident_add(k(0, 6, BSIC_6BIT, -1), &lac1) --> expect rc=-ERANGE, got -34 + (empty) +neighbor_ident_add(k(0, 9, BSIC_9BIT, -1), &lac1) --> expect rc=-ERANGE, got -34 + (empty) +neighbor_ident_add(k(NEIGHBOR_IDENT_KEY_ANY_BTS - 1, 1, BSIC_NONE, 1), &cgi2) --> expect rc=-ERANGE, got -34 + (empty) +neighbor_ident_add(k(256, 1, BSIC_NONE, 1), &cgi2) --> expect rc=-ERANGE, got -34 + (empty) +neighbor_ident_add(k(0, 0, BSIC_NONE, 0), &cgi1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 0 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_add(k(255, 65535, BSIC_NONE, 65535), &lac1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 0 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 1: BTS 255 to ARFCN 65535 (any BSIC) + cell_id_list lac[1] = { + 0: 123 + } +neighbor_ident_add(k(0, 0, BSIC_6BIT, 0), &cgi2) --> expect rc=2, got 2 + 0: BTS 0 to ARFCN 0 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 1: BTS 255 to ARFCN 65535 (any BSIC) + cell_id_list lac[1] = { + 0: 123 + } + 2: BTS 0 to ARFCN 0 BSIC 0 + cell_id_list cgi[2] = { + 0: 001-02-3-4 + 1: 005-006-7-8 + } +neighbor_ident_add(k(255, 65535, BSIC_6BIT, 0x3f), &lac2) --> expect rc=2, got 2 + 0: BTS 0 to ARFCN 0 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 1: BTS 255 to ARFCN 65535 (any BSIC) + cell_id_list lac[1] = { + 0: 123 + } + 2: BTS 0 to ARFCN 0 BSIC 0 + cell_id_list cgi[2] = { + 0: 001-02-3-4 + 1: 005-006-7-8 + } + 3: BTS 255 to ARFCN 65535 BSIC 63 + cell_id_list lac[2] = { + 0: 456 + 1: 789 + } +neighbor_ident_add(k(0, 0, BSIC_9BIT, 0), &cgi1) --> expect rc=1, got 1 + 0: BTS 0 to ARFCN 0 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 1: BTS 255 to ARFCN 65535 (any BSIC) + cell_id_list lac[1] = { + 0: 123 + } + 2: BTS 0 to ARFCN 0 BSIC 0 + cell_id_list cgi[2] = { + 0: 001-02-3-4 + 1: 005-006-7-8 + } + 3: BTS 255 to ARFCN 65535 BSIC 63 + cell_id_list lac[2] = { + 0: 456 + 1: 789 + } + 4: BTS 0 to ARFCN 0 BSIC 0(9bit) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } +neighbor_ident_add(k(255, 65535, BSIC_9BIT, 0x1ff), &cgi2) --> expect rc=2, got 2 + 0: BTS 0 to ARFCN 0 (any BSIC) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 1: BTS 255 to ARFCN 65535 (any BSIC) + cell_id_list lac[1] = { + 0: 123 + } + 2: BTS 0 to ARFCN 0 BSIC 0 + cell_id_list cgi[2] = { + 0: 001-02-3-4 + 1: 005-006-7-8 + } + 3: BTS 255 to ARFCN 65535 BSIC 63 + cell_id_list lac[2] = { + 0: 456 + 1: 789 + } + 4: BTS 0 to ARFCN 0 BSIC 0(9bit) + cell_id_list cgi[1] = { + 0: 001-02-3-4 + } + 5: BTS 255 to ARFCN 65535 BSIC 511(9bit) + cell_id_list cgi[2] = { + 0: 001-02-3-4 + 1: 005-006-7-8 + } + +--- size limits +Added first cell identifier list (added 127) --> rc = 127 +Added second cell identifier list (tried to add 1) --> rc = -28 diff --git a/tests/neighbor_ident.vty b/tests/neighbor_ident.vty new file mode 100644 index 0000000..505eb72 --- /dev/null +++ b/tests/neighbor_ident.vty @@ -0,0 +1,251 @@ +OsmoBSC> ### Neighbor-BSS Cell Identifier List config + +OsmoBSC> enable +OsmoBSC# configure terminal +OsmoBSC(config)# network + +OsmoBSC(config-net)# bts 0 +OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# base_station_id_code 10 +OsmoBSC(config-net-bts)# location_area_code 20 +OsmoBSC(config-net-bts)# cell_identity 30 +OsmoBSC(config-net-bts)# trx 0 +OsmoBSC(config-net-bts-trx)# arfcn 40 +OsmoBSC(config-net-bts-trx)# exit +OsmoBSC(config-net-bts)# exit + +OsmoBSC(config-net)# bts 1 +OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# base_station_id_code 11 +OsmoBSC(config-net-bts)# location_area_code 21 +OsmoBSC(config-net-bts)# cell_identity 31 +OsmoBSC(config-net-bts)# trx 0 +OsmoBSC(config-net-bts-trx)# arfcn 41 +OsmoBSC(config-net-bts-trx)# exit +OsmoBSC(config-net-bts)# exit + +OsmoBSC(config-net)# bts 2 +OsmoBSC(config-net-bts)# type sysmobts +OsmoBSC(config-net-bts)# base_station_id_code 12 +OsmoBSC(config-net-bts)# location_area_code 22 +OsmoBSC(config-net-bts)# cell_identity 32 +OsmoBSC(config-net-bts)# trx 0 +OsmoBSC(config-net-bts-trx)# arfcn 42 +OsmoBSC(config-net-bts-trx)# exit +OsmoBSC(config-net-bts)# exit + +OsmoBSC(config-net)# show running-config +... + bts 0 +... + cell_identity 30 + location_area_code 20 + base_station_id_code 10 +... + trx 0 +... + arfcn 40 +... + bts 1 +... + cell_identity 31 + location_area_code 21 + base_station_id_code 11 +... + trx 0 +... + arfcn 41 +... + bts 2 +... + cell_identity 32 + location_area_code 22 + base_station_id_code 12 +... + trx 0 +... + arfcn 42 +... + +OsmoBSC(config-net)# bts 0 +OsmoBSC(config-net-bts)# list +... + neighbor add bts <0-255> + neighbor add lac <0-65535> + neighbor add lac-ci <0-65535> <0-255> + neighbor add lac <0-65535> arfcn <0-1023> (bsic|bsic9) (<0-511>|any) + neighbor add lac-ci <0-65535> <0-255> arfcn <0-1023> (bsic|bsic9) (<0-511>|any) + neighbor add cgi <0-999> <0-999> <0-65535> <0-255> arfcn <0-1023> (bsic|bsic9) (<0-511>|any) + neighbor del bts <0-255> + neighbor del arfcn <0-1023> (bsic|bsic9) (<0-511>|any) + neighbor resolve arfcn <0-1023> (bsic|bsic9) (<0-511>|any) +... + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor add cgi 23 42 423 5 arfcn 23 bsic 64 +% Error: BSIC value surpasses 6-bit range: 64, use 'bsic9' instead + +OsmoBSC(config-net-bts)# neighbor add bts 0 +% Error: cannot add local BTS 0 as neighbor to BTS 0: Invalid argument + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor add bts 1 +% BTS 0 now has local neighbor BTS 1 with LAC 21 CI 31 and ARFCN 41 BSIC 11 + +OsmoBSC(config-net-bts)# neighbor add lac 22 +% BTS 0 now has local neighbor BTS 2 with LAC 22 CI 32 and ARFCN 42 BSIC 12 + +OsmoBSC(config-net-bts)# neighbor add cgi 23 42 423 5 arfcn 23 bsic 42 +% BTS 0 to ARFCN 23 BSIC 42 now has 1 remote BSS Cell Identifier List entry + +OsmoBSC(config-net-bts)# ### adding the same entry again results in no change +OsmoBSC(config-net-bts)# neighbor add bts 1 +% BTS 0 already had local neighbor BTS 1 with LAC 21 CI 31 and ARFCN 41 BSIC 11 +OsmoBSC(config-net-bts)# neighbor add lac-ci 21 31 +% BTS 0 already had local neighbor BTS 1 with LAC 21 CI 31 and ARFCN 41 BSIC 11 +OsmoBSC(config-net-bts)# neighbor add cgi 23 42 423 5 arfcn 23 bsic 42 +% BTS 0 to ARFCN 23 BSIC 42 now has 1 remote BSS Cell Identifier List entry +OsmoBSC(config-net-bts)# neighbor add cgi 23 42 423 5 arfcn 23 bsic 42 +% BTS 0 to ARFCN 23 BSIC 42 now has 1 remote BSS Cell Identifier List entry +OsmoBSC(config-net-bts)# neighbor add cgi 23 42 423 5 arfcn 23 bsic 42 +% BTS 0 to ARFCN 23 BSIC 42 now has 1 remote BSS Cell Identifier List entry + +OsmoBSC(config-net-bts)# neighbor add cgi 23 042 423 6 arfcn 23 bsic 42 +% BTS 0 to ARFCN 23 BSIC 42 now has 2 remote BSS Cell Identifier List entries + +OsmoBSC(config-net-bts)# neighbor add lac 456 arfcn 123 bsic 45 +% BTS 0 to ARFCN 123 BSIC 45 now has 1 remote BSS Cell Identifier List entry + +OsmoBSC(config-net-bts)# neighbor add cgi 23 042 234 56 arfcn 23 bsic 42 +% BTS 0 to ARFCN 23 BSIC 42 now has 3 remote BSS Cell Identifier List entries + +OsmoBSC(config-net-bts)# neighbor add lac-ci 789 10 arfcn 423 bsic any +% BTS 0 to ARFCN 423 (any BSIC) now has 1 remote BSS Cell Identifier List entry + +OsmoBSC(config-net-bts)# neighbor add lac-ci 789 10 arfcn 423 bsic9 511 +% BTS 0 to ARFCN 423 BSIC 511(9bit) now has 1 remote BSS Cell Identifier List entry + +OsmoBSC(config-net-bts)# neighbor add lac-ci 789 10 arfcn 423 bsic9 1 +% BTS 0 to ARFCN 423 BSIC 1(9bit) now has 1 remote BSS Cell Identifier List entry + +OsmoBSC(config-net-bts)# neighbor add lac-ci 789 10 arfcn 423 bsic 1 +% BTS 0 to ARFCN 423 BSIC 1 now has 1 remote BSS Cell Identifier List entry + +OsmoBSC(config-net-bts)# show running-config +... +network +... !neighbor add + bts 0 +... !neighbor add + neighbor add lac-ci 21 31 + neighbor add lac-ci 22 32 + neighbor add cgi 023 42 423 5 arfcn 23 bsic 42 + neighbor add cgi 023 042 423 6 arfcn 23 bsic 42 + neighbor add cgi 023 042 234 56 arfcn 23 bsic 42 + neighbor add lac 456 arfcn 123 bsic 45 + neighbor add lac-ci 789 10 arfcn 423 bsic any + neighbor add lac-ci 789 10 arfcn 423 bsic9 511 + neighbor add lac-ci 789 10 arfcn 423 bsic9 1 + neighbor add lac-ci 789 10 arfcn 423 bsic 1 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor resolve arfcn 99 bsic any +% No entry for BTS 0 to ARFCN 99 (any BSIC) + +OsmoBSC(config-net-bts)# neighbor resolve arfcn 41 bsic any +% BTS 0 to ARFCN 41 (any BSIC) resolves to local BTS 1 lac-ci 21 31 + +OsmoBSC(config-net-bts)# neighbor resolve arfcn 423 bsic 1 +% neighbor add lac-ci 789 10 arfcn 423 bsic 1 + +OsmoBSC(config-net-bts)# neighbor resolve arfcn 423 bsic 23 +% neighbor add lac-ci 789 10 arfcn 423 bsic 23 + +OsmoBSC(config-net-bts)# neighbor del arfcn 99 bsic 7 +% Cannot remove, no such neighbor: BTS 0 to ARFCN 99 BSIC 7 + +OsmoBSC(config-net-bts)# neighbor del arfcn 23 bsic 42 +% Removed remote BSS neighbor BTS 0 to ARFCN 23 BSIC 42 + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + neighbor add lac-ci 21 31 + neighbor add lac-ci 22 32 + neighbor add lac 456 arfcn 123 bsic 45 + neighbor add lac-ci 789 10 arfcn 423 bsic any + neighbor add lac-ci 789 10 arfcn 423 bsic9 511 + neighbor add lac-ci 789 10 arfcn 423 bsic9 1 + neighbor add lac-ci 789 10 arfcn 423 bsic 1 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor del arfcn 123 bsic 45 +% Removed remote BSS neighbor BTS 0 to ARFCN 123 BSIC 45 + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + neighbor add lac-ci 21 31 + neighbor add lac-ci 22 32 + neighbor add lac-ci 789 10 arfcn 423 bsic any + neighbor add lac-ci 789 10 arfcn 423 bsic9 511 + neighbor add lac-ci 789 10 arfcn 423 bsic9 1 + neighbor add lac-ci 789 10 arfcn 423 bsic 1 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor del arfcn 423 bsic any +% Removed remote BSS neighbor BTS 0 to ARFCN 423 (any BSIC) + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + neighbor add lac-ci 21 31 + neighbor add lac-ci 22 32 + neighbor add lac-ci 789 10 arfcn 423 bsic9 511 + neighbor add lac-ci 789 10 arfcn 423 bsic9 1 + neighbor add lac-ci 789 10 arfcn 423 bsic 1 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor del arfcn 423 bsic9 511 +% Removed remote BSS neighbor BTS 0 to ARFCN 423 BSIC 511(9bit) +OsmoBSC(config-net-bts)# neighbor del arfcn 423 bsic9 1 +% Removed remote BSS neighbor BTS 0 to ARFCN 423 BSIC 1(9bit) + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + neighbor add lac-ci 21 31 + neighbor add lac-ci 22 32 + neighbor add lac-ci 789 10 arfcn 423 bsic 1 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor del arfcn 423 bsic 1 +% Removed remote BSS neighbor BTS 0 to ARFCN 423 BSIC 1 + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + neighbor add lac-ci 21 31 + neighbor add lac-ci 22 32 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor del arfcn 41 bsic any +% Removed local neighbor bts 0 to bts 1 + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + neighbor add lac-ci 22 32 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor del arfcn 41 bsic any +% Cannot remove, no such neighbor: BTS 0 to ARFCN 41 (any BSIC) + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add + neighbor add lac-ci 22 32 +... !neighbor add + +OsmoBSC(config-net-bts)# neighbor del arfcn 42 bsic 12 +% Removed local neighbor bts 0 to bts 2 + +OsmoBSC(config-net-bts)# show running-config +... !neighbor add diff --git a/tests/testsuite.at b/tests/testsuite.at index 515ffa0..aba4a0c 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -32,6 +32,13 @@ AT_CHECK([$abs_top_builddir/tests/nanobts_omlattr/nanobts_omlattr_test], [], [expout], [ignore]) AT_CLEANUP +AT_SETUP([neighbor_ident]) +AT_KEYWORDS([neighbor_ident]) +cat $abs_srcdir/handover/neighbor_ident_test.ok > expout +cat $abs_srcdir/handover/neighbor_ident_test.err > experr +AT_CHECK([$abs_top_builddir/tests/handover/neighbor_ident_test], [], [expout], [experr]) +AT_CLEANUP + AT_SETUP([handover test 0]) AT_KEYWORDS([handover]) cat $abs_srcdir/handover/handover_test.ok > expout -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:16 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:16 +0000 Subject: Change in osmo-bsc[master]: doc: update/fix FSM charts Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9667 Change subject: doc: update/fix FSM charts ...................................................................... doc: update/fix FSM charts Change-Id: I29e31b753e23a4207662e0e385a337e7df836f45 --- M doc/Makefile.am A doc/assignment-fsm.dot M doc/assignment.msc A doc/handover-inter-bsc-mo-fsm.dot A doc/handover-inter-bsc-mt-fsm.dot M doc/handover-inter-bsc-mt.msc A doc/handover-intra-bsc-fsm.dot M doc/handover.msc M doc/lchan-fsm.dot M doc/lchan.msc A doc/mgw-endpoint-fsm.dot M doc/ms-channel-request.msc 12 files changed, 185 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/9667/1 diff --git a/doc/Makefile.am b/doc/Makefile.am index ca0470d..2a855eb 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -15,8 +15,13 @@ $(NULL) dot: \ + $(builddir)/assignment-fsm.png \ $(builddir)/timeslot-fsm.png \ $(builddir)/lchan-fsm.png \ + $(builddir)/mgw-endpoint-fsm.png \ + $(builddir)/handover-intra-bsc-fsm.png \ + $(builddir)/handover-inter-bsc-mo-fsm.png \ + $(builddir)/handover-inter-bsc-mt-fsm.png \ $(NULL) $(builddir)/%.png: $(srcdir)/%.msc diff --git a/doc/assignment-fsm.dot b/doc/assignment-fsm.dot new file mode 100644 index 0000000..90f7621 --- /dev/null +++ b/doc/assignment-fsm.dot @@ -0,0 +1,35 @@ +digraph G { +rankdir=TB; + + WAIT_LCHAN_ACTIVE + WAIT_RR_ASS_COMPLETE + WAIT_LCHAN_ESTABLISHED + WAIT_MGW_ENDPOINT_TO_MSC + terminate [shape=box] + + gscon [label="conn FSM",shape=box3d]; + gscon2 [label="conn FSM",shape=box3d]; + lchan [label="lchan FSM",shape=box3d]; + old_lchan [label="old lchan",shape=box3d]; + + invisible [style="invisible"] + invisible -> gscon [label="GSCON_EV_A_ASSIGNMENT_CMD",style=dashed] + invisible -> old_lchan [style=invisible,arrowhead=none] + + gscon -> WAIT_LCHAN_ACTIVE [label="assignment_fsm_start()",style=dashed] + WAIT_LCHAN_ACTIVE -> lchan [label="lchan_activate()\nFOR_ASSIGNMENT",style=dashed] + lchan -> WAIT_LCHAN_ACTIVE [label="ASSIGNMENT_EV_\nLCHAN_\nACTIVE,ERROR",style=dashed] + lchan -> WAIT_LCHAN_ESTABLISHED [label="ASSIGNMENT_EV_\nLCHAN_\nESTABLISHED,ERROR",style=dashed] + + WAIT_LCHAN_ACTIVE -> WAIT_RR_ASS_COMPLETE + + WAIT_RR_ASS_COMPLETE -> old_lchan [label="RR Assignment\nCommand",style=dashed,constraint=false] + lchan -> WAIT_RR_ASS_COMPLETE [label="RR Assignment\nComplete",style=dashed] + + WAIT_RR_ASS_COMPLETE -> WAIT_LCHAN_ESTABLISHED + + WAIT_LCHAN_ESTABLISHED -> WAIT_MGW_ENDPOINT_TO_MSC [label="TCH"] + WAIT_LCHAN_ESTABLISHED -> terminate [label="non-TCH"] + WAIT_MGW_ENDPOINT_TO_MSC -> terminate + terminate -> gscon2 [label="GSCON_EV_\nASSIGNMENT_END",style=dashed] +} diff --git a/doc/assignment.msc b/doc/assignment.msc index 9f10ea1..872161f 100644 --- a/doc/assignment.msc +++ b/doc/assignment.msc @@ -6,7 +6,7 @@ ms note mgw_msc [label="lchan allocation sequence for BSSMAP Assignment Request"]; bsc_gscon <= mgw_msc [label="BSSMAP Assignment Request"]; - bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_LCHAN"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_LCHAN\nT10?"]; bsc_lchan <- bsc_gscon [label="lchan_select_by_chan_mode(chan_mode)"]; |||; @@ -15,13 +15,13 @@ bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; ---; |||; - bsc_gscon box bsc_gscon [label="store lchan pointer in conn->lchan_for_assignment"]; + bsc_gscon box bsc_gscon [label="store lchan pointer in conn->assignment.new_lchan"]; bsc_lchan <- bsc_gscon [label="lchan_activate(FOR_ASSIGNMENT)"]; ...; |||; --- [label="on lchan FSM error or timeout"]; - bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; - bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ERROR"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->assignment.new_lchan"]; bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; --- [label="END: 'on error'"]; @@ -49,9 +49,9 @@ bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; bsc_lchan note bsc_gscon [label="conn FSM timeout handler exits and relies on the lchan FSM signalling error, which should actually happen immediately:"]; - bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ERROR"]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; - bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->assignment.new_lchan"]; bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; --- [label="END: 'On Timeout'"]; ...; @@ -67,13 +67,13 @@ ...; bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ACTIVE"]; - bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_COMPLETE\nT10, 6s"]; + bsc_gscon abox bsc_gscon [label="ST_ASSIGNMENT_\nWAIT_COMPLETE\nT10, 6s? T3107?"]; ms <= bsc_gscon [label="RR Assignment"]; ...; --- [label="On Timeout"]; bsc_gscon => mgw_msc [label="BSSMAP Assignment Failure"]; bsc_gscon -> bsc_lchan [label="LCHAN_EV_LCHAN_RELEASE"]; - bsc_gscon box bsc_gscon [label="'forget' all about conn->lchan_for_assignment"]; + bsc_gscon box bsc_gscon [label="'forget' all about conn->assignment.new_lchan"]; --- [label="IF assignment_created_mgw_endpoint == true"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; bsc_gscon note bsc_mgcp [label="If the MGW endpoint didn't exist before the Assignment, release @@ -84,7 +84,7 @@ ...; ms => bsc_gscon [label="RR Assignment Complete"]; bsc_gscon -> bsc_lchan [label="OLD lchan: LCHAN_EV_LCHAN_RELEASE"]; - bsc_gscon box bsc_gscon [label="conn->lchan = conn->lchan_for_assignment"]; + bsc_gscon box bsc_gscon [label="conn->lchan = conn->assignment.new_lchan"]; --- [label="IF: chan_mode a speech mode?"]; bsc_gscon abox bsc_gscon [label="ST_WAIT_MDCX_BTS"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_modify()"]; diff --git a/doc/handover-inter-bsc-mo-fsm.dot b/doc/handover-inter-bsc-mo-fsm.dot new file mode 100644 index 0000000..2832d0f --- /dev/null +++ b/doc/handover-inter-bsc-mo-fsm.dot @@ -0,0 +1,26 @@ +digraph G { +rankdir=TB; + + invisible [style=invisible] + invisible -> mo [label="Measurement Report\nincluding neighbor\nBSS ARFCN",style=dashed] + mo [label="inter-BSC MO HO",shape=box]; + msc [label="msc",shape=box3d]; + new_bsc [label="new BSC",shape=box3d] + lchan [label="lchan",shape=box3d] + term [label="terminate",shape=box]; + + mo -> WAIT_HO_COMMAND [label="handover_start()"] + WAIT_HO_COMMAND -> msc [label="BSSMAP Handover\nRequired",style=dashed] + msc -> new_bsc [label="BSSMAP Handover\nRequest",style=dashed] + new_bsc -> msc [label="BSSMAP Handover\nRequest Ack",style=dashed] + msc -> WAIT_HO_COMMAND [label="BSSMAP Handover\nCommand",style=dashed] + + WAIT_HO_COMMAND -> lchan [label="RR Handover\nCommand\nfrom new BSC",style=dashed] + + WAIT_HO_COMMAND -> WAIT_CLEAR + msc -> WAIT_CLEAR [label="BSSMAP Clear Command",style=dashed] + + WAIT_CLEAR -> term + + +} diff --git a/doc/handover-inter-bsc-mt-fsm.dot b/doc/handover-inter-bsc-mt-fsm.dot new file mode 100644 index 0000000..82e101a --- /dev/null +++ b/doc/handover-inter-bsc-mt-fsm.dot @@ -0,0 +1,42 @@ +digraph G { +rankdir=TB; + + mt [label="inter-BSC MT HO",shape=box]; + gscon [label="gscon FSM",shape=box3d]; + lchan [label="lchan FSM",shape=box3d]; + msc [label="msc",shape=box3d]; + old_bsc [label="old BSC",shape=box3d] + old_lchan [label="old lchan",shape=box3d] + term [label="terminate",shape=box]; + + invisible [style="invisible"] + + mt -> old_bsc [style=dashed] + old_bsc -> msc [label="BSSMAP Handover Required",style=dashed] + + invisible -> old_lchan [style=invisible,arrowhead=none] + msc -> gscon [label="BSSMAP Handover\nRequest",style=dashed] + gscon -> WAIT_LCHAN_ACTIVE [label="handover_start()",style=dashed] + WAIT_LCHAN_ACTIVE -> lchan [label="lchan_activate()\nFOR_HANDOVER",style=dashed] + lchan -> WAIT_LCHAN_ACTIVE [label="HO_EV_\nLCHAN_\nACTIVE,ERROR",style=dashed,constraint=false] + WAIT_LCHAN_ACTIVE -> WAIT_RR_HO_DETECT + + WAIT_RR_HO_DETECT -> msc [label="BSSMAP\nHandover\nAccept\nwith\nRR Handover\nCommand",style=dashed,constraint=false] + msc -> old_bsc -> old_lchan [label="RR Handover\nCommand",style=dashed] + + lchan -> WAIT_RR_HO_DETECT [label="RR Handover\nDetect",style=dashed] + WAIT_RR_HO_DETECT -> WAIT_RR_HO_COMPLETE + + lchan -> WAIT_RR_HO_COMPLETE [label="RR Handover\nComplete",style=dashed] + WAIT_RR_HO_COMPLETE -> WAIT_LCHAN_ESTABLISHED + lchan -> WAIT_LCHAN_ESTABLISHED [label="HO_EV_LCHAN_\nESTABLISHED",style=dashed] + + WAIT_LCHAN_ESTABLISHED -> term [label="non-TCH"] + WAIT_LCHAN_ESTABLISHED -> WAIT_MGW_ENDPOINT_TO_MSC + WAIT_MGW_ENDPOINT_TO_MSC -> term [label="handover_end()",style=dashed] + term -> msc [label="BSSMAP Handover\nComplete\n/ Failure",style=dashed,constraint=false] + + err [label="on error",shape=box,style=dashed] + err -> term + +} diff --git a/doc/handover-inter-bsc-mt.msc b/doc/handover-inter-bsc-mt.msc index 88a52da..52873c1 100644 --- a/doc/handover-inter-bsc-mt.msc +++ b/doc/handover-inter-bsc-mt.msc @@ -13,7 +13,7 @@ bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_TS_READY"]; ...; --- [label="on no lchan, lchan FSM error or timeout"]; - bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ERROR"]; bsc_gscon box bsc_gscon [label="handover_end(fail)"]; bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; ms note bsc_gscon [label="MS happily continues on the old lchan."]; @@ -39,7 +39,7 @@ bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; bsc_lchan note bsc_gscon [label="conn FSM error handler exits and relies on the lchan FSM signalling error, which should actually happen immediately:"]; - bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ERROR"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; bsc_gscon box bsc_gscon [label="handover_end(fail)"]; bsc_gscon => mgw_msc [label="BSSMAP Handover Failure"]; diff --git a/doc/handover-intra-bsc-fsm.dot b/doc/handover-intra-bsc-fsm.dot new file mode 100644 index 0000000..4eb2561 --- /dev/null +++ b/doc/handover-intra-bsc-fsm.dot @@ -0,0 +1,27 @@ +digraph G { +rankdir=TB; + + lchan [label="lchan FSM",shape=box3d]; + intra [label="intra-BSC HO",shape=box]; + old_lchan [label="old lchan",shape=box3d]; + term [label="terminate",shape=box]; + + invisible [style="invisible"] + invisible -> intra [style=invisible,arrowhead=none] + invisible -> old_lchan [style=invisible,arrowhead=none] + + intra -> WAIT_LCHAN_ACTIVE [label="handover_start()",style=dashed] + WAIT_LCHAN_ACTIVE -> lchan [label="lchan_activate(FOR_HANDOVER)",style=dashed] + lchan -> WAIT_LCHAN_ACTIVE [label="HO_EV_\nLCHAN_\nACTIVE,ERROR",style=dashed,constraint=false] + WAIT_LCHAN_ACTIVE -> WAIT_RR_HO_DETECT + WAIT_RR_HO_DETECT -> old_lchan [label="RR Handover\nCommand",style=dashed,constraint=false] + + lchan -> WAIT_RR_HO_DETECT [label="RR Handover\nDetect",style=dashed] + WAIT_RR_HO_DETECT -> WAIT_RR_HO_COMPLETE + + lchan -> WAIT_RR_HO_COMPLETE [label="RR Handover\nComplete",style=dashed] + WAIT_RR_HO_COMPLETE -> WAIT_LCHAN_ESTABLISHED + lchan -> WAIT_LCHAN_ESTABLISHED [label="HO_EV_LCHAN_\nESTABLISHED",style=dashed] + + WAIT_LCHAN_ESTABLISHED -> term [label="handover_end()",style=dashed] +} diff --git a/doc/handover.msc b/doc/handover.msc index 7529de6..b4307a8 100644 --- a/doc/handover.msc +++ b/doc/handover.msc @@ -13,7 +13,7 @@ bsc_lchan <- bsc_gscon [label="lchan_activate(lchan, FOR_HANDOVER)"]; ...; --- [label="on lchan FSM error or timeout"]; - bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ERROR"]; bsc_gscon box bsc_gscon [label="handover_end(fail)"]; ms note bsc_gscon [label="MS happily continues on the old lchan."]; bsc_gscon abox bsc_gscon [label="ST_ACTIVE"]; @@ -43,7 +43,7 @@ bsc_gscon -> bsc_lchan [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; bsc_lchan note bsc_gscon [label="conn FSM error handler exits and relies on the lchan FSM signalling error, which should actually happen immediately:"]; - bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_gscon <- bsc_lchan [label="GSCON_EV_LCHAN_ERROR"]; bsc_gscon box bsc_gscon [label="handover_end(fail)"]; --- [label="IF handover_created_mgw_endpoint == true"]; bsc_gscon -> bsc_mgcp [label="mgcp_conn_delete()"]; diff --git a/doc/lchan-fsm.dot b/doc/lchan-fsm.dot index dbb283c..b8e348e 100644 --- a/doc/lchan-fsm.dot +++ b/doc/lchan-fsm.dot @@ -4,10 +4,11 @@ invisible [style="invisible"] UNUSED [penwidth=3.0] WAIT_TS_READY - WAIT_MGW_ENDPOINT_AVAILABLE WAIT_ACTIV_ACK + WAIT_MGW_ENDPOINT_AVAILABLE WAIT_IPACC_CRCX_ACK WAIT_IPACC_MDCX_ACK + WAIT_MGW_ENDPOINT_CONFIGURED WAIT_RLL_ESTABLISH ACTIVE [penwidth=3.0] WAIT_SAPIS_RELEASED @@ -17,16 +18,17 @@ BORKEN ts [label="timeslot FSM",shape=box3d]; - gscon [label="conn FSM",shape=box3d]; + mgwep [label="mgw endpoint\nFSM",shape=box3d]; UNUSED -> WAIT_TS_READY [label="lchan_allocate()"] WAIT_TS_READY -> WAIT_ACTIV_ACK WAIT_ACTIV_ACK -> WAIT_RLL_ESTABLISH WAIT_RLL_ESTABLISH -> WAIT_MGW_ENDPOINT_AVAILABLE [label="TCH"] WAIT_MGW_ENDPOINT_AVAILABLE -> WAIT_IPACC_CRCX_ACK [label="IPACC BTS"] - WAIT_MGW_ENDPOINT_AVAILABLE -> ACTIVE + WAIT_MGW_ENDPOINT_AVAILABLE -> WAIT_MGW_ENDPOINT_CONFIGURED WAIT_IPACC_CRCX_ACK -> WAIT_IPACC_MDCX_ACK - WAIT_IPACC_MDCX_ACK -> ACTIVE + WAIT_IPACC_MDCX_ACK -> WAIT_MGW_ENDPOINT_CONFIGURED + WAIT_MGW_ENDPOINT_CONFIGURED -> ACTIVE WAIT_RLL_ESTABLISH -> ACTIVE [label="non-TCH"]; WAIT_RLL_ESTABLISH -> WAIT_RF_RELEASE_ACK [label="timeout",style=dashed,constraint=false] @@ -45,9 +47,9 @@ WAIT_TS_READY -> UNUSED [label="error/timeout",style=dashed,constraint=false] {WAIT_ACTIV_ACK,WAIT_RF_RELEASE_ACK} -> BORKEN [label="error/timeout",style=dashed] - {WAIT_MGW_ENDPOINT_AVAILABLE,WAIT_IPACC_CRCX_ACK,WAIT_IPACC_MDCX_ACK} -> WAIT_SAPIS_RELEASED [label=error,style=dashed] + {WAIT_MGW_ENDPOINT_AVAILABLE,WAIT_IPACC_CRCX_ACK,WAIT_IPACC_MDCX_ACK,WAIT_MGW_ENDPOINT_CONFIGURED} -> WAIT_SAPIS_RELEASED [label=error,style=dashed] - WAIT_TS_READY -> gscon [label="GSCON_EV_\nENSURE_\nMGW_ENDPOINT",style=dotted] - gscon -> WAIT_MGW_ENDPOINT_AVAILABLE [label="LCHAN_EV_\nMGW_ENDPOINT_\n{AVAILABLE,ERROR}",style=dotted] + WAIT_TS_READY -> mgwep [label="CRCX",style=dotted] + mgwep -> WAIT_MGW_ENDPOINT_AVAILABLE [label="LCHAN_EV_\nMGW_ENDPOINT_\n{AVAILABLE,ERROR}",style=dotted] } diff --git a/doc/lchan.msc b/doc/lchan.msc index 9b7d663..42f2fb0 100644 --- a/doc/lchan.msc +++ b/doc/lchan.msc @@ -72,7 +72,7 @@ bsc_gscon note bsc_gscon [label="conn FSM should fire on CRCX timeout"]; bsc_lchan <- bsc_gscon [label="LCHAN_EV_MGW_ENDPOINT_ERROR"]; bsc_gscon note bsc_gscon [label="conn FSM should not assume anything and wait for - GSCON_EV_LCHAN_ALLOC_ERROR"]; + GSCON_EV_LCHAN_ERROR"]; bsc_lchan rbox bsc_lchan [label="Do 'On any error'"]; bsc_lchan abox bsc_lchan [label="LCHAN_ST_UNUSED"]; bsc_ts <- bsc_lchan [label="TS_EV_LCHAN_UNUSED"]; @@ -142,7 +142,7 @@ bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_\nRLL_ESTABLISH\nT3101"]; ...; --- [label="on timeout"]; - bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ERROR"]; bsc_lchan -> bsc_lchan [label="lchan_fsm_pre_rf_release()"]; ---; ...; @@ -166,7 +166,7 @@ bts <= bsc_lchan [label="IPACC CRCX"]; ...; --- [label="on timeout"]; - bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ERROR"]; bsc_lchan -> bsc_lchan [label="lchan_graceful_release()"]; ---; ...; @@ -182,7 +182,7 @@ this; SCCPlite: the RTP port is already known from the timeslot+multiplex information."]; ...; --- [label="on timeout"]; - bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ERROR"]; bsc_lchan -> bsc_lchan [label="lchan_graceful_release()"]; ---; ...; @@ -288,7 +288,7 @@ bts <= bsc_lchan [label="RR Immediate Assign Reject"]; |||; --- [label="IF FOR_ASSIGNMENT or FOR_HANDOVER"]; - bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ALLOC_ERROR"]; + bsc_lchan -> bsc_gscon [label="GSCON_EV_LCHAN_ERROR"]; bsc_gscon note bsc_gscon [label="conn FSM shall immediately 'forget' the lchan"]; bsc_gscon => mgw_msc [label="BSSMAP\nAssignment Failure",ID=FOR_ASSIGNMENT]; bsc_gscon => mgw_msc [label="BSSMAP\nHandover Failure",ID="inter-BSC-MT HO"]; diff --git a/doc/mgw-endpoint-fsm.dot b/doc/mgw-endpoint-fsm.dot new file mode 100644 index 0000000..8ad2e4a --- /dev/null +++ b/doc/mgw-endpoint-fsm.dot @@ -0,0 +1,22 @@ +digraph G { +rankdir=TB; + UNUSED + WAIT_MGW_RESPONSE + IN_USE + WAIT_DLCX_ALL + terminate [shape=box] + + other [label="other FSM",shape=box3d] + other -> UNUSED [label="mgw_{crcx,mdcx}_{bts,msc}()",style=dashed] + + UNUSED -> WAIT_MGW_RESPONSE + WAIT_MGW_RESPONSE -> IN_USE + IN_USE -> {WAIT_MGW_RESPONSE,WAIT_DLCX_ALL} + + other2 [label="other FSM",shape=box3d] + other2 -> IN_USE [label="mgw_{crcx,mdcx,dlcx}_{bts,msc}()",style=dashed] + WAIT_DLCX_ALL -> terminate + + IN_USE -> other2 [label="OTHER_EV_*",style=dashed] + IN_USE -> UNUSED [label="last DLCX"] +} diff --git a/doc/ms-channel-request.msc b/doc/ms-channel-request.msc index 1c5b4bf..4b7de78 100644 --- a/doc/ms-channel-request.msc +++ b/doc/ms-channel-request.msc @@ -27,7 +27,7 @@ bsc box bsc [label="Store RACH data in lchan->rqd_ref, rqd_ta"]; bsc -> bsc_lchan [label="lchan_allocate(FOR_MS_CHANNEL_REQUEST)"]; - bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_ACTIV_ACK\nT3103"]; + bsc_lchan abox bsc_lchan [label="LCHAN_ST_WAIT_ACTIV_ACK\nT3101"]; bsc_lchan note bsc_lchan [label="The lchan FSM knows that FOR_MS_CHANNEL_REQUEST is about Immediate Assignment."]; bts <= bsc_lchan [label="RSL Chan Activ (Immediate Assignment)"]; -- To view, visit https://gerrit.osmocom.org/9667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I29e31b753e23a4207662e0e385a337e7df836f45 Gerrit-Change-Number: 9667 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:16 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:16 +0000 Subject: Change in osmo-bsc[master]: fix / clarify rsl dtap cache Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9668 Change subject: fix / clarify rsl dtap cache ...................................................................... fix / clarify rsl dtap cache In certain situations like handover or assignment, DTAP must not go out via RSL directly but is cached to be submitted later. Make sure that all RSL DTAP sending adheres to this: gscon_submit_rsl_dtap() is the new "public" API to request an RSL DTAP to be sent. Depending on the gscon's state, this ends up in the cache or is sent directly. When caching, there is no way to tell whether sending will succeed or not, so semantically it does not make sense to even return a result code. Just return void. Change all "public" callers to gscon_submit_rsl_dtap(). Merge gsm0808_submit_dtap() and submit_dtap() guts to gsm0808_send_rsl_dtap(), static in bsc_subscr_conn_fsm.c: directly send DTAP, assume a conn->lchan to be present, or otherwise trigger a BSSMAP Clear Request. The static submit_dtap() becomes a thin convenience wrapper. Move ho_dtap_cache* functions to bsc_subscr_conn_fsm.c and rename to gscon_dtap_cache_* -- they are not only for handover, also for assignment. Function gsm0808_submit_dtap() m Introduce function gscon_submit_rsl_dtap() Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 --- M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_api.c M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_04_80_utils.c M src/osmo-bsc/osmo_bsc_api.c M tests/bsc/bsc_test.c 9 files changed, 185 insertions(+), 160 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/9668/1 diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h index e8226f4..0d373eb 100644 --- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h +++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h @@ -66,6 +66,11 @@ struct gsm_subscriber_connection; struct gsm_network; +struct msgb; /* Allocate a subscriber connection and its associated FSM */ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net); + +void gscon_submit_rsl_dtap(struct gsm_subscriber_connection *conn, + struct msgb *msg, int link_id, int allow_sacch); +void gscon_dtap_cache_flush(struct gsm_subscriber_connection *conn, int send); diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 76a1b30..6ee95f7 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -120,8 +120,8 @@ struct gsm_classmark classmark; /* Cache DTAP messages during handover/assignment (msgb_enqueue()/msgb_dequeue())*/ - struct llist_head ho_dtap_cache; - unsigned int ho_dtap_cache_len; + struct llist_head dtap_cache; + unsigned int dtap_cache_len; struct { int failures; diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 4cf11a4..2c799e3 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -41,10 +42,6 @@ #define GSM0808_T10_VALUE 6, 0 -#define HO_DTAP_CACHE_MSGB_CB_LINK_ID 0 -#define HO_DTAP_CACHE_MSGB_CB_ALLOW_SACCH 1 - -static void rll_ind_cb(struct gsm_lchan *, uint8_t, void *, enum bsc_rllr_ind); static void handle_release(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); static void handle_chan_ack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); static void handle_chan_nack(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan); @@ -116,97 +113,6 @@ return 0; } -static void ho_dtap_cache_add(struct gsm_subscriber_connection *conn, struct msgb *msg, - int link_id, bool allow_sacch) -{ - if (conn->ho_dtap_cache_len >= 23) { - LOGP(DHO, LOGL_ERROR, "%s: Cannot cache more DTAP messages," - " already reached sane maximum of %u cached messages\n", - bsc_subscr_name(conn->bsub), conn->ho_dtap_cache_len); - msgb_free(msg); - return; - } - conn->ho_dtap_cache_len ++; - LOGP(DHO, LOGL_DEBUG, "%s: Caching DTAP message during ho/ass (%u)\n", - bsc_subscr_name(conn->bsub), conn->ho_dtap_cache_len); - msg->cb[HO_DTAP_CACHE_MSGB_CB_LINK_ID] = (unsigned long)link_id; - msg->cb[HO_DTAP_CACHE_MSGB_CB_ALLOW_SACCH] = allow_sacch ? 1 : 0; - msgb_enqueue(&conn->ho_dtap_cache, msg); -} - -void ho_dtap_cache_flush(struct gsm_subscriber_connection *conn, int send) -{ - struct msgb *msg; - unsigned int flushed_count = 0; - - if (conn->secondary_lchan || conn->ho) { - LOGP(DHO, LOGL_ERROR, "%s: Cannot send cached DTAP messages, handover/assignment is still ongoing\n", - bsc_subscr_name(conn->bsub)); - send = 0; - } - - while ((msg = msgb_dequeue(&conn->ho_dtap_cache))) { - conn->ho_dtap_cache_len --; - flushed_count ++; - if (send) { - int link_id = (int)msg->cb[HO_DTAP_CACHE_MSGB_CB_LINK_ID]; - bool allow_sacch = !!msg->cb[HO_DTAP_CACHE_MSGB_CB_ALLOW_SACCH]; - LOGP(DHO, LOGL_DEBUG, "%s: Sending cached DTAP message after handover/assignment (%u/%u)\n", - bsc_subscr_name(conn->bsub), flushed_count, conn->ho_dtap_cache_len); - gsm0808_submit_dtap(conn, msg, link_id, allow_sacch); - } else - msgb_free(msg); - } -} - -/*! \brief process incoming 08.08 DTAP from MSC (send via BTS to MS) */ -int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn, - struct msgb *msg, int link_id, int allow_sacch) -{ - uint8_t sapi; - - - if (!conn->lchan) { - LOGP(DMSC, LOGL_ERROR, - "%s Called submit dtap without an lchan.\n", - bsc_subscr_name(conn->bsub)); - msgb_free(msg); - return -1; - } - - /* buffer message during assignment / handover */ - if (conn->secondary_lchan || conn->ho) { - ho_dtap_cache_add(conn, msg, link_id, !! allow_sacch); - return 0; - } - - sapi = link_id & 0x7; - msg->lchan = conn->lchan; - msg->dst = msg->lchan->ts->trx->rsl_link; - - /* If we are on a TCH and need to submit a SMS (on SAPI=3) we need to use the SACH */ - if (allow_sacch && sapi != 0) { - if (conn->lchan->type == GSM_LCHAN_TCH_F || conn->lchan->type == GSM_LCHAN_TCH_H) - link_id |= 0x40; - } - - msg->l3h = msg->data; - /* is requested SAPI already up? */ - if (conn->lchan->sapis[sapi] == LCHAN_SAPI_UNUSED) { - /* Establish L2 for additional SAPI */ - OBSC_LINKID_CB(msg) = link_id; - if (rll_establish(msg->lchan, sapi, rll_ind_cb, msg) != 0) { - msgb_free(msg); - bsc_sapi_n_reject(conn, link_id); - return -1; - } - return 0; - } else { - /* Directly forward via RLL/RSL to BTS */ - return rsl_data_request(msg, link_id); - } -} - /* * \brief Check if the given channel is compatible with the mode/fullrate */ @@ -316,7 +222,7 @@ /* FIXME: release old channel */ /* send pending messages, if any */ - ho_dtap_cache_flush(conn, 1); + gscon_dtap_cache_flush(conn, 1); return; } @@ -332,7 +238,7 @@ conn->secondary_lchan = NULL; /* send pending messages, if any */ - ho_dtap_cache_flush(conn, 1); + gscon_dtap_cache_flush(conn, 1); if (is_ipaccess_bts(conn_get_bts(conn)) && conn->lchan->tch_mode != GSM48_CMODE_SIGN) rsl_ipacc_crcx(conn->lchan); @@ -359,7 +265,7 @@ /* FIXME: release allocated new channel */ /* send pending messages, if any */ - ho_dtap_cache_flush(conn, 1); + gscon_dtap_cache_flush(conn, 1); return; } @@ -377,7 +283,7 @@ } /* send pending messages, if any */ - ho_dtap_cache_flush(conn, 1); + gscon_dtap_cache_flush(conn, 1); gh = msgb_l3(msg); if (msgb_l3len(msg) - sizeof(*gh) != 1) { @@ -443,7 +349,7 @@ /* FIXME: release old channel */ /* send pending messages, if any */ - ho_dtap_cache_flush(msg->lchan->conn, 1); + gscon_dtap_cache_flush(msg->lchan->conn, 1); } /* Chapter 9.1.17 Handover Failure */ @@ -465,7 +371,7 @@ /* FIXME: release allocated new channel */ /* send pending messages, if any */ - ho_dtap_cache_flush(msg->lchan->conn, 1); + gscon_dtap_cache_flush(msg->lchan->conn, 1); } @@ -643,31 +549,6 @@ return 0; } -static void rll_ind_cb(struct gsm_lchan *lchan, uint8_t link_id, void *_data, enum bsc_rllr_ind rllr_ind) -{ - struct msgb *msg = _data; - - /* - * There seems to be a small window that the RLL timer can - * fire after a lchan_release call and before the S_CHALLOC_FREED - * is called. Check if a conn is set before proceeding. - */ - if (!lchan->conn) - return; - - switch (rllr_ind) { - case BSC_RLLR_IND_EST_CONF: - rsl_data_request(msg, OBSC_LINKID_CB(msg)); - break; - case BSC_RLLR_IND_REL_IND: - case BSC_RLLR_IND_ERR_IND: - case BSC_RLLR_IND_TIMEOUT: - bsc_sapi_n_reject(lchan->conn, OBSC_LINKID_CB(msg)); - msgb_free(msg); - break; - } -} - static int bsc_handle_lchan_signal(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) { diff --git a/src/osmo-bsc/bsc_init.c b/src/osmo-bsc/bsc_init.c index 1fe4847..641b6db 100644 --- a/src/osmo-bsc/bsc_init.c +++ b/src/osmo-bsc/bsc_init.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 4f09ae6..e8fb6ed 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include #include @@ -120,6 +122,16 @@ {0, NULL} }; +/* forward MT DTAP from BSSAP side to RSL side */ +static inline void submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, + struct osmo_fsm_inst *fi) +{ + OSMO_ASSERT(fi); + OSMO_ASSERT(msg); + OSMO_ASSERT(conn); + gscon_submit_rsl_dtap(conn, msg, OBSC_LINKID_CB(msg), 1); +} + /* Send data SCCP message through SCCP connection. All sigtran messages * that are send from this FSM must use this function. Never use * osmo_bsc_sigtran_send() directly since this would defeat the checks @@ -231,26 +243,6 @@ sigtran_send(conn, resp, fi); } -/* forward MT DTAP from BSSAP side to RSL side */ -static void submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, struct osmo_fsm_inst *fi) -{ - int rc; - struct msgb *resp = NULL; - - OSMO_ASSERT(fi); - OSMO_ASSERT(msg); - OSMO_ASSERT(conn); - - rc = gsm0808_submit_dtap(conn, msg, OBSC_LINKID_CB(msg), 1); - if (rc != 0) { - LOGPFSML(fi, LOGL_ERROR, "Tx BSSMAP CLEAR REQUEST to MSC\n"); - resp = gsm0808_create_clear_rqst(GSM0808_CAUSE_EQUIPMENT_FAILURE); - sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); - return; - } -} - /* forward MO DTAP from RSL side to BSSAP side */ static void forward_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, struct osmo_fsm_inst *fi) { @@ -972,8 +964,6 @@ } } -void ho_dtap_cache_flush(struct gsm_subscriber_connection *conn, int send); - static void gscon_cleanup(struct osmo_fsm_inst *fi, enum osmo_fsm_term_cause cause) { struct gsm_subscriber_connection *conn = fi->priv; @@ -1004,7 +994,7 @@ } /* drop pending messages */ - ho_dtap_cache_flush(conn, 0); + gscon_dtap_cache_flush(conn, 0); penalty_timers_free(&conn->hodec2.penalty_timers); @@ -1097,7 +1087,7 @@ return NULL; conn->network = net; - INIT_LLIST_HEAD(&conn->ho_dtap_cache); + INIT_LLIST_HEAD(&conn->dtap_cache); /* BTW, penalty timers will be initialized on-demand. */ conn->sccp.conn_id = -1; @@ -1122,3 +1112,143 @@ llist_add_tail(&conn->entry, &net->subscr_conns); return conn; } + +static void gsm0808_send_rsl_dtap(struct gsm_subscriber_connection *conn, + struct msgb *msg, int link_id, int allow_sacch); + +#define GSCON_DTAP_CACHE_MSGB_CB_LINK_ID 0 +#define GSCON_DTAP_CACHE_MSGB_CB_ALLOW_SACCH 1 + +static void gscon_dtap_cache_add(struct gsm_subscriber_connection *conn, struct msgb *msg, + int link_id, bool allow_sacch) +{ + if (conn->dtap_cache_len >= 23) { + LOGP(DHO, LOGL_ERROR, "%s: Cannot cache more DTAP messages," + " already reached sane maximum of %u cached messages\n", + bsc_subscr_name(conn->bsub), conn->dtap_cache_len); + msgb_free(msg); + return; + } + conn->dtap_cache_len ++; + LOGP(DHO, LOGL_DEBUG, "%s: Caching DTAP message during ho/ass (%u)\n", + bsc_subscr_name(conn->bsub), conn->dtap_cache_len); + msg->cb[GSCON_DTAP_CACHE_MSGB_CB_LINK_ID] = (unsigned long)link_id; + msg->cb[GSCON_DTAP_CACHE_MSGB_CB_ALLOW_SACCH] = allow_sacch ? 1 : 0; + msgb_enqueue(&conn->dtap_cache, msg); +} + +void gscon_dtap_cache_flush(struct gsm_subscriber_connection *conn, int send) +{ + struct msgb *msg; + unsigned int flushed_count = 0; + + if (conn->secondary_lchan || conn->ho) { + LOGP(DHO, LOGL_ERROR, "%s: Cannot send cached DTAP messages, handover/assignment is still ongoing\n", + bsc_subscr_name(conn->bsub)); + send = 0; + } + + while ((msg = msgb_dequeue(&conn->dtap_cache))) { + conn->dtap_cache_len --; + flushed_count ++; + if (send) { + int link_id = (int)msg->cb[GSCON_DTAP_CACHE_MSGB_CB_LINK_ID]; + bool allow_sacch = !!msg->cb[GSCON_DTAP_CACHE_MSGB_CB_ALLOW_SACCH]; + LOGP(DHO, LOGL_DEBUG, "%s: Sending cached DTAP message after handover/assignment (%u/%u)\n", + bsc_subscr_name(conn->bsub), flushed_count, conn->dtap_cache_len); + gsm0808_send_rsl_dtap(conn, msg, link_id, allow_sacch); + } else + msgb_free(msg); + } +} + +static void rll_ind_cb(struct gsm_lchan *lchan, uint8_t link_id, void *_data, enum bsc_rllr_ind rllr_ind) +{ + struct msgb *msg = _data; + + /* + * There seems to be a small window that the RLL timer can + * fire after a lchan_release call and before the S_CHALLOC_FREED + * is called. Check if a conn is set before proceeding. + */ + if (!lchan->conn) + return; + + switch (rllr_ind) { + case BSC_RLLR_IND_EST_CONF: + rsl_data_request(msg, OBSC_LINKID_CB(msg)); + break; + case BSC_RLLR_IND_REL_IND: + case BSC_RLLR_IND_ERR_IND: + case BSC_RLLR_IND_TIMEOUT: + bsc_sapi_n_reject(lchan->conn, OBSC_LINKID_CB(msg)); + msgb_free(msg); + break; + } +} + +/*! \brief process incoming 08.08 DTAP from MSC (send via BTS to MS) */ +static void gsm0808_send_rsl_dtap(struct gsm_subscriber_connection *conn, + struct msgb *msg, int link_id, int allow_sacch) +{ + uint8_t sapi; + int rc; + struct msgb *resp = NULL; + + if (!conn->lchan) { + LOGP(DMSC, LOGL_ERROR, + "%s Called submit dtap without an lchan.\n", + bsc_subscr_name(conn->bsub)); + msgb_free(msg); + rc = -EINVAL; + goto failed_to_send; + } + + sapi = link_id & 0x7; + msg->lchan = conn->lchan; + msg->dst = msg->lchan->ts->trx->rsl_link; + + /* If we are on a TCH and need to submit a SMS (on SAPI=3) we need to use the SACH */ + if (allow_sacch && sapi != 0) { + if (conn->lchan->type == GSM_LCHAN_TCH_F || conn->lchan->type == GSM_LCHAN_TCH_H) + link_id |= 0x40; + } + + msg->l3h = msg->data; + /* is requested SAPI already up? */ + if (conn->lchan->sapis[sapi] == LCHAN_SAPI_UNUSED) { + /* Establish L2 for additional SAPI */ + OBSC_LINKID_CB(msg) = link_id; + rc = rll_establish(msg->lchan, sapi, rll_ind_cb, msg); + if (rc) { + msgb_free(msg); + bsc_sapi_n_reject(conn, link_id); + goto failed_to_send; + } + return; + } else { + /* Directly forward via RLL/RSL to BTS */ + rc = rsl_data_request(msg, link_id); + if (rc) + goto failed_to_send; + } + return; + +failed_to_send: + LOGPFSML(conn->fi, LOGL_ERROR, "Tx BSSMAP CLEAR REQUEST to MSC\n"); + resp = gsm0808_create_clear_rqst(GSM0808_CAUSE_EQUIPMENT_FAILURE); + sigtran_send(conn, resp, conn->fi); + osmo_fsm_inst_state_chg(conn->fi, ST_ACTIVE, 0, 0); +} + +void gscon_submit_rsl_dtap(struct gsm_subscriber_connection *conn, + struct msgb *msg, int link_id, int allow_sacch) +{ + /* buffer message during assignment / handover */ + if (conn->secondary_lchan || conn->ho) { + gscon_dtap_cache_add(conn, msg, link_id, !! allow_sacch); + return; + } + + gsm0808_send_rsl_dtap(conn, msg, link_id, allow_sacch); +} diff --git a/src/osmo-bsc/gsm_04_08_utils.c b/src/osmo-bsc/gsm_04_08_utils.c index e9aeb55..c548500 100644 --- a/src/osmo-bsc/gsm_04_08_utils.c +++ b/src/osmo-bsc/gsm_04_08_utils.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include #include /* should ip.access BTS use direct RTP streams between each other (1), @@ -600,7 +600,8 @@ DEBUGP(DMM, "-> CM SERVICE ACK\n"); - return gsm0808_submit_dtap(conn, msg, 0, 0); + gscon_submit_rsl_dtap(conn, msg, 0, 0); + return 0; } /* 9.2.6 CM service reject */ @@ -617,7 +618,8 @@ DEBUGP(DMM, "-> CM SERVICE Reject cause: %d\n", value); - return gsm0808_submit_dtap(conn, msg, 0, 0); + gscon_submit_rsl_dtap(conn, msg, 0, 0); + return 0; } /* 9.1.29 RR Status */ @@ -644,7 +646,8 @@ struct msgb *msg = gsm48_create_rr_status(cause); if (!msg) return -1; - return gsm0808_submit_dtap(conn, msg, 0, 0); + gscon_submit_rsl_dtap(conn, msg, 0, 0); + return 0; } struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value) diff --git a/src/osmo-bsc/gsm_04_80_utils.c b/src/osmo-bsc/gsm_04_80_utils.c index d67f3c5..8de1262 100644 --- a/src/osmo-bsc/gsm_04_80_utils.c +++ b/src/osmo-bsc/gsm_04_80_utils.c @@ -20,7 +20,7 @@ */ #include -#include +#include int bsc_send_ussd_notify(struct gsm_subscriber_connection *conn, int level, const char *text) @@ -28,7 +28,8 @@ struct msgb *msg = gsm0480_create_ussd_notify(level, text); if (!msg) return -1; - return gsm0808_submit_dtap(conn, msg, 0, 0); + gscon_submit_rsl_dtap(conn, msg, 0, 0); + return 0; } int bsc_send_ussd_release_complete(struct gsm_subscriber_connection *conn) @@ -36,5 +37,6 @@ struct msgb *msg = gsm0480_create_ussd_release_complete(); if (!msg) return -1; - return gsm0808_submit_dtap(conn, msg, 0, 0); + gscon_submit_rsl_dtap(conn, msg, 0, 0); + return 0; } diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c index a86b4f9..d409c93 100644 --- a/src/osmo-bsc/osmo_bsc_api.c +++ b/src/osmo-bsc/osmo_bsc_api.c @@ -86,7 +86,7 @@ } msg->lchan = conn->lchan; - gsm0808_submit_dtap(conn, msg, 0, 0); + gscon_submit_rsl_dtap(conn, msg, 0, 0); } static int bsc_filter_initial(struct osmo_bsc_data *bsc, diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c index 950eaf5..b05ca54 100644 --- a/tests/bsc/bsc_test.c +++ b/tests/bsc/bsc_test.c @@ -249,3 +249,6 @@ const uint8_t *cm2, uint8_t cm2_len, const uint8_t *cm3, uint8_t cm3_len) {} void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate) {} +void gscon_submit_rsl_dtap(struct gsm_subscriber_connection *conn, + struct msgb *msg, int link_id, int allow_sacch) {} +void gscon_dtap_cache_flush(struct gsm_subscriber_connection *conn, int send) {} -- To view, visit https://gerrit.osmocom.org/9668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 Gerrit-Change-Number: 9668 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:17 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:17 +0000 Subject: Change in osmo-bsc[master]: move RSL and RR related functions to abis_rsl.[hc] Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9669 Change subject: move RSL and RR related functions to abis_rsl.[hc] ...................................................................... move RSL and RR related functions to abis_rsl.[hc] It doesn't make sense to spread them all over the place, and introduces odd dependencies from utility programs or regression test linkages. This is a cosmetic patch preparing for lchan activation refactoring. Change-Id: Ie8ee334145bf7bc3a601d395ea7ab9b2009b61c7 --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/gsm_04_08_utils.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_api.c M src/osmo-bsc/gsm_04_08_utils.c 6 files changed, 594 insertions(+), 593 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/69/9669/1 diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index 2fe8c38..c04c61a 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -110,5 +110,20 @@ int dyn_ts_switchover_start(struct gsm_bts_trx_ts *ts, enum gsm_phys_chan_config to_pchan); +struct msgb *gsm48_create_rr_status(uint8_t cause); +int gsm48_tx_rr_status(struct gsm_subscriber_connection *conn, uint8_t cause); + +int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id); +int send_siemens_mrpci(struct gsm_lchan *lchan, + uint8_t *classmark2_lv); + +int gsm48_rx_rr_modif_ack(struct msgb *msg); +int gsm48_send_rr_release(struct gsm_lchan *lchan); +int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv); +int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan, + uint8_t power_command, uint8_t ho_ref); +int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_command); +int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t mode); + #endif /* RSL_MT_H */ diff --git a/include/osmocom/bsc/bsc_api.h b/include/osmocom/bsc/bsc_api.h index a90268b..9e2b44e 100644 --- a/include/osmocom/bsc/bsc_api.h +++ b/include/osmocom/bsc/bsc_api.h @@ -28,5 +28,4 @@ unsigned int mi_len, uint8_t *mi, int chan_type); int gsm0808_clear(struct gsm_subscriber_connection *conn); -int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id); #endif diff --git a/include/osmocom/bsc/gsm_04_08_utils.h b/include/osmocom/bsc/gsm_04_08_utils.h index 4349a37..207ed38 100644 --- a/include/osmocom/bsc/gsm_04_08_utils.h +++ b/include/osmocom/bsc/gsm_04_08_utils.h @@ -3,20 +3,11 @@ void gsm_net_update_ctype(struct gsm_network *network); enum gsm_chan_t get_ctype_by_chreq(struct gsm_network *network, uint8_t ra); int get_reason_by_chreq(uint8_t ra, int neci); -int gsm48_send_rr_release(struct gsm_lchan *lchan); -int send_siemens_mrpci(struct gsm_lchan *lchan, - uint8_t *classmark2_lv); int gsm48_handle_paging_resp(struct gsm_subscriber_connection *conn, struct msgb *msg, struct bsc_subscr *bsub); -int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv); void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd, const struct gsm_lchan *lchan); int gsm48_multirate_config(uint8_t *lv, const struct amr_multirate_conf *mr, const struct amr_mode *modes); -int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan, - uint8_t power_command, uint8_t ho_ref); -int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_command); -int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t mode); -int gsm48_rx_rr_modif_ack(struct msgb *msg); int gsm48_parse_meas_rep(struct gsm_meas_rep *rep, struct msgb *msg); int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn); int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn, @@ -28,9 +19,6 @@ char *mi_string, uint8_t *mi_type); struct msgb *gsm48_create_loc_upd_rej(uint8_t cause); -struct msgb *gsm48_create_rr_status(uint8_t cause); -int gsm48_tx_rr_status(struct gsm_subscriber_connection *conn, uint8_t cause); - #define GSM48_ALLOC_SIZE 2048 #define GSM48_ALLOC_HEADROOM 256 diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index ab3658d..b6741a8 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -3032,3 +3032,582 @@ dyn_ts_init(ts); return true; } + +static void handle_classmark_chg(struct gsm_subscriber_connection *conn, + struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + uint8_t cm2_len, cm3_len = 0; + uint8_t *cm2, *cm3 = NULL; + + LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, "CLASSMARK CHANGE "); + + /* classmark 2 */ + cm2_len = gh->data[0]; + cm2 = &gh->data[1]; + DEBUGPC(DRR, "CM2(len=%u) ", cm2_len); + + if (payload_len > cm2_len + 1) { + /* we must have a classmark3 */ + if (gh->data[cm2_len+1] != 0x20) { + DEBUGPC(DRR, "ERR CM3 TAG\n"); + return; + } + if (cm2_len > 3) { + DEBUGPC(DRR, "CM2 too long!\n"); + return; + } + + cm3_len = gh->data[cm2_len+2]; + cm3 = &gh->data[cm2_len+3]; + if (cm3_len > 14) { + DEBUGPC(DRR, "CM3 len %u too long!\n", cm3_len); + return; + } + DEBUGPC(DRR, "CM3(len=%u)\n", cm3_len); + } + bsc_cm_update(conn, cm2, cm2_len, cm3, cm3_len); +} + +/* Chapter 9.1.16 Handover complete */ +static void handle_rr_ho_compl(struct msgb *msg) +{ + struct lchan_signal_data sig; + struct gsm48_hdr *gh = msgb_l3(msg); + + LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, + "HANDOVER COMPLETE cause = %s\n", rr_cause_name(gh->data[0])); + + sig.lchan = msg->lchan; + sig.mr = NULL; + osmo_signal_dispatch(SS_LCHAN, S_LCHAN_HANDOVER_COMPL, &sig); + /* FIXME: release old channel */ + + /* send pending messages, if any */ + gscon_dtap_cache_flush(msg->lchan->conn, 1); +} + +/* Chapter 9.1.17 Handover Failure */ +static void handle_rr_ho_fail(struct msgb *msg) +{ + struct lchan_signal_data sig; + struct gsm48_hdr *gh = msgb_l3(msg); + + /* Log on both RR and HO categories: it is an RR message, but is still quite important when + * filtering on HO. */ + LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, + "HANDOVER FAILED cause = %s\n", rr_cause_name(gh->data[0])); + LOGPLCHAN(msg->lchan, DHO, LOGL_DEBUG, + "HANDOVER FAILED cause = %s\n", rr_cause_name(gh->data[0])); + + sig.lchan = msg->lchan; + sig.mr = NULL; + osmo_signal_dispatch(SS_LCHAN, S_LCHAN_HANDOVER_FAIL, &sig); + /* FIXME: release allocated new channel */ + + /* send pending messages, if any */ + gscon_dtap_cache_flush(msg->lchan->conn, 1); +} + +static void handle_ass_compl(struct gsm_subscriber_connection *conn, + struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + enum gsm48_rr_cause cause; + + /* Expecting gsm48_hdr + cause value */ + if (msgb_l3len(msg) != sizeof(*gh) + 1) { + LOGPLCHAN(msg->lchan, DRR, LOGL_ERROR, + "RR Assignment Complete: length invalid: %u, expected %zu\n", + msgb_l3len(msg), sizeof(*gh) + 1); + return; + } + + cause = gh->data[0]; + + LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, "ASSIGNMENT COMPLETE cause = %s\n", + rr_cause_name(cause)); + + if (conn->ho) { + struct lchan_signal_data sig = { + .lchan = msg->lchan, + }; + osmo_signal_dispatch(SS_LCHAN, S_LCHAN_ASSIGNMENT_COMPL, &sig); + /* FIXME: release old channel */ + + /* send pending messages, if any */ + gscon_dtap_cache_flush(conn, 1); + + return; + } + + if (conn->secondary_lchan != msg->lchan) { + LOGPLCHAN(msg->lchan, DRR, LOGL_ERROR, + "RR Assignment Complete does not match conn's secondary lchan.\n"); + return; + } + + lchan_release(conn->lchan, 0, RSL_REL_LOCAL_END); + conn->lchan = conn->secondary_lchan; + conn->secondary_lchan = NULL; + + /* send pending messages, if any */ + gscon_dtap_cache_flush(conn, 1); + + if (is_ipaccess_bts(conn_get_bts(conn)) && conn->lchan->tch_mode != GSM48_CMODE_SIGN) + rsl_ipacc_crcx(conn->lchan); + + bsc_assign_compl(conn, cause); +} + +static void handle_ass_fail(struct gsm_subscriber_connection *conn, + struct msgb *msg) +{ + uint8_t *rr_failure; + struct gsm48_hdr *gh; + + if (conn->ho) { + struct lchan_signal_data sig; + struct gsm48_hdr *gh = msgb_l3(msg); + + LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, "ASSIGNMENT FAILED cause = %s\n", + rr_cause_name(gh->data[0])); + + sig.lchan = msg->lchan; + sig.mr = NULL; + osmo_signal_dispatch(SS_LCHAN, S_LCHAN_ASSIGNMENT_FAIL, &sig); + /* FIXME: release allocated new channel */ + + /* send pending messages, if any */ + gscon_dtap_cache_flush(conn, 1); + + return; + } + + if (conn->lchan != msg->lchan) { + LOGPLCHAN(msg->lchan, DMSC, LOGL_ERROR, + "Assignment failure should occur on primary lchan.\n"); + return; + } + + /* stop the timer and release it */ + if (conn->secondary_lchan) { + lchan_release(conn->secondary_lchan, 0, RSL_REL_LOCAL_END); + conn->secondary_lchan = NULL; + } + + /* send pending messages, if any */ + gscon_dtap_cache_flush(conn, 1); + + gh = msgb_l3(msg); + if (msgb_l3len(msg) - sizeof(*gh) != 1) { + LOGPLCHAN(conn->lchan, DMSC, LOGL_ERROR, "assignment failure unhandled: %zu\n", + msgb_l3len(msg) - sizeof(*gh)); + rr_failure = NULL; + } else { + rr_failure = &gh->data[0]; + } + + bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, rr_failure); +} + +static void dispatch_dtap(struct gsm_subscriber_connection *conn, + uint8_t link_id, struct msgb *msg) +{ + struct gsm48_hdr *gh; + uint8_t pdisc; + uint8_t msg_type; + int rc; + + if (msgb_l3len(msg) < sizeof(*gh)) { + LOGP(DMSC, LOGL_ERROR, "(%s) Message too short for a GSM48 header.\n", + bsc_subscr_name(conn->bsub)); + return; + } + + gh = msgb_l3(msg); + pdisc = gsm48_hdr_pdisc(gh); + msg_type = gsm48_hdr_msg_type(gh); + + /* the idea is to handle all RR messages here, and only hand + * MM/CC/SMS-CP/LCS up to the MSC. Some messages like PAGING + * RESPONSE or CM SERVICE REQUEST will not be covered here, as + * they are only possible in the first L3 message of each L2 + * channel, i.e. 'conn' will not exist and gsm0408_rcvmsg() + * will call api->compl_l3() for it */ + switch (pdisc) { + case GSM48_PDISC_RR: + switch (msg_type) { + case GSM48_MT_RR_GPRS_SUSP_REQ: + LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, + "%s\n", gsm48_rr_msg_name(GSM48_MT_RR_GPRS_SUSP_REQ)); + break; + case GSM48_MT_RR_STATUS: + LOGPLCHAN(msg->lchan, DRR, LOGL_NOTICE, + "%s (cause: %s)\n", gsm48_rr_msg_name(GSM48_MT_RR_STATUS), + rr_cause_name(gh->data[0])); + break; + case GSM48_MT_RR_MEAS_REP: + /* This shouldn't actually end up here, as RSL treats + * L3 Info of 08.58 MEASUREMENT REPORT different by calling + * directly into gsm48_parse_meas_rep */ + LOGPLCHAN(msg->lchan, DMEAS, LOGL_ERROR, + "DIRECT GSM48 MEASUREMENT REPORT ?!?\n"); + gsm48_tx_rr_status(conn, GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT); + break; + case GSM48_MT_RR_HANDO_COMPL: + handle_rr_ho_compl(msg); + break; + case GSM48_MT_RR_HANDO_FAIL: + handle_rr_ho_fail(msg); + break; + case GSM48_MT_RR_CIPH_M_COMPL: + bsc_cipher_mode_compl(conn, msg, conn->lchan->encr.alg_id); + break; + case GSM48_MT_RR_ASS_COMPL: + handle_ass_compl(conn, msg); + break; + case GSM48_MT_RR_ASS_FAIL: + handle_ass_fail(conn, msg); + break; + case GSM48_MT_RR_CHAN_MODE_MODIF_ACK: + rc = gsm48_rx_rr_modif_ack(msg); + if (rc < 0) + bsc_assign_fail(conn, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, NULL); + else + bsc_assign_compl(conn, 0); + break; + case GSM48_MT_RR_CLSM_CHG: + handle_classmark_chg(conn, msg); + break; + case GSM48_MT_RR_APP_INFO: + /* Passing RR APP INFO to MSC, not quite + * according to spec */ + bsc_dtap(conn, link_id, msg); + break; + default: + /* Drop unknown RR message */ + LOGPLCHAN(msg->lchan, DRR, LOGL_NOTICE, + "Dropping %s 04.08 RR message\n", gsm48_rr_msg_name(msg_type)); + gsm48_tx_rr_status(conn, GSM48_RR_CAUSE_MSG_TYPE_N); + break; + } + break; + default: + bsc_dtap(conn, link_id, msg); + break; + } +} + +/*! \brief RSL has received a DATA INDICATION with L3 from MS */ +int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id) +{ + int rc; + struct gsm_lchan *lchan; + + lchan = msg->lchan; + if (lchan->state != LCHAN_S_ACTIVE) { + LOGPLCHAN(msg->lchan, DRSL, LOGL_INFO, "Got data in non active state, discarding.\n"); + return -1; + } + + + if (lchan->conn) { + /* if we already have a connection, forward via DTAP to + * MSC */ + dispatch_dtap(lchan->conn, link_id, msg); + } else { + /* allocate a new connection */ + rc = BSC_API_CONN_POL_REJECT; + lchan->conn = bsc_subscr_con_allocate(msg->lchan->ts->trx->bts->network); + if (!lchan->conn) { + lchan_release(lchan, 1, RSL_REL_NORMAL); + return -1; + } + lchan->conn->lchan = lchan; + + /* fwd via bsc_api to send COMPLETE L3 INFO to MSC */ + rc = bsc_compl_l3(lchan->conn, msg, 0); + + if (rc != BSC_API_CONN_POL_ACCEPT) { + //osmo_fsm_inst_dispatch(lchan->conn->fi, FIXME, NULL); + } + } + + return 0; +} + +/* 9.1.29 RR Status */ +struct msgb *gsm48_create_rr_status(uint8_t cause) +{ + struct msgb *msg; + struct gsm48_hdr *gh; + + msg = gsm48_msgb_alloc_name("GSM 04.08 RR STATUS"); + if (!msg) + return NULL; + + gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); + gh->proto_discr = GSM48_PDISC_RR; + gh->msg_type = GSM48_MT_RR_STATUS; + gh->data[0] = cause; + + return msg; +} + +/* 9.1.29 RR Status */ +int gsm48_tx_rr_status(struct gsm_subscriber_connection *conn, uint8_t cause) +{ + struct msgb *msg = gsm48_create_rr_status(cause); + if (!msg) + return -1; + gscon_submit_rsl_dtap(conn, msg, 0, 0); + return 0; +} + +int send_siemens_mrpci(struct gsm_lchan *lchan, + uint8_t *classmark2_lv) +{ + struct rsl_mrpci mrpci; + + if (classmark2_lv[0] < 2) + return -EINVAL; + + mrpci.power_class = classmark2_lv[1] & 0x7; + mrpci.vgcs_capable = classmark2_lv[2] & (1 << 1); + mrpci.vbs_capable = classmark2_lv[2] & (1 <<2); + mrpci.gsm_phase = (classmark2_lv[1]) >> 5 & 0x3; + + return rsl_siemens_mrpci(lchan, &mrpci); +} + +int gsm48_rx_rr_modif_ack(struct msgb *msg) +{ + int rc; + struct gsm48_hdr *gh = msgb_l3(msg); + struct gsm48_chan_mode_modify *mod = + (struct gsm48_chan_mode_modify *) gh->data; + + DEBUGP(DRR, "CHANNEL MODE MODIFY ACK\n"); + + if (mod->mode != msg->lchan->tch_mode) { + LOGP(DRR, LOGL_ERROR, "CHANNEL MODE change failed. Wanted: %d Got: %d\n", + msg->lchan->tch_mode, mod->mode); + return -1; + } + + /* update the channel type */ + switch (mod->mode) { + case GSM48_CMODE_SIGN: + msg->lchan->rsl_cmode = RSL_CMOD_SPD_SIGN; + break; + case GSM48_CMODE_SPEECH_V1: + case GSM48_CMODE_SPEECH_EFR: + case GSM48_CMODE_SPEECH_AMR: + msg->lchan->rsl_cmode = RSL_CMOD_SPD_SPEECH; + break; + case GSM48_CMODE_DATA_14k5: + case GSM48_CMODE_DATA_12k0: + case GSM48_CMODE_DATA_6k0: + case GSM48_CMODE_DATA_3k6: + msg->lchan->rsl_cmode = RSL_CMOD_SPD_DATA; + break; + } + + /* We've successfully modified the MS side of the channel, + * now go on to modify the BTS side of the channel */ + rc = rsl_chan_mode_modify_req(msg->lchan); + + /* FIXME: we not only need to do this after mode modify, but + * also after channel activation */ + if (is_ipaccess_bts(msg->lchan->ts->trx->bts) && mod->mode != GSM48_CMODE_SIGN) + rsl_ipacc_crcx(msg->lchan); + return rc; +} + +static int gsm48_sendmsg(struct msgb *msg) +{ + if (msg->lchan) + msg->dst = msg->lchan->ts->trx->rsl_link; + + msg->l3h = msg->data; + return rsl_data_request(msg, 0); +} + +/* 7.1.7 and 9.1.7: RR CHANnel RELease */ +int gsm48_send_rr_release(struct gsm_lchan *lchan) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 RR REL"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + uint8_t *cause; + + msg->lchan = lchan; + gh->proto_discr = GSM48_PDISC_RR; + gh->msg_type = GSM48_MT_RR_CHAN_REL; + + cause = msgb_put(msg, 1); + cause[0] = GSM48_RR_CAUSE_NORMAL; + + DEBUGP(DRR, "Sending Channel Release: Chan: Number: %d Type: %d\n", + lchan->nr, lchan->type); + + /* Send actual release request to MS */ + return gsm48_sendmsg(msg); +} + +/* Chapter 9.1.9: Ciphering Mode Command */ +int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CIPH"); + struct gsm48_hdr *gh; + uint8_t ciph_mod_set; + + msg->lchan = lchan; + + DEBUGP(DRR, "TX CIPHERING MODE CMD\n"); + + if (lchan->encr.alg_id <= RSL_ENC_ALG_A5(0)) + ciph_mod_set = 0; + else + ciph_mod_set = (lchan->encr.alg_id-2)<<1 | 1; + + gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); + gh->proto_discr = GSM48_PDISC_RR; + gh->msg_type = GSM48_MT_RR_CIPH_M_CMD; + gh->data[0] = (want_imeisv & 0x1) << 4 | (ciph_mod_set & 0xf); + + return rsl_encryption_cmd(msg); +} + +static void gsm48_cell_desc(struct gsm48_cell_desc *cd, + const struct gsm_bts *bts) +{ + cd->ncc = (bts->bsic >> 3 & 0x7); + cd->bcc = (bts->bsic & 0x7); + cd->arfcn_hi = bts->c0->arfcn >> 8; + cd->arfcn_lo = bts->c0->arfcn & 0xff; +} + +#define GSM48_HOCMD_CCHDESC_LEN 16 + +/* Chapter 9.1.15: Handover Command */ +int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan, + uint8_t power_command, uint8_t ho_ref) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 HO CMD"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + struct gsm48_ho_cmd *ho = + (struct gsm48_ho_cmd *) msgb_put(msg, sizeof(*ho)); + + msg->lchan = old_lchan; + gh->proto_discr = GSM48_PDISC_RR; + gh->msg_type = GSM48_MT_RR_HANDO_CMD; + + /* mandatory bits */ + gsm48_cell_desc(&ho->cell_desc, new_lchan->ts->trx->bts); + gsm48_lchan2chan_desc(&ho->chan_desc, new_lchan); + ho->ho_ref = ho_ref; + ho->power_command = power_command; + + if (new_lchan->ts->hopping.enabled) { + struct gsm_bts *bts = new_lchan->ts->trx->bts; + struct gsm48_system_information_type_1 *si1; + uint8_t *cur; + + si1 = GSM_BTS_SI(bts, SYSINFO_TYPE_1); + /* Copy the Cell Chan Desc (ARFCNS in this cell) */ + msgb_put_u8(msg, GSM48_IE_CELL_CH_DESC); + cur = msgb_put(msg, GSM48_HOCMD_CCHDESC_LEN); + memcpy(cur, si1->cell_channel_description, + GSM48_HOCMD_CCHDESC_LEN); + /* Copy the Mobile Allocation */ + msgb_tlv_put(msg, GSM48_IE_MA_BEFORE, + new_lchan->ts->hopping.ma_len, + new_lchan->ts->hopping.ma_data); + } + /* FIXME: optional bits for type of synchronization? */ + + msgb_tv_put(msg, GSM48_IE_CHANMODE_1, new_lchan->tch_mode); + + /* in case of multi rate we need to attach a config */ + if (new_lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) + msgb_tlv_put(msg, GSM48_IE_MUL_RATE_CFG, new_lchan->mr_ms_lv[0], + new_lchan->mr_ms_lv + 1); + + return gsm48_sendmsg(msg); +} + +static void mr_config_for_ms(struct gsm_lchan *lchan, struct msgb *msg) +{ + if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) + msgb_tlv_put(msg, GSM48_IE_MUL_RATE_CFG, lchan->mr_ms_lv[0], + lchan->mr_ms_lv + 1); +} + +/* Chapter 9.1.2: Assignment Command */ +int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_command) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ASS CMD"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + struct gsm48_ass_cmd *ass = + (struct gsm48_ass_cmd *) msgb_put(msg, sizeof(*ass)); + + DEBUGP(DRR, "-> ASSIGNMENT COMMAND tch_mode=0x%02x\n", lchan->tch_mode); + + msg->lchan = dest_lchan; + gh->proto_discr = GSM48_PDISC_RR; + gh->msg_type = GSM48_MT_RR_ASS_CMD; + + /* + * fill the channel information element, this code + * should probably be shared with rsl_rx_chan_rqd(), + * gsm48_lchan_modify(). But beware that 10.5.2.5 + * 10.5.2.5.a have slightly different semantic for + * the chan_desc. But as long as multi-slot configurations + * are not used we seem to be fine. + */ + gsm48_lchan2chan_desc(&ass->chan_desc, lchan); + ass->power_command = power_command; + + /* optional: cell channel description */ + + msgb_tv_put(msg, GSM48_IE_CHANMODE_1, lchan->tch_mode); + + /* mobile allocation in case of hopping */ + if (lchan->ts->hopping.enabled) { + msgb_tlv_put(msg, GSM48_IE_MA_BEFORE, lchan->ts->hopping.ma_len, + lchan->ts->hopping.ma_data); + } + + /* in case of multi rate we need to attach a config */ + mr_config_for_ms(lchan, msg); + + return gsm48_sendmsg(msg); +} + +/* 9.1.5 Channel mode modify: Modify the mode on the MS side */ +int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t mode) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CHN MOD"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + struct gsm48_chan_mode_modify *cmm = + (struct gsm48_chan_mode_modify *) msgb_put(msg, sizeof(*cmm)); + + DEBUGP(DRR, "-> CHANNEL MODE MODIFY mode=0x%02x\n", mode); + + lchan->tch_mode = mode; + msg->lchan = lchan; + gh->proto_discr = GSM48_PDISC_RR; + gh->msg_type = GSM48_MT_RR_CHAN_MODE_MODIF; + + /* fill the channel information element, this code + * should probably be shared with rsl_rx_chan_rqd() */ + gsm48_lchan2chan_desc(&cmm->chan_desc, lchan); + cmm->mode = mode; + + /* in case of multi rate we need to attach a config */ + mr_config_for_ms(lchan, msg); + + return gsm48_sendmsg(msg); +} diff --git a/src/osmo-bsc/bsc_api.c b/src/osmo-bsc/bsc_api.c index 2c799e3..eed475b 100644 --- a/src/osmo-bsc/bsc_api.c +++ b/src/osmo-bsc/bsc_api.c @@ -195,312 +195,6 @@ return rsl_paging_cmd(bts, page_group, mi_len, mi, chan_type, false); } -static void handle_ass_compl(struct gsm_subscriber_connection *conn, - struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - enum gsm48_rr_cause cause; - - /* Expecting gsm48_hdr + cause value */ - if (msgb_l3len(msg) != sizeof(*gh) + 1) { - LOGPLCHAN(msg->lchan, DRR, LOGL_ERROR, - "RR Assignment Complete: length invalid: %u, expected %zu\n", - msgb_l3len(msg), sizeof(*gh) + 1); - return; - } - - cause = gh->data[0]; - - LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, "ASSIGNMENT COMPLETE cause = %s\n", - rr_cause_name(cause)); - - if (conn->ho) { - struct lchan_signal_data sig = { - .lchan = msg->lchan, - }; - osmo_signal_dispatch(SS_LCHAN, S_LCHAN_ASSIGNMENT_COMPL, &sig); - /* FIXME: release old channel */ - - /* send pending messages, if any */ - gscon_dtap_cache_flush(conn, 1); - - return; - } - - if (conn->secondary_lchan != msg->lchan) { - LOGPLCHAN(msg->lchan, DRR, LOGL_ERROR, - "RR Assignment Complete does not match conn's secondary lchan.\n"); - return; - } - - lchan_release(conn->lchan, 0, RSL_REL_LOCAL_END); - conn->lchan = conn->secondary_lchan; - conn->secondary_lchan = NULL; - - /* send pending messages, if any */ - gscon_dtap_cache_flush(conn, 1); - - if (is_ipaccess_bts(conn_get_bts(conn)) && conn->lchan->tch_mode != GSM48_CMODE_SIGN) - rsl_ipacc_crcx(conn->lchan); - - bsc_assign_compl(conn, cause); -} - -static void handle_ass_fail(struct gsm_subscriber_connection *conn, - struct msgb *msg) -{ - uint8_t *rr_failure; - struct gsm48_hdr *gh; - - if (conn->ho) { - struct lchan_signal_data sig; - struct gsm48_hdr *gh = msgb_l3(msg); - - LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, "ASSIGNMENT FAILED cause = %s\n", - rr_cause_name(gh->data[0])); - - sig.lchan = msg->lchan; - sig.mr = NULL; - osmo_signal_dispatch(SS_LCHAN, S_LCHAN_ASSIGNMENT_FAIL, &sig); - /* FIXME: release allocated new channel */ - - /* send pending messages, if any */ - gscon_dtap_cache_flush(conn, 1); - - return; - } - - if (conn->lchan != msg->lchan) { - LOGPLCHAN(msg->lchan, DMSC, LOGL_ERROR, - "Assignment failure should occur on primary lchan.\n"); - return; - } - - /* stop the timer and release it */ - if (conn->secondary_lchan) { - lchan_release(conn->secondary_lchan, 0, RSL_REL_LOCAL_END); - conn->secondary_lchan = NULL; - } - - /* send pending messages, if any */ - gscon_dtap_cache_flush(conn, 1); - - gh = msgb_l3(msg); - if (msgb_l3len(msg) - sizeof(*gh) != 1) { - LOGPLCHAN(conn->lchan, DMSC, LOGL_ERROR, "assignment failure unhandled: %zu\n", - msgb_l3len(msg) - sizeof(*gh)); - rr_failure = NULL; - } else { - rr_failure = &gh->data[0]; - } - - bsc_assign_fail(conn, GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE, rr_failure); -} - -static void handle_classmark_chg(struct gsm_subscriber_connection *conn, - struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - uint8_t cm2_len, cm3_len = 0; - uint8_t *cm2, *cm3 = NULL; - - LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, "CLASSMARK CHANGE "); - - /* classmark 2 */ - cm2_len = gh->data[0]; - cm2 = &gh->data[1]; - DEBUGPC(DRR, "CM2(len=%u) ", cm2_len); - - if (payload_len > cm2_len + 1) { - /* we must have a classmark3 */ - if (gh->data[cm2_len+1] != 0x20) { - DEBUGPC(DRR, "ERR CM3 TAG\n"); - return; - } - if (cm2_len > 3) { - DEBUGPC(DRR, "CM2 too long!\n"); - return; - } - - cm3_len = gh->data[cm2_len+2]; - cm3 = &gh->data[cm2_len+3]; - if (cm3_len > 14) { - DEBUGPC(DRR, "CM3 len %u too long!\n", cm3_len); - return; - } - DEBUGPC(DRR, "CM3(len=%u)\n", cm3_len); - } - bsc_cm_update(conn, cm2, cm2_len, cm3, cm3_len); -} - -/* Chapter 9.1.16 Handover complete */ -static void handle_rr_ho_compl(struct msgb *msg) -{ - struct lchan_signal_data sig; - struct gsm48_hdr *gh = msgb_l3(msg); - - LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, - "HANDOVER COMPLETE cause = %s\n", rr_cause_name(gh->data[0])); - - sig.lchan = msg->lchan; - sig.mr = NULL; - osmo_signal_dispatch(SS_LCHAN, S_LCHAN_HANDOVER_COMPL, &sig); - /* FIXME: release old channel */ - - /* send pending messages, if any */ - gscon_dtap_cache_flush(msg->lchan->conn, 1); -} - -/* Chapter 9.1.17 Handover Failure */ -static void handle_rr_ho_fail(struct msgb *msg) -{ - struct lchan_signal_data sig; - struct gsm48_hdr *gh = msgb_l3(msg); - - /* Log on both RR and HO categories: it is an RR message, but is still quite important when - * filtering on HO. */ - LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, - "HANDOVER FAILED cause = %s\n", rr_cause_name(gh->data[0])); - LOGPLCHAN(msg->lchan, DHO, LOGL_DEBUG, - "HANDOVER FAILED cause = %s\n", rr_cause_name(gh->data[0])); - - sig.lchan = msg->lchan; - sig.mr = NULL; - osmo_signal_dispatch(SS_LCHAN, S_LCHAN_HANDOVER_FAIL, &sig); - /* FIXME: release allocated new channel */ - - /* send pending messages, if any */ - gscon_dtap_cache_flush(msg->lchan->conn, 1); -} - - -static void dispatch_dtap(struct gsm_subscriber_connection *conn, - uint8_t link_id, struct msgb *msg) -{ - struct gsm48_hdr *gh; - uint8_t pdisc; - uint8_t msg_type; - int rc; - - if (msgb_l3len(msg) < sizeof(*gh)) { - LOGP(DMSC, LOGL_ERROR, "(%s) Message too short for a GSM48 header.\n", - bsc_subscr_name(conn->bsub)); - return; - } - - gh = msgb_l3(msg); - pdisc = gsm48_hdr_pdisc(gh); - msg_type = gsm48_hdr_msg_type(gh); - - /* the idea is to handle all RR messages here, and only hand - * MM/CC/SMS-CP/LCS up to the MSC. Some messages like PAGING - * RESPONSE or CM SERVICE REQUEST will not be covered here, as - * they are only possible in the first L3 message of each L2 - * channel, i.e. 'conn' will not exist and gsm0408_rcvmsg() - * will call api->compl_l3() for it */ - switch (pdisc) { - case GSM48_PDISC_RR: - switch (msg_type) { - case GSM48_MT_RR_GPRS_SUSP_REQ: - LOGPLCHAN(msg->lchan, DRR, LOGL_DEBUG, - "%s\n", gsm48_rr_msg_name(GSM48_MT_RR_GPRS_SUSP_REQ)); - break; - case GSM48_MT_RR_STATUS: - LOGPLCHAN(msg->lchan, DRR, LOGL_NOTICE, - "%s (cause: %s)\n", gsm48_rr_msg_name(GSM48_MT_RR_STATUS), - rr_cause_name(gh->data[0])); - break; - case GSM48_MT_RR_MEAS_REP: - /* This shouldn't actually end up here, as RSL treats - * L3 Info of 08.58 MEASUREMENT REPORT different by calling - * directly into gsm48_parse_meas_rep */ - LOGPLCHAN(msg->lchan, DMEAS, LOGL_ERROR, - "DIRECT GSM48 MEASUREMENT REPORT ?!?\n"); - gsm48_tx_rr_status(conn, GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT); - break; - case GSM48_MT_RR_HANDO_COMPL: - handle_rr_ho_compl(msg); - break; - case GSM48_MT_RR_HANDO_FAIL: - handle_rr_ho_fail(msg); - break; - case GSM48_MT_RR_CIPH_M_COMPL: - bsc_cipher_mode_compl(conn, msg, conn->lchan->encr.alg_id); - break; - case GSM48_MT_RR_ASS_COMPL: - handle_ass_compl(conn, msg); - break; - case GSM48_MT_RR_ASS_FAIL: - handle_ass_fail(conn, msg); - break; - case GSM48_MT_RR_CHAN_MODE_MODIF_ACK: - rc = gsm48_rx_rr_modif_ack(msg); - if (rc < 0) - bsc_assign_fail(conn, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, NULL); - else - bsc_assign_compl(conn, 0); - break; - case GSM48_MT_RR_CLSM_CHG: - handle_classmark_chg(conn, msg); - break; - case GSM48_MT_RR_APP_INFO: - /* Passing RR APP INFO to MSC, not quite - * according to spec */ - bsc_dtap(conn, link_id, msg); - break; - default: - /* Drop unknown RR message */ - LOGPLCHAN(msg->lchan, DRR, LOGL_NOTICE, - "Dropping %s 04.08 RR message\n", gsm48_rr_msg_name(msg_type)); - gsm48_tx_rr_status(conn, GSM48_RR_CAUSE_MSG_TYPE_N); - break; - } - break; - default: - bsc_dtap(conn, link_id, msg); - break; - } -} - -/*! \brief RSL has received a DATA INDICATION with L3 from MS */ -int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id) -{ - int rc; - struct gsm_lchan *lchan; - - lchan = msg->lchan; - if (lchan->state != LCHAN_S_ACTIVE) { - LOGPLCHAN(msg->lchan, DRSL, LOGL_INFO, "Got data in non active state, discarding.\n"); - return -1; - } - - - if (lchan->conn) { - /* if we already have a connection, forward via DTAP to - * MSC */ - dispatch_dtap(lchan->conn, link_id, msg); - } else { - /* allocate a new connection */ - rc = BSC_API_CONN_POL_REJECT; - lchan->conn = bsc_subscr_con_allocate(msg->lchan->ts->trx->bts->network); - if (!lchan->conn) { - lchan_release(lchan, 1, RSL_REL_NORMAL); - return -1; - } - lchan->conn->lchan = lchan; - - /* fwd via bsc_api to send COMPLETE L3 INFO to MSC */ - rc = bsc_compl_l3(lchan->conn, msg, 0); - - if (rc != BSC_API_CONN_POL_ACCEPT) { - //osmo_fsm_inst_dispatch(lchan->conn->fi, FIXME, NULL); - } - } - - return 0; -} - /*! \brief We received a GSM 08.08 CIPHER MODE from the MSC */ int gsm0808_cipher_mode(struct gsm_subscriber_connection *conn, int cipher, const uint8_t *key, int len, int include_imeisv) diff --git a/src/osmo-bsc/gsm_04_08_utils.c b/src/osmo-bsc/gsm_04_08_utils.c index c548500..c52239f 100644 --- a/src/osmo-bsc/gsm_04_08_utils.c +++ b/src/osmo-bsc/gsm_04_08_utils.c @@ -41,15 +41,6 @@ * or should OpenBSC always act as RTP relay/proxy in between (0) ? */ int ipacc_rtp_direct = 1; -static int gsm48_sendmsg(struct msgb *msg) -{ - if (msg->lchan) - msg->dst = msg->lchan->ts->trx->rsl_link; - - msg->l3h = msg->data; - return rsl_data_request(msg, 0); -} - /* Section 9.1.8 / Table 9.9 */ struct chreq { uint8_t val; @@ -225,83 +216,6 @@ return GSM_CHREQ_REASON_OTHER; } -static void mr_config_for_ms(struct gsm_lchan *lchan, struct msgb *msg) -{ - if (lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) - msgb_tlv_put(msg, GSM48_IE_MUL_RATE_CFG, lchan->mr_ms_lv[0], - lchan->mr_ms_lv + 1); -} - -/* 7.1.7 and 9.1.7: RR CHANnel RELease */ -int gsm48_send_rr_release(struct gsm_lchan *lchan) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 RR REL"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - uint8_t *cause; - - msg->lchan = lchan; - gh->proto_discr = GSM48_PDISC_RR; - gh->msg_type = GSM48_MT_RR_CHAN_REL; - - cause = msgb_put(msg, 1); - cause[0] = GSM48_RR_CAUSE_NORMAL; - - DEBUGP(DRR, "Sending Channel Release: Chan: Number: %d Type: %d\n", - lchan->nr, lchan->type); - - /* Send actual release request to MS */ - return gsm48_sendmsg(msg); -} - -int send_siemens_mrpci(struct gsm_lchan *lchan, - uint8_t *classmark2_lv) -{ - struct rsl_mrpci mrpci; - - if (classmark2_lv[0] < 2) - return -EINVAL; - - mrpci.power_class = classmark2_lv[1] & 0x7; - mrpci.vgcs_capable = classmark2_lv[2] & (1 << 1); - mrpci.vbs_capable = classmark2_lv[2] & (1 <<2); - mrpci.gsm_phase = (classmark2_lv[1]) >> 5 & 0x3; - - return rsl_siemens_mrpci(lchan, &mrpci); -} - -/* Chapter 9.1.9: Ciphering Mode Command */ -int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CIPH"); - struct gsm48_hdr *gh; - uint8_t ciph_mod_set; - - msg->lchan = lchan; - - DEBUGP(DRR, "TX CIPHERING MODE CMD\n"); - - if (lchan->encr.alg_id <= RSL_ENC_ALG_A5(0)) - ciph_mod_set = 0; - else - ciph_mod_set = (lchan->encr.alg_id-2)<<1 | 1; - - gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); - gh->proto_discr = GSM48_PDISC_RR; - gh->msg_type = GSM48_MT_RR_CIPH_M_CMD; - gh->data[0] = (want_imeisv & 0x1) << 4 | (ciph_mod_set & 0xf); - - return rsl_encryption_cmd(msg); -} - -static void gsm48_cell_desc(struct gsm48_cell_desc *cd, - const struct gsm_bts *bts) -{ - cd->ncc = (bts->bsic >> 3 & 0x7); - cd->bcc = (bts->bsic & 0x7); - cd->arfcn_hi = bts->c0->arfcn >> 8; - cd->arfcn_lo = bts->c0->arfcn & 0xff; -} - /*! \brief Encode a TS 04.08 multirate config LV according to 10.5.2.21aa * \param[out] lv caller-allocated buffer of 7 bytes. First octet is IS length * \param[in] mr multi-rate configuration to encode @@ -347,166 +261,6 @@ return 0; } -#define GSM48_HOCMD_CCHDESC_LEN 16 - -/* Chapter 9.1.15: Handover Command */ -int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan, - uint8_t power_command, uint8_t ho_ref) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 HO CMD"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - struct gsm48_ho_cmd *ho = - (struct gsm48_ho_cmd *) msgb_put(msg, sizeof(*ho)); - - msg->lchan = old_lchan; - gh->proto_discr = GSM48_PDISC_RR; - gh->msg_type = GSM48_MT_RR_HANDO_CMD; - - /* mandatory bits */ - gsm48_cell_desc(&ho->cell_desc, new_lchan->ts->trx->bts); - gsm48_lchan2chan_desc(&ho->chan_desc, new_lchan); - ho->ho_ref = ho_ref; - ho->power_command = power_command; - - if (new_lchan->ts->hopping.enabled) { - struct gsm_bts *bts = new_lchan->ts->trx->bts; - struct gsm48_system_information_type_1 *si1; - uint8_t *cur; - - si1 = GSM_BTS_SI(bts, SYSINFO_TYPE_1); - /* Copy the Cell Chan Desc (ARFCNS in this cell) */ - msgb_put_u8(msg, GSM48_IE_CELL_CH_DESC); - cur = msgb_put(msg, GSM48_HOCMD_CCHDESC_LEN); - memcpy(cur, si1->cell_channel_description, - GSM48_HOCMD_CCHDESC_LEN); - /* Copy the Mobile Allocation */ - msgb_tlv_put(msg, GSM48_IE_MA_BEFORE, - new_lchan->ts->hopping.ma_len, - new_lchan->ts->hopping.ma_data); - } - /* FIXME: optional bits for type of synchronization? */ - - msgb_tv_put(msg, GSM48_IE_CHANMODE_1, new_lchan->tch_mode); - - /* in case of multi rate we need to attach a config */ - if (new_lchan->tch_mode == GSM48_CMODE_SPEECH_AMR) - msgb_tlv_put(msg, GSM48_IE_MUL_RATE_CFG, new_lchan->mr_ms_lv[0], - new_lchan->mr_ms_lv + 1); - - return gsm48_sendmsg(msg); -} - -/* Chapter 9.1.2: Assignment Command */ -int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_command) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 ASS CMD"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - struct gsm48_ass_cmd *ass = - (struct gsm48_ass_cmd *) msgb_put(msg, sizeof(*ass)); - - DEBUGP(DRR, "-> ASSIGNMENT COMMAND tch_mode=0x%02x\n", lchan->tch_mode); - - msg->lchan = dest_lchan; - gh->proto_discr = GSM48_PDISC_RR; - gh->msg_type = GSM48_MT_RR_ASS_CMD; - - /* - * fill the channel information element, this code - * should probably be shared with rsl_rx_chan_rqd(), - * gsm48_lchan_modify(). But beware that 10.5.2.5 - * 10.5.2.5.a have slightly different semantic for - * the chan_desc. But as long as multi-slot configurations - * are not used we seem to be fine. - */ - gsm48_lchan2chan_desc(&ass->chan_desc, lchan); - ass->power_command = power_command; - - /* optional: cell channel description */ - - msgb_tv_put(msg, GSM48_IE_CHANMODE_1, lchan->tch_mode); - - /* mobile allocation in case of hopping */ - if (lchan->ts->hopping.enabled) { - msgb_tlv_put(msg, GSM48_IE_MA_BEFORE, lchan->ts->hopping.ma_len, - lchan->ts->hopping.ma_data); - } - - /* in case of multi rate we need to attach a config */ - mr_config_for_ms(lchan, msg); - - return gsm48_sendmsg(msg); -} - -/* 9.1.5 Channel mode modify: Modify the mode on the MS side */ -int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t mode) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CHN MOD"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - struct gsm48_chan_mode_modify *cmm = - (struct gsm48_chan_mode_modify *) msgb_put(msg, sizeof(*cmm)); - - DEBUGP(DRR, "-> CHANNEL MODE MODIFY mode=0x%02x\n", mode); - - lchan->tch_mode = mode; - msg->lchan = lchan; - gh->proto_discr = GSM48_PDISC_RR; - gh->msg_type = GSM48_MT_RR_CHAN_MODE_MODIF; - - /* fill the channel information element, this code - * should probably be shared with rsl_rx_chan_rqd() */ - gsm48_lchan2chan_desc(&cmm->chan_desc, lchan); - cmm->mode = mode; - - /* in case of multi rate we need to attach a config */ - mr_config_for_ms(lchan, msg); - - return gsm48_sendmsg(msg); -} - -int gsm48_rx_rr_modif_ack(struct msgb *msg) -{ - int rc; - struct gsm48_hdr *gh = msgb_l3(msg); - struct gsm48_chan_mode_modify *mod = - (struct gsm48_chan_mode_modify *) gh->data; - - DEBUGP(DRR, "CHANNEL MODE MODIFY ACK\n"); - - if (mod->mode != msg->lchan->tch_mode) { - LOGP(DRR, LOGL_ERROR, "CHANNEL MODE change failed. Wanted: %d Got: %d\n", - msg->lchan->tch_mode, mod->mode); - return -1; - } - - /* update the channel type */ - switch (mod->mode) { - case GSM48_CMODE_SIGN: - msg->lchan->rsl_cmode = RSL_CMOD_SPD_SIGN; - break; - case GSM48_CMODE_SPEECH_V1: - case GSM48_CMODE_SPEECH_EFR: - case GSM48_CMODE_SPEECH_AMR: - msg->lchan->rsl_cmode = RSL_CMOD_SPD_SPEECH; - break; - case GSM48_CMODE_DATA_14k5: - case GSM48_CMODE_DATA_12k0: - case GSM48_CMODE_DATA_6k0: - case GSM48_CMODE_DATA_3k6: - msg->lchan->rsl_cmode = RSL_CMOD_SPD_DATA; - break; - } - - /* We've successfully modified the MS side of the channel, - * now go on to modify the BTS side of the channel */ - rc = rsl_chan_mode_modify_req(msg->lchan); - - /* FIXME: we not only need to do this after mode modify, but - * also after channel activation */ - if (is_ipaccess_bts(msg->lchan->ts->trx->bts) && mod->mode != GSM48_CMODE_SIGN) - rsl_ipacc_crcx(msg->lchan); - return rc; -} - int gsm48_parse_meas_rep(struct gsm_meas_rep *rep, struct msgb *msg) { struct gsm48_hdr *gh = msgb_l3(msg); @@ -622,34 +376,6 @@ return 0; } -/* 9.1.29 RR Status */ -struct msgb *gsm48_create_rr_status(uint8_t cause) -{ - struct msgb *msg; - struct gsm48_hdr *gh; - - msg = gsm48_msgb_alloc_name("GSM 04.08 RR STATUS"); - if (!msg) - return NULL; - - gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh) + 1); - gh->proto_discr = GSM48_PDISC_RR; - gh->msg_type = GSM48_MT_RR_STATUS; - gh->data[0] = cause; - - return msg; -} - -/* 9.1.29 RR Status */ -int gsm48_tx_rr_status(struct gsm_subscriber_connection *conn, uint8_t cause) -{ - struct msgb *msg = gsm48_create_rr_status(cause); - if (!msg) - return -1; - gscon_submit_rsl_dtap(conn, msg, 0, 0); - return 0; -} - struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value) { struct msgb *msg; -- To view, visit https://gerrit.osmocom.org/9669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie8ee334145bf7bc3a601d395ea7ab9b2009b61c7 Gerrit-Change-Number: 9669 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:17 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:17 +0000 Subject: Change in osmo-bsc[master]: add gsm_timers, for Tnnn definitions usable by FSMs Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9670 Change subject: add gsm_timers, for Tnnn definitions usable by FSMs ...................................................................... add gsm_timers, for Tnnn definitions usable by FSMs This reverts commit c0990acd03807631fb426ca0123d9fc402e97ca1. Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/gsm_timers.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/gsm_data.c A src/osmo-bsc/gsm_timers.c A src/osmo-bsc/gsm_timers_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/paging.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 23 files changed, 513 insertions(+), 180 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/70/9670/1 diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 18737a3..82a2e26 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -18,6 +18,7 @@ gsm_04_08_utils.h \ gsm_04_80.h \ gsm_data.h \ + gsm_timers.h \ handover.h \ handover_cfg.h \ handover_decision.h \ diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 6ee95f7..ce7a8fe 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -32,6 +32,8 @@ #include #include +#define GSM_T3122_DEFAULT 10 + struct mgcp_client_conf; struct mgcp_client; struct mgcp_ctx; @@ -1189,23 +1191,6 @@ bsc_ctr_description, }; -#define GSM_T3101_DEFAULT 3 /* s */ -#define GSM_T3103_DEFAULT 5 /* s */ -#define GSM_T3105_DEFAULT 100 /* ms */ -#define GSM_T3107_DEFAULT 5 /* s */ -#define GSM_T3109_DEFAULT 5 /* s, must be 2s + radio_link_timeout*0.48 */ -#define GSM_T3111_DEFAULT 2 /* s */ -#define GSM_T3113_DEFAULT 10 /* s */ -#define GSM_T3115_DEFAULT 10 -#define GSM_T3117_DEFAULT 10 -#define GSM_T3119_DEFAULT 10 -#define GSM_T3122_DEFAULT 10 -#define GSM_T3141_DEFAULT 10 -#define GSM_T10_DEFAULT 6 /* RR Assignment timeout, in seconds */ -#define GSM_T7_DEFAULT 10 /* inter-BSC MO Handover first timeout, in seconds */ -#define GSM_T8_DEFAULT 10 /* inter-BSC MO Handover second timeout, in seconds */ -#define GSM_T101_DEFAULT 10 /* inter-BSC MT Handover timeout, in seconds */ - struct gsm_tz { int override; /* if 0, use system's time zone instead. */ int hr; /* hour */ @@ -1237,23 +1222,8 @@ unsigned int num_bts; struct llist_head bts_list; - /* timer values */ - int T3101; - int T3103; /*< Handover timeout */ - int T3105; - int T3107; - int T3109; - int T3111; - int T3113; - int T3115; - int T3117; - int T3119; - int T3122; - int T3141; - int T10; /*< RR Assignment timeout, in seconds */ - int T7; /*< inter-BSC handover MO timeout from Handover Required to Handover Command */ - int T8; /*< inter-BSC handover MO timeout from Handover Command to final Clear*/ - int T101; /*< inter-BSC handover MT timeout from Handover Request to Handover Accept */ + /* shall reference gsm_network_T[] */ + struct T_def *T_defs; enum gsm_chan_t ctype_by_chreq[_NUM_CHREQ_T]; @@ -1287,9 +1257,6 @@ * pointer is NULL to indicate absence of a bsc_subscribers list. */ struct llist_head *bsc_subscribers; - /* Periodic location update default value */ - uint8_t t3212; - /* Timer for periodic channel load measurements to maintain each BTS's T3122. */ struct osmo_timer_list t3122_chan_load_timer; diff --git a/include/osmocom/bsc/gsm_timers.h b/include/osmocom/bsc/gsm_timers.h new file mode 100644 index 0000000..fde8c93 --- /dev/null +++ b/include/osmocom/bsc/gsm_timers.h @@ -0,0 +1,55 @@ +/* API to define Tnnn timers globally, configure in VTY and use for FSM state changes. */ +#pragma once + +#include +#include + +struct osmo_fsm_inst; +struct vty; + +enum T_unit { + T_S = 0, /*< most T are in seconds, keep 0 as default. */ + T_MS, /*< milliseconds */ + T_M, /*< minutes */ + T_CUSTOM, +}; + +extern const struct value_string T_unit_names[]; +static inline const char *T_unit_name(enum T_unit val) +{ return get_value_string(T_unit_names, val); } + +/* Define a GSM timer of the form Tnnn, with unit, default value and doc string. */ +struct T_def { + const int T; /*< T1234 number */ + const int default_val; /*< timeout duration (according to unit), default value. */ + const enum T_unit unit; + const char *desc; + int val; /*< currently active value, e.g. set by user config. */ +}; + +/* Iterate an array of struct T_def, the last item should be fully zero, i.e. "{}" */ +#define for_each_T_def(d, T_defs) \ + for (d = T_defs; d && (d->T || d->default_val || d->desc); d++) + +int T_def_get(struct T_def *T_defs, int T, enum T_unit as_unit, int val_if_not_present); +void T_defs_reset(struct T_def *T_defs); +struct T_def *T_def_get_entry(struct T_def *T_defs, int T); + +void T_defs_vty_init(struct T_def *T_defs, int cfg_parent_node); +void T_defs_vty_write(struct vty *vty, const char *indent); + + +struct state_timeout { + int T; + bool keep_timer; +}; + +struct state_timeout *get_state_timeout(uint32_t state, struct state_timeout *timeouts_array); + +#define fsm_inst_state_chg_T(fi, state, timeouts_array, T_defs, default_timeout) \ + _fsm_inst_state_chg_T(fi, state, timeouts_array, T_defs, default_timeout, \ + __FILE__, __LINE__) +int _fsm_inst_state_chg_T(struct osmo_fsm_inst *fi, uint32_t state, + struct state_timeout *timeouts_array, + struct T_def *T_defs, int default_timeout, + const char *file, int line); diff --git a/src/ipaccess/Makefile.am b/src/ipaccess/Makefile.am index 2c6282d..ec3e027 100644 --- a/src/ipaccess/Makefile.am +++ b/src/ipaccess/Makefile.am @@ -55,6 +55,7 @@ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(OSMO_LIBS) \ $(NULL) @@ -65,5 +66,6 @@ $(NULL) ipaccess_proxy_LDADD = \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(OSMO_LIBS) \ $(NULL) diff --git a/src/osmo-bsc/Makefile.am b/src/osmo-bsc/Makefile.am index afae0b6..86d943f 100644 --- a/src/osmo-bsc/Makefile.am +++ b/src/osmo-bsc/Makefile.am @@ -57,6 +57,8 @@ gsm_04_08_utils.c \ gsm_04_80_utils.c \ gsm_data.c \ + gsm_timers.c \ + gsm_timers_vty.c \ handover_cfg.c \ handover_decision.c \ handover_decision_2.c \ diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index d533ea1..2934590 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -42,6 +42,7 @@ #include #include #include +#include #include /* FIXME: move to libosmocore */ @@ -1382,7 +1383,8 @@ msgb_tv_put(msg, OM2K_DEI_CCCH_OPTIONS, 0x01); break; case GSM_PCHAN_CCCH_SDCCH4: - msgb_tv_put(msg, OM2K_DEI_T3105, ts->trx->bts->network->T3105 / 10); + msgb_tv_put(msg, OM2K_DEI_T3105, + T_def_get(ts->trx->bts->network->T_defs, 3105, T_MS, -1) / 10); msgb_tv_put(msg, OM2K_DEI_NY1, 35); msgb_tv_put(msg, OM2K_DEI_BA_PA_MFRMS, 0x06); msgb_tv_put(msg, OM2K_DEI_CBCH_INDICATOR, 0); @@ -1396,7 +1398,8 @@ sizeof(icm_bound_params), icm_bound_params); break; case GSM_PCHAN_SDCCH8_SACCH8C: - msgb_tv_put(msg, OM2K_DEI_T3105, ts->trx->bts->network->T3105 / 10); + msgb_tv_put(msg, OM2K_DEI_T3105, + T_def_get(ts->trx->bts->network->T_defs, 3105, T_MS, -1) / 10); msgb_tv_put(msg, OM2K_DEI_NY1, 35); msgb_tv_put(msg, OM2K_DEI_CBCH_INDICATOR, 0); msgb_tv_put(msg, OM2K_DEI_TSC, gsm_ts_tsc(ts)); @@ -1406,7 +1409,8 @@ sizeof(icm_bound_params), icm_bound_params); break; default: - msgb_tv_put(msg, OM2K_DEI_T3105, ts->trx->bts->network->T3105 / 10); + msgb_tv_put(msg, OM2K_DEI_T3105, + T_def_get(ts->trx->bts->network->T_defs, 3105, T_MS, -1) / 10); msgb_tv_put(msg, OM2K_DEI_NY1, 35); msgb_tv_put(msg, OM2K_DEI_TSC, gsm_ts_tsc(ts)); /* Disable RF RESOURCE INDICATION on idle channels */ diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index b6741a8..756a689 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -46,6 +46,7 @@ #include #include #include +#include #define RSL_ALLOC_SIZE 1024 #define RSL_ALLOC_HEADROOM 128 @@ -81,7 +82,9 @@ if (lchan->state == LCHAN_S_REL_ERR) { osmo_timer_setup(&lchan->error_timer, error_timeout_cb, lchan); osmo_timer_schedule(&lchan->error_timer, - lchan->ts->trx->bts->network->T3111 + 2, 0); + T_def_get(lchan->ts->trx->bts->network->T_defs, + 993111, T_S, -1), + 0); } else { rsl_lchan_set_state(lchan, LCHAN_S_NONE); } @@ -1915,11 +1918,10 @@ LOGP(DRSL, LOGL_NOTICE, "(bts=%d) CHAN RQD: no resources for %s 0x%x\n", msg->lchan->ts->trx->bts->nr, gsm_lchant_name(lctype), rqd_ref->ra); rate_ctr_inc(&bts->bts_ctrs->ctr[BTS_CTR_CHREQ_NO_CHANNEL]); - if (bts->T3122) - wait_ind = bts->T3122; - else if (bts->network->T3122) - wait_ind = bts->network->T3122 & 0xff; - else + wait_ind = bts->T3122; + if (!wait_ind) + wait_ind = T_def_get(bts->network->T_defs, 3122, T_S, -1); + if (!wait_ind) wait_ind = GSM_T3122_DEFAULT; /* The BTS will gather multiple CHAN RQD and reject up to 4 MS at the same time. */ rsl_send_imm_ass_rej(bts, rqd_ref, wait_ind); @@ -2001,7 +2003,7 @@ /* Start timer T3101 to wait for GSM48_MT_RR_PAG_RESP */ osmo_timer_setup(&lchan->T3101, t3101_expired, lchan); - osmo_timer_schedule(&lchan->T3101, bts->network->T3101, 0); + osmo_timer_schedule(&lchan->T3101, T_def_get(bts->network->T_defs, 3101, T_S, -1), 0); /* send IMMEDIATE ASSIGN CMD on RSL to BTS (to send on CCCH to MS) */ return rsl_imm_assign_cmd(bts, sizeof(*ia)+ia->mob_alloc_len, (uint8_t *) ia); @@ -2161,7 +2163,7 @@ osmo_timer_del(&lchan->T3109); osmo_timer_setup(&lchan->T3111, t3111_expired, lchan); bts = lchan->ts->trx->bts; - osmo_timer_schedule(&lchan->T3111, bts->network->T3111, 0); + osmo_timer_schedule(&lchan->T3111, T_def_get(bts->network->T_defs, 3111, T_S, -1), 0); } /* ESTABLISH INDICATION, LOCATION AREA UPDATE REQUEST @@ -3000,7 +3002,7 @@ struct gsm_bts *bts = lchan->ts->trx->bts; osmo_timer_setup(&lchan->T3109, t3109_expired, lchan); - osmo_timer_schedule(&lchan->T3109, bts->network->T3109, 0); + osmo_timer_schedule(&lchan->T3109, T_def_get(bts->network->T_defs, 3109, T_S, -1), 0); return 0; } diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index e8fb6ed..6a97ce5 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -122,6 +123,25 @@ {0, NULL} }; +struct state_timeout conn_fsm_timeouts[32] = { + [ST_WAIT_ASS_CMPL] = { .T = 10 }, + [ST_WAIT_CRCX_BTS] = { .T = 992427 }, + [ST_WAIT_MDCX_BTS] = { .T = 992427 }, + [ST_WAIT_CRCX_MSC] = { .T = 992427 }, + [ST_WAIT_MDCX_BTS_HO] = { .T = 992427 }, + [ST_WAIT_CC] = { .T = 993210 }, + [ST_CLEARING] = { .T = 999 }, +}; + +/* Transition to a state, using the T timer defined in conn_fsm_timeouts. + * The actual timeout value is in turn obtained from network->T_defs. + * Assumes local variable fi exists. */ +#define conn_fsm_state_chg(state) \ + fsm_inst_state_chg_T(conn->fi, state, \ + conn_fsm_timeouts, \ + conn->network->T_defs, \ + -1) + /* forward MT DTAP from BSSAP side to RSL side */ static inline void submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, struct osmo_fsm_inst *fi) @@ -299,7 +319,7 @@ } else { /* SCCP T(conn est) is 1-2 minutes, way too long. The MS will timeout * using T3210 (20s), T3220 (5s) or T3230 (10s) */ - osmo_fsm_inst_state_chg(fi, ST_WAIT_CC, 20, 993210); + conn_fsm_state_chg(ST_WAIT_CC); } break; case GSCON_EV_A_CONN_IND: @@ -328,11 +348,12 @@ /* We've sent the CONNECTION.req to the SCCP provider and are waiting for CC from MSC */ static void gscon_fsm_wait_cc(struct osmo_fsm_inst *fi, uint32_t event, void *data) { + struct gsm_subscriber_connection *conn = fi->priv; switch (event) { case GSCON_EV_A_CONN_CFM: /* MSC has confirmed the connection, we now change into the * active state and wait there for further operations */ - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); /* if there's user payload, forward it just like EV_MT_DTAP */ /* FIXME: Question: if there's user payload attached to the CC, forward it like EV_MT_DTAP? */ break; @@ -374,7 +395,7 @@ resp = gsm0808_create_assignment_failure(cause, NULL); sigtran_send(conn, resp, fi); if (fi->state != ST_ACTIVE) - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); } /* We're on an active subscriber connection, passing DTAP back and forth */ @@ -410,7 +431,7 @@ osmo_strlcpy(conn_peer.endpoint, get_mgw_ep_name(conn), sizeof(conn_peer.endpoint)); /* (Pre)Change state and create the connection */ - osmo_fsm_inst_state_chg(fi, ST_WAIT_CRCX_BTS, MGCP_MGW_TIMEOUT, MGCP_MGW_TIMEOUT_TIMER_NR); + conn_fsm_state_chg(ST_WAIT_CRCX_BTS); conn->user_plane.fi_bts = mgcp_conn_create(conn->network->mgw.client, fi, GSCON_EV_MGW_FAIL_BTS, GSCON_EV_MGW_CRCX_RESP_BTS, &conn_peer); @@ -437,7 +458,7 @@ return; } - osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, conn->network->T10, 10); + conn_fsm_state_chg(ST_WAIT_ASS_CMPL); break; default: /* An unsupported channel is requested, so we have to @@ -457,7 +478,7 @@ if (rc) { resp = gsm0808_create_clear_rqst(GSM0808_CAUSE_EQUIPMENT_FAILURE); sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_CLEARING, 0, 0); + conn_fsm_state_chg(ST_CLEARING); return; } @@ -466,7 +487,7 @@ * handover time out, so we do not need another timeout * here (maybe its worth to think about giving GSCON * more power over the actual handover process). */ - osmo_fsm_inst_state_chg(fi, ST_WAIT_HO_COMPL, 0, 0); + conn_fsm_state_chg(ST_WAIT_HO_COMPL); break; case GSCON_EV_A_HO_REQ: /* FIXME: reject any handover requests with HO FAIL until implemented */ @@ -524,7 +545,7 @@ return; } - osmo_fsm_inst_state_chg(fi, ST_WAIT_ASS_CMPL, conn->network->T10, 10); + conn_fsm_state_chg(ST_WAIT_ASS_CMPL); break; case GSCON_EV_MO_DTAP: forward_dtap(conn, (struct msgb *)data, fi); @@ -569,7 +590,7 @@ conn_peer.port = lchan->abis_ip.bound_port; /* (Pre)Change state and modify the connection */ - osmo_fsm_inst_state_chg(fi, ST_WAIT_MDCX_BTS, MGCP_MGW_TIMEOUT, MGCP_MGW_TIMEOUT_TIMER_NR); + conn_fsm_state_chg(ST_WAIT_MDCX_BTS); rc = mgcp_conn_modify(conn->user_plane.fi_bts, GSCON_EV_MGW_MDCX_RESP_BTS, &conn_peer); if (rc != 0) { assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); @@ -580,7 +601,7 @@ /* Confirm the successful assignment on BSSMAP and * change back into active state */ send_ass_compl(lchan, fi, false); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); break; default: /* Unsupported modes should have been already filtered @@ -642,12 +663,11 @@ case OSMO_SS7_ASP_PROT_IPA: /* Send assignment complete message to the MSC */ send_ass_compl(conn->lchan, fi, true); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); break; default: /* (Pre)Change state and create the connection */ - osmo_fsm_inst_state_chg(fi, ST_WAIT_CRCX_MSC, MGCP_MGW_TIMEOUT, - MGCP_MGW_TIMEOUT_TIMER_NR); + conn_fsm_state_chg(ST_WAIT_CRCX_MSC); conn->user_plane.fi_msc = mgcp_conn_create(conn->network->mgw.client, fi, GSCON_EV_MGW_FAIL_MSC, GSCON_EV_MGW_CRCX_RESP_MSC, &conn_peer); @@ -694,7 +714,7 @@ /* Send assignment complete message to the MSC */ send_ass_compl(lchan, fi, true); - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); break; case GSCON_EV_MO_DTAP: @@ -757,12 +777,12 @@ conn_peer.port = lchan->abis_ip.bound_port; /* (Pre)Change state and modify the connection */ - osmo_fsm_inst_state_chg(fi, ST_WAIT_MDCX_BTS_HO, MGCP_MGW_TIMEOUT, MGCP_MGW_HO_TIMEOUT_TIMER_NR); + conn_fsm_state_chg(ST_WAIT_MDCX_BTS_HO); rc = mgcp_conn_modify(conn->user_plane.fi_bts, GSCON_EV_MGW_MDCX_RESP_BTS, &conn_peer); if (rc != 0) { resp = gsm0808_create_clear_rqst(GSM0808_CAUSE_EQUIPMENT_FAILURE); sigtran_send(conn, resp, fi); - osmo_fsm_inst_state_chg(fi, ST_CLEARING, 0, 0); + conn_fsm_state_chg(ST_CLEARING); return; } break; @@ -772,7 +792,7 @@ * some reason. This means the phone stays on the TS/BTS on * which it currently is. We will change back to the active * state again as there are no further operations needed */ - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); break; default: OSMO_ASSERT(false); @@ -791,7 +811,7 @@ /* The MGW has confirmed the handover MDCX, and the handover * is now also done on the RTP side. We may now change back * to the active state. */ - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); break; case GSCON_EV_MO_DTAP: forward_dtap(conn, (struct msgb *)data, fi); @@ -922,7 +942,7 @@ break; case GSCON_EV_A_CLEAR_CMD: /* MSC tells us to cleanly shut down */ - osmo_fsm_inst_state_chg(fi, ST_CLEARING, 0, 0); + conn_fsm_state_chg(ST_CLEARING); gsm0808_clear(conn); /* FIXME: Release all terestrial resources in ST_CLEARING */ /* According to 3GPP 48.008 3.1.9.1. "The BSS need not wait for the radio channel @@ -1047,7 +1067,7 @@ assignment_failed(fi, GSM0808_CAUSE_EQUIPMENT_FAILURE); break; case MGCP_MGW_HO_TIMEOUT_TIMER_NR: /* Handover failed (no response from MGW) */ - osmo_fsm_inst_state_chg(fi, ST_ACTIVE, 0, 0); + conn_fsm_state_chg(ST_ACTIVE); break; default: OSMO_ASSERT(false); diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index f25f731..ababb3e 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -64,6 +64,7 @@ #include #include #include +#include #include @@ -968,11 +969,6 @@ return CMD_SUCCESS; } -/* small helper macro for conditional dumping of timer */ -#define VTY_OUT_TIMER(number) \ - if (gsmnet->T##number != GSM_T##number##_DEFAULT) \ - vty_out(vty, " timer t"#number" %u%s", gsmnet->T##number, VTY_NEWLINE) - static int config_write_net(struct vty *vty) { struct gsm_network *gsmnet = gsmnet_from_vty(vty); @@ -993,22 +989,7 @@ ho_vty_write_net(vty, gsmnet); - VTY_OUT_TIMER(3101); - VTY_OUT_TIMER(3103); - VTY_OUT_TIMER(3105); - VTY_OUT_TIMER(3107); - VTY_OUT_TIMER(3109); - VTY_OUT_TIMER(3111); - VTY_OUT_TIMER(3113); - VTY_OUT_TIMER(3115); - VTY_OUT_TIMER(3117); - VTY_OUT_TIMER(3119); - VTY_OUT_TIMER(3122); - VTY_OUT_TIMER(3141); - VTY_OUT_TIMER(10); - VTY_OUT_TIMER(7); - VTY_OUT_TIMER(8); - VTY_OUT_TIMER(101); + T_defs_vty_write(vty, " "); if (!gsmnet->dyn_ts_allow_tch_f) vty_out(vty, " dyn_ts_allow_tch_f 0%s", VTY_NEWLINE); @@ -1021,11 +1002,8 @@ vty_out(vty, " timezone %d %d%s", gsmnet->tz.hr, gsmnet->tz.mn, VTY_NEWLINE); } - if (gsmnet->t3212 == 0) - vty_out(vty, " no periodic location update%s", VTY_NEWLINE); - else - vty_out(vty, " periodic location update %u%s", - gsmnet->t3212 * 6, VTY_NEWLINE); + + /* writing T3212 from the common T_defs_vty_write() instead. */ { uint16_t meas_port; @@ -1889,48 +1867,6 @@ return CMD_SUCCESS; } -#define DEFAULT_TIMER(number) GSM_T##number##_DEFAULT -/* Add another expansion so that DEFAULT_TIMER() becomes its value */ -#define EXPAND_AND_STRINGIFY(x) OSMO_STRINGIFY(x) - -#define DECLARE_TIMER(number, doc) \ - DEFUN(cfg_net_T##number, \ - cfg_net_T##number##_cmd, \ - "timer t" #number " (default|<1-65535>)", \ - "Configure GSM Timers\n" \ - doc " (default: " EXPAND_AND_STRINGIFY(DEFAULT_TIMER(number)) " seconds)\n" \ - "Set to default timer value" \ - " (" EXPAND_AND_STRINGIFY(DEFAULT_TIMER(number)) " seconds)\n" \ - "Timer Value in seconds\n") \ -{ \ - struct gsm_network *gsmnet = gsmnet_from_vty(vty); \ - int value; \ - if (strcmp(argv[0], "default") == 0) \ - value = DEFAULT_TIMER(number); \ - else \ - value = atoi(argv[0]); \ - \ - gsmnet->T##number = value; \ - return CMD_SUCCESS; \ -} - -DECLARE_TIMER(3101, "Set the timeout value for IMMEDIATE ASSIGNMENT") -DECLARE_TIMER(3103, "Set the timeout value for HANDOVER") -DECLARE_TIMER(3105, "Set the timer for repetition of PHYSICAL INFORMATION") -DECLARE_TIMER(3107, "Currently not used") -DECLARE_TIMER(3109, "Set the RSL SACCH deactivation timeout") -DECLARE_TIMER(3111, "Set the RSL timeout to wait before releasing the RF Channel") -DECLARE_TIMER(3113, "Set the time to try paging a subscriber") -DECLARE_TIMER(3115, "Currently not used") -DECLARE_TIMER(3117, "Currently not used") -DECLARE_TIMER(3119, "Currently not used") -DECLARE_TIMER(3122, "Default waiting time (seconds) after IMM ASS REJECT") -DECLARE_TIMER(3141, "Currently not used") -DECLARE_TIMER(10, "Assignment Command timeout in seconds") -DECLARE_TIMER(7, "Set the outgoing inter-BSC Handover timeout, from Handover Required to Handover Command") -DECLARE_TIMER(8, "Set the outgoing inter-BSC Handover timeout, from Handover Command to final Clear") -DECLARE_TIMER(101, "Set the incoming inter-BSC Handover timeout, from Handover Request to Accept") - DEFUN_DEPRECATED(cfg_net_dtx, cfg_net_dtx_cmd, "dtx-used (0|1)", @@ -4734,9 +4670,11 @@ "Periodic Location Updating Interval in Minutes\n") { struct gsm_network *net = vty->index; + struct T_def *d = T_def_get_entry(net->T_defs, 3212); - net->t3212 = atoi(argv[0]) / 6; - + OSMO_ASSERT(d); + d->val = atoi(argv[0]) / 6; + vty_out(vty, "T%d = %u %s (%s)%s", d->T, d->val, "* 6min", d->desc, VTY_NEWLINE); return CMD_SUCCESS; } @@ -4748,9 +4686,11 @@ "Periodic Location Updating Interval\n") { struct gsm_network *net = vty->index; + struct T_def *d = T_def_get_entry(net->T_defs, 3212); - net->t3212 = 0; - + OSMO_ASSERT(d); + d->val = 0; + vty_out(vty, "T%d = %u %s (%s)%s", d->T, d->val, "* 6min", d->desc, VTY_NEWLINE); return CMD_SUCCESS; } @@ -4842,23 +4782,9 @@ logging_vty_add_cmds(NULL); osmo_talloc_vty_add_cmds(); + T_defs_vty_init(network->T_defs, GSMNET_NODE); + install_element(GSMNET_NODE, &cfg_net_neci_cmd); - install_element(GSMNET_NODE, &cfg_net_T3101_cmd); - install_element(GSMNET_NODE, &cfg_net_T3103_cmd); - install_element(GSMNET_NODE, &cfg_net_T3105_cmd); - install_element(GSMNET_NODE, &cfg_net_T3107_cmd); - install_element(GSMNET_NODE, &cfg_net_T3109_cmd); - install_element(GSMNET_NODE, &cfg_net_T3111_cmd); - install_element(GSMNET_NODE, &cfg_net_T3113_cmd); - install_element(GSMNET_NODE, &cfg_net_T3115_cmd); - install_element(GSMNET_NODE, &cfg_net_T3117_cmd); - install_element(GSMNET_NODE, &cfg_net_T3119_cmd); - install_element(GSMNET_NODE, &cfg_net_T3122_cmd); - install_element(GSMNET_NODE, &cfg_net_T3141_cmd); - install_element(GSMNET_NODE, &cfg_net_T10_cmd); - install_element(GSMNET_NODE, &cfg_net_T7_cmd); - install_element(GSMNET_NODE, &cfg_net_T8_cmd); - install_element(GSMNET_NODE, &cfg_net_T101_cmd); install_element(GSMNET_NODE, &cfg_net_dtx_cmd); install_element(GSMNET_NODE, &cfg_net_pag_any_tch_cmd); /* See also handover commands added on net level from handover_vty.c */ diff --git a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c index 1a8d9b0..d674c18 100644 --- a/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c +++ b/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c @@ -23,6 +23,7 @@ #include #include #include +#include static void patch_16(uint8_t *data, const uint16_t val) { @@ -90,7 +91,7 @@ msgb_tv_fixed_put(msgb, NM_ATT_LDAVG_SLOTS, 2, buf); /* 10 milliseconds */ - msgb_tv_put(msgb, NM_ATT_BTS_AIR_TIMER, bts->network->T3105 > 0? bts->network->T3105 : 13); + msgb_tv_put(msgb, NM_ATT_BTS_AIR_TIMER, T_def_get(bts->network->T_defs, 3105, T_MS, -1)); /* 10 retransmissions of physical config */ msgb_tv_put(msgb, NM_ATT_NY1, 10); diff --git a/src/osmo-bsc/bts_siemens_bs11.c b/src/osmo-bsc/bts_siemens_bs11.c index 2d23517..1da189f 100644 --- a/src/osmo-bsc/bts_siemens_bs11.c +++ b/src/osmo-bsc/bts_siemens_bs11.c @@ -27,6 +27,7 @@ #include #include #include +#include static int bts_model_bs11_start(struct gsm_network *net); @@ -358,7 +359,7 @@ uint8_t arfcn_high = (bts->c0->arfcn >> 8) & 0x0f; /* T3105 attribute in units of 10ms */ - bs11_attr_bts[2] = bts->network->T3105 / 10; + bs11_attr_bts[2] = T_def_get(bts->network->T_defs, 3105, T_MS, -1) / 10; /* patch ARFCN into BTS Attributes */ bs11_attr_bts[69] &= 0xf0; diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 734e2fb..0ff17f2 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -39,6 +39,7 @@ #include #include #include +#include void *tall_bsc_ctx = NULL; @@ -863,7 +864,7 @@ bts->si_common.chan_desc.att = 1; /* attachment required */ bts->si_common.chan_desc.bs_pa_mfrms = RSL_BS_PA_MFRMS_5; /* paging frames */ bts->si_common.chan_desc.bs_ag_blks_res = 1; /* reserved AGCH blocks */ - bts->si_common.chan_desc.t3212 = net->t3212; /* Use network's current value */ + bts->si_common.chan_desc.t3212 = T_def_get(net->T_defs, 3212, T_CUSTOM, -1); gsm_bts_set_radio_link_timeout(bts, 32); /* Use RADIO LINK TIMEOUT of 32 */ INIT_LLIST_HEAD(&bts->abis_queue); diff --git a/src/osmo-bsc/gsm_timers.c b/src/osmo-bsc/gsm_timers.c new file mode 100644 index 0000000..2f73793 --- /dev/null +++ b/src/osmo-bsc/gsm_timers.c @@ -0,0 +1,206 @@ +/* Implementation to define Tnnn timers globally and use for FSM state changes. */ +/* (C) 2018 by sysmocom - s.f.m.c. GmbH + * + * Author: Neels Hofmeyr + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include + +#include + +/* a = return_val * b. Return 0 if factor is below 1. */ +static int T_factor(enum T_unit a, enum T_unit b) +{ + if (b == a + || b == T_CUSTOM || a == T_CUSTOM) + return 1; + + switch (b) { + case T_MS: + switch (a) { + case T_S: + return 1000; + case T_M: + return 60*1000; + default: + return 0; + } + case T_S: + switch (a) { + case T_M: + return 60; + default: + return 0; + } + default: + return 0; + } +} + +static int T_round(int val, enum T_unit from_unit, enum T_unit to_unit) +{ + int f; + if (!val) + return 0; + + f = T_factor(from_unit, to_unit); + if (f < 1) { + f = T_factor(to_unit, from_unit); + return (val / f) + (val % f? 1 : 0); + } + return val * f; +} + +/* Return the value of a T timer from a list of T_defs. + * Any value is rounded up to match as_unit: 1100 ms as T_S becomes 2 seconds, as T_M becomes one minute. + * If no such timer is defined, return the default value passed, or abort the program if default < 0. + * + * Usage examples: + * + * - Initialization: + * + * struct T_def global_T_defs[] = { + * { .T=7, .default_val=60, .desc="Water Boiling Timeout" }, // default is .unit=T_S == 0 + * { .T=8, .default_val=300, .desc="Tea brewing" }, + * { .T=9, .default_val=5, .unit=T_M, .desc="Let tea cool down before drinking" }, + * { .T=10, .default_val=20, .unit=T_M, .desc="Forgot to drink tea while it's warm" }, + * {} // <-- important! last entry shall be zero + * }; + * T_defs_reset(global_T_defs); // make all values the default + * T_defs_vty_init(global_T_defs, CONFIG_NODE); + * + * val = T_def_get(global_T_defs, 7, T_S, -1); // -> 10 + * sleep(val); + * + * val = T_def_get(global_T_defs, 7, T_M, -1); // 10 seconds becomes 1 minute -> 1 + * sleep_minutes(val); + * + * val = T_def_get(global_T_defs, 99, T_S, -1); // not defined, program aborts! + * + * val = T_def_get(global_T_defs, 99, T_S, 3); // not defined, returns 3 + */ +int T_def_get(struct T_def *T_defs, int T, enum T_unit as_unit, int val_if_not_present) +{ + struct T_def *d = T_def_get_entry(T_defs, T); + if (!d) { + OSMO_ASSERT(val_if_not_present >= 0); + return val_if_not_present; + } + return T_round(d->val, d->unit, as_unit); +} + +/* Set all T_def values to the default_val. */ +void T_defs_reset(struct T_def *T_defs) +{ + struct T_def *d; + for_each_T_def(d, T_defs) + d->val = d->default_val; +} + +/* Return a pointer to a T_def from an array, or NULL. */ +struct T_def *T_def_get_entry(struct T_def *T_defs, int T) +{ + struct T_def *d; + for_each_T_def(d, T_defs) { + if (d->T == T) + return d; + } + return NULL; +} + +/* Return a state_timeout entry from an array, or return NULL if the entry is zero. + * + * The timeouts_array shall contain exactly 32 elements, which corresponds to the number of states + * allowed by osmo_fsm_*. Lookup is by array index. + * + * For example: + * struct state_timeout my_fsm_timeouts[32] = { + * [MY_FSM_STATE_3] = { .T = 423 }, + * [MY_FSM_STATE_7] = { .T = 235 }, + * [MY_FSM_STATE_8] = { .keep_timer = true }, + * // any state that is omitted will remain zero == no timeout + * }; + * get_state_timeout(MY_FSM_STATE_0, &my_fsm_timeouts) -> NULL, + * get_state_timeout(MY_FSM_STATE_7, &my_fsm_timeouts) -> { .T = 235 } + * + * The intention is then to obtain the timer like T_def_get(global_T_defs, T=235); see also + * fsm_inst_state_chg_T() below. + */ +struct state_timeout *get_state_timeout(uint32_t state, struct state_timeout *timeouts_array) +{ + struct state_timeout *t; + OSMO_ASSERT(state < 32); + t = &timeouts_array[state]; + if (!t->keep_timer && !t->T) + return NULL; + return t; +} + +/* Call osmo_fsm_inst_state_chg() or osmo_fsm_inst_state_chg_keep_timer(), depending on the T value + * defined for this state in the timeouts_array, and obtaining the actual timeout value from T_defs. + * A T timer configured in sub-second precision is rounded up to the next full second. + * + * See get_state_timeout() and T_def_get(). + * + * Should a T number be defined in timeouts_array that is not defined in T_defs, use default_timeout. + * This is best used by wrapping this function call in a macro suitable for a specific FSM + * implementation, which can become as short as: my_fsm_state_chg(fi, NEXT_STATE): + * + * #define my_fsm_state_chg(fi, NEXT_STATE) \ + * fsm_inst_state_chg_T(fi, NEXT_STATE, my_fsm_timeouts, global_T_defs, 5) + * + * my_fsm_state_chg(fi, MY_FSM_STATE_1); + * // -> No timeout configured, will enter state without timeout. + * + * my_fsm_state_chg(fi, MY_FSM_STATE_3); + * // T423 configured for this state, will look up T423 in T_defs, or use 5 seconds if unset. + * + * my_fsm_state_chg(fi, MY_FSM_STATE_8); + * // keep_timer configured for this state, will invoke osmo_fsm_inst_state_chg_keep_timer(). + * + */ +int _fsm_inst_state_chg_T(struct osmo_fsm_inst *fi, uint32_t state, + struct state_timeout *timeouts_array, + struct T_def *T_defs, int default_timeout, + const char *file, int line) +{ + struct state_timeout *t = get_state_timeout(state, timeouts_array); + int val; + + /* No timeout defined for this state? */ + if (!t) + return _osmo_fsm_inst_state_chg(fi, state, 0, 0, file, line); + + if (t->keep_timer) { + int rc = _osmo_fsm_inst_state_chg_keep_timer(fi, state, file, line); + if (t->T && !rc) + fi->T = t->T; + return rc; + } + + val = T_def_get(T_defs, t->T, T_S, default_timeout); + return _osmo_fsm_inst_state_chg(fi, state, val, t->T, file, line); +} + +const struct value_string T_unit_names[] = { + { T_S, "s" }, + { T_MS, "ms" }, + { T_CUSTOM, "(custom)" }, + { 0, NULL } +}; diff --git a/src/osmo-bsc/gsm_timers_vty.c b/src/osmo-bsc/gsm_timers_vty.c new file mode 100644 index 0000000..8a13259 --- /dev/null +++ b/src/osmo-bsc/gsm_timers_vty.c @@ -0,0 +1,117 @@ +/* Implementation to configure Tnnn timers in VTY */ +/* (C) 2018 by sysmocom - s.f.m.c. GmbH + * + * Author: Neels Hofmeyr + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include + +#include +#include + +#include + +/* Global singleton list used for the VTY configuration. See T_defs_vty_init(). */ +static struct T_def *g_vty_T_defs = NULL; + +/* Parse an argument like "T1234", "t1234" or "1234" and return the corresponding T_def entry from + * g_vty_T_defs, if any. */ +static struct T_def *parse_T_arg(struct vty *vty, const char *T_str) +{ + int T; + struct T_def *d; + + if (T_str[0] == 't' || T_str[0] == 'T') + T_str++; + T = atoi(T_str); + + d = T_def_get_entry(g_vty_T_defs, T); + if (!d) + vty_out(vty, "No such timer: T%d%s", T, VTY_NEWLINE); + return d; +} + +/* Installed in the VTY on T_defs_vty_init(). */ +DEFUN(cfg_timer, cfg_timer_cmd, + "timer TNNNN (default|<1-65535>)", + "Configure GSM Timers\n" + "T-number, optionally preceded by 't' or 'T'." + "See also 'show timer' for a list of available timers.\n" + "Set to default timer value\n" "Timer value\n") +{ + const char *val_str = argv[1]; + struct T_def *d; + + d = parse_T_arg(vty, argv[0]); + if (!d) + return CMD_WARNING; + + if (!strcmp(val_str, "default")) + d->val = d->default_val; + else + d->val = atoi(val_str); + vty_out(vty, "T%d = %u %s (%s)%s", d->T, d->val, T_unit_name(d->unit), d->desc, VTY_NEWLINE); + return CMD_SUCCESS; +} + +/* Print a T_def to the VTY. */ +static void show_one_timer(struct vty *vty, struct T_def *d) +{ + vty_out(vty, "T%d = %u %s (default = %u %s) \t%s%s", + d->T, d->val, T_unit_name(d->unit), + d->default_val, T_unit_name(d->unit), d->desc, VTY_NEWLINE); +} + +/* Installed in the VTY on T_defs_vty_init(). */ +DEFUN(show_timer, show_timer_cmd, + "show timer [TNNNN]", + SHOW_STR "GSM Timers\n" + "Specific timer to show, or all timers if omitted.\n") +{ + struct T_def *d; + + if (argc) { + d = parse_T_arg(vty, argv[0]); + if (!d) + return CMD_WARNING; + show_one_timer(vty, d); + return CMD_SUCCESS; + } + + for_each_T_def(d, g_vty_T_defs) + show_one_timer(vty, d); + return CMD_SUCCESS; +} + +/* Install GSM timer configuration commands in the VTY. */ +void T_defs_vty_init(struct T_def *T_defs, int cfg_parent_node) +{ + install_element_ve(&show_timer_cmd); + install_element(cfg_parent_node, &cfg_timer_cmd); +} + +/* Write GSM timer configuration to the vty. */ +void T_defs_vty_write(struct vty *vty, const char *indent) +{ + struct T_def *d; + for_each_T_def(d, g_vty_T_defs) { + if (d->val != d->default_val) + vty_out(vty, "%stimer t%d %u%s", indent, d->T, d->val, VTY_NEWLINE); + } +} diff --git a/src/osmo-bsc/net_init.c b/src/osmo-bsc/net_init.c index db3d01c..a802a7c 100644 --- a/src/osmo-bsc/net_init.c +++ b/src/osmo-bsc/net_init.c @@ -23,6 +23,34 @@ #include #include #include +#include + +static struct T_def gsm_network_T_defs[] = { + { .T=7, .default_val=10, .desc="inter-BSC Handover MO, HO Required to HO Command" }, + { .T=8, .default_val=10, .desc="inter-BSC Handover MO, HO Command to final Clear" }, + { .T=10, .default_val=6, .desc="RR Assignment" }, + { .T=101, .default_val=10, .desc="inter-BSC Handover MT, HO Request to HO Accept" }, + { .T=3101, .default_val=3, .desc="RR Immediate Assignment" }, + { .T=3103, .default_val=5, .desc="Handover" }, + { .T=3105, .default_val=100, .unit=T_MS, .desc="Physical Information" }, + { .T=3107, .default_val=5, .desc="(unused)" }, + { .T=3109, .default_val=5, .desc="RSL SACCH deactivation" }, + { .T=3111, .default_val=2, .desc="Wait time before RSL RF Channel Release" }, + { .T=993111, .default_val=4, .desc="Wait time after lchan was released in error" + "(should be T3111 + 2s)" }, + { .T=3113, .default_val=10, .desc="Paging"}, + { .T=3115, .default_val=10, .desc="(unused)" }, + { .T=3117, .default_val=10, .desc="(unused)" }, + { .T=3119, .default_val=10, .desc="(unused)" }, + { .T=3122, .default_val=GSM_T3122_DEFAULT, .desc="Wait time after RR Immediate Assignment Reject" }, + { .T=3141, .default_val=10, .desc="(unused)" }, + { .T=3212, .default_val=5, .unit=T_CUSTOM, + .desc="Periodic Location Update timer, sent to MS (1 = 6 minutes)" }, + { .T=993210, .default_val=20, .desc="After L3 Complete, wait for MSC to confirm" }, + { .T=999, .default_val=60, .desc="After Clear Request, wait for MSC to Clear Command (sanity)" }, + { .T=992427, .default_val=4, .desc="MGCP timeout (2427 is the default MGCP port number)" }, + {} +}; /* Initialize the bare minimum of struct gsm_network, minimizing required dependencies. * This part is shared among the thin programs in osmo-bsc/src/utils/. @@ -43,9 +71,6 @@ /* Permit a compile-time default of A5/3 and A5/1 */ net->a5_encryption_mask = (1 << 3) | (1 << 1); - /* Use 30 min periodic update interval as sane default */ - net->t3212 = 5; - INIT_LLIST_HEAD(&net->subscr_conns); net->bsc_subscribers = talloc_zero(net, struct llist_head); @@ -53,22 +78,9 @@ INIT_LLIST_HEAD(&net->bts_list); net->num_bts = 0; - net->T3101 = GSM_T3101_DEFAULT; - net->T3103 = GSM_T3103_DEFAULT; - net->T3105 = GSM_T3105_DEFAULT; - net->T3107 = GSM_T3107_DEFAULT; - net->T3109 = GSM_T3109_DEFAULT; - net->T3111 = GSM_T3111_DEFAULT; - net->T3113 = GSM_T3113_DEFAULT; - net->T3115 = GSM_T3115_DEFAULT; - net->T3117 = GSM_T3117_DEFAULT; - net->T3119 = GSM_T3119_DEFAULT; - net->T3122 = GSM_T3122_DEFAULT; - net->T3141 = GSM_T3141_DEFAULT; - net->T10 = GSM_T10_DEFAULT; - net->T7 = GSM_T7_DEFAULT; - net->T8 = GSM_T8_DEFAULT; - net->T101 = GSM_T101_DEFAULT; + + net->T_defs = gsm_network_T_defs; + T_defs_reset(net->T_defs); return net; } diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index feb9fea..b75d731 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -51,6 +51,7 @@ #include #include #include +#include void *tall_paging_ctx = NULL; @@ -315,7 +316,7 @@ req->chan_type = type; req->msc = msc; osmo_timer_setup(&req->T3113, paging_T3113_expired, req); - osmo_timer_schedule(&req->T3113, bts->network->T3113, 0); + osmo_timer_schedule(&req->T3113, T_def_get(bts->network->T_defs, 3113, T_S, -1), 0); llist_add_tail(&req->entry, &bts_entry->pending_requests); paging_schedule_if_needed(bts_entry); diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 543344b..f8b536b 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -122,6 +122,7 @@ meas_json_LDADD = \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am index 60054d9..4fc3605 100644 --- a/tests/abis/Makefile.am +++ b/tests/abis/Makefile.am @@ -27,6 +27,7 @@ abis_test_LDADD = \ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am index 2e34d79..57e8837 100644 --- a/tests/bsc/Makefile.am +++ b/tests/bsc/Makefile.am @@ -43,6 +43,7 @@ $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(top_builddir)/src/osmo-bsc/handover_cfg.o \ $(top_builddir)/src/osmo-bsc/handover_logic.o \ $(top_builddir)/src/osmo-bsc/neighbor_ident.o \ diff --git a/tests/gsm0408/Makefile.am b/tests/gsm0408/Makefile.am index 3eb47f6..d790fc8 100644 --- a/tests/gsm0408/Makefile.am +++ b/tests/gsm0408/Makefile.am @@ -25,6 +25,7 @@ gsm0408_test_LDADD = \ $(top_builddir)/src/osmo-bsc/arfcn_range_encode.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(top_builddir)/src/osmo-bsc/net_init.o \ $(top_builddir)/src/osmo-bsc/rest_octets.o \ $(top_builddir)/src/osmo-bsc/system_information.o \ diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 2f84d7a..180bffe 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -52,6 +52,7 @@ $(top_builddir)/src/osmo-bsc/gsm_04_08_utils.o \ $(top_builddir)/src/osmo-bsc/gsm_04_80_utils.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(top_builddir)/src/osmo-bsc/handover_cfg.o \ $(top_builddir)/src/osmo-bsc/handover_decision.o \ $(top_builddir)/src/osmo-bsc/handover_decision_2.o \ diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index aa7045e..312cf7d 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -26,6 +26,7 @@ $(top_builddir)/src/osmo-bsc/abis_nm.o \ $(top_builddir)/src/osmo-bsc/bts_ipaccess_nanobts_omlattr.o \ $(top_builddir)/src/osmo-bsc/gsm_data.o \ + $(top_builddir)/src/osmo-bsc/gsm_timers.o \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOABIS_LIBS) \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index 72dabe5..7a3a80e 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -191,6 +192,13 @@ .num_cat = ARRAY_SIZE(log_categories), }; +static struct T_def gsm_network_T_defs[] = { + { .T=3105, .default_val=100, .val=13, .unit=T_MS, .desc="Physical Information" }, + { .T=3212, .default_val=5, .unit=T_CUSTOM, + .desc="Periodic Location Update timer, sent to MS (1 = 6 minutes)" }, + {} +}; + int main(int argc, char **argv) { void *ctx; @@ -207,6 +215,7 @@ /* Allocate environmental structs (bts, net, trx) */ net = talloc_zero(ctx, struct gsm_network); INIT_LLIST_HEAD(&net->bts_list); + net->T_defs = gsm_network_T_defs; gsm_bts_model_register(&bts_model_nanobts); bts = gsm_bts_alloc_register(net, GSM_BTS_TYPE_NANOBTS, 63); OSMO_ASSERT(bts); -- To view, visit https://gerrit.osmocom.org/9670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 Gerrit-Change-Number: 9670 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:18 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:18 +0000 Subject: Change in osmo-bsc[master]: code bomb: refactor just about everything for inter-bsc HO Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9671 Change subject: code bomb: refactor just about everything for inter-bsc HO ...................................................................... code bomb: refactor just about everything for inter-bsc HO This is way too large, yet the typical tangle of modification onto modifications needs to be squashed to make sensible bits of them later for code review... Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/Makefile.am M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c A src/stubs/lchan_fsm_stubs.c A src/stubs/ts_fsm_stubs.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/Makefile.am 68 files changed, 8,245 insertions(+), 4,793 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/1 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:13:58 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:13:58 +0000 Subject: Change in libosmocore[master]: add and tweak inter-BSC HO API Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9672 Change subject: add and tweak inter-BSC HO API ...................................................................... add and tweak inter-BSC HO API Add: gsm0808_create_handover_detect() gsm0808_create_handover_complete() gsm0808_create_handover_failure() To existing structs gsm0808_old_bss_to_new_bss_info and gsm0808_handover_required, add a final 'more_items' flag that makes future extensions API and ABI compatible. Fix the msgb string for Handover Request Ack. Extend some API doc comments. Related: OS#2283 (inter-BSC Handover, BSC side, MT) Change-Id: I03ee7ce840ecfa0b6a33358e7385528aabd4873f --- M include/osmocom/gsm/gsm0808.h M include/osmocom/gsm/gsm_utils.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 129 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/9672/1 diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index d704aa9..5ae0af8 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -103,6 +103,7 @@ } current_channel_type_2; /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ }; /*! 3GPP TS 48.008 ?3.2.1.9 HANDOVER REQUIRED */ @@ -120,6 +121,7 @@ struct gsm0808_old_bss_to_new_bss_info old_bss_to_new_bss_info; /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ }; struct msgb *gsm0808_create_handover_required(const struct gsm0808_handover_required *params); @@ -127,6 +129,44 @@ uint8_t chosen_channel, uint8_t chosen_encr_alg, uint8_t chosen_speech_version); +struct msgb *gsm0808_create_handover_detect(); + +struct gsm0808_handover_complete { + bool rr_cause_present; + uint8_t rr_cause; + + bool speech_codec_chosen_present; + struct gsm0808_speech_codec speech_codec_chosen; + + struct gsm0808_speech_codec_list codec_list_bss_supported; /*< omit when .len == 0 */ + + bool chosen_encr_alg_present; + uint8_t chosen_encr_alg; + + bool chosen_channel_present; + uint8_t chosen_channel; + + bool lcls_bss_status_present; + enum gsm0808_lcls_status lcls_bss_status; + + /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ +}; +struct msgb *gsm0808_create_handover_complete(const struct gsm0808_handover_complete *params); + +struct gsm0808_handover_failure { + uint16_t cause; + + bool rr_cause_present; + uint8_t rr_cause; + + struct gsm0808_speech_codec_list codec_list_bss_supported; /*< omit when .len == 0 */ + + /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ +}; +struct msgb *gsm0808_create_handover_failure(const struct gsm0808_handover_failure *params); + struct msgb *gsm0808_create_dtap(struct msgb *msg, uint8_t link_id); void gsm0808_prepend_dtap_header(struct msgb *msg, uint8_t link_id); diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index 83e29ca..6ff4459 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -30,6 +30,8 @@ #include #include +#include +#include #define ADD_MODULO(sum, delta, modulo) do { \ if ((sum += delta) >= modulo) \ diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 3a63137..625de81 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -739,14 +739,16 @@ return msg; } -/*! Create BSSMAP HANDOVER REQUEST ACKNOWLEDGE message, 3GPP TS 48.008 3.2.1.10. */ +/*! Create BSSMAP HANDOVER REQUEST ACKNOWLEDGE message, 3GPP TS 48.008 3.2.1.10. + * Sent from the MT BSC back to the MSC when it has allocated an lchan to handover to. + * l3_info is the RR Handover Command that the MO BSC sends to the MS to move over. */ struct msgb *gsm0808_create_handover_request_ack(const uint8_t *l3_info, uint8_t l3_info_len, uint8_t chosen_channel, uint8_t chosen_encr_alg, uint8_t chosen_speech_version) { struct msgb *msg; - msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-ACCEPT-ACK"); + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-REQUEST-ACK"); if (!msg) return NULL; @@ -764,6 +766,86 @@ return msg; } +/*! Create BSSMAP HANDOVER DETECT message, 3GPP TS 48.008 3.2.1.40. + * Sent from the MT BSC back to the MSC when the MS has sent a handover RACH request and the MT BSC has + * received the Handover Detect message. */ +struct msgb *gsm0808_create_handover_detect() +{ + struct msgb *msg; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-DETECT"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_HANDOVER_DETECT); + + return msg; +} + +/*! Create BSSMAP HANDOVER COMPLETE message, 3GPP TS 48.008 3.2.1.12. + * Sent from the MT BSC back to the MSC when the MS has fully settled into the new lchan. */ +struct msgb *gsm0808_create_handover_complete(const struct gsm0808_handover_complete *params) +{ + struct msgb *msg; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-COMPLETE"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_HANDOVER_COMPLETE); + + /* RR Cause, 3.2.2.22 */ + if (params->rr_cause_present) + msgb_tlv_put(msg, GSM0808_IE_RR_CAUSE, 1, ¶ms->rr_cause); + + /* AoIP: Speech Codec (Chosen) 3.2.2.104 */ + if (params->speech_codec_chosen_present) + gsm0808_enc_speech_codec(msg, ¶ms->speech_codec_chosen); + + /* AoIP: add Codec List (BSS Supported) 3.2.2.103 */ + if (params->codec_list_bss_supported.len) + gsm0808_enc_speech_codec_list(msg, ¶ms->codec_list_bss_supported); + + /* Chosen Encryption Algorithm 3.2.2.44 */ + if (params->chosen_encr_alg_present) + msgb_tv_put(msg, GSM0808_IE_CHOSEN_ENCR_ALG, params->chosen_encr_alg); + + /* LCLS-BSS-Status 3.2.2.119 */ + if (params->lcls_bss_status_present) + msgb_tv_put(msg, GSM0808_IE_LCLS_BSS_STATUS, params->lcls_bss_status); + + return msg; +} + +/*! Create BSSMAP HANDOVER FAILURE message, 3GPP TS 48.008 3.2.1.16. + * Sent from the MT BSC back to the MSC when the handover has failed. */ +struct msgb *gsm0808_create_handover_failure(const struct gsm0808_handover_failure *params) +{ + struct msgb *msg; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-FAILURE"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_HANDOVER_FAILURE); + + /* Cause, 3.2.2.5 */ + msgb_tlv_put(msg, GSM0808_IE_CAUSE, params->cause & 0x80? 2 : 1, (const uint8_t*)¶ms->cause); + + /* RR Cause, 3.2.2.22 */ + if (params->rr_cause_present) + msgb_tlv_put(msg, GSM0808_IE_RR_CAUSE, 1, ¶ms->rr_cause); + + /* AoIP: add Codec List (BSS Supported) 3.2.2.103 */ + if (params->codec_list_bss_supported.len) + gsm0808_enc_speech_codec_list(msg, ¶ms->codec_list_bss_supported); + + return msg; +} + /*! Prepend a DTAP header to given Message Buffer * \param[in] msgb Message Buffer * \param[in] link_id Link Identifier */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 4d9811b..69fb24a 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -168,6 +168,9 @@ gsm0808_create_sapi_reject; gsm0808_create_handover_required; gsm0808_create_handover_request_ack; +gsm0808_create_handover_detect; +gsm0808_create_handover_complete; +gsm0808_create_handover_failure; gsm0808_prepend_dtap_header; gsm0808_enc_aoip_trasp_addr; gsm0808_dec_aoip_trasp_addr; -- To view, visit https://gerrit.osmocom.org/9672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Gerrit-Change-Number: 9672 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:16:09 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:16:09 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#2). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/Makefile.am M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c A src/stubs/lchan_fsm_stubs.c A src/stubs/ts_fsm_stubs.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/Makefile.am 68 files changed, 8,245 insertions(+), 4,793 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/2 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:19:35 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:19:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: handover: actually send Handover Detect Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9673 Change subject: bsc: handover: actually send Handover Detect ...................................................................... bsc: handover: actually send Handover Detect Until now, the test went from RR Handover Command directly to RR Handover Complete, and osmo-bsc didn't mind it. However, the normal handover procedure requires an RSL Handover Detect to be sent in-between those. Send that. Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 --- M bsc/MSC_ConnectionHandler.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/73/9673/1 diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 0846762..9661ce3 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -858,6 +858,14 @@ RslChannelNr old_chan_nr }; +template (value) RSL_Message ts_RSL_HANDO_DET(template (value) RslChannelNr chan_nr) := { + msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false), + msg_type := RSL_MT_HANDO_DET, + ies := { + t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}) + } +} + altstep as_handover(inout HandoverState st) runs on MSC_ConnHdlr { var RSL_Message rsl; [not st.rr_ho_cmpl_seen] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr)) -> value rsl { @@ -877,6 +885,10 @@ * before performing a hand-over */ f_rslem_resume(RSL1_PROC); + /* send handover detect */ + RSL1.send(ts_RSL_HANDO_DET(new_chan_nr)); + f_sleep(0.3); + /* send handover complete over the new channel */ var PDU_ML3_MS_NW l3_tx := valueof(ts_RRM_HandoverComplete('00'O)); RSL1.send(ts_RSL_DATA_IND(new_chan_nr, valueof(ts_RslLinkID_DCCH(0)), -- To view, visit https://gerrit.osmocom.org/9673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 Gerrit-Change-Number: 9673 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:19:35 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:19:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9674 Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 --- M bsc/BSC_Tests.ttcn M bsc/osmo-bsc.cfg 2 files changed, 330 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/74/9674/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 0107091..ca7b275 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -33,6 +33,8 @@ import from RSL_Types all; import from RSL_Emulation all; import from MGCP_Emulation all; +import from MGCP_Templates all; +import from MGCP_Types all; import from Osmocom_CTRL_Functions all; import from Osmocom_CTRL_Types all; @@ -43,6 +45,7 @@ import from MobileL3_CommonIE_Types all; import from MobileL3_Types all; +import from MobileL3_RRM_Types all; import from L3_Templates all; import from GSM_RR_Types all; @@ -2067,41 +2070,6 @@ f_vty_ss_action("handover " & int2str(new_bts_nr), bts_nr, trx_nr, chan_nr); } -/* intra-BSC hand-over between BTS0 and BTS1 */ -private function f_tc_ho_int(charstring id) runs on MSC_ConnHdlr { - g_pars := valueof(t_def_TestHdlrPars); - var template PDU_BSSAP exp_compl := f_gen_exp_compl(); - var PDU_BSSAP ass_cmd := f_gen_ass_req(); - const OCT8 kc := '0001020304050607'O; - - ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); - ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); - - f_establish_fully(ass_cmd, exp_compl); - - var HandoverState hs := { - rr_ho_cmpl_seen := false, - handover_done := false, - old_chan_nr := - - }; - /* issue hand-over command on VTY */ - f_vty_handover(0, 0, g_chan_nr, 1); - /* temporarily suspend DChan processing on BTS1 to avoid race with RSLEM_register */ - f_rslem_suspend(RSL1_PROC); - alt { - [] as_handover(hs); - /* FIXME: somehow determine that the hand-over has completed, by MGCP MDCX? */ - } -} - -testcase TC_ho_int() runs on test_CT { - var MSC_ConnHdlr vc_conn; - f_init(2, true); - f_sleep(1.0); - vc_conn := f_start_handler(refers(f_tc_ho_int)); - vc_conn.done; -} - /* OS#3041: Open and close N connections in a normal fashion, and expect no * BSSMAP Reset just because of that. */ testcase TC_bssap_rlsd_does_not_cause_bssmap_reset() runs on test_CT { @@ -2481,6 +2449,327 @@ * is the info correct on delayed PCU (re)connect? */ + +/*********************************************************************** + * Handover + ***********************************************************************/ + +/* intra-BSC hand-over between BTS0 and BTS1 */ +private function f_tc_ho_int(charstring id) runs on MSC_ConnHdlr { + g_pars := valueof(t_def_TestHdlrPars); + var template PDU_BSSAP exp_compl := f_gen_exp_compl(); + var PDU_BSSAP ass_cmd := f_gen_ass_req(); + const OCT8 kc := '0001020304050607'O; + + ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); + ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + + f_establish_fully(ass_cmd, exp_compl); + + var HandoverState hs := { + rr_ho_cmpl_seen := false, + handover_done := false, + old_chan_nr := - + }; + /* issue hand-over command on VTY */ + f_vty_handover(0, 0, g_chan_nr, 1); + /* temporarily suspend DChan processing on BTS1 to avoid race with RSLEM_register */ + f_rslem_suspend(RSL1_PROC); + alt { + [] as_handover(hs); + /* FIXME: somehow determine that the hand-over has completed, by MGCP MDCX? */ + } +} + +testcase TC_ho_int() runs on test_CT { + var MSC_ConnHdlr vc_conn; + f_init(2, true); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_tc_ho_int)); + vc_conn.done; +} + +template PDU_BSSAP tr_BSSMAP_HandoverRequired modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + handoverRequired := { + messageType := '11'O + } + } + } +} + +template PDU_BSSAP ts_BSSMAP_HandoverCommand(octetstring layer3info) modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + handoverCommand := { + messageType := '13'O, + layer3Information := { + elementIdentifier := '17'O, + lengthIndicator := 0, + layer3info := layer3info + }, + cellIdentifier := omit, + newBSSToOldBSSInfo := omit, + talkerPriority := omit + } + } + } +} + +template PDU_ML3_NW_MS ts_RR_HandoverCommand := { + discriminator := '0110'B, + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + rrm := { + handoverCommand := { + messageType := '00101011'B, + cellDescription := { + bcc := '001'B, + ncc := '010'B, + BCCHArfcn_HighPart := '11'B, + BCCHArfcn_LowPart := '04'O + }, + channelDescription2 := { + timeslotNumber := '110'B, + channelTypeandTDMAOffset := '00001'B, + octet3 := '00'O, + octet4 := '09'O + }, + handoverReference := { + handoverReferenceValue := '00'O + }, + powerCommandAndAccesstype := { + powerlevel := '00000'B, + fPC_EP := '0'B, + ePC_Mode := '0'B, + aTC := '0'B + }, + synchronizationIndication := omit, + frequencyShortListAfterTime := omit, + frequencyListAfterTime := omit, + cellChannelDescription := omit, + multislotAllocation := omit, + modeOfChannelSet1 := omit, + modeOfChannelSet2 := omit, + modeOfChannelSet3 := omit, + modeOfChannelSet4 := omit, + modeOfChannelSet5 := omit, + modeOfChannelSet6 := omit, + modeOfChannelSet7 := omit, + modeOfChannelSet8 := omit, + descrOf2ndCh_at := omit, + modeOf2ndChannel := omit, + frequencyChannelSequence_at := omit, + mobileAllocation_at := omit, + startingTime := omit, + timeDifference := omit, + timingAdvance := omit, + frequencyShortListBeforeTime := omit, + frequencyListBeforeTime := omit, + descrOf1stCh_bt := omit, + descrOf2ndCh_bt := omit, + frequencyChannelSequence_bt := omit, + mobileAllocation_bt := omit, + cipherModeSetting := omit, + vGCS_TargetModeIndication := omit, + multiRateConfiguration := omit, + dynamicARFCN_Mapping := omit, + vGCS_Ciphering_Parameters := omit, + dedicatedServiceInformation := omit, + pLMNIndex := omit, + extendedTSCSet_afterTime := omit, + extendedTSCSet_beforeTime := omit + } + } + } +} + +private function f_tc_ho_out_of_this_bsc(charstring id) runs on MSC_ConnHdlr { + g_pars := valueof(t_def_TestHdlrPars); + var template PDU_BSSAP exp_compl := tr_BSSMAP_AssignmentComplete(omit, ?); + var BSSMAP_IE_AoIP_TransportLayerAddress tla := valueof(ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342)); + var PDU_BSSAP ass_cmd := valueof(ts_BSSMAP_AssignmentReq(omit, tla)); + var PDU_ML3_NW_MS rr_ho_cmd; + var octetstring rr_ho_cmd_enc; + var myBSSMAP_Cause cause_val := GSM0808_CAUSE_HANDOVER_SUCCESSFUL; + var BssmapCause cause := enum2int(cause_val); + var RSL_Message rsl_ho_cmd; + var RSL_IE_Body rsl_ho_cmd_l3; + var MgcpCommand mgcp; + + ass_cmd.pdu.bssmap.assignmentRequest.channelType := valueof(ts_BSSMAP_IE_ChannelType); + ass_cmd.pdu.bssmap.assignmentRequest.codecList := valueof(ts_BSSMAP_IE_CodecList({ts_CodecFR})); + + f_establish_fully(ass_cmd, exp_compl); + + f_vty_transceive(BSCVTY, "handover any to arfcn 123 bsic any"); + + BSSAP.receive(tr_BSSMAP_HandoverRequired); + + f_sleep(0.5); + /* The MSC negotiates Handover Request and Handover Request Ack with + * the other BSS and comes back with a BSSMAP Handover Command + * containing an RR Handover Command coming from the target BSS... */ + + rr_ho_cmd := valueof(ts_RR_HandoverCommand); + log("Remote cell's RR Handover Command passed through as L3 Info: ", rr_ho_cmd); + rr_ho_cmd_enc := enc_PDU_ML3_NW_MS(rr_ho_cmd); + log("Remote cell's RR Handover Command passed through as L3 Info, encoded: ", rr_ho_cmd_enc); + BSSAP.send(ts_BSSMAP_HandoverCommand(rr_ho_cmd_enc)); + + /* expect the Handover Command to go out on RR */ + RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, ?)) -> value rsl_ho_cmd; + log("RSL Data Req went out to first BTS: ", rsl_ho_cmd); + if (not f_rsl_find_ie(rsl_ho_cmd, RSL_IE_L3_INFO, rsl_ho_cmd_l3)) { + log("RSL message contains no L3 Info IE, expected RR Handover Command"); + setverdict(fail); + } else { + log("Found L3 Info: ", rsl_ho_cmd_l3); + if (rsl_ho_cmd_l3.l3_info.payload != rr_ho_cmd_enc) { + log("FAIL: the BSC sent out a different L3 Info, not matching the RR Handover Command the other BSS forwarded."); + setverdict(fail); + } else { + log("Success: the BSC sent out the same RR Handover Command the other BSS forwarded."); + setverdict(pass); + } + } + + /* When the other BSS has reported a completed handover, this side is + * torn down. */ + + BSSAP.send(ts_BSSMAP_ClearCommand(cause)); + + /* Expecting MGCP to DLCX the endpoint's two connections: towards BTS and towards MSC */ + interleave { + [] BSSAP.receive(tr_BSSMAP_ClearComplete); + [] MGCP.receive(tr_DLCX()) -> value mgcp { + log("Got first DLCX: ", mgcp); + } + [] MGCP.receive(tr_DLCX()) -> value mgcp { + log("Got second DLCX: ", mgcp); + } + } + setverdict(pass); + f_sleep(1.0); +} +testcase TC_ho_out_of_this_bsc() runs on test_CT { + var MSC_ConnHdlr vc_conn; + + f_init(1, true); + f_sleep(1.0); + + vc_conn := f_start_handler(refers(f_tc_ho_out_of_this_bsc)); + vc_conn.done; +} + +template PDU_BSSAP ts_BSSMAP_HandoverRequest( + template BSSMAP_IE_CellIdentifier cell_id_target := ts_CellID_LAC_CI(1, 0), + template BSSMAP_IE_CellIdentifier cell_id_source := ts_CellID_LAC_CI(1, 1), + template BSSMAP_IE_AoIP_TransportLayerAddress aoip_tla := ts_BSSMAP_IE_AoIP_TLA4('01020304'O, 2342) + ) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + handoverRequest := { + messageType := '10'O, + channelType := valueof(ts_BSSMAP_IE_ChannelType), + encryptionInformation := + valueof(ts_BSSMAP_IE_EncrInfo('0000000000000000'O,'01'O)), + classmarkInformationType := { + classmarkInformationType1 := { + elementIdentifier := '1D'O, + rf_PowerCapability := '000'B, + a5_1 := '0'B, + esind := '0'B, + revisionLevel := '10'B, + spare1_1 := '0'B + } + }, + cellIdentifierSource := cell_id_source, + priority := omit, + circuitIdentityCode := omit, + downLinkDTX_Flag := omit, + cellIdentifierTarget := cell_id_target, + interferenceBandToBeUsed := omit, + cause := omit, + classmarkInformationType3 := omit, + currentChannelType1 := omit, + speechVersion := omit, + groupCallReference := omit, + talkerFlag := omit, + configurationEvolutionIndication := omit, + chosenEncryptionAlgorithm := omit, + oldToNewBSSInfo := omit, + lSAInformation := omit, + lSAAccessControlSuppression := omit, + serviceHandover := omit, + iMSI_bssmap := omit, + sourceToTargetRNCTransparentInfo := omit, + sourceToTargetRNCTransparentInfoCDMA := omit, + sNAAccessInformation := omit, + talkerPriority := omit, + aoIPTransportLayer := aoip_tla, + codecList := omit, + callIdentifier := omit, + kC128 := omit, + globalCallReference := omit, + lCLS_Configuration := omit, + connectionStatusControl := omit + } + } + } +} + +template PDU_BSSAP tr_BSSMAP_HandoverRequestAcknowledge(octetstring layer3info) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + handoverRequestAck := { + messageType := '12'O, + layer3Information := { + elementIdentifier := '17'O, + lengthIndicator := 0, + layer3info := layer3info + } + } + } + } +} + +private function f_tc_ho_into_this_bsc(charstring id) runs on MSC_ConnHdlr { + var BSSAP_N_DATA_ind rx_di; + + BSSAP.send(ts_BSSAP_CONNECT_req(g_bssap.sccp_addr_peer, g_bssap.sccp_addr_own, 2342, + ts_BSSMAP_HandoverRequest())); + BSSAP.receive(tr_BSSAP_CONNECT_cfm(2342, omit)); + + BSSAP.receive(tr_BSSAP_DATA_ind(2342, tr_BSSMAP_HandoverRequestAcknowledge('1234'O))); + + alt { + [] BSSAP.receive(tr_BSSAP_DATA_ind(2342, tr_BSSMAP_ClearRequest)) -> value rx_di { + var BssmapCause cause := bit2int(rx_di.userData.pdu.bssmap.clearRequest.cause.causeValue); + BSSAP.send(ts_BSSAP_DATA_req(2342, ts_BSSMAP_ClearCommand(cause))); + repeat; + } + [] BSSAP.receive(tr_BSSAP_DATA_ind(2342, tr_BSSMAP_ClearComplete)); + } + + setverdict(pass); +} + +testcase TC_ho_into_this_bsc() runs on test_CT { + var MSC_ConnHdlr vc_conn; + + f_init(1, true); + f_sleep(1.0); + + vc_conn := f_start_handler(refers(f_tc_ho_into_this_bsc)); + vc_conn.done; +} + control { /* CTRL interface testing */ execute( TC_ctrl_msc_connection_status() ); @@ -2566,7 +2855,6 @@ execute( TC_unsol_ho_fail() ); execute( TC_err_82_short_msg() ); execute( TC_err_84_unknown_msg() ); - execute( TC_ho_int() ); execute( TC_bssap_rlsd_does_not_cause_bssmap_reset() ); execute( TC_bssmap_clear_does_not_cause_bssmap_reset() ); @@ -2577,6 +2865,10 @@ execute( TC_dyn_pdch_osmo_act_deact() ); execute( TC_dyn_pdch_osmo_act_nack() ); + execute( TC_ho_int() ); + execute( TC_ho_out_of_this_bsc() ); + execute( TC_ho_into_this_bsc() ); + /* at bottom as they might crash OsmoBSC before OS#3182 is fixed */ execute( TC_early_conn_fail() ); execute( TC_late_conn_fail() ); diff --git a/bsc/osmo-bsc.cfg b/bsc/osmo-bsc.cfg index 1ccef09..b2409a5 100644 --- a/bsc/osmo-bsc.cfg +++ b/bsc/osmo-bsc.cfg @@ -88,6 +88,8 @@ early-classmark-sending forbidden ip.access unit_id 1234 0 oml ip.access stream_id 255 line 0 + # remote-BSS neighbor: + neighbor add lac 99 arfcn 123 bsic any neighbor-list mode manual-si5 neighbor-list add arfcn 100 neighbor-list add arfcn 200 -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 07:19:36 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 07:19:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-stop.sh: print colored verdict Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9675 Change subject: ttcn3-tcpdump-stop.sh: print colored verdict ...................................................................... ttcn3-tcpdump-stop.sh: print colored verdict Change-Id: I0d2d6171430f1eebb5377edac5e237a99ddbd743 --- M ttcn3-tcpdump-stop.sh 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/9675/1 diff --git a/ttcn3-tcpdump-stop.sh b/ttcn3-tcpdump-stop.sh index a085bf7..9404841 100755 --- a/ttcn3-tcpdump-stop.sh +++ b/ttcn3-tcpdump-stop.sh @@ -2,6 +2,14 @@ PIDFILE=/tmp/tcpdump.pid TESTCASE=$1 +VERDICT="$2" + +if [ x"$VERDICT" = x"pass" ]; then + echo "\033[1;32m====== $TESTCASE $VERDICT ======\033[0m" +else + echo "\033[1;31m------ $TESTCASE $VERDICT ------\033[0m" +fi +echo if [ "z$TTCN3_PCAP_PATH" = "z" ]; then TTCN3_PCAP_PATH=/tmp -- To view, visit https://gerrit.osmocom.org/9675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0d2d6171430f1eebb5377edac5e237a99ddbd743 Gerrit-Change-Number: 9675 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:10:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 08:10:19 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Remove debug left over for the test In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9664 ) Change subject: ms: Remove debug left over for the test ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I17aa97a99cb1b1f9205b3a951370fe5ad49ae3dc Gerrit-Change-Number: 9664 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 08:10:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:10:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 08:10:26 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Use the new API to pass credentials to the event server In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9663 ) Change subject: ms: Use the new API to pass credentials to the event server ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f Gerrit-Change-Number: 9663 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 08:10:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:11:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 08:11:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9626 ) Change subject: bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL ...................................................................... bsc: fix TC_chan_rel_hard_rlsd_ms_dead: ignore RLL REL The intention is to ignore RLL REL requests, and not to actually block the alt statement in f_expect_chan_rel() if any RLL REL messages show up. Change-Id: I3bbcdc41d186a3464cd4adb5c5b770bdec056993 --- M bsc/BSC_Tests.ttcn 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 2f99bcb..0107091 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -816,6 +816,11 @@ f_ipa_tx(0, ts_RSL_REL_CONF(rsl_chan_nr, main_dcch)); repeat; } + [not handle_rll_rel] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, + tr_RSL_REL_REQ(rsl_chan_nr, ?))) { + /* Do not reply, just continue */ + repeat; + } /* Expect RF channel release from BSC on Abis */ [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL))) { -- To view, visit https://gerrit.osmocom.org/9626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3bbcdc41d186a3464cd4adb5c5b770bdec056993 Gerrit-Change-Number: 9626 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:12:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 08:12:19 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: handover: actually send Handover Detect In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9673 ) Change subject: bsc: handover: actually send Handover Detect ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9673/1/bsc/MSC_ConnectionHandler.ttcn File bsc/MSC_ConnectionHandler.ttcn: https://gerrit.osmocom.org/#/c/9673/1/bsc/MSC_ConnectionHandler.ttcn at 861 PS1, Line 861: template (value) RSL_Message ts_RSL_HANDO_DET(template (value) RslChannelNr chan_nr) := { this should go to RSL_Types.ttcn like all other RSLtemplates -- To view, visit https://gerrit.osmocom.org/9673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 Gerrit-Change-Number: 9673 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 18 Jun 2018 08:12:19 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:23:32 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 08:23:32 +0000 Subject: Change in openbsc[master]: gsm0408_dispatch: Fix uninitialized var warning In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/9640 ) Change subject: gsm0408_dispatch: Fix uninitialized var warning ...................................................................... gsm0408_dispatch: Fix uninitialized var warning Got this warning since my upgrade to gcc 8.1.0. Quick check tells me it's probably a false positive, but let's fix the warning anyway. openbsc/openbsc/src/libmsc/gsm_04_08.c: In function ?gsm0408_dispatch?: openbsc/openbsc/src/libmsc/gsm_04_08.c:1260:5: error: ?res_len? may be used uninitialized in this function [-Werror=maybe-uninitialized] if (res_len != 4) { ^ openbsc/openbsc/src/libmsc/gsm_04_08.c:1223:10: note: ?res_len? was declared here uint8_t res_len; ^~~~~~~ Change-Id: Ifa45f73645c9ab022c18a012abe03214aa21526f --- M openbsc/src/libmsc/gsm_04_08.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c index 006de7f..09e35cc 100644 --- a/openbsc/src/libmsc/gsm_04_08.c +++ b/openbsc/src/libmsc/gsm_04_08.c @@ -1220,7 +1220,7 @@ { struct gsm_network *net = conn->network; uint8_t res[16]; - uint8_t res_len; + uint8_t res_len = 0; int rc; bool is_r99; -- To view, visit https://gerrit.osmocom.org/9640 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifa45f73645c9ab022c18a012abe03214aa21526f Gerrit-Change-Number: 9640 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:23:33 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 08:23:33 +0000 Subject: Change in openbsc[master]: bsc-nat: Fix missing help description for -T timestamp cmdline option In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/9641 ) Change subject: bsc-nat: Fix missing help description for -T timestamp cmdline option ...................................................................... bsc-nat: Fix missing help description for -T timestamp cmdline option Change-Id: I6a6fc3574630c0893797388bbbdeabe14572f988 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index e912f60..a9f1c0b 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1464,6 +1464,7 @@ printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -D --daemonize Fork the process into a background daemon\n"); printf(" -s --disable-color\n"); + printf(" -T --timestamp. Print a timestamp in the debug output.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -m --msc=IP. The address of the MSC.\n"); printf(" -l --local=IP. The local address of this BSC.\n"); -- To view, visit https://gerrit.osmocom.org/9641 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6a6fc3574630c0893797388bbbdeabe14572f988 Gerrit-Change-Number: 9641 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:23:33 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 08:23:33 +0000 Subject: Change in openbsc[master]: bsc-nat: Add -V param to print version In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/9642 ) Change subject: bsc-nat: Add -V param to print version ...................................................................... bsc-nat: Add -V param to print version Change-Id: I4dbf97905749aa9379bc6b6b448953d8b1825545 --- M openbsc/src/osmo-bsc_nat/bsc_nat.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index a9f1c0b..ba7f542 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -1465,6 +1465,7 @@ printf(" -D --daemonize Fork the process into a background daemon\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); + printf(" -V --version. Print the version of OsmoBSCNAT.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -m --msc=IP. The address of the MSC.\n"); printf(" -l --local=IP. The local address of this BSC.\n"); @@ -1481,12 +1482,13 @@ {"config-file", 1, 0, 'c'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, + {"version", 0, 0, 'V' }, {"msc", 1, 0, 'm'}, {"local", 1, 0, 'l'}, {0, 0, 0, 0} }; - c = getopt_long(argc, argv, "hd:sTPc:m:l:D", + c = getopt_long(argc, argv, "hd:sTVPc:m:l:D", long_options, &option_index); if (c == -1) break; @@ -1511,6 +1513,10 @@ case 'T': log_set_print_timestamp(osmo_stderr_target, 1); break; + case 'V': + print_version(1); + exit(0); + break; case 'm': msc_ip = optarg; break; -- To view, visit https://gerrit.osmocom.org/9642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4dbf97905749aa9379bc6b6b448953d8b1825545 Gerrit-Change-Number: 9642 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 08:23:34 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 08:23:34 +0000 Subject: Change in openbsc[master]: bsc-sccplite: Add -V param to print version In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/9643 ) Change subject: bsc-sccplite: Add -V param to print version ...................................................................... bsc-sccplite: Add -V param to print version Change-Id: Iad663d36d70196408806de664a39863f4d12238b --- M openbsc/src/osmo-bsc/osmo_bsc_main.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c index 022cd3d..be24cbd 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_main.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c @@ -81,6 +81,7 @@ printf(" -d option --debug=DRLL:DCC:DMM:DRR:DRSL:DNM enable debugging\n"); printf(" -s --disable-color\n"); printf(" -T --timestamp. Print a timestamp in the debug output.\n"); + printf(" -V --version. Print the version of OsmoBSC.\n"); printf(" -c --config-file filename The config file to use.\n"); printf(" -l --local=IP. The local address of the MGCP.\n"); printf(" -e --log-level number. Set a global loglevel.\n"); @@ -99,6 +100,7 @@ {"config-file", 1, 0, 'c'}, {"disable-color", 0, 0, 's'}, {"timestamp", 0, 0, 'T'}, + {"version", 0, 0, 'V' }, {"local", 1, 0, 'l'}, {"log-level", 1, 0, 'e'}, {"rf-ctl", 1, 0, 'r'}, @@ -106,7 +108,7 @@ {0, 0, 0, 0} }; - c = getopt_long(argc, argv, "hd:DsTc:e:r:t", + c = getopt_long(argc, argv, "hd:DsTVc:e:r:t", long_options, &option_index); if (c == -1) break; @@ -131,6 +133,10 @@ case 'T': log_set_print_timestamp(osmo_stderr_target, 1); break; + case 'V': + print_version(1); + exit(0); + break; case 'e': log_set_log_level(osmo_stderr_target, atoi(optarg)); break; -- To view, visit https://gerrit.osmocom.org/9643 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iad663d36d70196408806de664a39863f4d12238b Gerrit-Change-Number: 9643 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:40:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:40:46 +0000 Subject: Change in osmo-trx[master]: move set_antennas() from UHD to generic radioDevice base class In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9618 ) Change subject: move set_antennas() from UHD to generic radioDevice base class ...................................................................... move set_antennas() from UHD to generic radioDevice base class Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba --- M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 4 files changed, 29 insertions(+), 33 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 99eed43..7b3479f 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -196,8 +196,6 @@ inline double numberWritten() { return samplesWritten; } - - std::vector < std::string > tx_paths, rx_paths; }; #endif // _LMS_DEVICE_H_ diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index c5cd461..469b574 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -19,6 +19,7 @@ #include #include "GSMCommon.h" +#include "Logger.h" extern "C" { #include "config_defs.h" @@ -163,6 +164,34 @@ virtual double numberRead()=0; virtual double numberWritten()=0; + std::vector tx_paths, rx_paths; + bool set_antennas() { + unsigned int i; + + for (i = 0; i < tx_paths.size(); i++) { + if (tx_paths[i] == "") + continue; + LOG(DEBUG) << "Configuring channel " << i << " with antenna " << tx_paths[i]; + if (!setTxAntenna(tx_paths[i], i)) { + LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << tx_paths[i]; + return false; + } + } + + for (i = 0; i < rx_paths.size(); i++) { + if (rx_paths[i] == "") + continue; + LOG(DEBUG) << "Configuring channel " << i << " with antenna " << rx_paths[i]; + if (!setRxAntenna(rx_paths[i], i)) { + LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << rx_paths[i]; + return false; + } + } + LOG(INFO) << "Antennas configured successfully"; + return true; + } + + }; #endif diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index a0052c8..77a3446 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -291,7 +291,6 @@ std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; - std::vector tx_paths, rx_paths; size_t tx_spp, rx_spp; bool started; @@ -307,7 +306,6 @@ void init_gains(); void set_channels(bool swap); void set_rates(); - bool set_antennas(); bool parse_dev_type(); bool flush_recv(size_t num_pkts); int check_rx_md_err(uhd::rx_metadata_t &md, ssize_t num_smpls); @@ -458,33 +456,6 @@ LOG(INFO) << "Rates configured for " << desc.str; } -bool uhd_device::set_antennas() -{ - unsigned int i; - - for (i = 0; i < tx_paths.size(); i++) { - if (tx_paths[i] == "") - continue; - LOG(DEBUG) << "Configuring channel " << i << " with antenna " << tx_paths[i]; - if (!setTxAntenna(tx_paths[i], i)) { - LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << tx_paths[i]; - return false; - } - } - - for (i = 0; i < rx_paths.size(); i++) { - if (rx_paths[i] == "") - continue; - LOG(DEBUG) << "Configuring channel " << i << " with antenna " << rx_paths[i]; - if (!setRxAntenna(rx_paths[i], i)) { - LOG(ALERT) << "Failed configuring channel " << i << " with antenna " << rx_paths[i]; - return false; - } - } - LOG(INFO) << "Antennas configured successfully"; - return true; -} - double uhd_device::setTxGain(double db, size_t chan) { if (iface == MULTI_ARFCN) diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index 6304ea1..efdedb3 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -203,8 +203,6 @@ inline double getSampleRate() { return actualSampleRate; } inline double numberRead() { return samplesRead; } inline double numberWritten() { return samplesWritten; } - - std::vector tx_paths, rx_paths; }; #endif // _USRP_DEVICE_H_ -- To view, visit https://gerrit.osmocom.org/9618 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I806143e9db21f0be4dcc6a376b3a630be7aeb3ba Gerrit-Change-Number: 9618 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:40:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:40:46 +0000 Subject: Change in osmo-trx[master]: lms: Fix support for rx_paths / tx_paths In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9619 ) Change subject: lms: Fix support for rx_paths / tx_paths ...................................................................... lms: Fix support for rx_paths / tx_paths Before this patch, any configuration in osmo-trx.cfg regarding the rx and tx "antenna" (path) would have been completely ignored, as the radioDevice::make() function would simply drop those arguments to the floor. Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3 --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h 2 files changed, 10 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index c531a7f..b1f4519 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -40,11 +40,16 @@ #define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) -LMSDevice::LMSDevice(size_t sps, size_t chans): +LMSDevice::LMSDevice(size_t sps, size_t chans, + const std::vector& tx_paths, + const std::vector& rx_paths): m_lms_dev(NULL), sps(sps), chans(chans) { LOG(INFO) << "creating LMS device..."; + this->tx_paths = tx_paths; + this->rx_paths = rx_paths; + m_lms_stream_rx.resize(chans); m_lms_stream_tx.resize(chans); @@ -617,5 +622,5 @@ const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { - return new LMSDevice(tx_sps, chans); + return new LMSDevice(tx_sps, chans, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 7b3479f..ef6d2b4 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -65,7 +65,9 @@ public: /** Object constructor */ - LMSDevice(size_t sps, size_t chans); + LMSDevice(size_t sps, size_t chans, + const std::vector& tx_paths, + const std::vector& rx_paths); /** Instantiate the LMS */ int open(const std::string &args, int ref, bool swap_channels); -- To view, visit https://gerrit.osmocom.org/9619 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie50f854abbc9dcf351cddc052d10206382e1d5d3 Gerrit-Change-Number: 9619 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:40:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:40:46 +0000 Subject: Change in osmo-trx[master]: lms: Call set_antennas() during open() method In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9620 ) Change subject: lms: Call set_antennas() during open() method ...................................................................... lms: Call set_antennas() during open() method Without this call, the antenna/path configuration is not applied. Change-Id: I0bca58266b59f1315ec72b6407fe4f4495aff678 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index b1f4519..518e581 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -178,6 +178,11 @@ LOG(DEBUG) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx; + if (!set_antennas()) { + LOG(ALERT) << "LMS antenna setting failed"; + return -1; + } + /* Perform Rx and Tx calibration */ for (i=0; i Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:40:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:40:54 +0000 Subject: Change in osmo-trx[master]: radioDevice: Move tx_sps from derived into base class In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9621 ) Change subject: radioDevice: Move tx_sps from derived into base class ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced Gerrit-Change-Number: 9621 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 09:40:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:41:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:41:30 +0000 Subject: Change in osmo-trx[master]: radioDevice: better encapsulation in base class In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9622 ) Change subject: radioDevice: better encapsulation in base class ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab Gerrit-Change-Number: 9622 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 09:41:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:41:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:41:55 +0000 Subject: Change in osmo-trx[master]: lms: Fix coding style In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9623 ) Change subject: lms: Fix coding style ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc Gerrit-Change-Number: 9623 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 09:41:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:14 +0000 Subject: Change in osmo-trx[master]: usrp1: Fail in case of unsupported configuration In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9625 ) Change subject: usrp1: Fail in case of unsupported configuration ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Gerrit-Change-Number: 9625 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 09:42:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:16 +0000 Subject: Change in osmo-trx[master]: lms: Fail in case of unsupported configuration In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9624 ) Change subject: lms: Fail in case of unsupported configuration ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2 Gerrit-Change-Number: 9624 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 09:42:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:18 +0000 Subject: Change in osmo-trx[master]: radioDevice: Move tx_sps from derived into base class In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9621 ) Change subject: radioDevice: Move tx_sps from derived into base class ...................................................................... radioDevice: Move tx_sps from derived into base class All three derived classes use a tx_sps member, let's move this into the base class. Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 6 files changed, 18 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 518e581..68d4b97 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -40,13 +40,14 @@ #define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) -LMSDevice::LMSDevice(size_t sps, size_t chans, +LMSDevice::LMSDevice(size_t tx_sps, size_t chans, const std::vector& tx_paths, const std::vector& rx_paths): - m_lms_dev(NULL), sps(sps), chans(chans) + m_lms_dev(NULL), chans(chans) { LOG(INFO) << "creating LMS device..."; + this->tx_sps = tx_sps; this->tx_paths = tx_paths; this->rx_paths = rx_paths; @@ -135,8 +136,8 @@ goto out_close; print_range("Sample Rate", &range_sr); - LOG(DEBUG) << "Setting sample rate to " << GSMRATE*sps << " " << sps; - if (LMS_SetSampleRate(m_lms_dev, GSMRATE*sps, 32) < 0) + LOG(DEBUG) << "Setting sample rate to " << GSMRATE*tx_sps << " " << tx_sps; + if (LMS_SetSampleRate(m_lms_dev, GSMRATE*tx_sps, 32) < 0) goto out_close; if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf)) @@ -144,7 +145,7 @@ LOG(DEBUG) << "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 * sps); /* time * sample_rate */ + ts_offset = static_cast(8.9e-5 * GSMRATE * tx_sps); /* time * sample_rate */ switch (ref) { case REF_INTERNAL: @@ -362,7 +363,7 @@ bool LMSDevice::flush_recv(size_t num_pkts) { #define CHUNK 625 - int len = CHUNK * sps; + int len = CHUNK * tx_sps; short *buffer = new short[len * 2]; int rc; lms_stream_meta_t rx_metadata = {}; diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index ef6d2b4..0fe4c15 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -46,7 +46,7 @@ std::vector m_last_tx_underruns; std::vector m_last_tx_overruns; - size_t sps, chans; + size_t chans; double actualSampleRate; ///< the actual USRP sampling rate unsigned long long samplesRead; ///< number of samples read from LMS @@ -65,7 +65,7 @@ public: /** Object constructor */ - LMSDevice(size_t sps, size_t chans, + LMSDevice(size_t tx_sps, size_t chans, const std::vector& tx_paths, const std::vector& rx_paths); diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index 469b574..a9328ec 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -165,6 +165,7 @@ virtual double numberWritten()=0; std::vector tx_paths, rx_paths; + size_t tx_sps; bool set_antennas() { unsigned int i; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index 77a3446..ddcad3a 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -282,7 +282,7 @@ enum TxWindowType tx_window; enum uhd_dev_type dev_type; - size_t tx_sps, rx_sps, chans; + size_t rx_sps, chans; double tx_rate, rx_rate; double tx_gain_min, tx_gain_max; diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 7f73f43..07ba1c9 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -58,12 +58,12 @@ const double USRPDevice::masterClockRate = 52.0e6; -USRPDevice::USRPDevice(size_t sps) +USRPDevice::USRPDevice(size_t tx_sps) { LOG(INFO) << "creating USRP device..."; - this->sps = sps; - decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) sps)); + this->tx_sps = tx_sps; + decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) tx_sps)); actualSampleRate = masterClockRate/decimRate; rxGain = 0; @@ -73,9 +73,9 @@ * split sample rate Tx/Rx - 4/1 sps we need to need to * compensate for advance rather than delay. */ - if (sps == 1) + if (tx_sps == 1) pingOffset = 272; - else if (sps == 4) + else if (tx_sps == 4) pingOffset = 269 - 7500; else pingOffset = 0; @@ -100,7 +100,7 @@ if (!skipRx) { try { m_uRx = usrp_standard_rx_sptr(usrp_standard_rx::make( - 0, decimRate * sps, 1, -1, + 0, decimRate * tx_sps, 1, -1, usrp_standard_rx::FPGA_MODE_NORMAL, 1024, 16 * 8, rbf)); m_uRx->set_fpga_master_clock_freq(masterClockRate); diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index efdedb3..ff5b273 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -48,7 +48,6 @@ usrp_subdev_spec rxSubdevSpec; usrp_subdev_spec txSubdevSpec; - int sps; double actualSampleRate; ///< the actual USRP sampling rate unsigned int decimRate; ///< the USRP decimation rate @@ -96,7 +95,7 @@ public: /** Object constructor */ - USRPDevice(size_t sps); + USRPDevice(size_t tx_sps); /** Instantiate the USRP */ int open(const std::string &, int, bool); -- To view, visit https://gerrit.osmocom.org/9621 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I73b4aa2705c5049561e2d7b21301a0d2b3c96ced Gerrit-Change-Number: 9621 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:18 +0000 Subject: Change in osmo-trx[master]: radioDevice: better encapsulation in base class In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9622 ) Change subject: radioDevice: better encapsulation in base class ...................................................................... radioDevice: better encapsulation in base class It's not good style to have the derived classes initialize members inherited from the base class using "this->foo = bar". Rather, let's make the base class have a constructor, and call that constructor to initialize the members of the base class. While doing this * rename 'offset' to 'lo_offset' to avoid confusion with timestamp offset * move 'InterfaceType' into the base class * move 'chans' into the base class * move 'rx_sps' into the base class * mark base class members as 'protected' Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab --- M Transceiver52M/device/lms/LMSDevice.cpp M Transceiver52M/device/lms/LMSDevice.h M Transceiver52M/device/radioDevice.h M Transceiver52M/device/uhd/UHDDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.cpp M Transceiver52M/device/usrp1/USRPDevice.h 6 files changed, 38 insertions(+), 34 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 68d4b97..c4d5f96 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -40,17 +40,14 @@ #define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */ #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED) -LMSDevice::LMSDevice(size_t tx_sps, size_t chans, +LMSDevice::LMSDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths): - m_lms_dev(NULL), chans(chans) + RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths), + m_lms_dev(NULL) { LOG(INFO) << "creating LMS device..."; - this->tx_sps = tx_sps; - this->tx_paths = tx_paths; - this->rx_paths = rx_paths; - m_lms_stream_rx.resize(chans); m_lms_stream_tx.resize(chans); @@ -624,9 +621,9 @@ } RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { - return new LMSDevice(tx_sps, chans, tx_paths, rx_paths); + return new LMSDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h index 0fe4c15..349efbb 100644 --- a/Transceiver52M/device/lms/LMSDevice.h +++ b/Transceiver52M/device/lms/LMSDevice.h @@ -46,7 +46,6 @@ std::vector m_last_tx_underruns; std::vector m_last_tx_overruns; - size_t chans; double actualSampleRate; ///< the actual USRP sampling rate unsigned long long samplesRead; ///< number of samples read from LMS @@ -65,7 +64,7 @@ public: /** Object constructor */ - LMSDevice(size_t tx_sps, size_t chans, + LMSDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths); diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h index a9328ec..5d001fb 100644 --- a/Transceiver52M/device/radioDevice.h +++ b/Transceiver52M/device/radioDevice.h @@ -164,8 +164,20 @@ virtual double numberRead()=0; virtual double numberWritten()=0; + protected: + size_t tx_sps, rx_sps; + InterfaceType iface; + size_t chans; + double lo_offset; std::vector tx_paths, rx_paths; - size_t tx_sps; + + RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chans, double offset, + const std::vector& tx_paths, + const std::vector& rx_paths): + tx_sps(tx_sps), rx_sps(rx_sps), iface(type), chans(chans), lo_offset(offset), + tx_paths(tx_paths), rx_paths(rx_paths) + { } + bool set_antennas() { unsigned int i; diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index ddcad3a..4af8f87 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -282,12 +282,10 @@ enum TxWindowType tx_window; enum uhd_dev_type dev_type; - size_t rx_sps, chans; double tx_rate, rx_rate; double tx_gain_min, tx_gain_max; double rx_gain_min, rx_gain_max; - double offset; std::vector tx_gains, rx_gains; std::vector tx_freqs, rx_freqs; @@ -317,7 +315,6 @@ bool set_freq(double freq, size_t chan, bool tx); Thread *async_event_thrd; - InterfaceType iface; Mutex tune_lock; }; @@ -364,22 +361,16 @@ } uhd_device::uhd_device(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) - : tx_gain_min(0.0), tx_gain_max(0.0), + : RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths), + tx_gain_min(0.0), tx_gain_max(0.0), rx_gain_min(0.0), rx_gain_max(0.0), tx_spp(0), rx_spp(0), started(false), aligned(false), rx_pkt_cnt(0), drop_cnt(0), prev_ts(0,0), ts_initial(0), ts_offset(0), async_event_thrd(NULL) { - this->tx_sps = tx_sps; - this->rx_sps = rx_sps; - this->chans = chans; - this->offset = offset; - this->iface = iface; - this->tx_paths = tx_paths; - this->rx_paths = rx_paths; } uhd_device::~uhd_device() @@ -1057,8 +1048,8 @@ uhd::tune_request_t treq(freq); if (dev_type == UMTRX) { - if (offset != 0.0) - return uhd::tune_request_t(freq, offset); + if (lo_offset != 0.0) + return uhd::tune_request_t(freq, lo_offset); // Don't use DSP tuning, because LMS6002D PLL steps are small enough. // We end up with DSP tuning just for 2-3Hz, which is meaningless and @@ -1070,10 +1061,10 @@ treq.dsp_freq = 0.0; return treq; } else if (chans == 1) { - if (offset == 0.0) + if (lo_offset == 0.0) return treq; - return uhd::tune_request_t(freq, offset); + return uhd::tune_request_t(freq, lo_offset); } else if ((dev_type != B210) || (chans > 2) || (chan > 1)) { LOG(ALERT) << chans << " channels unsupported"; return treq; @@ -1556,9 +1547,9 @@ } RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) { - return new uhd_device(tx_sps, rx_sps, iface, chans, offset, tx_paths, rx_paths); + return new uhd_device(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 07ba1c9..7a31c97 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -58,11 +58,14 @@ const double USRPDevice::masterClockRate = 52.0e6; -USRPDevice::USRPDevice(size_t tx_sps) +USRPDevice::USRPDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, + size_t chans, double lo_offset, + const std::vector& tx_paths, + const std::vector& rx_paths): + RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths) { LOG(INFO) << "creating USRP device..."; - this->tx_sps = tx_sps; decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) tx_sps)); actualSampleRate = masterClockRate/decimRate; rxGain = 0; @@ -648,9 +651,9 @@ #endif RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps, - InterfaceType iface, size_t chans, double offset, + InterfaceType iface, size_t chans, double lo_offset, const std::vector& tx_paths, const std::vector& rx_paths) { - return new USRPDevice(tx_sps); + return new USRPDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h index ff5b273..451b5a9 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.h +++ b/Transceiver52M/device/usrp1/USRPDevice.h @@ -95,7 +95,9 @@ public: /** Object constructor */ - USRPDevice(size_t tx_sps); + USRPDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset, + const std::vector& tx_paths, + const std::vector& rx_paths); /** Instantiate the USRP */ int open(const std::string &, int, bool); -- To view, visit https://gerrit.osmocom.org/9622 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab Gerrit-Change-Number: 9622 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:19 +0000 Subject: Change in osmo-trx[master]: lms: Fix coding style In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9623 ) Change subject: lms: Fix coding style ...................................................................... lms: Fix coding style In Change-Id Ib2fca81b76d027b08e2891056fa076d071597783 we introduced some coding style violations. Let's make newly-added code follows standard Osmocom coding style. Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 10 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index c4d5f96..815a4c5 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -100,19 +100,19 @@ LMS_RegisterLogHandler(&lms_log_callback); - if ((n = LMS_GetDeviceList(NULL)) < 0) - LOG(ERROR) << "LMS_GetDeviceList(NULL) failed"; - LOG(DEBUG) << "Devices found: " << n; - if (n < 1) - return -1; + if ((n = LMS_GetDeviceList(NULL)) < 0) + LOG(ERROR) << "LMS_GetDeviceList(NULL) failed"; + LOG(DEBUG) << "Devices found: " << n; + if (n < 1) + return -1; - info_list = new lms_info_str_t[n]; + info_list = new lms_info_str_t[n]; - if (LMS_GetDeviceList(info_list) < 0) //Populate device list - LOG(ERROR) << "LMS_GetDeviceList(info_list) failed"; + if (LMS_GetDeviceList(info_list) < 0) + LOG(ERROR) << "LMS_GetDeviceList(info_list) failed"; - for (i = 0; i < n; i++) //print device list - LOG(DEBUG) << "Device [" << i << "]: " << info_list[i]; + for (i = 0; i < n; i++) + LOG(DEBUG) << "Device [" << i << "]: " << info_list[i]; rc = LMS_Open(&m_lms_dev, info_list[0], NULL); if (rc != 0) { -- To view, visit https://gerrit.osmocom.org/9623 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib7ddd275014f03a2eed3cddc02b1356e2b00c0bc Gerrit-Change-Number: 9623 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:19 +0000 Subject: Change in osmo-trx[master]: lms: Fail in case of unsupported configuration In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9624 ) Change subject: lms: Fail in case of unsupported configuration ...................................................................... lms: Fail in case of unsupported configuration There might be some configuration that's not supported by osmo-bts-lms, and we should reject that properly. Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2 Closes: OS#3347 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 815a4c5..16585e6 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -625,5 +625,13 @@ const std::vector < std::string > &tx_paths, const std::vector < std::string > &rx_paths) { + if (tx_sps != rx_sps) { + LOG(ERROR) << "LMS Requires tx_sps == rx_sps"; + return NULL; + } + if (lo_offset != 0.0) { + LOG(ERROR) << "LMS doesn't support lo_offset"; + return NULL; + } return new LMSDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } -- To view, visit https://gerrit.osmocom.org/9624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6f82edce589030a4407f6150fb7e8abe6417c1f2 Gerrit-Change-Number: 9624 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:19 +0000 Subject: Change in osmo-trx[master]: usrp1: Fail in case of unsupported configuration In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9625 ) Change subject: usrp1: Fail in case of unsupported configuration ...................................................................... usrp1: Fail in case of unsupported configuration There might be some configuration that's not supported by osmo-bts-usrp1, and we should reject that properly. Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Closes: OS#3348 --- M Transceiver52M/device/usrp1/USRPDevice.cpp 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp index 7a31c97..5705e22 100644 --- a/Transceiver52M/device/usrp1/USRPDevice.cpp +++ b/Transceiver52M/device/usrp1/USRPDevice.cpp @@ -655,5 +655,17 @@ const std::vector& tx_paths, const std::vector& rx_paths) { + if (tx_sps != rx_sps) { + LOG(ERROR) << "USRP1 requires tx_sps == rx_sps"; + return NULL; + } + if (chans != 1) { + LOG(ERROR) << "USRP1 supports only 1 channel"; + return NULL; + } + if (lo_offset != 0.0) { + LOG(ERROR) << "USRP1 doesn't support lo_offset"; + return NULL; + } return new USRPDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths); } -- To view, visit https://gerrit.osmocom.org/9625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic7308ce0c57439fe97668bd31801c4bf76b797ad Gerrit-Change-Number: 9625 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:29 +0000 Subject: Change in libosmocore[master]: gsm 04.80: Add value_string for component type and op code In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9654 ) Change subject: gsm 04.80: Add value_string for component type and op code ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a Gerrit-Change-Number: 9654 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 18 Jun 2018 09:42:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:42:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:42:30 +0000 Subject: Change in libosmocore[master]: gsm 04.80: Add value_string for component type and op code In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9654 ) Change subject: gsm 04.80: Add value_string for component type and op code ...................................................................... gsm 04.80: Add value_string for component type and op code Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map 3 files changed, 44 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h index fafa1f4..e928d83 100644 --- a/include/osmocom/gsm/gsm0480.h +++ b/include/osmocom/gsm/gsm0480.h @@ -7,6 +7,16 @@ #include #include +extern const struct value_string gsm0480_comp_type_names[]; +static inline const char *gsm0480_comp_type_name(uint8_t comp_type) { + return get_value_string(gsm0480_comp_type_names, comp_type); +} + +extern const struct value_string gsm0480_op_code_names[]; +static inline const char *gsm0480_op_code_name(uint8_t op_code) { + return get_value_string(gsm0480_op_code_names, op_code); +} + /** * According to the GSM 04.80 (version 5.0.0) specification Annex A * "Expanded ASN.1 Module "SS-Protocol", the maximum size of a USSD diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index 300c0ed..165b309 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -3,6 +3,7 @@ /* * (C) 2010 by Holger Hans Peter Freyther * (C) 2009 by Mike Haben + * (C) 2018 by Harald Welte * * All Rights Reserved * @@ -35,6 +36,37 @@ #include #include +const struct value_string gsm0480_comp_type_names[] = { + { GSM0480_CTYPE_INVOKE, "Invoke" }, + { GSM0480_CTYPE_RETURN_RESULT, "ReturnResult" }, + { GSM0480_CTYPE_RETURN_ERROR, "ReturnError" }, + { GSM0480_CTYPE_REJECT, "Reject" }, + { 0, NULL } +}; + +const struct value_string gsm0480_op_code_names[] = { + { GSM0480_OP_CODE_REGISTER_SS, "RegisterSS" }, + { GSM0480_OP_CODE_ERASE_SS, "EraseSS" }, + { GSM0480_OP_CODE_ACTIVATE_SS, "ActivateSS" }, + { GSM0480_OP_CODE_DEACTIVATE_SS, "DeactivateSS" }, + { GSM0480_OP_CODE_INTERROGATE_SS, "IngerrogateSS" }, + { GSM0480_OP_CODE_NOTIFY_SS, "NotifySS" }, + { GSM0480_OP_CODE_REGISTER_PASSWORD, "RegisterPassword" }, + { GSM0480_OP_CODE_GET_PASSWORD, "GetPassword" }, + { GSM0480_OP_CODE_PROCESS_USS_DATA, "ProcessUSSD" }, + { GSM0480_OP_CODE_FORWARD_CHECK_SS_IND, "ForwardChecckSSind" }, + { GSM0480_OP_CODE_PROCESS_USS_REQ, "ProcessUssReq" }, + { GSM0480_OP_CODE_USS_REQUEST, "UssRequest" }, + { GSM0480_OP_CODE_USS_NOTIFY, "UssNotify" }, + { GSM0480_OP_CODE_FORWARD_CUG_INFO, "ForwardCugInfo" }, + { GSM0480_OP_CODE_SPLIT_MPTY, "SplitMPTY" }, + { GSM0480_OP_CODE_RETRIEVE_MPTY, "RetrieveMPTY" }, + { GSM0480_OP_CODE_HOLD_MPTY, "HoldMPTY" }, + { GSM0480_OP_CODE_BUILD_MPTY, "BuildMPTY" }, + { GSM0480_OP_CODE_FORWARD_CHARGE_ADVICE, "ForwardChargeAdvice" }, + { 0, NULL } +}; + static inline unsigned char *msgb_wrap_with_TL(struct msgb *msgb, uint8_t tag) { uint8_t *data = msgb_push(msgb, 2); diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 4d9811b..3dccb22 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -95,6 +95,8 @@ gsm0480_decode_ss_request; gsm0480_wrap_facility; gsm0480_wrap_invoke; +gsm0480_comp_type_names; +gsm0480_op_code_names; gsm0502_calc_paging_group; -- To view, visit https://gerrit.osmocom.org/9654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2615a88db5224d65f37c7cc505e183ec8b196e8a Gerrit-Change-Number: 9654 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:43:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:43:22 +0000 Subject: Change in osmo-hlr[master]: gsup_server: Add "priv" pointer and make it point to 'struct hlr' In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9655 ) Change subject: gsup_server: Add "priv" pointer and make it point to 'struct hlr' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iada68996b7f4cbdcca92b254ddaf6b88b962e6f1 Gerrit-Change-Number: 9655 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 09:43:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:43:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:43:23 +0000 Subject: Change in osmo-hlr[master]: gsup_server: Add "priv" pointer and make it point to 'struct hlr' In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9655 ) Change subject: gsup_server: Add "priv" pointer and make it point to 'struct hlr' ...................................................................... gsup_server: Add "priv" pointer and make it point to 'struct hlr' Change-Id: Iada68996b7f4cbdcca92b254ddaf6b88b962e6f1 --- M src/gsup_server.c M src/gsup_server.h M src/hlr.c 3 files changed, 8 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gsup_server.c b/src/gsup_server.c index 4b8a0fa..e75bbd7 100644 --- a/src/gsup_server.c +++ b/src/gsup_server.c @@ -292,7 +292,7 @@ struct osmo_gsup_server * osmo_gsup_server_create(void *ctx, const char *ip_addr, uint16_t tcp_port, osmo_gsup_read_cb_t read_cb, - struct llist_head *lu_op_lst) + struct llist_head *lu_op_lst, void *priv) { struct osmo_gsup_server *gsups; int rc; @@ -312,6 +312,7 @@ goto failed; gsups->read_cb = read_cb; + gsups->priv = priv; rc = ipa_server_link_open(gsups->link); if (rc < 0) diff --git a/src/gsup_server.h b/src/gsup_server.h index e49d283..9c4d483 100644 --- a/src/gsup_server.h +++ b/src/gsup_server.h @@ -16,6 +16,9 @@ typedef int (*osmo_gsup_read_cb_t)(struct osmo_gsup_conn *conn, struct msgb *msg); struct osmo_gsup_server { + /* private data of the application/user */ + void *priv; + /* list of osmo_gsup_conn */ struct llist_head clients; @@ -53,7 +56,8 @@ const char *ip_addr, uint16_t tcp_port, osmo_gsup_read_cb_t read_cb, - struct llist_head *lu_op_lst); + struct llist_head *lu_op_lst, + void *priv); void osmo_gsup_server_destroy(struct osmo_gsup_server *gsups); diff --git a/src/hlr.c b/src/hlr.c index 940165f..643dfff 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -600,7 +600,7 @@ } g_hlr->gs = osmo_gsup_server_create(hlr_ctx, g_hlr->gsup_bind_addr, OSMO_GSUP_PORT, - read_cb, &g_lu_ops); + read_cb, &g_lu_ops, g_hlr); if (!g_hlr->gs) { LOGP(DMAIN, LOGL_FATAL, "Error starting GSUP server\n"); exit(1); -- To view, visit https://gerrit.osmocom.org/9655 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iada68996b7f4cbdcca92b254ddaf6b88b962e6f1 Gerrit-Change-Number: 9655 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:43:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:43:54 +0000 Subject: Change in pysim[master]: __init__: allow wildcards in expected SW for send_apdu_checksw() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9571 ) Change subject: __init__: allow wildcards in expected SW for send_apdu_checksw() ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/9571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 Gerrit-Change-Number: 9571 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 18 Jun 2018 09:43:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 09:43:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 09:43:56 +0000 Subject: Change in pysim[master]: __init__: allow wildcards in expected SW for send_apdu_checksw() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9571 ) Change subject: __init__: allow wildcards in expected SW for send_apdu_checksw() ...................................................................... __init__: allow wildcards in expected SW for send_apdu_checksw() The method send_apdu_checksw() is used to check the SW of the final response against some pre defined value. However, in many cases the last two digits of the SW are used to return varying information (e.g. length information or a more specific status info). To cover those cases it would be helfpul to define status words that contain wildcards (e.g. 61**) in order to be able to accept all SWs from 6100 to 61ff. - When the user supplies an expected SW with wildcards, mask out those digits in the response before comparing Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 --- M pySim/transport/__init__.py 1 file changed, 13 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index dd04bba..0a71117 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -77,12 +77,23 @@ """send_apdu_checksw(pdu,sw): Sends an APDU and check returned SW pdu : string of hexadecimal characters (ex. "A0A40000023F00") - sw : string of 4 hexadecimal characters (ex. "9000") + sw : string of 4 hexadecimal characters (ex. "9000"). The + user may mask out certain digits using a '?' to add some + ambiguity if needed. return : tuple(data, sw), where data : string (in hex) of returned data (ex. "074F4EFFFF") sw : string (in hex) of status word (ex. "9000") """ rv = self.send_apdu(pdu) - if sw.lower() != rv[1]: + + # Create a masked version of the returned status word + sw_masked = "" + for i in range(0, 4): + if sw.lower()[i] == '?': + sw_masked = sw_masked + '?' + else: + sw_masked = sw_masked + rv[1][i].lower() + + if sw.lower() != sw_masked: raise RuntimeError("SW match failed ! Expected %s and got %s." % (sw.lower(), rv[1])) return rv -- To view, visit https://gerrit.osmocom.org/9571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5bfc0522b4228b5d9b3415f6e708abcf0da0a7b7 Gerrit-Change-Number: 9571 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 10:08:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 10:08:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-stop.sh: print colored verdict In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9675 ) Change subject: ttcn3-tcpdump-stop.sh: print colored verdict ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0d2d6171430f1eebb5377edac5e237a99ddbd743 Gerrit-Change-Number: 9675 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 10:08:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 10:11:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 10:11:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9674 ) Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... Patch Set 1: (5 comments) https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn at 2492 PS1, Line 2492: template PDU_BSSAP tr_BSSMAP_HandoverRequired modifies tr_BSSAP_BSSMAP := { should go to BSSMAP_Templates.ttcn https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn at 2502 PS1, Line 2502: template PDU_BSSAP ts_BSSMAP_HandoverCommand(octetstring layer3info) modifies ts_BSSAP_BSSMAP := { should go to BSSMAP_Templates.ttcn and should be a template (value) PDU_BSSAP if it's for sending. https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn at 2520 PS1, Line 2520: template PDU_ML3_NW_MS ts_RR_HandoverCommand := { should be template (value) as it's a send template, and should go into L3_Templates.ttcn https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn at 2668 PS1, Line 2668: template PDU_BSSAP ts_BSSMAP_HandoverRequest( template (value) and BSSMAP_Templates.ttcn https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn at 2726 PS1, Line 2726: template PDU_BSSAP tr_BSSMAP_HandoverRequestAcknowledge(octetstring layer3info) BSSMAP_Templates.ttcn -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 18 Jun 2018 10:11:40 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 10:12:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 10:12:51 +0000 Subject: Change in osmo-bsc[master]: cosmetic / linking: move str_to_imsi() out of abis_rsl.c In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9665 ) Change subject: cosmetic / linking: move str_to_imsi() out of abis_rsl.c ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6e90831d7e618ce3c8e7417082a82c97f6681668 Gerrit-Change-Number: 9665 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 10:12:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 10:13:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 10:13:22 +0000 Subject: Change in osmocom-bb[master]: lua: Add API to enable passing credentials In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9662 ) Change subject: lua: Add API to enable passing credentials ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib4a5eef611f524f5d21cb6a7f4eace22b8ba60d0 Gerrit-Change-Number: 9662 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 10:13:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 10:13:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 10:13:36 +0000 Subject: Change in osmo-ci[master]: verify_value_string_arrays_are_terminated.py: allow dir args and no args In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9544 ) Change subject: verify_value_string_arrays_are_terminated.py: allow dir args and no args ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9544 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36456383906b6295c798b82aa131dda21f8efc02 Gerrit-Change-Number: 9544 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 18 Jun 2018 10:13:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 11:58:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 11:58:58 +0000 Subject: Change in osmo-msc[master]: .gitignore: ignore src/libgsupclient/gsup_test_client In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9660 ) Change subject: .gitignore: ignore src/libgsupclient/gsup_test_client ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1edf048207aaa0ced7a6ad0ae48df3f7d2533dc1 Gerrit-Change-Number: 9660 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 11:58:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 11:59:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 11:59:03 +0000 Subject: Change in osmo-msc[master]: .gitignore: ignore src/libgsupclient/gsup_test_client In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9660 ) Change subject: .gitignore: ignore src/libgsupclient/gsup_test_client ...................................................................... .gitignore: ignore src/libgsupclient/gsup_test_client Change-Id: I1edf048207aaa0ced7a6ad0ae48df3f7d2533dc1 --- M .gitignore 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/.gitignore b/.gitignore index a502ad4..4263f5a 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,7 @@ tests/msc_vlr/msc_vlr_test_* !tests/msc_vlr/msc_vlr_test_*.* tests/msc_vlr/msc_vlr_test_*.o +src/libgsupclient/gsup_test_client tests/atconfig -- To view, visit https://gerrit.osmocom.org/9660 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1edf048207aaa0ced7a6ad0ae48df3f7d2533dc1 Gerrit-Change-Number: 9660 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 13:07:53 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 13:07:53 +0000 Subject: Change in osmocom-bb[master]: lua: Add API to enable passing credentials In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9662 ) Change subject: lua: Add API to enable passing credentials ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib4a5eef611f524f5d21cb6a7f4eace22b8ba60d0 Gerrit-Change-Number: 9662 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 13:07:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 13:12:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 13:12:31 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Use the new API to pass credentials to the event server In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9663 ) Change subject: ms: Use the new API to pass credentials to the event server ...................................................................... Patch Set 1: I don't really understand the purpose of this commit. You seem to be changing code to use recvmsg to get the sender address, but then I only see you are passing the address and doing nothing useful with it. Then, you start using this new API unix_passcred, which enables being able to send credentials over the socket (not sending them), but I don't see any new code or changed code actually sending the credentials. -- To view, visit https://gerrit.osmocom.org/9663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f Gerrit-Change-Number: 9663 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 13:12:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 13:12:51 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 13:12:51 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Remove debug left over for the test In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9664 ) Change subject: ms: Remove debug left over for the test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9664 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I17aa97a99cb1b1f9205b3a951370fe5ad49ae3dc Gerrit-Change-Number: 9664 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 13:12:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Jun 18 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#158?= In-Reply-To: <365238892.208.1529248206596.JavaMail.jenkins@jenkins.osmocom.org> References: <365238892.208.1529248206596.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <26252815.217.1529334606344.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.81 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Jun 18 15:27:22 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 15:27:22 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9666 to look at the new patch set (#2). Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/neighbor_ident.c A src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/system_information.c M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am A tests/handover/neighbor_ident_test.c A tests/handover/neighbor_ident_test.err A tests/handover/neighbor_ident_test.ok A tests/neighbor_ident.vty M tests/testsuite.at 21 files changed, 1,960 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/9666/2 -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 15:30:25 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 15:30:25 +0000 Subject: Change in osmo-bsc[master]: add gsm_timers, for Tnnn definitions usable by FSMs In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9670 ) Change subject: add gsm_timers, for Tnnn definitions usable by FSMs ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9670/1/include/osmocom/bsc/gsm_timers.h File include/osmocom/bsc/gsm_timers.h: https://gerrit.osmocom.org/#/c/9670/1/include/osmocom/bsc/gsm_timers.h at 1 PS1, Line 1: /* API to define Tnnn timers globally, configure in VTY and use for FSM state changes. */ If it's worthy, this might move to libosmocore instead, next to fsm.h -- To view, visit https://gerrit.osmocom.org/9670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 Gerrit-Change-Number: 9670 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 18 Jun 2018 15:30:25 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 15:36:59 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 15:36:59 +0000 Subject: Change in osmo-bsc[master]: add gsm_timers, for Tnnn definitions usable by FSMs In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9670 to look at the new patch set (#2). Change subject: add gsm_timers, for Tnnn definitions usable by FSMs ...................................................................... add gsm_timers, for Tnnn definitions usable by FSMs Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/gsm_timers.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/gsm_data.c A src/osmo-bsc/gsm_timers.c A src/osmo-bsc/gsm_timers_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/paging.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 23 files changed, 514 insertions(+), 180 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/70/9670/2 -- To view, visit https://gerrit.osmocom.org/9670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 Gerrit-Change-Number: 9670 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 15:36:59 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 15:36:59 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#3). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/Makefile.am M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c A src/stubs/lchan_fsm_stubs.c A src/stubs/ts_fsm_stubs.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/Makefile.am 68 files changed, 8,245 insertions(+), 4,793 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/3 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 15:48:25 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 15:48:25 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#4). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/ipaccess/Makefile.am M src/ipaccess/stubs.c M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c M src/utils/Makefile.am M src/utils/bs11_config.c M src/utils/meas_json.c D src/utils/stubs.c M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.c 70 files changed, 8,240 insertions(+), 4,831 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/4 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 16:02:36 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 16:02:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: handover: actually send Handover Detect In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9673 to look at the new patch set (#2). Change subject: bsc: handover: actually send Handover Detect ...................................................................... bsc: handover: actually send Handover Detect Until now, the test went from RR Handover Command directly to RR Handover Complete, and osmo-bsc didn't mind it. However, the normal handover procedure requires an RSL Handover Detect to be sent in-between those. Send that. Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 --- M bsc/MSC_ConnectionHandler.ttcn M library/RSL_Types.ttcn 2 files changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/73/9673/2 -- To view, visit https://gerrit.osmocom.org/9673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 Gerrit-Change-Number: 9673 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 16:02:36 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 16:02:36 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9674 to look at the new patch set (#2). Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 --- M bsc/BSC_Tests.ttcn M bsc/osmo-bsc.cfg M library/BSSMAP_Templates.ttcn M library/L3_Templates.ttcn 4 files changed, 330 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/74/9674/2 -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 16:05:04 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 16:05:04 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#5). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/ipaccess/Makefile.am M src/ipaccess/stubs.c M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c M src/utils/Makefile.am M src/utils/bs11_config.c M src/utils/meas_json.c D src/utils/stubs.c M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.c 70 files changed, 8,239 insertions(+), 4,831 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/5 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 16:07:58 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 16:07:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9674 to look at the new patch set (#3). Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 --- M bsc/BSC_Tests.ttcn M bsc/osmo-bsc.cfg M library/BSSMAP_Templates.ttcn M library/L3_Templates.ttcn 4 files changed, 320 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/74/9674/3 -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 16:11:02 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 16:11:02 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 5: The build fails because of the libosmocore dependency on the new gsm0808 encoding functions for inter-bsc ho I03ee7ce840ecfa0b6a33358e7385528aabd4873f -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 18 Jun 2018 16:11:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 16:11:28 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 18 Jun 2018 16:11:28 +0000 Subject: Change in libosmocore[master]: add and tweak inter-BSC HO API In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9672 ) Change subject: add and tweak inter-BSC HO API ...................................................................... Patch Set 1: osmo-bsc "large refactoring" patch needs this to build -- To view, visit https://gerrit.osmocom.org/9672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Gerrit-Change-Number: 9672 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 18 Jun 2018 16:11:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:23:16 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Jun 2018 17:23:16 +0000 Subject: Change in libosmocore[master]: gsm: lapdm.c: Add missing new line char in notice log string Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9676 Change subject: gsm: lapdm.c: Add missing new line char in notice log string ...................................................................... gsm: lapdm.c: Add missing new line char in notice log string Change-Id: I92c78ea01570dc1f4be11b113c07f0aa3b342c8f --- M src/gsm/lapdm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/9676/1 diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c index 3a6fc5b..ba9b3df 100644 --- a/src/gsm/lapdm.c +++ b/src/gsm/lapdm.c @@ -709,7 +709,7 @@ memcpy(&mctx.dl->mctx, &mctx, sizeof(mctx.dl->mctx)); rc =lapdm_rx_not_permitted(le, &lctx); if (rc > 0) { - LOGP(DLLAPD, LOGL_NOTICE, "received message not permitted"); + LOGP(DLLAPD, LOGL_NOTICE, "received message not permitted\n"); msgb_free(msg); rsl_rll_error(rc, &mctx); return -EINVAL; -- To view, visit https://gerrit.osmocom.org/9676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I92c78ea01570dc1f4be11b113c07f0aa3b342c8f Gerrit-Change-Number: 9676 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:31:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:31:43 +0000 Subject: Change in libosmocore[master]: gsm: lapdm.c: Add missing new line char in notice log string In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9676 ) Change subject: gsm: lapdm.c: Add missing new line char in notice log string ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I92c78ea01570dc1f4be11b113c07f0aa3b342c8f Gerrit-Change-Number: 9676 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 17:31:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:31:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:31:46 +0000 Subject: Change in libosmocore[master]: gsm: lapdm.c: Add missing new line char in notice log string In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9676 ) Change subject: gsm: lapdm.c: Add missing new line char in notice log string ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I92c78ea01570dc1f4be11b113c07f0aa3b342c8f Gerrit-Change-Number: 9676 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 17:31:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:31:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:31:52 +0000 Subject: Change in libosmocore[master]: gsm: lapdm.c: Add missing new line char in notice log string In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9676 ) Change subject: gsm: lapdm.c: Add missing new line char in notice log string ...................................................................... gsm: lapdm.c: Add missing new line char in notice log string Change-Id: I92c78ea01570dc1f4be11b113c07f0aa3b342c8f --- M src/gsm/lapdm.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c index 3a6fc5b..ba9b3df 100644 --- a/src/gsm/lapdm.c +++ b/src/gsm/lapdm.c @@ -709,7 +709,7 @@ memcpy(&mctx.dl->mctx, &mctx, sizeof(mctx.dl->mctx)); rc =lapdm_rx_not_permitted(le, &lctx); if (rc > 0) { - LOGP(DLLAPD, LOGL_NOTICE, "received message not permitted"); + LOGP(DLLAPD, LOGL_NOTICE, "received message not permitted\n"); msgb_free(msg); rsl_rll_error(rc, &mctx); return -EINVAL; -- To view, visit https://gerrit.osmocom.org/9676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I92c78ea01570dc1f4be11b113c07f0aa3b342c8f Gerrit-Change-Number: 9676 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:32:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:32:57 +0000 Subject: Change in libosmocore[master]: add and tweak inter-BSC HO API In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9672 ) Change subject: add and tweak inter-BSC HO API ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Gerrit-Change-Number: 9672 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 18 Jun 2018 17:32:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:32:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:32:58 +0000 Subject: Change in libosmocore[master]: add and tweak inter-BSC HO API In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9672 ) Change subject: add and tweak inter-BSC HO API ...................................................................... add and tweak inter-BSC HO API Add: gsm0808_create_handover_detect() gsm0808_create_handover_complete() gsm0808_create_handover_failure() To existing structs gsm0808_old_bss_to_new_bss_info and gsm0808_handover_required, add a final 'more_items' flag that makes future extensions API and ABI compatible. Fix the msgb string for Handover Request Ack. Extend some API doc comments. Related: OS#2283 (inter-BSC Handover, BSC side, MT) Change-Id: I03ee7ce840ecfa0b6a33358e7385528aabd4873f --- M include/osmocom/gsm/gsm0808.h M include/osmocom/gsm/gsm_utils.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 129 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index d704aa9..5ae0af8 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -103,6 +103,7 @@ } current_channel_type_2; /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ }; /*! 3GPP TS 48.008 ?3.2.1.9 HANDOVER REQUIRED */ @@ -120,6 +121,7 @@ struct gsm0808_old_bss_to_new_bss_info old_bss_to_new_bss_info; /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ }; struct msgb *gsm0808_create_handover_required(const struct gsm0808_handover_required *params); @@ -127,6 +129,44 @@ uint8_t chosen_channel, uint8_t chosen_encr_alg, uint8_t chosen_speech_version); +struct msgb *gsm0808_create_handover_detect(); + +struct gsm0808_handover_complete { + bool rr_cause_present; + uint8_t rr_cause; + + bool speech_codec_chosen_present; + struct gsm0808_speech_codec speech_codec_chosen; + + struct gsm0808_speech_codec_list codec_list_bss_supported; /*< omit when .len == 0 */ + + bool chosen_encr_alg_present; + uint8_t chosen_encr_alg; + + bool chosen_channel_present; + uint8_t chosen_channel; + + bool lcls_bss_status_present; + enum gsm0808_lcls_status lcls_bss_status; + + /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ +}; +struct msgb *gsm0808_create_handover_complete(const struct gsm0808_handover_complete *params); + +struct gsm0808_handover_failure { + uint16_t cause; + + bool rr_cause_present; + uint8_t rr_cause; + + struct gsm0808_speech_codec_list codec_list_bss_supported; /*< omit when .len == 0 */ + + /* more items are defined in the spec and may be added later */ + bool more_items; /*< always set this to false */ +}; +struct msgb *gsm0808_create_handover_failure(const struct gsm0808_handover_failure *params); + struct msgb *gsm0808_create_dtap(struct msgb *msg, uint8_t link_id); void gsm0808_prepend_dtap_header(struct msgb *msg, uint8_t link_id); diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index 83e29ca..6ff4459 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -30,6 +30,8 @@ #include #include +#include +#include #define ADD_MODULO(sum, delta, modulo) do { \ if ((sum += delta) >= modulo) \ diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 3a63137..625de81 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -739,14 +739,16 @@ return msg; } -/*! Create BSSMAP HANDOVER REQUEST ACKNOWLEDGE message, 3GPP TS 48.008 3.2.1.10. */ +/*! Create BSSMAP HANDOVER REQUEST ACKNOWLEDGE message, 3GPP TS 48.008 3.2.1.10. + * Sent from the MT BSC back to the MSC when it has allocated an lchan to handover to. + * l3_info is the RR Handover Command that the MO BSC sends to the MS to move over. */ struct msgb *gsm0808_create_handover_request_ack(const uint8_t *l3_info, uint8_t l3_info_len, uint8_t chosen_channel, uint8_t chosen_encr_alg, uint8_t chosen_speech_version) { struct msgb *msg; - msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-ACCEPT-ACK"); + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-REQUEST-ACK"); if (!msg) return NULL; @@ -764,6 +766,86 @@ return msg; } +/*! Create BSSMAP HANDOVER DETECT message, 3GPP TS 48.008 3.2.1.40. + * Sent from the MT BSC back to the MSC when the MS has sent a handover RACH request and the MT BSC has + * received the Handover Detect message. */ +struct msgb *gsm0808_create_handover_detect() +{ + struct msgb *msg; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-DETECT"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_HANDOVER_DETECT); + + return msg; +} + +/*! Create BSSMAP HANDOVER COMPLETE message, 3GPP TS 48.008 3.2.1.12. + * Sent from the MT BSC back to the MSC when the MS has fully settled into the new lchan. */ +struct msgb *gsm0808_create_handover_complete(const struct gsm0808_handover_complete *params) +{ + struct msgb *msg; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-COMPLETE"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_HANDOVER_COMPLETE); + + /* RR Cause, 3.2.2.22 */ + if (params->rr_cause_present) + msgb_tlv_put(msg, GSM0808_IE_RR_CAUSE, 1, ¶ms->rr_cause); + + /* AoIP: Speech Codec (Chosen) 3.2.2.104 */ + if (params->speech_codec_chosen_present) + gsm0808_enc_speech_codec(msg, ¶ms->speech_codec_chosen); + + /* AoIP: add Codec List (BSS Supported) 3.2.2.103 */ + if (params->codec_list_bss_supported.len) + gsm0808_enc_speech_codec_list(msg, ¶ms->codec_list_bss_supported); + + /* Chosen Encryption Algorithm 3.2.2.44 */ + if (params->chosen_encr_alg_present) + msgb_tv_put(msg, GSM0808_IE_CHOSEN_ENCR_ALG, params->chosen_encr_alg); + + /* LCLS-BSS-Status 3.2.2.119 */ + if (params->lcls_bss_status_present) + msgb_tv_put(msg, GSM0808_IE_LCLS_BSS_STATUS, params->lcls_bss_status); + + return msg; +} + +/*! Create BSSMAP HANDOVER FAILURE message, 3GPP TS 48.008 3.2.1.16. + * Sent from the MT BSC back to the MSC when the handover has failed. */ +struct msgb *gsm0808_create_handover_failure(const struct gsm0808_handover_failure *params) +{ + struct msgb *msg; + + msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, "BSSMAP-HANDOVER-FAILURE"); + if (!msg) + return NULL; + + /* Message Type, 3.2.2.1 */ + msgb_v_put(msg, BSS_MAP_MSG_HANDOVER_FAILURE); + + /* Cause, 3.2.2.5 */ + msgb_tlv_put(msg, GSM0808_IE_CAUSE, params->cause & 0x80? 2 : 1, (const uint8_t*)¶ms->cause); + + /* RR Cause, 3.2.2.22 */ + if (params->rr_cause_present) + msgb_tlv_put(msg, GSM0808_IE_RR_CAUSE, 1, ¶ms->rr_cause); + + /* AoIP: add Codec List (BSS Supported) 3.2.2.103 */ + if (params->codec_list_bss_supported.len) + gsm0808_enc_speech_codec_list(msg, ¶ms->codec_list_bss_supported); + + return msg; +} + /*! Prepend a DTAP header to given Message Buffer * \param[in] msgb Message Buffer * \param[in] link_id Link Identifier */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 3dccb22..96779d2 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -170,6 +170,9 @@ gsm0808_create_sapi_reject; gsm0808_create_handover_required; gsm0808_create_handover_request_ack; +gsm0808_create_handover_detect; +gsm0808_create_handover_complete; +gsm0808_create_handover_failure; gsm0808_prepend_dtap_header; gsm0808_enc_aoip_trasp_addr; gsm0808_dec_aoip_trasp_addr; -- To view, visit https://gerrit.osmocom.org/9672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Gerrit-Change-Number: 9672 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:33:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:33:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: handover: actually send Handover Detect In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9673 ) Change subject: bsc: handover: actually send Handover Detect ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 Gerrit-Change-Number: 9673 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 17:33:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:33:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:33:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: handover: actually send Handover Detect In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9673 ) Change subject: bsc: handover: actually send Handover Detect ...................................................................... bsc: handover: actually send Handover Detect Until now, the test went from RR Handover Command directly to RR Handover Complete, and osmo-bsc didn't mind it. However, the normal handover procedure requires an RSL Handover Detect to be sent in-between those. Send that. Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 --- M bsc/MSC_ConnectionHandler.ttcn M library/RSL_Types.ttcn 2 files changed, 13 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 0846762..2042979 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -877,6 +877,10 @@ * before performing a hand-over */ f_rslem_resume(RSL1_PROC); + /* send handover detect */ + RSL1.send(ts_RSL_HANDO_DET(new_chan_nr)); + f_sleep(0.3); + /* send handover complete over the new channel */ var PDU_ML3_MS_NW l3_tx := valueof(ts_RRM_HandoverComplete('00'O)); RSL1.send(ts_RSL_DATA_IND(new_chan_nr, valueof(ts_RslLinkID_DCCH(0)), diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index 3804d40..e1f6af0 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -1309,6 +1309,15 @@ } } + /* 8.4.7 BTS -> BSC */ + template (value) RSL_Message ts_RSL_HANDO_DET(template (value) RslChannelNr chan_nr) := { + msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false), + msg_type := RSL_MT_HANDO_DET, + ies := { + t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr}) + } + } + /* COMMON CHANNEL MANAGEMENT MESSAGES */ -- To view, visit https://gerrit.osmocom.org/9673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832 Gerrit-Change-Number: 9673 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:34:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:34:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9674 ) Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 18 Jun 2018 17:34:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 17:35:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Jun 2018 17:35:05 +0000 Subject: Change in osmo-bsc[master]: cosmetic / linking: move str_to_imsi() out of abis_rsl.c In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9665 ) Change subject: cosmetic / linking: move str_to_imsi() out of abis_rsl.c ...................................................................... cosmetic / linking: move str_to_imsi() out of abis_rsl.c Move to gsm_04_08_utils.c so that it's possible to use it without linking/stubbing all of RSL. Change-Id: I6e90831d7e618ce3c8e7417082a82c97f6681668 --- M include/osmocom/bsc/abis_rsl.h M include/osmocom/bsc/gsm_04_08_utils.h M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c 6 files changed, 14 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/abis_rsl.h b/include/osmocom/bsc/abis_rsl.h index fc21238..2fe8c38 100644 --- a/include/osmocom/bsc/abis_rsl.h +++ b/include/osmocom/bsc/abis_rsl.h @@ -68,7 +68,6 @@ int abis_rsl_rcvmsg(struct msgb *msg); -uint64_t str_to_imsi(const char *imsi_str); int rsl_release_request(struct gsm_lchan *lchan, uint8_t link_id, enum rsl_rel_mode release_mode); diff --git a/include/osmocom/bsc/gsm_04_08_utils.h b/include/osmocom/bsc/gsm_04_08_utils.h index bdfca71..4349a37 100644 --- a/include/osmocom/bsc/gsm_04_08_utils.h +++ b/include/osmocom/bsc/gsm_04_08_utils.h @@ -39,3 +39,5 @@ return msgb_alloc_headroom(GSM48_ALLOC_SIZE, GSM48_ALLOC_HEADROOM, name); } + +uint64_t str_to_imsi(const char *imsi_str); diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index add4390..ab3658d 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -167,16 +167,6 @@ return lchan; } -/* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ -uint64_t str_to_imsi(const char *imsi_str) -{ - uint64_t ret; - - ret = strtoull(imsi_str, NULL, 10); - - return ret; -} - static struct msgb *rsl_msgb_alloc(void) { return msgb_alloc_headroom(RSL_ALLOC_SIZE, RSL_ALLOC_HEADROOM, diff --git a/src/osmo-bsc/gsm_04_08_utils.c b/src/osmo-bsc/gsm_04_08_utils.c index 5bfdf97..e9aeb55 100644 --- a/src/osmo-bsc/gsm_04_08_utils.c +++ b/src/osmo-bsc/gsm_04_08_utils.c @@ -703,3 +703,13 @@ return gsm48_extract_mi(classmark2_lv, length - classmark_offset, mi_string, mi_type); } + +/* As per TS 03.03 Section 2.2, the IMSI has 'not more than 15 digits' */ +uint64_t str_to_imsi(const char *imsi_str) +{ + uint64_t ret; + + ret = strtoull(imsi_str, NULL, 10); + + return ret; +} diff --git a/src/osmo-bsc/paging.c b/src/osmo-bsc/paging.c index 886d28b..feb9fea 100644 --- a/src/osmo-bsc/paging.c +++ b/src/osmo-bsc/paging.c @@ -50,6 +50,7 @@ #include #include #include +#include void *tall_paging_ctx = NULL; diff --git a/src/osmo-bsc/pcu_sock.c b/src/osmo-bsc/pcu_sock.c index 5a3fefa..8a3c331 100644 --- a/src/osmo-bsc/pcu_sock.c +++ b/src/osmo-bsc/pcu_sock.c @@ -43,6 +43,7 @@ #include #include #include +#include static int pcu_sock_send(struct gsm_bts *bts, struct msgb *msg); uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx); -- To view, visit https://gerrit.osmocom.org/9665 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6e90831d7e618ce3c8e7417082a82c97f6681668 Gerrit-Change-Number: 9665 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Jun 18 17:48:44 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Jun 2018 17:48:44 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-iuh_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1403?= Message-ID: <393995357.218.1529344124309.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 714.66 KB...] :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberM { ^~~~~~~~~~~~~ CC RANAP_SNA-Access-Information.lo CC RANAP_SNAC.lo CC RANAP_Service-Handover.lo CC RANAP_Source-ToTarget-TransparentContainer.lo CC RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.lo CC RANAP_SourceCellID.lo CC RANAP_SourceBSS-ToTargetBSS-TransparentContainer.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:14, from ../../include/osmocom/ranap/RANAP_SNA-Access-Information.h:14, from RANAP_SNA-Access-Information.c:7: ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:23: warning: ?struct MemberC? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberC { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberC { ^~~~~~~~~~~~~ CC RANAP_SourceID.lo CC RANAP_SourceRNC-ID.lo CC RANAP_SourceRNC-ToTargetRNC-TransparentContainer.lo CC RANAP_IRAT-Measurement-Configuration.lo CC RANAP_IRATmeasurementParameters.lo CC RANAP_RSRQ-Type.lo CC RANAP_RSRQ-Extension.lo CC RANAP_EUTRANFrequencies.lo CC RANAP_MeasBand.lo CC RANAP_SubscriberProfileIDforRFP.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from ../../include/osmocom/ranap/RANAP_IRATmeasurementParameters.h:15, from RANAP_IRATmeasurementParameters.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: ?struct MemberJ? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberJ { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberJ { ^~~~~~~~~~~~~ In file included from :8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from ../../include/osmocom/ranap/RANAP_IRATmeasurementParameters.h:15, from ../../include/osmocom/ranap/RANAP_IRAT-Measurement-Configuration.h:15, from RANAP_IRAT-Measurement-Configuration.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: ?struct MemberJ? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberJ { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberJ { ^~~~~~~~~~~~~ CC RANAP_SourceStatisticsDescriptor.lo CC RANAP_SupportedRAB-ParameterBitrateList.lo CC RANAP_SupportedBitrate.lo CC RANAP_SourceUTRANCellID.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from RANAP_EUTRANFrequencies.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: ?struct MemberJ? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberJ { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberJ { ^~~~~~~~~~~~~ CC RANAP_SRB-ID.lo CC RANAP_SRB-TrCH-Mapping.lo CC RANAP_SRB-TrCH-MappingItem.lo CC RANAP_SRVCC-HO-Indication.lo CC RANAP_SRVCC-Information.lo CC RANAP_SRVCC-Operation-Possible.lo CC RANAP_SubflowSDU-Size.lo CC RANAP_TAC.lo CC RANAP_TAI.lo CC RANAP_Target-ToSource-TransparentContainer.lo CC RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.lo CC RANAP_TargetBSS-ToSourceBSS-TransparentContainer.lo CC RANAP_TargetCellId.lo CC RANAP_TargetID.lo CC RANAP_TargetENB-ID.lo CC RANAP_TargetRNC-ID.lo CC RANAP_TargetRNC-ToSourceRNC-TransparentContainer.lo CC RANAP_TBCD-STRING.lo CC RANAP_TemporaryUE-ID.lo CC RANAP_Time-UE-StayedInCell.lo CC RANAP_Time-UE-StayedInCell-EnhancedGranularity.lo CC RANAP_TimeToMBMSDataTransfer.lo CC RANAP_TimingDifferenceULDL.lo CC RANAP_TMGI.lo CC RANAP_TMSI.lo CC RANAP_TraceDepth.lo CC RANAP_TraceInformation.lo CC RANAP_TracePropagationParameters.lo CC RANAP_TraceRecordingSessionInformation.lo CC RANAP_TraceRecordingSessionReference.lo CC RANAP_TraceReference.lo CC RANAP_TraceType.lo CC RANAP_TrafficClass.lo CC RANAP_TrafficHandlingPriority.lo CC RANAP_TransferDelay.lo CC RANAP_UnsuccessfullyTransmittedDataVolume.lo CC RANAP_TransportLayerAddress.lo CC RANAP_TrCH-ID.lo CC RANAP_TrCH-ID-List.lo CC RANAP_TriggerID.lo CC RANAP_TunnelInformation.lo CC RANAP_TypeOfError.lo CC RANAP_UE-AggregateMaximumBitRate.lo CC RANAP_UE-AggregateMaximumBitRateDownlink.lo CC RANAP_UE-AggregateMaximumBitRateUplink.lo CC RANAP_UE-History-Information.lo CC RANAP_UE-ID.lo CC RANAP_UESBI-Iu.lo CC RANAP_UESBI-IuA.lo CC RANAP_UESBI-IuB.lo CC RANAP_UL-GTP-PDU-SequenceNumber.lo CC RANAP_UL-N-PDU-SequenceNumber.lo CC RANAP_UPInformation.lo CC RANAP_UPInitialisationFrame.lo CC RANAP_UP-ModeVersions.lo CC RANAP_USCH-ID.lo CC RANAP_UserPlaneMode.lo CC RANAP_UTRAN-CellID.lo CC RANAP_VelocityEstimate.lo CC RANAP_HorizontalVelocity.lo CC RANAP_HorizontalWithVerticalVelocity.lo CC RANAP_HorizontalVelocityWithUncertainty.lo CC RANAP_HorizontalWithVerticalVelocityAndUncertainty.lo CC RANAP_HorizontalSpeedAndBearing.lo CC RANAP_VerticalVelocity.lo CC RANAP_VerticalSpeedDirection.lo CC RANAP_VerticalAccuracyCode.lo CC RANAP_VoiceSupportMatchIndicator.lo CC RANAP_RANAP-PDU.lo CC RANAP_InitiatingMessage.lo CC RANAP_SuccessfulOutcome.lo CC RANAP_UnsuccessfulOutcome.lo CC RANAP_Outcome.lo CC RANAP_Iu-ReleaseCommand.lo CC RANAP_Iu-ReleaseComplete.lo CC RANAP_RelocationRequired.lo CC RANAP_RelocationCommand.lo CC RANAP_RelocationPreparationFailure.lo CC RANAP_RelocationRequest.lo CC RANAP_RelocationRequestAcknowledge.lo CC RANAP_RelocationFailure.lo CC RANAP_RelocationCancel.lo CC RANAP_RelocationCancelAcknowledge.lo CC RANAP_SRNS-ContextRequest.lo CC RANAP_RAB-DataForwardingList-SRNS-CtxReq.lo CC RANAP_DataVolumeReportRequest.lo CC RANAP_SRNS-ContextResponse.lo CC RANAP_SecurityModeCommand.lo CC RANAP_SecurityModeComplete.lo CC RANAP_SecurityModeReject.lo CC RANAP_DataVolumeReport.lo CC RANAP_Reset.lo CC RANAP_ResetAcknowledge.lo CC RANAP_RAB-ReleaseRequest.lo CC RANAP_RedirectionIndication.lo CC RANAP_RAB-ReleaseList.lo CC RANAP_Iu-ReleaseRequest.lo CC RANAP_RelocationDetect.lo CC RANAP_RelocationComplete.lo CC RANAP_Paging.lo CC RANAP_CommonID.lo CC RANAP_CN-InvokeTrace.lo CC RANAP_CN-DeactivateTrace.lo CC RANAP_LocationReportingControl.lo CC RANAP_LocationReport.lo CC RANAP_InitialUE-Message.lo CC RANAP_DirectTransfer.lo CC RANAP_Overload.lo CC RANAP_ErrorIndication.lo CC RANAP_SRNS-DataForwardCommand.lo CC RANAP_ForwardSRNS-Context.lo CC RANAP_RAB-AssignmentRequest.lo CC RANAP_RAB-SetupOrModifyList.lo CC RANAP_RAB-AssignmentResponse.lo CC RANAP_PrivateMessage.lo CC RANAP_ResetResource.lo CC RANAP_ResetResourceAcknowledge.lo CC RANAP_RANAP-RelocationInformation.lo CC RANAP_RAB-ModifyRequest.lo CC RANAP_LocationRelatedDataRequest.lo CC RANAP_LocationRelatedDataResponse.lo CC RANAP_LocationRelatedDataFailure.lo CC RANAP_InformationTransferIndication.lo CC RANAP_InformationTransferConfirmation.lo CC RANAP_InformationTransferFailure.lo CC RANAP_UESpecificInformationIndication.lo CC RANAP_DirectInformationTransfer.lo CC RANAP_UplinkInformationExchangeRequest.lo CC RANAP_UplinkInformationExchangeResponse.lo CC RANAP_UplinkInformationExchangeFailure.lo CC RANAP_MBMSSessionStart.lo CC RANAP_MBMSSessionStartResponse.lo CC RANAP_MBMSSessionStartFailure.lo CC RANAP_MBMSSessionUpdate.lo CC RANAP_MBMSSessionUpdateResponse.lo CC RANAP_MBMSSessionUpdateFailure.lo CC RANAP_MBMSSessionStop.lo CC RANAP_MBMSSessionStopResponse.lo CC RANAP_MBMSUELinkingRequest.lo CC RANAP_MBMSUELinkingResponse.lo CC RANAP_MBMSRegistrationRequest.lo CC RANAP_MBMSRegistrationResponse.lo CC RANAP_MBMSRegistrationFailure.lo CC RANAP_MBMSCNDe-RegistrationRequest.lo CC RANAP_MBMSCNDe-RegistrationResponse.lo CC RANAP_MBMSRABEstablishmentIndication.lo CC RANAP_MBMSRABReleaseRequest.lo CC RANAP_MBMSRABRelease.lo CC RANAP_MBMSRABReleaseFailure.lo CC RANAP_EnhancedRelocationCompleteRequest.lo CC RANAP_EnhancedRelocationCompleteResponse.lo CC RANAP_EnhancedRelocationCompleteFailure.lo /bin/bash: line 1: 21889 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.3.0.1-7a97f\" -DPACKAGE_STRING=\"osmo-iuh\ 0.3.0.1-7a97f\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-iuh\" -DVERSION=\"0.3.0.1-7a97f\" -DSTDC_HEADERS=1 -I. -fsanitize=address -fsanitize=undefined -Wall -I../../include -I -I -I -g -O2 -fsanitize=address -fsanitize=undefined -Wall -MT RANAP_MBMSRABRelease.lo -MD -MP -MF .deps/RANAP_MBMSRABRelease.Tpo -c -o RANAP_MBMSRABRelease.lo RANAP_MBMSRABRelease.c Makefile:2505: recipe for target 'RANAP_MBMSRABRelease.lo' failed make[4]: *** [RANAP_MBMSRABRelease.lo] Error 139 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory ' Makefile:641: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory ' Makefile:453: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory ' Makefile:454: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:378: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Jun 18 19:29:58 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 18 Jun 2018 19:29:58 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Use the new API to pass credentials to the event server In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/9663 ) Change subject: ms: Use the new API to pass credentials to the event server ...................................................................... Patch Set 1: > I don't really understand the purpose of this commit. You seem to > be changing code to use recvmsg to get the sender address, but then > I only see you are passing the address and doing nothing useful > with it. What this will give us: * Bi-directional communication between mobile and the testcase * By using autobind not having to pick a unique filename It's true that the test is not making use of it at all. Bi-directional communication will be needed to implement your idea of a o-fono like interface (without having to have 10k connections). > Then, you start using this new API unix_passcred, which enables > being able to send credentials over the socket (not sending them), > but I don't see any new code or changed code actually sending the > credentials. The side-effect of this socket option is the autobinding. If one commentt it out then the event_server will get 'None' as remote address. -- To view, visit https://gerrit.osmocom.org/9663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f Gerrit-Change-Number: 9663 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Jun 2018 19:29:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 18 22:02:34 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 18 Jun 2018 22:02:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-stop.sh: print colored verdict In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9675 ) Change subject: ttcn3-tcpdump-stop.sh: print colored verdict ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0d2d6171430f1eebb5377edac5e237a99ddbd743 Gerrit-Change-Number: 9675 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 18 Jun 2018 22:02:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 19 00:15:45 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 19 Jun 2018 00:15:45 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-iuh_=C2=BB_a1=3Dd?= =?UTF-8?Q?efault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1404?= In-Reply-To: <393995357.218.1529344124309.JavaMail.jenkins@jenkins.osmocom.org> References: <393995357.218.1529344124309.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <922285333.220.1529367345909.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Jun 19 08:30:00 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Jun 2018 08:30:00 +0000 Subject: Change in osmo-trx[master]: contrib: Add systemd services for all backends Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9677 Change subject: contrib: Add systemd services for all backends ...................................................................... contrib: Add systemd services for all backends Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7 --- A contrib/systemd/osmo-trx-lms.service A contrib/systemd/osmo-trx-uhd.service A contrib/systemd/osmo-trx-usrp1.service 3 files changed, 33 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/77/9677/1 diff --git a/contrib/systemd/osmo-trx-lms.service b/contrib/systemd/osmo-trx-lms.service new file mode 100644 index 0000000..df63e21 --- /dev/null +++ b/contrib/systemd/osmo-trx-lms.service @@ -0,0 +1,11 @@ +[Unit] +Description=Osmocom SDR BTS L1 Transceiver (LimeSuite backend) + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/osmo-trx-lms -C /etc/osmocom/osmo-trx-lms.cfg +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/contrib/systemd/osmo-trx-uhd.service b/contrib/systemd/osmo-trx-uhd.service new file mode 100644 index 0000000..ba27f37 --- /dev/null +++ b/contrib/systemd/osmo-trx-uhd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Osmocom SDR BTS L1 Transceiver (UHD Backend) + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/osmo-trx-uhd -C /etc/osmocom/osmo-trx-uhd.cfg +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/contrib/systemd/osmo-trx-usrp1.service b/contrib/systemd/osmo-trx-usrp1.service new file mode 100644 index 0000000..fbff631 --- /dev/null +++ b/contrib/systemd/osmo-trx-usrp1.service @@ -0,0 +1,11 @@ +[Unit] +Description=Osmocom SDR BTS L1 Transceiver (libusrp backend) + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/osmo-trx-usrp1 -C /etc/osmocom/osmo-trx-usrp1.cfg +RestartSec=2 + +[Install] +WantedBy=multi-user.target -- To view, visit https://gerrit.osmocom.org/9677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7 Gerrit-Change-Number: 9677 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 08:48:11 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Jun 2018 08:48:11 +0000 Subject: Change in osmo-trx[master]: lms: Allow values diff than 34dB to be set by setRxGain() Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9678 Change subject: lms: Allow values diff than 34dB to be set by setRxGain() ...................................................................... lms: Allow values diff than 34dB to be set by setRxGain() Until now, setRxGain in LMSDevice did not take into account the setter parameter and was always using hardcoded 34dB, which was experimentally found to be a good default value. Let's force that value during initialization, but still allow the upper layers (controlled by BTS) to set different values. osmo-bts only sends a SETRXGAIN command (which calls setRxGain in osmo-trx) if a value is explicitly set in its VTY config, so we are on the safe side if the user doesn't explicitly configure a desired dB. Change-Id: I5684e675281a3f581855dbb56d199a6fe238a712 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/78/9678/1 diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 16585e6..ffea505 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -223,7 +223,7 @@ // Set gains to midpoint setTxGain((minTxGain() + maxTxGain()) / 2, i); - setRxGain((minRxGain() + maxRxGain()) / 2, i); + setRxGain(34.0, i); m_lms_stream_rx[i] = {}; m_lms_stream_rx[i].isTx = false; @@ -327,8 +327,6 @@ return 0.0; } - dB = 34.0; - if (dB > maxRxGain()) dB = maxRxGain(); if (dB < minRxGain()) -- To view, visit https://gerrit.osmocom.org/9678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5684e675281a3f581855dbb56d199a6fe238a712 Gerrit-Change-Number: 9678 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 08:56:57 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Jun 2018 08:56:57 +0000 Subject: Change in osmo-trx[master]: contrib: Add systemd services for all backends In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9677 to look at the new patch set (#2). Change subject: contrib: Add systemd services for all backends ...................................................................... contrib: Add systemd services for all backends Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7 --- A contrib/systemd/osmo-trx-lms.service A contrib/systemd/osmo-trx-uhd.service A contrib/systemd/osmo-trx-usrp1.service A debian/osmo-trx-lms.service A debian/osmo-trx-uhd.service A debian/osmo-trx-usrp1.service 6 files changed, 36 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/77/9677/2 -- To view, visit https://gerrit.osmocom.org/9677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7 Gerrit-Change-Number: 9677 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 09:05:39 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Jun 2018 09:05:39 +0000 Subject: Change in osmo-trx[master]: debian: Add package osmo-trx-lms Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9679 Change subject: debian: Add package osmo-trx-lms ...................................................................... debian: Add package osmo-trx-lms Change-Id: I3213c66907fbf0c7e531835b4993fa1bdc89edc3 --- M debian/control A debian/osmo-trx-lms.install 2 files changed, 22 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/79/9679/1 diff --git a/debian/control b/debian/control index b7e499e..ffb9ac1 100644 --- a/debian/control +++ b/debian/control @@ -13,6 +13,7 @@ libfftw3-dev, libtalloc-dev, libusrp-dev, + liblimesuite-dev, libosmocore-dev (>= 0.10.0) Standards-Version: 3.9.6 Vcs-Browser: http://cgit.osmocom.org/osmo-trx @@ -28,7 +29,7 @@ Architecture: any Section: debug Priority: extra -Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), ${misc:Depends} +Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-lms (= ${binary:Version}), ${misc:Depends} Description: Debug symbols for the osmo-trx-* Make debugging possible @@ -69,3 +70,22 @@ 3GPP is the "3rd Generation Partnership Project" which is the collaboration between different telecommunication associations for developing new generations of mobile phone networks. (post-2G/GSM) + +Package: osmo-trx-lms +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite) + OsmoTRX is a software-defined radio transceiver that implements the Layer 1 + physical layer of a BTS comprising the following 3GPP specifications: + . + TS 05.01 "Physical layer on the radio path" + TS 05.02 "Multiplexing and Multiple Access on the Radio Path" + TS 05.04 "Modulation" + TS 05.10 "Radio subsystem synchronization" + . + In this context, BTS is "Base transceiver station". It's the stations that + connect mobile phones to the mobile network. + . + 3GPP is the "3rd Generation Partnership Project" which is the collaboration + between different telecommunication associations for developing new + generations of mobile phone networks. (post-2G/GSM) diff --git a/debian/osmo-trx-lms.install b/debian/osmo-trx-lms.install new file mode 100644 index 0000000..5937edb --- /dev/null +++ b/debian/osmo-trx-lms.install @@ -0,0 +1 @@ +/usr/bin/osmo-trx-lms -- To view, visit https://gerrit.osmocom.org/9679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3213c66907fbf0c7e531835b4993fa1bdc89edc3 Gerrit-Change-Number: 9679 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 09:32:10 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Jun 2018 09:32:10 +0000 Subject: Change in osmo-trx[master]: debian: Add cfg file examples for osmo-trx-{lms, uhd} Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9680 Change subject: debian: Add cfg file examples for osmo-trx-{lms,uhd} ...................................................................... debian: Add cfg file examples for osmo-trx-{lms,uhd} Sort cfg files according to their osmo-trx binary. Install them during make install. Add the installed cfg files to related debian packages. Change-Id: I905cdac30b441e4df0a3f5c0924d1637b9f67b90 --- M Makefile.am M configure.ac M debian/osmo-trx-lms.install M debian/osmo-trx-uhd.install A doc/Makefile.am A doc/examples/Makefile.am R doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg C doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg R doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg R doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg 10 files changed, 32 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/80/9680/1 diff --git a/Makefile.am b/Makefile.am index 71f7b91..8ab73a6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,6 +28,7 @@ # Order must be preserved SUBDIRS = \ + doc \ CommonLibs \ GSM \ Transceiver52M \ diff --git a/configure.ac b/configure.ac index aae151b..974a611 100644 --- a/configure.ac +++ b/configure.ac @@ -225,6 +225,8 @@ tests/Makefile \ tests/CommonLibs/Makefile \ tests/Transceiver52M/Makefile \ + doc/Makefile \ + doc/examples/Makefile \ ]) AC_OUTPUT diff --git a/debian/osmo-trx-lms.install b/debian/osmo-trx-lms.install index 5937edb..e8bb867 100644 --- a/debian/osmo-trx-lms.install +++ b/debian/osmo-trx-lms.install @@ -1 +1,2 @@ /usr/bin/osmo-trx-lms +/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-lms/examples diff --git a/debian/osmo-trx-uhd.install b/debian/osmo-trx-uhd.install index 0005b76..2db0142 100644 --- a/debian/osmo-trx-uhd.install +++ b/debian/osmo-trx-uhd.install @@ -1 +1,4 @@ /usr/bin/osmo-trx-uhd +/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg /usr/share/doc/osmo-trx-uhd/examples +/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-uhd/examples +/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg /usr/share/doc/osmo-trx-uhd/examples diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..1d42b0a --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = \ + examples \ + $(NULL) diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am new file mode 100644 index 0000000..530c3fa --- /dev/null +++ b/doc/examples/Makefile.am @@ -0,0 +1,22 @@ +CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,' + +dist-hook: + for f in $$($(CFG_FILES)); do \ + j="$(distdir)/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +install-data-hook: + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +uninstall-hook: + @$(PRE_UNINSTALL) + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + $(RM) $$j; \ + done diff --git a/doc/examples/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg similarity index 100% rename from doc/examples/osmo-trx-limesdr.cfg rename to doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg diff --git a/doc/examples/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg similarity index 100% copy from doc/examples/osmo-trx-limesdr.cfg copy to doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg diff --git a/doc/examples/osmo-trx-umtrx.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg similarity index 100% rename from doc/examples/osmo-trx-umtrx.cfg rename to doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg diff --git a/doc/examples/osmo-trx-usrp_b200.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg similarity index 100% rename from doc/examples/osmo-trx-usrp_b200.cfg rename to doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg -- To view, visit https://gerrit.osmocom.org/9680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I905cdac30b441e4df0a3f5c0924d1637b9f67b90 Gerrit-Change-Number: 9680 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 19 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 19 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#159?= In-Reply-To: <26252815.217.1529334606344.JavaMail.jenkins@jenkins.osmocom.org> References: <26252815.217.1529334606344.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <763527843.233.1529421006657.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.67 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Jun 19 15:21:05 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Jun 2018 15:21:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/SS_Templates.ttcn: add empty Return Result template Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9681 Change subject: library/SS_Templates.ttcn: add empty Return Result template ...................................................................... library/SS_Templates.ttcn: add empty Return Result template According to GSM TS 04.80, table 3.4, the Return Result component may be empty, i.e. may not contain any results nor operation code. It is used, for example, in responce to the network-originated USSD notification. Change-Id: Iaaff110c5f61cc87eda6143cd841f9832f6074bf --- M library/SS_Templates.ttcn 1 file changed, 21 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/81/9681/1 diff --git a/library/SS_Templates.ttcn b/library/SS_Templates.ttcn index 316b71b..1129108 100644 --- a/library/SS_Templates.ttcn +++ b/library/SS_Templates.ttcn @@ -169,6 +169,27 @@ } } +template (value) SS_FacilityInformation ts_SS_USSD_FACILITY_RETURN_RESULT_EMPTY( + integer invoke_id := 1 +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := omit + } + } +} +template SS_FacilityInformation tr_SS_USSD_FACILITY_RETURN_RESULT_EMPTY( + template integer invoke_id := ? +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := omit + } + } +} + /* Common for both structured and unstructured SS */ template (value) SS_FacilityInformation ts_SS_FACILITY_RETURN_ERROR( integer invoke_id := 1, -- To view, visit https://gerrit.osmocom.org/9681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iaaff110c5f61cc87eda6143cd841f9832f6074bf Gerrit-Change-Number: 9681 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 15:21:05 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Jun 2018 15:21:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/L3_Templates.ttcn: fix f_facility_or_wc(omit) Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9682 Change subject: library/L3_Templates.ttcn: fix f_facility_or_wc(omit) ...................................................................... library/L3_Templates.ttcn: fix f_facility_or_wc(omit) According to GSM TS 04.80, table 2.5, the Facility IE is optional for RELEASE COMPLETE message. So, if this IE is omitted, then the whole TVL shall be omitted. It's time to fix this. Change-Id: I216195ef71c95997708dad8c31b172b6f6cdc461 --- M library/L3_Templates.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/82/9682/1 diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index d0f1406..9d6d3c3 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -1332,6 +1332,8 @@ return *; } else if (istemplatekind(facility, "?")) { return ?; + } else if (istemplatekind(facility, "omit")) { + return omit; } else { return tr_FacTLV(facility); } -- To view, visit https://gerrit.osmocom.org/9682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I216195ef71c95997708dad8c31b172b6f6cdc461 Gerrit-Change-Number: 9682 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 15:21:05 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Jun 2018 15:21:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9683 Change subject: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case ...................................................................... msc/USSD: drop the TC_lu_and_ussd_wrong_code test case As we are about to finish the implementation of GSM TS 09.11, in our case it is 'SS/USSD over GSUP', OsmoMSC will not decide itself which USSD request-code is known, and which is wrong. Change-Id: Ic104a49bb2dce2127063bcef8443ee6b639c9f19 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 0 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/83/9683/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 3316563..ce95ff5 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2163,59 +2163,6 @@ vc_conn.done; } -private function f_tc_lu_and_ussd_wrong_code(charstring id, BSC_ConnHdlrPars pars) -runs on BSC_ConnHdlr { - f_init_handler(pars); - - /* Perform location update */ - f_perform_lu(); - - /* Send CM Service Request for SS/USSD */ - f_establish_fully(EST_TYPE_SS_ACT); - - /* Compose a new SS/REGISTER message with request */ - var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( - tid := 1, /* We just need a single transaction */ - ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ - facility := f_USSD_FACILITY_IE_INVOKE( - invoke_id := 5, /* Phone may not start from 0 or 1 */ - op_code := SS_OP_CODE_PROCESS_USS_REQ, - ussd_string := "*#999#" - ) - ); - - /* Compose SS/RELEASE_COMPLETE template with expected response */ - var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( - tid := 1, /* Response should arrive within the same transaction */ - ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ - facility := f_USSD_FACILITY_IE_RETURN_ERROR( - invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */ - err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE - ) - ); - - /* Request own number request */ - BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); - alt { - /* We expect RELEASE_COMPLETE message with the response */ - [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { - setverdict(pass); - } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - self.stop; - } - } - - f_expect_clear(); -} -testcase TC_lu_and_ussd_wrong_code() runs on MTC_CT { - var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_wrong_code), 47); - vc_conn.done; -} - /* LU followed by MT call and USSD request during this call */ private function f_tc_lu_and_ussd_during_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { @@ -2365,7 +2312,6 @@ execute( TC_smpp_mt_sms() ); execute( TC_lu_and_ussd_single_req() ); - execute( TC_lu_and_ussd_wrong_code() ); execute( TC_lu_and_ussd_during_call() ); /* Run this last: at the time of writing this test crashes the MSC */ diff --git a/msc/expected-results.xml b/msc/expected-results.xml index ba40519..8beab26 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -72,6 +72,5 @@ -
-- To view, visit https://gerrit.osmocom.org/9683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic104a49bb2dce2127063bcef8443ee6b639c9f19 Gerrit-Change-Number: 9683 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 15:21:06 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Jun 2018 15:21:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: use more informative names for test cases Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9684 Change subject: msc/USSD: use more informative names for test cases ...................................................................... msc/USSD: use more informative names for test cases Let's explicitly indicate is a SS/USSD message MO or MT. Change-Id: I87f16f935f015dbd2ac2867d8ea5e155cc365e3f --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 12 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/84/9684/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index ce95ff5..dc5303e 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2109,7 +2109,8 @@ * USSD Testing ***********************************************************************/ -private function f_tc_lu_and_ussd_single_req(charstring id, BSC_ConnHdlrPars pars) +/* LU followed by MO USSD request */ +private function f_tc_lu_and_mo_ussd_single_request(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { f_init_handler(pars); @@ -2156,15 +2157,15 @@ f_expect_clear(); } -testcase TC_lu_and_ussd_single_req() runs on MTC_CT { +testcase TC_lu_and_mo_ussd_single_request() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_single_req), 46); + vc_conn := f_start_handler(refers(f_tc_lu_and_mo_ussd_single_request), 46); vc_conn.done; } -/* LU followed by MT call and USSD request during this call */ -private function f_tc_lu_and_ussd_during_call(charstring id, BSC_ConnHdlrPars pars) +/* LU followed by MT call and MO USSD request during this call */ +private function f_tc_lu_and_mo_ussd_during_mt_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { f_init_handler(pars); @@ -2223,10 +2224,10 @@ /* Release the call (does Clear Complete itself) */ f_call_hangup(cpars, true); } -testcase TC_lu_and_ussd_during_call() runs on MTC_CT { +testcase TC_lu_and_mo_ussd_during_mt_call() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_during_call), 48); + vc_conn := f_start_handler(refers(f_tc_lu_and_mo_ussd_during_mt_call), 48); vc_conn.done; } @@ -2311,8 +2312,8 @@ execute( TC_smpp_mo_sms() ); execute( TC_smpp_mt_sms() ); - execute( TC_lu_and_ussd_single_req() ); - execute( TC_lu_and_ussd_during_call() ); + execute( TC_lu_and_mo_ussd_single_request() ); + execute( TC_lu_and_mo_ussd_during_mt_call() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 8beab26..9595f17 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -71,6 +71,6 @@ - - + +
-- To view, visit https://gerrit.osmocom.org/9684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I87f16f935f015dbd2ac2867d8ea5e155cc365e3f Gerrit-Change-Number: 9684 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 15:21:06 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Jun 2018 15:21:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: expect and reply SS/USSD messages over GSUP Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9685 Change subject: msc/USSD: expect and reply SS/USSD messages over GSUP ...................................................................... msc/USSD: expect and reply SS/USSD messages over GSUP As we are about to finish the implementation of GSM TS 09.11, OsmoMSC will forward all SS/USSD messages over GSUP to HLR, and will expect responses back from HLR. The SS/USSD payload processing will be out of scope for OsmoMSC itself. Let's modify the existing test cases in order to expect and reply SS/USSD messages over GSUP protocol. Change-Id: I01de73aced6057328a121577a5a83bc2615fb2d4 --- M msc/MSC_Tests.ttcn 1 file changed, 105 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/9685/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index dc5303e..1af77cd 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2120,31 +2120,71 @@ /* Send CM Service Request for SS/USSD */ f_establish_fully(EST_TYPE_SS_ACT); + /* We need to inspect GSUP activity */ + f_create_gsup_expect(hex2str(g_pars.imsi)); + + var template OCTN facility_req := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 5, /* Phone may not start from 0 or 1 */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "*#100#" + ); + + var template OCTN facility_rsp := f_USSD_FACILITY_IE_RETURN_RESULT( + invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "Your extension is " & hex2str(g_pars.msisdn) & "\r" + ) + /* Compose a new SS/REGISTER message with request */ var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( tid := 1, /* We just need a single transaction */ ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ - facility := f_USSD_FACILITY_IE_INVOKE( - invoke_id := 5, /* Phone may not start from 0 or 1 */ - op_code := SS_OP_CODE_PROCESS_USS_REQ, - ussd_string := "*#100#" - ) + facility := valueof(facility_req) ); /* Compose SS/RELEASE_COMPLETE template with expected response */ var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( tid := 1, /* Response should arrive within the same transaction */ ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ - facility := f_USSD_FACILITY_IE_RETURN_RESULT( - invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */ - op_code := SS_OP_CODE_PROCESS_USS_REQ, - ussd_string := "Your extension is " & hex2str(g_pars.msisdn) & "\r" - ) + facility := valueof(facility_rsp) ); - /* Request own number request */ + /* Compose expected MSC -> HLR message */ + var template GSUP_PDU gsup_req := tr_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + state := OSMO_GSUP_SESSION_STATE_BEGIN, + ss := valueof(facility_req) + ); + + /* To be used for sending response with correct session ID */ + var GSUP_PDU gsup_req_complete; + + /* Request own number request, wait for GSUP-request */ BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); alt { + [] GSUP.receive(gsup_req) -> value gsup_req_complete { + setverdict(pass); + } + [] GSUP.receive { + setverdict(fail, "Unknown/unexpected GSUP received"); + self.stop; + } + [] BSSAP.receive { + setverdict(fail, "Unexpected BSSAP message received"); + self.stop; + } + } + + /* Compose the response from HLR using received session ID */ + var template GSUP_PDU gsup_rsp := ts_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + sid := gsup_req_complete.ies[1].val.session_id, + state := OSMO_GSUP_SESSION_STATE_END, + ss := valueof(facility_rsp) + ); + + GSUP.send(gsup_rsp); + alt { /* We expect RELEASE_COMPLETE message with the response */ [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { setverdict(pass); @@ -2153,6 +2193,10 @@ setverdict(fail, "Unknown/unexpected BSSAP received"); self.stop; } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } } f_expect_clear(); @@ -2185,29 +2229,66 @@ /* Hold the call for some time */ f_sleep(1.0); + var template OCTN facility_req := f_USSD_FACILITY_IE_INVOKE( + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "*#100#" + ); + + var template OCTN facility_rsp := f_USSD_FACILITY_IE_RETURN_RESULT( + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "Your extension is " & hex2str(g_pars.msisdn) & "\r" + ) + /* Compose a new SS/REGISTER message with request */ var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( tid := 1, /* We just need a single transaction */ ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ - facility := f_USSD_FACILITY_IE_INVOKE( - op_code := SS_OP_CODE_PROCESS_USS_REQ, - ussd_string := "*#100#" - ) + facility := valueof(facility_req) ); /* Compose SS/RELEASE_COMPLETE template with expected response */ var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( tid := 1, /* Response should arrive within the same transaction */ ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ - facility := f_USSD_FACILITY_IE_RETURN_RESULT( - op_code := SS_OP_CODE_PROCESS_USS_REQ, - ussd_string := "Your extension is " & hex2str(g_pars.msisdn) & "\r" - ) + facility := valueof(facility_rsp) ); - /* Request own number request */ + /* Compose expected MSC -> HLR message */ + var template GSUP_PDU gsup_req := tr_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + state := OSMO_GSUP_SESSION_STATE_BEGIN, + ss := valueof(facility_req) + ); + + /* To be used for sending response with correct session ID */ + var GSUP_PDU gsup_req_complete; + + /* Request own number request, wait for GSUP-request */ BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); alt { + [] GSUP.receive(gsup_req) -> value gsup_req_complete { + setverdict(pass); + } + [] GSUP.receive { + setverdict(fail, "Unknown/unexpected GSUP received"); + self.stop; + } + [] BSSAP.receive { + setverdict(fail, "Unexpected BSSAP message received"); + self.stop; + } + } + + /* Compose the response from HLR using received session ID */ + var template GSUP_PDU gsup_rsp := ts_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + sid := gsup_req_complete.ies[1].val.session_id, + state := OSMO_GSUP_SESSION_STATE_END, + ss := valueof(facility_rsp) + ); + + GSUP.send(gsup_rsp); + alt { /* We expect RELEASE_COMPLETE message with the response */ [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { setverdict(pass); @@ -2216,6 +2297,10 @@ setverdict(fail, "Unknown/unexpected BSSAP received"); self.stop; } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } } /* Hold the call for some time */ -- To view, visit https://gerrit.osmocom.org/9685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I01de73aced6057328a121577a5a83bc2615fb2d4 Gerrit-Change-Number: 9685 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 19 15:21:07 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Jun 2018 15:21:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add test cases with network-initiaded SS/USSD Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9686 Change subject: msc/USSD: add test cases with network-initiaded SS/USSD ...................................................................... msc/USSD: add test cases with network-initiaded SS/USSD This change introduces two new test cases for network-initiaded USSD notification and network-initiaded USSD request, which are based on the existing SS/USSD related test cases. The idea of TC_lu_and_mt_ussd_notification is to verify that a network-initiaded USSD notification can arrive subscriber in IDLE mode using Paging procedure. The idea of TC_lu_and_mt_ussd_during_mt_call is to verify that a network-initiaded USSD notification can arrive subscriber in DEDICATED mode (in this case during a call) on a separate transaction. Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 299 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/9686/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 1af77cd..7cb272d 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2208,6 +2208,156 @@ vc_conn.done; } +/* LU followed by MT USSD notification */ +private function f_tc_lu_and_mt_ussd_notification(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Perform location update */ + f_perform_lu(); + + f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi); + + /* We need to inspect GSUP activity */ + f_create_gsup_expect(hex2str(g_pars.imsi)); + + /* Facility IE with network-originated USSD notification */ + var template OCTN facility_req := f_USSD_FACILITY_IE_INVOKE( + op_code := SS_OP_CODE_USS_NOTIFY, + ussd_string := "Mahlzeit!" + ); + + /* Facility IE with acknowledgment to the USSD notification */ + var template OCTN facility_rsp := enc_SS_FacilityInformation( + /* In case of USSD notification, Return Result is empty */ + valueof(ts_SS_USSD_FACILITY_RETURN_RESULT_EMPTY()) + ); + + /* Compose a new MT SS/REGISTER message with USSD notification */ + var template PDU_ML3_NW_MS ussd_ntf := tr_ML3_MT_SS_REGISTER( + tid := 0, /* FIXME: most likely, it should be 0 */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := valueof(facility_req) + ); + + /* Compose HLR -> MSC GSUP message */ + var template (value) GSUP_PDU gsup_req := ts_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + sid := '20000101'O, + state := OSMO_GSUP_SESSION_STATE_BEGIN, + ss := valueof(facility_req) + ); + + /* Send it to MSC and expect Paging Request */ + GSUP.send(gsup_req); + alt { + [] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } + } + + /* Send Paging Response and expect USSD notification */ + f_establish_fully(EST_TYPE_PAG_RESP); + alt { + /* We expect MT REGISTER message with USSD notification */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_ntf)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } + } + + /* Compose a new MO SS/FACILITY message with empty response */ + var template (value) PDU_ML3_MS_NW ussd_rsp := ts_ML3_MO_SS_FACILITY( + tid := 0, /* FIXME: it shall match the request tid */ + ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ + facility := valueof(facility_rsp) + ); + + /* Compose expected MSC -> HLR GSUP message */ + var template GSUP_PDU gsup_rsp := tr_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + sid := '20000101'O, + state := OSMO_GSUP_SESSION_STATE_CONTINUE, + ss := valueof(facility_rsp) + ); + + /* MS sends response to the notification */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_rsp)); + alt { + [] GSUP.receive(gsup_rsp) { + setverdict(pass); + } + [] GSUP.receive { + setverdict(fail, "Unknown/unexpected GSUP received"); + self.stop; + } + [] BSSAP.receive { + setverdict(fail, "Unexpected BSSAP message received"); + self.stop; + } + } + + /* Compose expected MT SS/RELEASE COMPLETE message */ + var template PDU_ML3_NW_MS ussd_term := tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := 0, /* FIXME: it shall match the request tid */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := omit + ); + + /** + * Compose HLR -> MSC GSUP message + * FIXME: correct template in order to make SS payload optional + */ + var template (value) GSUP_PDU gsup_term := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + valueof(ts_GSUP_IE_IMSI(g_pars.imsi)), + valueof(ts_GSUP_IE_SessionId('20000101'O)), + valueof(ts_GSUP_IE_SessionState(OSMO_GSUP_SESSION_STATE_END)) + } + ); + + /* Finally, HLR terminates the session */ + GSUP.send(gsup_term) + alt { + /* We expect MT RELEASE COMPLETE */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_term)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received???"); + self.stop; + } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } + } + + f_expect_clear(); +} +testcase TC_lu_and_mt_ussd_notification() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_mt_ussd_notification), 47); + vc_conn.done; +} + /* LU followed by MT call and MO USSD request during this call */ private function f_tc_lu_and_mo_ussd_during_mt_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { @@ -2316,6 +2466,151 @@ vc_conn.done; } +/* LU followed by MT call and MT USSD request during this call */ +private function f_tc_lu_and_mt_ussd_during_mt_call(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Call parameters taken from f_tc_lu_and_mt_call */ + var CallParameters cpars := valueof(t_CallParams('123456'H, 0)); + cpars.mgcp_connection_id_bss := '10004'H; + cpars.mgcp_connection_id_mss := '10005'H; + cpars.mgcp_ep := "rtpbridge/1 at mgw"; + cpars.bss_rtp_port := 1110; + + /* Perform location update */ + f_perform_lu(); + + /* Establish a MT call */ + f_mt_call_establish(cpars); + + /* Hold the call for some time */ + f_sleep(1.0); + + var template OCTN facility_req := f_USSD_FACILITY_IE_INVOKE( + op_code := SS_OP_CODE_USS_REQUEST, + ussd_string := "Please type anything..." + ); + + var template OCTN facility_rsp := f_USSD_FACILITY_IE_RETURN_RESULT( + op_code := SS_OP_CODE_USS_REQUEST, + ussd_string := "Nope." + ) + + /* Compose MT SS/REGISTER message with network-originated request */ + var template (value) PDU_ML3_NW_MS ussd_req := ts_ML3_MT_SS_REGISTER( + tid := 0, /* FIXME: most likely, it should be 0 */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := valueof(facility_req) + ); + + /* Compose HLR -> MSC GSUP message */ + var template (value) GSUP_PDU gsup_req := ts_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + sid := '20000101'O, + state := OSMO_GSUP_SESSION_STATE_BEGIN, + ss := valueof(facility_req) + ); + + /* Send it to MSC */ + GSUP.send(gsup_req); + alt { + /* We expect MT REGISTER message with USSD request */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_req)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } + } + + /* Compose a new MO SS/FACILITY message with response */ + var template (value) PDU_ML3_MS_NW ussd_rsp := ts_ML3_MO_SS_FACILITY( + tid := 0, /* FIXME: it shall match the request tid */ + ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ + facility := valueof(facility_rsp) + ); + + /* Compose expected MSC -> HLR GSUP message */ + var template GSUP_PDU gsup_rsp := tr_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + sid := '20000101'O, + state := OSMO_GSUP_SESSION_STATE_CONTINUE, + ss := valueof(facility_rsp) + ); + + /* MS sends response */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_rsp)); + alt { + [] GSUP.receive(gsup_rsp) { + setverdict(pass); + } + [] GSUP.receive { + setverdict(fail, "Unknown/unexpected GSUP received"); + log(valueof(ussd_rsp)); + self.stop; + } + [] BSSAP.receive { + setverdict(fail, "Unexpected BSSAP message received"); + self.stop; + } + } + + /* Compose expected MT SS/RELEASE COMPLETE message */ + var template PDU_ML3_NW_MS ussd_term := tr_ML3_MT_SS_RELEASE_COMPLETE( + tid := 0, /* FIXME: it shall match the request tid */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := omit + ); + + /** + * Compose HLR -> MSC GSUP message + * FIXME: correct template in order to make SS payload optional + */ + var template (value) GSUP_PDU gsup_term := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + valueof(ts_GSUP_IE_IMSI(g_pars.imsi)), + valueof(ts_GSUP_IE_SessionId('20000101'O)), + valueof(ts_GSUP_IE_SessionState(OSMO_GSUP_SESSION_STATE_END)) + } + ); + + /* Finally, HLR terminates the session */ + GSUP.send(gsup_term) + alt { + /* We expect MT RELEASE COMPLETE */ + [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_term)) { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received???"); + self.stop; + } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } + } + + /* Hold the call for some time */ + f_sleep(1.0); + + /* Release the call (does Clear Complete itself) */ + f_call_hangup(cpars, true); +} +testcase TC_lu_and_mt_ussd_during_mt_call() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_mt_ussd_during_mt_call), 49); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2398,7 +2693,9 @@ execute( TC_smpp_mt_sms() ); execute( TC_lu_and_mo_ussd_single_request() ); + execute( TC_lu_and_mt_ussd_notification() ); execute( TC_lu_and_mo_ussd_during_mt_call() ); + execute( TC_lu_and_mt_ussd_during_mt_call() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 9595f17..198b9bd 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -72,5 +72,7 @@ + + -- To view, visit https://gerrit.osmocom.org/9686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 Gerrit-Change-Number: 9686 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 03:02:32 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 20 Jun 2018 03:02:32 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9666 to look at the new patch set (#3). Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/neighbor_ident.h M src/osmo-bsc/Makefile.am M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/neighbor_ident.c A src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/system_information.c M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am A tests/handover/neighbor_ident_test.c A tests/handover/neighbor_ident_test.err A tests/handover/neighbor_ident_test.ok A tests/neighbor_ident.vty M tests/testsuite.at 21 files changed, 1,960 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/9666/3 -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 03:02:32 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 20 Jun 2018 03:02:32 +0000 Subject: Change in osmo-bsc[master]: doc: update/fix FSM charts In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9667 to look at the new patch set (#3). Change subject: doc: update/fix FSM charts ...................................................................... doc: update/fix FSM charts Change-Id: I29e31b753e23a4207662e0e385a337e7df836f45 --- M doc/Makefile.am A doc/assignment-fsm.dot M doc/assignment.msc A doc/handover-inter-bsc-mo-fsm.dot A doc/handover-inter-bsc-mt-fsm.dot M doc/handover-inter-bsc-mt.msc A doc/handover-intra-bsc-fsm.dot M doc/handover.msc M doc/lchan-fsm.dot M doc/lchan-release.msc M doc/lchan.msc A doc/mgw-endpoint-fsm.dot M doc/ms-channel-request.msc M doc/ts-and-lchan-fsm-lifecycle.msc 14 files changed, 194 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/9667/3 -- To view, visit https://gerrit.osmocom.org/9667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I29e31b753e23a4207662e0e385a337e7df836f45 Gerrit-Change-Number: 9667 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 03:02:32 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 20 Jun 2018 03:02:32 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#6). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/ipaccess/Makefile.am M src/ipaccess/stubs.c M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c M src/utils/Makefile.am M src/utils/bs11_config.c M src/utils/meas_json.c D src/utils/stubs.c M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.c 70 files changed, 8,243 insertions(+), 4,830 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/6 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 03:04:57 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 20 Jun 2018 03:04:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9674 to look at the new patch set (#4). Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 --- M bsc/BSC_Tests.ttcn M bsc/osmo-bsc.cfg M library/BSSMAP_Templates.ttcn M library/L3_Templates.ttcn 4 files changed, 320 insertions(+), 36 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/74/9674/4 -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 03:06:35 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 20 Jun 2018 03:06:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9674 ) Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn at 2668 PS1, Line 2668: execute( TC_oml_unknown_unit_id() ); > template (value) and BSSMAP_Templates. [?] I can't get this to compile as a "template (value)", with or without 'template' arguments, with or without valueof()... https://gerrit.osmocom.org/#/c/9674/4/library/BSSMAP_Templates.ttcn File library/BSSMAP_Templates.ttcn: https://gerrit.osmocom.org/#/c/9674/4/library/BSSMAP_Templates.ttcn at 702 PS4, Line 702: template PDU_BSSAP ts_BSSMAP_HandoverRequest( ...so I dropped this (value) again. I'm probably fixing it the wrong way, am I?? -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 20 Jun 2018 03:06:35 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:32:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:32:59 +0000 Subject: Change in osmo-trx[master]: debian: Add package osmo-trx-lms In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9679 ) Change subject: debian: Add package osmo-trx-lms ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3213c66907fbf0c7e531835b4993fa1bdc89edc3 Gerrit-Change-Number: 9679 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:32:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:33:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:33:17 +0000 Subject: Change in osmo-trx[master]: contrib: Add systemd services for all backends In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9677 ) Change subject: contrib: Add systemd services for all backends ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7 Gerrit-Change-Number: 9677 Gerrit-PatchSet: 3 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:33:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:33:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:33:47 +0000 Subject: Change in osmo-trx[master]: debian: Add cfg file examples for osmo-trx-{lms, uhd} In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9680 ) Change subject: debian: Add cfg file examples for osmo-trx-{lms,uhd} ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I905cdac30b441e4df0a3f5c0924d1637b9f67b90 Gerrit-Change-Number: 9680 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:33:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:33:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:33:49 +0000 Subject: Change in osmo-trx[master]: debian: Add package osmo-trx-lms In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9679 ) Change subject: debian: Add package osmo-trx-lms ...................................................................... debian: Add package osmo-trx-lms Change-Id: I3213c66907fbf0c7e531835b4993fa1bdc89edc3 --- M debian/control A debian/osmo-trx-lms.install 2 files changed, 22 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/debian/control b/debian/control index b7e499e..ffb9ac1 100644 --- a/debian/control +++ b/debian/control @@ -13,6 +13,7 @@ libfftw3-dev, libtalloc-dev, libusrp-dev, + liblimesuite-dev, libosmocore-dev (>= 0.10.0) Standards-Version: 3.9.6 Vcs-Browser: http://cgit.osmocom.org/osmo-trx @@ -28,7 +29,7 @@ Architecture: any Section: debug Priority: extra -Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), ${misc:Depends} +Depends: osmo-trx-uhd (= ${binary:Version}), osmo-trx-usrp1 (= ${binary:Version}), osmo-trx-lms (= ${binary:Version}), ${misc:Depends} Description: Debug symbols for the osmo-trx-* Make debugging possible @@ -69,3 +70,22 @@ 3GPP is the "3rd Generation Partnership Project" which is the collaboration between different telecommunication associations for developing new generations of mobile phone networks. (post-2G/GSM) + +Package: osmo-trx-lms +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: SDR transceiver that implements Layer 1 of a GSM BTS (LimeSuite) + OsmoTRX is a software-defined radio transceiver that implements the Layer 1 + physical layer of a BTS comprising the following 3GPP specifications: + . + TS 05.01 "Physical layer on the radio path" + TS 05.02 "Multiplexing and Multiple Access on the Radio Path" + TS 05.04 "Modulation" + TS 05.10 "Radio subsystem synchronization" + . + In this context, BTS is "Base transceiver station". It's the stations that + connect mobile phones to the mobile network. + . + 3GPP is the "3rd Generation Partnership Project" which is the collaboration + between different telecommunication associations for developing new + generations of mobile phone networks. (post-2G/GSM) diff --git a/debian/osmo-trx-lms.install b/debian/osmo-trx-lms.install new file mode 100644 index 0000000..5937edb --- /dev/null +++ b/debian/osmo-trx-lms.install @@ -0,0 +1 @@ +/usr/bin/osmo-trx-lms -- To view, visit https://gerrit.osmocom.org/9679 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3213c66907fbf0c7e531835b4993fa1bdc89edc3 Gerrit-Change-Number: 9679 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:33:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:33:49 +0000 Subject: Change in osmo-trx[master]: contrib: Add systemd services for all backends In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9677 ) Change subject: contrib: Add systemd services for all backends ...................................................................... contrib: Add systemd services for all backends Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7 --- A contrib/systemd/osmo-trx-lms.service A contrib/systemd/osmo-trx-uhd.service A contrib/systemd/osmo-trx-usrp1.service A debian/osmo-trx-lms.service A debian/osmo-trx-uhd.service A debian/osmo-trx-usrp1.service 6 files changed, 36 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/contrib/systemd/osmo-trx-lms.service b/contrib/systemd/osmo-trx-lms.service new file mode 100644 index 0000000..df63e21 --- /dev/null +++ b/contrib/systemd/osmo-trx-lms.service @@ -0,0 +1,11 @@ +[Unit] +Description=Osmocom SDR BTS L1 Transceiver (LimeSuite backend) + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/osmo-trx-lms -C /etc/osmocom/osmo-trx-lms.cfg +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/contrib/systemd/osmo-trx-uhd.service b/contrib/systemd/osmo-trx-uhd.service new file mode 100644 index 0000000..ba27f37 --- /dev/null +++ b/contrib/systemd/osmo-trx-uhd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Osmocom SDR BTS L1 Transceiver (UHD Backend) + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/osmo-trx-uhd -C /etc/osmocom/osmo-trx-uhd.cfg +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/contrib/systemd/osmo-trx-usrp1.service b/contrib/systemd/osmo-trx-usrp1.service new file mode 100644 index 0000000..fbff631 --- /dev/null +++ b/contrib/systemd/osmo-trx-usrp1.service @@ -0,0 +1,11 @@ +[Unit] +Description=Osmocom SDR BTS L1 Transceiver (libusrp backend) + +[Service] +Type=simple +Restart=always +ExecStart=/usr/bin/osmo-trx-usrp1 -C /etc/osmocom/osmo-trx-usrp1.cfg +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/debian/osmo-trx-lms.service b/debian/osmo-trx-lms.service new file mode 120000 index 0000000..d2d697a --- /dev/null +++ b/debian/osmo-trx-lms.service @@ -0,0 +1 @@ +../contrib/systemd/osmo-trx-lms.service \ No newline at end of file diff --git a/debian/osmo-trx-uhd.service b/debian/osmo-trx-uhd.service new file mode 120000 index 0000000..c67648f --- /dev/null +++ b/debian/osmo-trx-uhd.service @@ -0,0 +1 @@ +../contrib/systemd/osmo-trx-uhd.service \ No newline at end of file diff --git a/debian/osmo-trx-usrp1.service b/debian/osmo-trx-usrp1.service new file mode 120000 index 0000000..a7b33ad --- /dev/null +++ b/debian/osmo-trx-usrp1.service @@ -0,0 +1 @@ +../contrib/systemd/osmo-trx-usrp1.service \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/9677 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I38a7ff7b9dafc3d6aa0426777036e3d7666045a7 Gerrit-Change-Number: 9677 Gerrit-PatchSet: 3 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:33:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:33:50 +0000 Subject: Change in osmo-trx[master]: debian: Add cfg file examples for osmo-trx-{lms, uhd} In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9680 ) Change subject: debian: Add cfg file examples for osmo-trx-{lms,uhd} ...................................................................... debian: Add cfg file examples for osmo-trx-{lms,uhd} Sort cfg files according to their osmo-trx binary. Install them during make install. Add the installed cfg files to related debian packages. Change-Id: I905cdac30b441e4df0a3f5c0924d1637b9f67b90 --- M Makefile.am M configure.ac M debian/osmo-trx-lms.install M debian/osmo-trx-uhd.install A doc/Makefile.am A doc/examples/Makefile.am R doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg C doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg R doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg R doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg 10 files changed, 32 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/Makefile.am b/Makefile.am index 71f7b91..8ab73a6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -28,6 +28,7 @@ # Order must be preserved SUBDIRS = \ + doc \ CommonLibs \ GSM \ Transceiver52M \ diff --git a/configure.ac b/configure.ac index aae151b..974a611 100644 --- a/configure.ac +++ b/configure.ac @@ -225,6 +225,8 @@ tests/Makefile \ tests/CommonLibs/Makefile \ tests/Transceiver52M/Makefile \ + doc/Makefile \ + doc/examples/Makefile \ ]) AC_OUTPUT diff --git a/debian/osmo-trx-lms.install b/debian/osmo-trx-lms.install index 5937edb..e8bb867 100644 --- a/debian/osmo-trx-lms.install +++ b/debian/osmo-trx-lms.install @@ -1 +1,2 @@ /usr/bin/osmo-trx-lms +/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-lms/examples diff --git a/debian/osmo-trx-uhd.install b/debian/osmo-trx-uhd.install index 0005b76..2db0142 100644 --- a/debian/osmo-trx-uhd.install +++ b/debian/osmo-trx-uhd.install @@ -1 +1,4 @@ /usr/bin/osmo-trx-uhd +/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg /usr/share/doc/osmo-trx-uhd/examples +/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-uhd/examples +/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg /usr/share/doc/osmo-trx-uhd/examples diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..1d42b0a --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = \ + examples \ + $(NULL) diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am new file mode 100644 index 0000000..530c3fa --- /dev/null +++ b/doc/examples/Makefile.am @@ -0,0 +1,22 @@ +CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,' + +dist-hook: + for f in $$($(CFG_FILES)); do \ + j="$(distdir)/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +install-data-hook: + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + mkdir -p "$$(dirname $$j)" && \ + $(INSTALL_DATA) $(srcdir)/$$f $$j; \ + done + +uninstall-hook: + @$(PRE_UNINSTALL) + for f in $$($(CFG_FILES)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + $(RM) $$j; \ + done diff --git a/doc/examples/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg similarity index 100% rename from doc/examples/osmo-trx-limesdr.cfg rename to doc/examples/osmo-trx-lms/osmo-trx-limesdr.cfg diff --git a/doc/examples/osmo-trx-limesdr.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg similarity index 100% copy from doc/examples/osmo-trx-limesdr.cfg copy to doc/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg diff --git a/doc/examples/osmo-trx-umtrx.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg similarity index 100% rename from doc/examples/osmo-trx-umtrx.cfg rename to doc/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg diff --git a/doc/examples/osmo-trx-usrp_b200.cfg b/doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg similarity index 100% rename from doc/examples/osmo-trx-usrp_b200.cfg rename to doc/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg -- To view, visit https://gerrit.osmocom.org/9680 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I905cdac30b441e4df0a3f5c0924d1637b9f67b90 Gerrit-Change-Number: 9680 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:33:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:33:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-stop.sh: print colored verdict In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9675 ) Change subject: ttcn3-tcpdump-stop.sh: print colored verdict ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0d2d6171430f1eebb5377edac5e237a99ddbd743 Gerrit-Change-Number: 9675 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Jun 2018 07:33:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:38:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:38:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9674 ) Change subject: bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn File bsc/BSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9674/1/bsc/BSC_Tests.ttcn at 2668 PS1, Line 2668: template PDU_BSSAP ts_BSSMAP_HandoverRequest( > I can't get this to compile as a "template (value)", with or without 'template' arguments, with or w [?] all the template arguments of a (value) template also need to be (value). As "value" is a constraint on the more wider template type, you can only build such a constrained template type from other similarly constrained templates. So you're saying it still failed if both the template itself as well as all its input arguments are constrained to (value)? -- To view, visit https://gerrit.osmocom.org/9674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03 Gerrit-Change-Number: 9674 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 20 Jun 2018 07:38:17 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:38:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:38:33 +0000 Subject: Change in osmo-trx[master]: Add -V param to print version In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9637 ) Change subject: Add -V param to print version ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9f2d6c4b1a508aceb1ccc0559f0902eedf2ec5af Gerrit-Change-Number: 9637 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:38:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:38:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:38:36 +0000 Subject: Change in osmo-trx[master]: Add -V param to print version In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9637 ) Change subject: Add -V param to print version ...................................................................... Add -V param to print version Change-Id: I9f2d6c4b1a508aceb1ccc0559f0902eedf2ec5af --- M Transceiver52M/osmo-trx.cpp 1 file changed, 8 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp index 09ba14e..1c40fcf 100644 --- a/Transceiver52M/osmo-trx.cpp +++ b/Transceiver52M/osmo-trx.cpp @@ -49,6 +49,8 @@ #include #include #include +#include + #include "convolve.h" #include "convert.h" #include "trx_vty.h" @@ -194,6 +196,7 @@ fprintf(stdout, "Options:\n" " -h This text\n" " -C Filename The config file to use\n" + " -V Print the version of OsmoTRX\n" ); } @@ -211,7 +214,7 @@ std::vector rx_paths, tx_paths; bool rx_paths_set = false, tx_paths_set = false; - while ((option = getopt(argc, argv, "ha:l:i:j:p:c:dmxgfo:s:b:r:A:R:Set:y:z:C:")) != -1) { + while ((option = getopt(argc, argv, "ha:l:i:j:p:c:dmxgfo:s:b:r:A:R:Set:y:z:C:V")) != -1) { switch (option) { case 'h': print_help(); @@ -311,6 +314,10 @@ case 'C': config_file = optarg; break; + case 'V': + print_version(1); + exit(0); + break; default: goto bad_config; } -- To view, visit https://gerrit.osmocom.org/9637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9f2d6c4b1a508aceb1ccc0559f0902eedf2ec5af Gerrit-Change-Number: 9637 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:40:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:40:26 +0000 Subject: Change in openbsc[master]: bsc-nat: show running-config now prints bsc nodes In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9644 ) Change subject: bsc-nat: show running-config now prints bsc nodes ...................................................................... bsc-nat: show running-config now prints bsc nodes Fixes: OS#3335 Change-Id: I847e84d5cc50619059cbae7a2c6471c60609aec6 --- M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 1 file changed, 41 insertions(+), 39 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index e51de53..057d9ab 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -87,6 +87,46 @@ dump_lac(vty, &pgroup->lists); } +static void config_write_bsc_single(struct vty *vty, struct bsc_config *bsc) +{ + vty_out(vty, " bsc %u%s", bsc->nr, VTY_NEWLINE); + vty_out(vty, " token %s%s", bsc->token, VTY_NEWLINE); + if (bsc->key_present) + vty_out(vty, " auth-key %s%s", osmo_hexdump(bsc->key, 16), VTY_NEWLINE); + dump_lac(vty, &bsc->lac_list); + if (bsc->description) + vty_out(vty, " description %s%s", bsc->description, VTY_NEWLINE); + if (bsc->acc_lst_name) + vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); + vty_out(vty, " max-endpoints %d%s", bsc->max_endpoints, VTY_NEWLINE); + if (bsc->paging_group != -1) + vty_out(vty, " paging group %d%s", bsc->paging_group, VTY_NEWLINE); + vty_out(vty, " paging forbidden %d%s", bsc->forbid_paging, VTY_NEWLINE); + switch (bsc->osmux) { + case OSMUX_USAGE_ON: + vty_out(vty, " osmux on%s", VTY_NEWLINE); + break; + case OSMUX_USAGE_ONLY: + vty_out(vty, " osmux only%s", VTY_NEWLINE); + break; + } + if (bsc->bts_use_jibuf_override) + vty_out(vty, " %sbts-jitter-buffer%s", bsc->bts_use_jibuf? "" : "no ", VTY_NEWLINE); + if (bsc->bts_jitter_delay_min_override) + vty_out(vty, " bts-jitter-delay-min %"PRIu32"%s", bsc->bts_jitter_delay_min, VTY_NEWLINE); + if (bsc->bts_jitter_delay_max_override) + vty_out(vty, " bts-jitter-delay-max %"PRIu32"%s", bsc->bts_jitter_delay_max, VTY_NEWLINE); +} + +static int config_write_bsc(struct vty *vty) +{ + struct bsc_config *bsc; + + llist_for_each_entry(bsc, &_nat->bsc_configs, entry) + config_write_bsc_single(vty, bsc); + return CMD_SUCCESS; +} + static int config_write_nat(struct vty *vty) { struct bsc_msg_acc_lst *lst; @@ -148,46 +188,8 @@ vty_out(vty, " %ssdp-ensure-amr-mode-set%s", _nat->sdp_ensure_amr_mode_set ? "" : "no ", VTY_NEWLINE); - return CMD_SUCCESS; -} + config_write_bsc(vty); -static void config_write_bsc_single(struct vty *vty, struct bsc_config *bsc) -{ - vty_out(vty, " bsc %u%s", bsc->nr, VTY_NEWLINE); - vty_out(vty, " token %s%s", bsc->token, VTY_NEWLINE); - if (bsc->key_present) - vty_out(vty, " auth-key %s%s", osmo_hexdump(bsc->key, 16), VTY_NEWLINE); - dump_lac(vty, &bsc->lac_list); - if (bsc->description) - vty_out(vty, " description %s%s", bsc->description, VTY_NEWLINE); - if (bsc->acc_lst_name) - vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); - vty_out(vty, " max-endpoints %d%s", bsc->max_endpoints, VTY_NEWLINE); - if (bsc->paging_group != -1) - vty_out(vty, " paging group %d%s", bsc->paging_group, VTY_NEWLINE); - vty_out(vty, " paging forbidden %d%s", bsc->forbid_paging, VTY_NEWLINE); - switch (bsc->osmux) { - case OSMUX_USAGE_ON: - vty_out(vty, " osmux on%s", VTY_NEWLINE); - break; - case OSMUX_USAGE_ONLY: - vty_out(vty, " osmux only%s", VTY_NEWLINE); - break; - } - if (bsc->bts_use_jibuf_override) - vty_out(vty, " %sbts-jitter-buffer%s", bsc->bts_use_jibuf? "" : "no ", VTY_NEWLINE); - if (bsc->bts_jitter_delay_min_override) - vty_out(vty, " bts-jitter-delay-min %"PRIu32"%s", bsc->bts_jitter_delay_min, VTY_NEWLINE); - if (bsc->bts_jitter_delay_max_override) - vty_out(vty, " bts-jitter-delay-max %"PRIu32"%s", bsc->bts_jitter_delay_max, VTY_NEWLINE); -} - -static int config_write_bsc(struct vty *vty) -{ - struct bsc_config *bsc; - - llist_for_each_entry(bsc, &_nat->bsc_configs, entry) - config_write_bsc_single(vty, bsc); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/9644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I847e84d5cc50619059cbae7a2c6471c60609aec6 Gerrit-Change-Number: 9644 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:40:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:40:24 +0000 Subject: Change in openbsc[master]: bsc-nat: show running-config now prints bsc nodes In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9644 ) Change subject: bsc-nat: show running-config now prints bsc nodes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9644 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I847e84d5cc50619059cbae7a2c6471c60609aec6 Gerrit-Change-Number: 9644 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:40:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:41:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:41:15 +0000 Subject: Change in osmo-trx[master]: lms: Allow values diff than 34dB to be set by setRxGain() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9678 ) Change subject: lms: Allow values diff than 34dB to be set by setRxGain() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5684e675281a3f581855dbb56d199a6fe238a712 Gerrit-Change-Number: 9678 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:41:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:41:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:41:16 +0000 Subject: Change in osmo-trx[master]: lms: Allow values diff than 34dB to be set by setRxGain() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9678 ) Change subject: lms: Allow values diff than 34dB to be set by setRxGain() ...................................................................... lms: Allow values diff than 34dB to be set by setRxGain() Until now, setRxGain in LMSDevice did not take into account the setter parameter and was always using hardcoded 34dB, which was experimentally found to be a good default value. Let's force that value during initialization, but still allow the upper layers (controlled by BTS) to set different values. osmo-bts only sends a SETRXGAIN command (which calls setRxGain in osmo-trx) if a value is explicitly set in its VTY config, so we are on the safe side if the user doesn't explicitly configure a desired dB. Change-Id: I5684e675281a3f581855dbb56d199a6fe238a712 --- M Transceiver52M/device/lms/LMSDevice.cpp 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index 16585e6..ffea505 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -223,7 +223,7 @@ // Set gains to midpoint setTxGain((minTxGain() + maxTxGain()) / 2, i); - setRxGain((minRxGain() + maxRxGain()) / 2, i); + setRxGain(34.0, i); m_lms_stream_rx[i] = {}; m_lms_stream_rx[i].isTx = false; @@ -327,8 +327,6 @@ return 0.0; } - dB = 34.0; - if (dB > maxRxGain()) dB = maxRxGain(); if (dB < minRxGain()) -- To view, visit https://gerrit.osmocom.org/9678 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5684e675281a3f581855dbb56d199a6fe238a712 Gerrit-Change-Number: 9678 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:43:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:43:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/SS_Templates.ttcn: add empty Return Result template In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9681 ) Change subject: library/SS_Templates.ttcn: add empty Return Result template ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaaff110c5f61cc87eda6143cd841f9832f6074bf Gerrit-Change-Number: 9681 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:43:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:43:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:43:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/L3_Templates.ttcn: fix f_facility_or_wc(omit) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9682 ) Change subject: library/L3_Templates.ttcn: fix f_facility_or_wc(omit) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I216195ef71c95997708dad8c31b172b6f6cdc461 Gerrit-Change-Number: 9682 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:43:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:44:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:44:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9683 ) Change subject: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case ...................................................................... Patch Set 1: I'm not sure this test should be dropped. Rather, the test should be adapted to simulate the HLR part which then rejects/denies the USSD code. -- To view, visit https://gerrit.osmocom.org/9683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic104a49bb2dce2127063bcef8443ee6b639c9f19 Gerrit-Change-Number: 9683 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Jun 2018 07:44:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:46:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:46:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: use more informative names for test cases In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9684 ) Change subject: msc/USSD: use more informative names for test cases ...................................................................... Patch Set 1: Code-Review+2 it's important to get the naming right the first time when the tests are added. The reason is that otherwise, the Jenkins test results analyzer (or any other consumer of the junit-xml output) will not be able to track the history across the renames of the tests. It will simply add new lines and consider the renamed tests new. So I can approve this once, but please don't make a habit of renaming test cases in the future. Thanks! -- To view, visit https://gerrit.osmocom.org/9684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I87f16f935f015dbd2ac2867d8ea5e155cc365e3f Gerrit-Change-Number: 9684 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:46:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:47:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:47:28 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: expect and reply SS/USSD messages over GSUP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9685 ) Change subject: msc/USSD: expect and reply SS/USSD messages over GSUP ...................................................................... Patch Set 1: Code-Review+1 looks good to me, but we should delay merging until the osmo-msc part is merged... -- To view, visit https://gerrit.osmocom.org/9685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I01de73aced6057328a121577a5a83bc2615fb2d4 Gerrit-Change-Number: 9685 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 07:47:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 07:50:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 07:50:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add test cases with network-initiaded SS/USSD In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9686 ) Change subject: msc/USSD: add test cases with network-initiaded SS/USSD ...................................................................... Patch Set 1: (1 comment) I love your work on the tests. We can just redoce verbosity and number of copy+paste by using more TTCN3 language features. Thanks! https://gerrit.osmocom.org/#/c/9686/1/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9686/1/msc/MSC_Tests.ttcn at 2257 PS1, Line 2257: [] BSSAP.receive { those "alt" clauses are identical and copy+pasted several times below. You should abstract those out into one or two altsteps and then either a) call the altstep explicitly, i.e. "[] as_fail_on_gsup()", or b) activating it/them as "default" so they become an implicit part of every "alt" or even stand-alone receive statement -- To view, visit https://gerrit.osmocom.org/9686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 Gerrit-Change-Number: 9686 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Jun 2018 07:50:58 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 08:09:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 08:09:08 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9666 ) Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... Patch Set 3: (5 comments) https://gerrit.osmocom.org/#/c/9666/3/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/9666/3/include/osmocom/bsc/gsm_data.h at 755 PS3, Line 755: struct gsm_bts_ref { not a request to change, just a general reminder: We also have the "vector" of libosmovty, which is sort of a dynamically-sized array of pointers to other objects which one might have used rather than a linked list. https://gerrit.osmocom.org/#/c/9666/3/include/osmocom/bsc/neighbor_ident.h File include/osmocom/bsc/neighbor_ident.h: https://gerrit.osmocom.org/#/c/9666/3/include/osmocom/bsc/neighbor_ident.h at 18 PS3, Line 18: BSIC_9BIT, huh, where's that 9 bit BSIC coming from? Do you have a spec reference for me? https://gerrit.osmocom.org/#/c/9666/3/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/#/c/9666/3/src/osmo-bsc/gsm_data.c at 567 PS3, Line 567: bool gsm_bts_matches_cell_id(struct gsm_bts *bts, const struct gsm0808_cell_id *ci) not important, but I'd expect 'bts' could also be a const pointer, as we're just reading/comparing/matching? https://gerrit.osmocom.org/#/c/9666/3/src/osmo-bsc/neighbor_ident_vty.c File src/osmo-bsc/neighbor_ident_vty.c: https://gerrit.osmocom.org/#/c/9666/3/src/osmo-bsc/neighbor_ident_vty.c at 560 PS3, Line 560: install_element(BTS_NODE, &cfg_neighbor_resolve_cmd); the BTS_NODE is a sub-node of the CONFIG NODE. Inside "configure terminal" we should only permit configuration commands, but not any query-type commands. I think the proper place for a query command is the VIEW+ENABLE node. So you can do something like "bts 0 neighbor resolve ...". If you still want to do it while in the CONFIG/BTS node, you can execute any VIEW/ENABLE command by prefixing it with "do". https://gerrit.osmocom.org/#/c/9666/3/tests/handover/neighbor_ident_test.c File tests/handover/neighbor_ident_test.c: https://gerrit.osmocom.org/#/c/9666/3/tests/handover/neighbor_ident_test.c at 33 PS3, Line 33: arfcn it might be interesting to have test cases for ARFCNs in different bands. Particularly take into consideration PCS band neighbor cells, where the PCS/DCS is indicated as 0x8000 bit of the uint16_t arfcn. This gets easily missed in a lot of code. I don't understand your current changes sufficiently to state if it's needed exactly here. Just in general we need to consider neighbor cells in different bands, including PCS neigbors. -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Jun 2018 08:09:08 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 08:09:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Jun 2018 08:09:11 +0000 Subject: Change in osmo-bsc[master]: doc: update/fix FSM charts In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9667 ) Change subject: doc: update/fix FSM charts ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9667 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I29e31b753e23a4207662e0e385a337e7df836f45 Gerrit-Change-Number: 9667 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 20 Jun 2018 08:09:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 10:53:44 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 10:53:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9683 ) Change subject: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case ...................................................................... Patch Set 1: > I'm not sure this test should be dropped. Rather, the test should > be adapted to simulate the HLR part which then rejects/denies the > USSD code. Even if we simulate the Reject coming from HLR via GSUP, this test case would merely duplicate the existing TC_lu_and_mo_ussd_single_request. >From the OsmoMSC point of view, there is no difference, which kind of GSM 04.80 payload (Invoke, ReturnResult or Reject components) is being forwarded. This test case is only actual for the current OsmoMSC implementation, which handles the SS/USSD itself. -- To view, visit https://gerrit.osmocom.org/9683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic104a49bb2dce2127063bcef8443ee6b639c9f19 Gerrit-Change-Number: 9683 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Jun 2018 10:53:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Jun 20 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#160?= In-Reply-To: <763527843.233.1529421006657.JavaMail.jenkins@jenkins.osmocom.org> References: <763527843.233.1529421006657.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1146227421.247.1529507406951.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.74 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Jun 20 19:25:24 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 19:25:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add test cases with network-initiaded SS/USSD In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9686 to look at the new patch set (#2). Change subject: msc/USSD: add test cases with network-initiaded SS/USSD ...................................................................... msc/USSD: add test cases with network-initiaded SS/USSD This change introduces two new test cases for network-initiaded USSD notification and network-initiaded USSD request, which are based on the existing SS/USSD related test cases. The idea of TC_lu_and_mt_ussd_notification is to verify that a network-initiaded USSD notification can arrive subscriber in IDLE mode using Paging procedure. The idea of TC_lu_and_mt_ussd_during_mt_call is to verify that a network-initiaded USSD notification can arrive subscriber in DEDICATED mode (in this case during a call) on a separate transaction. Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 227 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/9686/2 -- To view, visit https://gerrit.osmocom.org/9686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 Gerrit-Change-Number: 9686 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 19:25:25 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 19:25:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: introduce common GSUP/BSSAP matching functions Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9687 Change subject: msc/USSD: introduce common GSUP/BSSAP matching functions ...................................................................... msc/USSD: introduce common GSUP/BSSAP matching functions In order to avoid code duplication in the upcoming test cases, let's introduce a few functions which basically do a GSUP/BSSAP message matching within the alternative statement. Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116 --- M msc/MSC_Tests.ttcn 1 file changed, 54 insertions(+), 56 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/9687/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 1af77cd..c56b9cc 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2109,6 +2109,48 @@ * USSD Testing ***********************************************************************/ +private function f_expect_gsup_msg(template GSUP_PDU gsup_msg) +runs on BSC_ConnHdlr return GSUP_PDU { + var GSUP_PDU gsup_msg_complete; + + alt { + [] GSUP.receive(gsup_msg) -> value gsup_msg_complete { + setverdict(pass); + } + [] GSUP.receive { + setverdict(fail, "Unknown/unexpected GSUP received"); + self.stop; + } + [] BSSAP.receive { + setverdict(fail, "Unexpected BSSAP message received"); + self.stop; + } + } + + return gsup_msg_complete; +} + +private function f_expect_mt_bssap_msg(template PDU_ML3_NW_MS bssap_msg) +runs on BSC_ConnHdlr return PDU_ML3_NW_MS { + var PDU_DTAP_MT bssap_msg_complete; + + alt { + [] BSSAP.receive(tr_PDU_DTAP_MT(bssap_msg)) -> value bssap_msg_complete { + setverdict(pass); + } + [] BSSAP.receive { + setverdict(fail, "Unknown/unexpected BSSAP received"); + self.stop; + } + [] GSUP.receive { + setverdict(fail, "Unexpected GSUP message received"); + self.stop; + } + } + + return bssap_msg_complete.dtap; +} + /* LU followed by MO USSD request */ private function f_tc_lu_and_mo_ussd_single_request(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { @@ -2159,21 +2201,10 @@ /* To be used for sending response with correct session ID */ var GSUP_PDU gsup_req_complete; - /* Request own number request, wait for GSUP-request */ + /* Request own number */ BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); - alt { - [] GSUP.receive(gsup_req) -> value gsup_req_complete { - setverdict(pass); - } - [] GSUP.receive { - setverdict(fail, "Unknown/unexpected GSUP received"); - self.stop; - } - [] BSSAP.receive { - setverdict(fail, "Unexpected BSSAP message received"); - self.stop; - } - } + /* Expect GSUP request with original Facility IE */ + gsup_req_complete := f_expect_gsup_msg(gsup_req); /* Compose the response from HLR using received session ID */ var template GSUP_PDU gsup_rsp := ts_GSUP_PROC_SS_REQ( @@ -2183,21 +2214,10 @@ ss := valueof(facility_rsp) ); + /* Send response over GSUP */ GSUP.send(gsup_rsp); - alt { - /* We expect RELEASE_COMPLETE message with the response */ - [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { - setverdict(pass); - } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - self.stop; - } - [] GSUP.receive { - setverdict(fail, "Unexpected GSUP message received"); - self.stop; - } - } + /* Expect MT RELEASE COMPLETE message with USSD response */ + f_expect_mt_bssap_msg(ussd_rsp); f_expect_clear(); } @@ -2263,21 +2283,10 @@ /* To be used for sending response with correct session ID */ var GSUP_PDU gsup_req_complete; - /* Request own number request, wait for GSUP-request */ + /* Request own number */ BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); - alt { - [] GSUP.receive(gsup_req) -> value gsup_req_complete { - setverdict(pass); - } - [] GSUP.receive { - setverdict(fail, "Unknown/unexpected GSUP received"); - self.stop; - } - [] BSSAP.receive { - setverdict(fail, "Unexpected BSSAP message received"); - self.stop; - } - } + /* Expect GSUP request with original Facility IE */ + gsup_req_complete := f_expect_gsup_msg(gsup_req); /* Compose the response from HLR using received session ID */ var template GSUP_PDU gsup_rsp := ts_GSUP_PROC_SS_REQ( @@ -2287,21 +2296,10 @@ ss := valueof(facility_rsp) ); + /* Send response over GSUP */ GSUP.send(gsup_rsp); - alt { - /* We expect RELEASE_COMPLETE message with the response */ - [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { - setverdict(pass); - } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - self.stop; - } - [] GSUP.receive { - setverdict(fail, "Unexpected GSUP message received"); - self.stop; - } - } + /* Expect MT RELEASE COMPLETE message with USSD response */ + f_expect_mt_bssap_msg(ussd_rsp); /* Hold the call for some time */ f_sleep(1.0); -- To view, visit https://gerrit.osmocom.org/9687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116 Gerrit-Change-Number: 9687 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 19:28:05 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 19:28:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add test cases with network-initiaded SS/USSD In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9686 ) Change subject: msc/USSD: add test cases with network-initiaded SS/USSD ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9686/1/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9686/1/msc/MSC_Tests.ttcn at 2257 PS1, Line 2257: [] BSSAP.receive { > those "alt" clauses are identical and copy+pasted several times below. [?] Done, thanks! Please see: https://gerrit.osmocom.org/9687/ -- To view, visit https://gerrit.osmocom.org/9686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 Gerrit-Change-Number: 9686 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Jun 2018 19:28:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Jun 20 19:58:17 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 19:58:17 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b2ab1df5d78b_5ec03d467c2166d5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 191s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 191s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 191s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 191s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 191s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 191s] make[3]: Nothing to be done for 'install-exec-am'. [ 191s] make[3]: Nothing to be done for 'install-data-am'. [ 191s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 191s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 191s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 191s] dh_install [ 191s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 191s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 191s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 191s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 191s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 191s] dh_install: missing files, aborting [ 191s] debian/rules:6: recipe for target 'binary' failed [ 191s] make: *** [binary] Error 2 [ 191s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 191s] [ 191s] lamb04 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:57:44 UTC 2018. [ 191s] [ 191s] ### VM INTERACTION START ### [ 194s] [ 184.863278] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] lamb04 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:57:47 UTC 2018. [ 194s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 19:59:10 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 19:59:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b2ab21e8dc70_5ec03d467c2171a0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 189s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 189s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 189s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 189s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 189s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 189s] make[3]: Nothing to be done for 'install-exec-am'. [ 189s] make[3]: Nothing to be done for 'install-data-am'. [ 189s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 189s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 189s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 189s] dh_install [ 189s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 189s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 189s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 189s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 189s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 189s] dh_install: missing files, aborting [ 189s] debian/rules:6: recipe for target 'binary' failed [ 189s] make: *** [binary] Error 2 [ 189s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 189s] [ 189s] lamb19 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:58:46 UTC 2018. [ 189s] [ 189s] ### VM INTERACTION START ### [ 192s] [ 184.544695] reboot: Power down [ 192s] ### VM INTERACTION END ### [ 192s] [ 192s] lamb19 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:58:49 UTC 2018. [ 192s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 19:59:10 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 19:59:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b2ab21e2e116_5ec03d467c21705@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 206s] make[3]: Nothing to be done for 'install-exec-am'. [ 206s] make[3]: Nothing to be done for 'install-data-am'. [ 206s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 206s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 206s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 206s] dh_install [ 206s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 206s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 206s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 206s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 206s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 206s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 206s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 206s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 206s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 206s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 206s] dh_install: missing files, aborting [ 206s] debian/rules:6: recipe for target 'binary' failed [ 206s] make: *** [binary] Error 2 [ 206s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 206s] [ 206s] lamb59 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:58:33 UTC 2018. [ 206s] [ 206s] ### VM INTERACTION START ### [ 209s] [ 200.010365] reboot: Power down [ 209s] ### VM INTERACTION END ### [ 209s] [ 209s] lamb59 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:58:37 UTC 2018. [ 209s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 20:00:01 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 20:00:01 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b2ab258e2f17_5ec03d467c2174a6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 210s] make[3]: Nothing to be done for 'install-exec-am'. [ 210s] make[3]: Nothing to be done for 'install-data-am'. [ 210s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 210s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 210s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 210s] dh_install [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 210s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 210s] dh_install: missing files, aborting [ 210s] debian/rules:6: recipe for target 'binary' failed [ 210s] make: *** [binary] Error 2 [ 210s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 210s] [ 210s] lamb18 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:59:30 UTC 2018. [ 210s] [ 210s] ### VM INTERACTION START ### [ 213s] [ 204.091005] reboot: Power down [ 213s] ### VM INTERACTION END ### [ 213s] [ 213s] lamb18 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:59:33 UTC 2018. [ 213s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 20:00:35 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 20:00:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b2ab278dc7c7_5ec03d467c217643@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/i586 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 223s] make[3]: Nothing to be done for 'install-exec-am'. [ 223s] make[3]: Nothing to be done for 'install-data-am'. [ 223s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 223s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 223s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 223s] dh_install [ 223s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 223s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 223s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 223s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 223s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 223s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 223s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 223s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 223s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 223s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 223s] dh_install: missing files, aborting [ 223s] debian/rules:6: recipe for target 'binary' failed [ 223s] make: *** [binary] Error 2 [ 223s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 223s] [ 223s] lamb54 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 19:59:58 UTC 2018. [ 223s] [ 223s] ### VM INTERACTION START ### [ 226s] [ 216.077028] reboot: Power down [ 226s] ### VM INTERACTION END ### [ 226s] [ 226s] lamb54 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 20:00:02 UTC 2018. [ 226s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 20:00:35 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 20:00:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b2ab2795e884_5ec03d467c21774f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 203s] make[3]: Nothing to be done for 'install-exec-am'. [ 203s] make[3]: Nothing to be done for 'install-data-am'. [ 203s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 203s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 203s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 203s] dh_install [ 203s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 203s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 203s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 203s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 203s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 203s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 203s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 203s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 203s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 203s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 203s] dh_install: missing files, aborting [ 203s] debian/rules:6: recipe for target 'binary' failed [ 203s] make: *** [binary] Error 2 [ 203s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 203s] [ 203s] lamb10 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 20:00:08 UTC 2018. [ 203s] [ 203s] ### VM INTERACTION START ### [ 206s] [ 195.574535] reboot: Power down [ 206s] ### VM INTERACTION END ### [ 206s] [ 206s] lamb10 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 20:00:11 UTC 2018. [ 206s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 20:01:43 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 20:01:43 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b2ab2b43c0b3_5ec03d467c217856@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 233s] dh_install [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 233s] [ 233s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 233s] [ 233s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 233s] [ 233s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 233s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 233s] [ 233s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 233s] [ 233s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 233s] dh_install: missing files, aborting [ 233s] debian/rules:6: recipe for target 'binary' failed [ 233s] make: *** [binary] Error 25 [ 233s] dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2 [ 233s] [ 233s] lamb23 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 20:01:09 UTC 2018. [ 233s] [ 233s] ### VM INTERACTION START ### [ 236s] [ 223.722774] reboot: Power down [ 236s] ### VM INTERACTION END ### [ 236s] [ 236s] lamb23 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 20:01:12 UTC 2018. [ 236s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 20:03:10 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 20:03:10 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b2ab30e1070c_5ec03d467c2179d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 317s] dh_install [ 317s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 317s] [ 317s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 317s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 317s] [ 317s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 317s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 317s] [ 317s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 317s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 317s] [ 317s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 317s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 317s] [ 317s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 317s] dh_install: missing files, aborting [ 317s] debian/rules:6: recipe for target 'binary' failed [ 317s] make: *** [binary] Error 25 [ 317s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 317s] [ 317s] cloud126 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 20:02:43 UTC 2018. [ 317s] [ 317s] ### VM INTERACTION START ### [ 320s] [ 284.698297] reboot: Power down [ 321s] ### VM INTERACTION END ### [ 321s] [ 321s] cloud126 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 20:02:47 UTC 2018. [ 321s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Jun 20 21:39:34 2018 From: admin at opensuse.org (OBS Notification) Date: Wed, 20 Jun 2018 21:39:34 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b2ac9a8cd2ff_5ec03d467c2257dd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 334s] make[3]: Nothing to be done for 'install-data-am'. [ 334s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 334s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 334s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 334s] dh_install [ 334s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 334s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 334s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 334s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 334s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 334s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 334s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 334s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 334s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 334s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 334s] dh_install: missing files, aborting [ 334s] debian/rules:6: recipe for target 'binary' failed [ 334s] make: *** [binary] Error 2 [ 334s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 334s] [ 334s] armbuild24 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 21:38:54 UTC 2018. [ 334s] [ 334s] ### VM INTERACTION START ### [ 337s] [ 322.748578] SysRq : Power Off [ 337s] [ 322.749924] reboot: Power down [ 337s] ### VM INTERACTION END ### [ 337s] [ 337s] armbuild24 failed "build osmo-trx_0.4.0.dsc" at Wed Jun 20 21:38:58 UTC 2018. [ 337s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Jun 20 23:19:42 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 23:19:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: introduce common GSUP/BSSAP matching functions In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9687 to look at the new patch set (#2). Change subject: msc/USSD: introduce common GSUP/BSSAP matching functions ...................................................................... msc/USSD: introduce common GSUP/BSSAP matching functions In order to avoid code duplication in the upcoming test cases, let's introduce a few functions which basically do a GSUP/BSSAP message matching within the alternative statement. Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116 --- M msc/MSC_Tests.ttcn 1 file changed, 42 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/9687/2 -- To view, visit https://gerrit.osmocom.org/9687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116 Gerrit-Change-Number: 9687 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 23:19:42 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 23:19:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: expect and reply SS/USSD messages over GSUP In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9685 to look at the new patch set (#2). Change subject: msc/USSD: expect and reply SS/USSD messages over GSUP ...................................................................... msc/USSD: expect and reply SS/USSD messages over GSUP As we are about to finish the implementation of GSM TS 09.11, OsmoMSC will forward all SS/USSD messages over GSUP to HLR, and will expect responses back from HLR. The SS/USSD payload processing will be out of scope for OsmoMSC itself. Let's modify the existing test cases in order to expect and reply SS/USSD messages over GSUP protocol. Change-Id: I01de73aced6057328a121577a5a83bc2615fb2d4 --- M msc/MSC_Tests.ttcn 1 file changed, 81 insertions(+), 40 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/9685/2 -- To view, visit https://gerrit.osmocom.org/9685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I01de73aced6057328a121577a5a83bc2615fb2d4 Gerrit-Change-Number: 9685 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 23:19:42 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 23:19:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add test cases with network-initiaded SS/USSD In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9686 to look at the new patch set (#3). Change subject: msc/USSD: add test cases with network-initiaded SS/USSD ...................................................................... msc/USSD: add test cases with network-initiaded SS/USSD This change introduces two new test cases for network-initiaded USSD notification and network-initiaded USSD request, which are based on the existing SS/USSD related test cases. The idea of TC_lu_and_mt_ussd_notification is to verify that a network-initiaded USSD notification can arrive subscriber in IDLE mode using Paging procedure. The idea of TC_lu_and_mt_ussd_during_mt_call is to verify that a network-initiaded USSD notification can arrive subscriber in DEDICATED mode (in this case during a call) on a separate transaction. Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 215 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/9686/3 -- To view, visit https://gerrit.osmocom.org/9686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 Gerrit-Change-Number: 9686 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 23:19:44 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 23:19:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/GSUP_Types.ttcn: add empty SS REQ/RSP templates Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9688 Change subject: library/GSUP_Types.ttcn: add empty SS REQ/RSP templates ...................................................................... library/GSUP_Types.ttcn: add empty SS REQ/RSP templates The 'SS Info' IE is optional for GSUP_PROC_SS_{REQ|RSP} messages, so it makes sense to add the corresponding empty templates. Please note that matching with constructions like: tr_GSUP( OSMO_GSUP_MSGT_PROC_SS_REQUEST, { tr_GSUP_IE_IMSI(...), tr_GSUP_IE_SessionId(...), tr_GSUP_IE_SessionState(...), omit } ) wouldn't work for some reason, and this is why the new 99% identical templates are introduced. Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30 --- M library/GSUP_Types.ttcn 1 file changed, 50 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/9688/1 diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn index 359e272..d595b00 100644 --- a/library/GSUP_Types.ttcn +++ b/library/GSUP_Types.ttcn @@ -581,6 +581,31 @@ } } +template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ_EMPTY( + hexstring imsi, + OCT4 sid, + GSUP_SessionState state +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_REQUEST, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_SessionState(state)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_REQ_EMPTY( + template hexstring imsi, + template OCT4 sid := ?, + template GSUP_SessionState state := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_REQUEST, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_SessionState(state) + } +); + template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ( hexstring imsi, OCT4 sid, @@ -610,6 +635,31 @@ } ); +template (value) GSUP_PDU ts_GSUP_PROC_SS_RES_EMPTY( + hexstring imsi, + OCT4 sid, + GSUP_SessionState state +) := ts_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_SessionState(state)) + } +); +template GSUP_PDU tr_GSUP_PROC_SS_RES_EMPTY( + template hexstring imsi, + template OCT4 sid := ?, + template GSUP_SessionState state := ? +) := tr_GSUP( + OSMO_GSUP_MSGT_PROC_SS_RESULT, + { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_SessionState(state) + } +); + template (value) GSUP_PDU ts_GSUP_PROC_SS_RES( hexstring imsi, OCT4 sid, -- To view, visit https://gerrit.osmocom.org/9688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30 Gerrit-Change-Number: 9688 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 20 23:19:44 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Jun 2018 23:19:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: introduce TC_lu_and_mo_ussd_mo_release Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9689 Change subject: msc/USSD: introduce TC_lu_and_mo_ussd_mo_release ...................................................................... msc/USSD: introduce TC_lu_and_mo_ussd_mo_release The idea of this test case is to check the reaction of OsmoMSC on MS-initiated release during an active transaction. In other words, when the network is waiting for some response from a MS, subscriber can press the 'red button' in order to terminate this conversation. It is expected that the MSC would terminate the transaction as on DTAP interface, as on GSUP interface. Change-Id: I7936ed5072ed2ae02f039dc90a1fece1e7f70a70 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 99 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/9689/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 5157d28..6030171 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2525,6 +2525,103 @@ vc_conn.done; } +/* LU followed by MO USSD request and MO Release during transaction */ +private function f_tc_lu_and_mo_ussd_mo_release(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + f_init_handler(pars); + + /* Perform location update */ + f_perform_lu(); + + /* Send CM Service Request for SS/USSD */ + f_establish_fully(EST_TYPE_SS_ACT); + + /* We need to inspect GSUP activity */ + f_create_gsup_expect(hex2str(g_pars.imsi)); + + var template OCTN facility_ms_req := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 1, /* Initial request */ + op_code := SS_OP_CODE_PROCESS_USS_REQ, + ussd_string := "*6766*266#" + ); + + var template OCTN facility_net_req := f_USSD_FACILITY_IE_INVOKE( + invoke_id := 2, /* Counter request */ + op_code := SS_OP_CODE_USS_REQUEST, + ussd_string := "Password?!?" + ) + + /* Compose MO SS/REGISTER message with request */ + var template (value) PDU_ML3_MS_NW ussd_ms_req := ts_ML3_MO_SS_REGISTER( + tid := 1, /* We just need a single transaction */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := valueof(facility_ms_req) + ); + + /* Compose expected MSC -> HLR message */ + var template GSUP_PDU gsup_ms_req := tr_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + state := OSMO_GSUP_SESSION_STATE_BEGIN, + ss := valueof(facility_ms_req) + ); + + /* To be used for sending response with correct session ID */ + var GSUP_PDU gsup_ms_req_complete; + + /* Initiate a new transaction */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_ms_req)); + /* Expect GSUP request with original Facility IE */ + gsup_ms_req_complete := f_expect_gsup_msg(gsup_ms_req); + + /* Compose the response from HLR using received session ID */ + var template (value) GSUP_PDU gsup_net_req := ts_GSUP_PROC_SS_REQ( + imsi := g_pars.imsi, + sid := gsup_ms_req_complete.ies[1].val.session_id, + state := OSMO_GSUP_SESSION_STATE_CONTINUE, + ss := valueof(facility_net_req) + ); + + /* Compose expected MT SS/FACILITY template with counter request */ + var template PDU_ML3_NW_MS ussd_net_req := tr_ML3_MT_SS_FACILITY( + tid := 1, /* Response should arrive within the same transaction */ + ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ + facility := valueof(facility_net_req) + ); + + /* Send response over GSUP */ + GSUP.send(gsup_net_req); + /* Expect MT SS/FACILITY message with counter request */ + f_expect_mt_bssap_msg(ussd_net_req); + + /* Compose MO SS/RELEASE COMPLETE */ + var template (value) PDU_ML3_MS_NW ussd_abort := ts_ML3_MO_SS_RELEASE_COMPLETE( + tid := 1, /* Response should arrive within the same transaction */ + ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ + facility := omit + /* TODO: cause? */ + ); + + /* Compose expected HLR -> MSC abort message */ + var template GSUP_PDU gsup_abort := tr_GSUP_PROC_SS_REQ_EMPTY( + imsi := g_pars.imsi, + sid := gsup_ms_req_complete.ies[1].val.session_id, + state := OSMO_GSUP_SESSION_STATE_END + ); + + /* Abort transaction */ + BSSAP.send(ts_PDU_DTAP_MO(ussd_abort)); + /* Expect GSUP message indicating abort */ + f_expect_gsup_msg(gsup_abort); + + f_expect_clear(); +} +testcase TC_lu_and_mo_ussd_mo_release() runs on MTC_CT { + var BSC_ConnHdlr vc_conn; + f_init(); + vc_conn := f_start_handler(refers(f_tc_lu_and_mo_ussd_mo_release), 50); + vc_conn.done; +} + /* TODO (SMS): * different user data lengths * SMPP transaction mode with unsuccessful delivery @@ -2610,6 +2707,7 @@ execute( TC_lu_and_mt_ussd_notification() ); execute( TC_lu_and_mo_ussd_during_mt_call() ); execute( TC_lu_and_mt_ussd_during_mt_call() ); + execute( TC_lu_and_mo_ussd_mo_release() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 198b9bd..296d918 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -75,4 +75,5 @@ + -- To view, visit https://gerrit.osmocom.org/9689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7936ed5072ed2ae02f039dc90a1fece1e7f70a70 Gerrit-Change-Number: 9689 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 06:55:28 2018 From: gerrit-no-reply at lists.osmocom.org (roox) Date: Thu, 21 Jun 2018 06:55:28 +0000 Subject: Change in osmo-hlr[master]: sql/Makefile.am: Make docsdir completely configurable Message-ID: roox has uploaded this change for review. ( https://gerrit.osmocom.org/9690 Change subject: sql/Makefile.am: Make docsdir completely configurable ...................................................................... sql/Makefile.am: Make docsdir completely configurable $(docdir) defaults to $(datadir)/doc/osmo-hlr Change-Id: I77fa16d0edcf88a8e120921504cd088328077836 --- M sql/Makefile.am 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/90/9690/1 diff --git a/sql/Makefile.am b/sql/Makefile.am index ab44e2a..f71037b 100644 --- a/sql/Makefile.am +++ b/sql/Makefile.am @@ -3,5 +3,5 @@ hlr.sql \ $(NULL) -docsdir = $(datadir)/doc/osmo-hlr +docsdir = $(docdir) docs_DATA = $(srcdir)/hlr.sql -- To view, visit https://gerrit.osmocom.org/9690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I77fa16d0edcf88a8e120921504cd088328077836 Gerrit-Change-Number: 9690 Gerrit-PatchSet: 1 Gerrit-Owner: roox -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 08:11:44 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jun 2018 08:11:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: ts_CRCX_no_lco: check media description instead of media a... Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9691 Change subject: MGCP_Test: ts_CRCX_no_lco: check media description instead of media attribute ...................................................................... MGCP_Test: ts_CRCX_no_lco: check media description instead of media attribute The testcase ts_CRCX_no_lco looks at the media attributes to see if it findes the expected default codec there. In this testcase we expect PCMU/8000/1 as media attribute, but this is a codec from the fixed payload type domain. The MGW may not list this info inside the media attributes. Listing the payload type number in the media description is sufficient. We should check this instead. - Remove media attribute check - Check meida description for PCMU (0) Change-Id: I69600a1025e68011e8fc5d8bf22d842d9c63bf53 Related: OS#2658 --- M mgw/MGCP_Test.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/91/9691/1 diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 26a0701..6868405 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -326,7 +326,7 @@ /* See also OS#2658: Even when we omit the LCO information, we expect the MGW to pick a sane payload type for us. This payload type should be visible in the SDP of the response. */ - if (resp.sdp.media_list[0].attributes[0].rtpmap.attr_value != "0 PCMU/8000/1") { + if (resp.sdp.media_list[0].media_field.fmts[0] != "0") { setverdict(fail, "SDP contains unexpected codec"); } -- To view, visit https://gerrit.osmocom.org/9691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I69600a1025e68011e8fc5d8bf22d842d9c63bf53 Gerrit-Change-Number: 9691 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:23:59 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:23:59 +0000 Subject: Change in osmo-ggsn[master]: ggsn: ctrl iface: listen on IP configured by VTY Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9692 Change subject: ggsn: ctrl iface: listen on IP configured by VTY ...................................................................... ggsn: ctrl iface: listen on IP configured by VTY Previosuly, the CTRL iface of osmo-ggsn was always bound to 127.0.0.1 Fixes: OS#3287 Change-Id: I9b2c1b310c7dc94ef09642f7f256ae259b41619d --- M ggsn/ggsn.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ggsn refs/changes/92/9692/1 diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index 14bf04f..6d879c0 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -1111,7 +1111,8 @@ if (rc < 0) exit(1); - g_ctrlh = ctrl_interface_setup(NULL, OSMO_CTRL_PORT_GGSN, NULL); + g_ctrlh = ctrl_interface_setup_dynip(NULL, ctrl_vty_get_bind_addr(), + OSMO_CTRL_PORT_GGSN, NULL); if (!g_ctrlh) { LOGP(DGGSN, LOGL_ERROR, "Failed to create CTRL interface.\n"); exit(1); -- To view, visit https://gerrit.osmocom.org/9692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9b2c1b310c7dc94ef09642f7f256ae259b41619d Gerrit-Change-Number: 9692 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:24:37 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:24:37 +0000 Subject: Change in osmo-bts[master]: jenkins_*.sh: add --enable-werror to configure flags In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9536 to look at the new patch set (#2). Change subject: jenkins_*.sh: add --enable-werror to configure flags ...................................................................... jenkins_*.sh: add --enable-werror to configure flags The flag is enabled for all BTS flavour except for lc15, which still contain several compilation warnings (fixes submitted to gerrit, but not merged since no contributor is testing lc15 nowadays). Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 --- M contrib/jenkins_bts_trx.sh M contrib/jenkins_lc15.sh M contrib/jenkins_oct.sh M contrib/jenkins_oct_and_bts_trx.sh M contrib/jenkins_sysmobts.sh 5 files changed, 20 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/36/9536/2 -- To view, visit https://gerrit.osmocom.org/9536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 Gerrit-Change-Number: 9536 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:24:39 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:24:39 +0000 Subject: Change in osmo-bts[master]: l1_if.c: Move decl of vars used in conditional macro Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9693 Change subject: l1_if.c: Move decl of vars used in conditional macro ...................................................................... l1_if.c: Move decl of vars used in conditional macro Nowadays, with latest versions of superfemto, those variables are unused. Change-Id: Iec6c28840745e1bd99406b777ea5db66ca1d6fd9 --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/93/9693/1 diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 57e2d5c..f1c6602 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1387,11 +1387,8 @@ /* mute/unmute RF time slots */ int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) { - const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 }; struct msgb *msg = sysp_msgb_alloc(); SuperFemto_Prim_t *sysp = msgb_sysprim(msg); - struct gsm_bts_trx *trx = hdl->phy_inst->trx; - int i; LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, %d)\n", mute[0], mute[1], mute[2], mute[3], @@ -1399,6 +1396,9 @@ ); #if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(3,6,0) + const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 }; + struct gsm_bts_trx *trx = hdl->phy_inst->trx; + int i; LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); msgb_free(msg); /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ -- To view, visit https://gerrit.osmocom.org/9693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iec6c28840745e1bd99406b777ea5db66ca1d6fd9 Gerrit-Change-Number: 9693 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:24:43 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:24:43 +0000 Subject: Change in osmo-bts[master]: sysmo: vty: Add missing include for lchan_deactivate Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9694 Change subject: sysmo: vty: Add missing include for lchan_deactivate ...................................................................... sysmo: vty: Add missing include for lchan_deactivate Fixes following compilation warning: osmo-bts/src/osmo-bts-sysmo/sysmobts_vty.c:349:3: warning: implicit declaration of function ?lchan_deactivate? Change-Id: I1dba0b08fdb2af199f009842c9abf32e25f74be1 --- M src/osmo-bts-sysmo/sysmobts_vty.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/94/9694/1 diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c index 039236f..b105bf4 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -44,6 +44,7 @@ #include #include #include +#include #include "femtobts.h" #include "l1_if.h" -- To view, visit https://gerrit.osmocom.org/9694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1dba0b08fdb2af199f009842c9abf32e25f74be1 Gerrit-Change-Number: 9694 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:25:26 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:25:26 +0000 Subject: Change in osmo-msc[master]: jenkins.sh: Use --enable-werror only when iu support is disabled Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9695 Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... jenkins.sh: Use --enable-werror only when iu support is disabled The flag cannot be enabled in all cases because current osmo-iuh header contain compilation warnings which are then propagated to this project when building against them. Change-Id: I799ae49567c8e9ff7a98d296873ac0b12e926558 --- M contrib/jenkins.sh 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/95/9695/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index d80422d..c09c368 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -31,10 +31,13 @@ PARALLEL_MAKE="" osmo-build-dep.sh libsmpp34 osmo-build-dep.sh osmo-mgw +enable_werror="" if [ "x$IU" = "x--enable-iu" ]; then osmo-build-dep.sh libasn1c #osmo-build-dep.sh asn1c aper-prefix # only needed for make regen in osmo-iuh osmo-build-dep.sh osmo-iuh +else + enable_werror="--enable-werror" fi set +x @@ -47,12 +50,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize --enable-smpp $IU --enable-external-tests +./configure --enable-sanitize $enable_werror --enable-smpp $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="--enable-smpp $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror --enable-smpp $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/9695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I799ae49567c8e9ff7a98d296873ac0b12e926558 Gerrit-Change-Number: 9695 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:25:48 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:25:48 +0000 Subject: Change in osmo-pcu[master]: jenkins.sh: use flag --enable-werror for sysmo and none Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9696 Change subject: jenkins.sh: use flag --enable-werror for sysmo and none ...................................................................... jenkins.sh: use flag --enable-werror for sysmo and none The lc15 flavour still contains compilation warnings and thus the flag cannot be enabled while building it. Change-Id: I66a43822f8a40764d7d6e09503892cea6030e697 --- M contrib/jenkins.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/96/9696/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 2527127..5f81978 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -26,7 +26,7 @@ # Collect configure options for osmo-pcu PCU_CONFIG="" if [ "$with_dsp" = sysmo ]; then - PCU_CONFIG="$PCU_CONFIG --enable-sysmocom-dsp --with-sysmobts=$inst/include/" + PCU_CONFIG="$PCU_CONFIG --enable-werror --enable-sysmocom-dsp --with-sysmobts=$inst/include/" # For direct sysmo DSP access, provide the SysmoBTS Layer 1 API cd "$deps" @@ -43,7 +43,7 @@ elif [ -z "$with_dsp" -o "$with_dsp" = none ]; then echo "Direct DSP access disabled, sanitizer enabled" - PCU_CONFIG="$PCU_CONFIG --enable-sanitize" + PCU_CONFIG="$PCU_CONFIG --enable-werror --enable-sanitize" else echo 'Invalid $with_dsp value:' $with_dsp exit 1 -- To view, visit https://gerrit.osmocom.org/9696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I66a43822f8a40764d7d6e09503892cea6030e697 Gerrit-Change-Number: 9696 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:26:20 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:26:20 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Use --enable-werror only when iu support is disabled Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9697 Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... jenkins.sh: Use --enable-werror only when iu support is disabled The flag cannot be enabled in all cases because current osmo-iuh header contain compilation warnings which are then propagated to this project when building against them. Change-Id: Ia4285a88af6d4adfba08c055c6734f9d82c1a5a4 --- M contrib/jenkins.sh 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/97/9697/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index a32be1e..7b8cba3 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -29,11 +29,14 @@ osmo-build-dep.sh libosmo-netif osmo-build-dep.sh osmo-ggsn +enable_werror="" if [ "x$IU" = "x--enable-iu" ]; then osmo-build-dep.sh libosmo-sccp osmo-build-dep.sh libasn1c #osmo-build-dep.sh asn1c aper-prefix # only needed for make regen in osmo-iuh osmo-build-dep.sh osmo-iuh +else + enable_werror="--enable-werror" fi set +x @@ -46,12 +49,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize $SMPP $MGCP $IU --enable-external-tests +./configure --enable-sanitize $enable_werror $SMPP $MGCP $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="--enable-osmo-bsc --enable-nat $SMPP $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror --enable-osmo-bsc --enable-nat $SMPP $MGCP $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/9697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia4285a88af6d4adfba08c055c6734f9d82c1a5a4 Gerrit-Change-Number: 9697 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:26:21 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:26:21 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused SMPP Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9699 Change subject: Drop all references of unused SMPP ...................................................................... Drop all references of unused SMPP Change-Id: Iffae03fd855e6cbd99e71b9ba0d4157cb7791db2 --- M contrib/jenkins.sh M include/osmocom/sgsn/debug.h M src/libcommon/common_vty.c M src/libcommon/debug.c 4 files changed, 2 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/99/9699/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e60e8a5..931d14c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -49,12 +49,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize $enable_werror $SMPP $MGCP $IU --enable-external-tests +./configure --enable-sanitize $enable_werror $MGCP $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="$enable_werror $SMPP $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror $MGCP $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index 65e197d..eed2921 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -31,7 +31,6 @@ DSLHC, DNAT, DCTRL, - DSMPP, DFILTER, DGTPHUB, DRANAP, diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c index e960550..7b80bcb 100644 --- a/src/libcommon/common_vty.c +++ b/src/libcommon/common_vty.c @@ -103,11 +103,6 @@ vty->node = MGCP_NODE; vty->index = NULL; break; - case SMPP_ESME_NODE: - vty->node = SMPP_NODE; - vty->index = NULL; - break; - case SMPP_NODE: case MGCP_NODE: case GBPROXY_NODE: case SGSN_NODE: diff --git a/src/libcommon/debug.c b/src/libcommon/debug.c index 6076409..06653a9 100644 --- a/src/libcommon/debug.c +++ b/src/libcommon/debug.c @@ -154,11 +154,6 @@ .description = "Control interface", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DSMPP] = { - .name = "DSMPP", - .description = "SMPP interface for external SMS apps", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, [DFILTER] = { .name = "DFILTER", .description = "BSC/NAT IMSI based filtering", -- To view, visit https://gerrit.osmocom.org/9699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iffae03fd855e6cbd99e71b9ba0d4157cb7791db2 Gerrit-Change-Number: 9699 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:26:20 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:26:20 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Remove non-existent configure options Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9698 Change subject: jenkins.sh: Remove non-existent configure options ...................................................................... jenkins.sh: Remove non-existent configure options Change-Id: I331a187ae19125afa076e0a3d629ba7160d4b416 --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/98/9698/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 7b8cba3..e60e8a5 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -54,7 +54,7 @@ LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="$enable_werror --enable-osmo-bsc --enable-nat $SMPP $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror $SMPP $MGCP $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/9698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I331a187ae19125afa076e0a3d629ba7160d4b416 Gerrit-Change-Number: 9698 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:26:21 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:26:21 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused MGCP Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9700 Change subject: Drop all references of unused MGCP ...................................................................... Drop all references of unused MGCP Change-Id: I1c023d773bf196d41b4251ca7011a82969acb613 --- M contrib/jenkins.sh M include/osmocom/sgsn/debug.h M src/gprs/gb_proxy_vty.c M src/libcommon/common_vty.c M src/libcommon/debug.c 5 files changed, 3 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/00/9700/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 931d14c..d873ee9 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -49,12 +49,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize $enable_werror $MGCP $IU --enable-external-tests +./configure --enable-sanitize $enable_werror $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="$enable_werror $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index eed2921..4d0fc69 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -19,7 +19,6 @@ DMEAS, DSCCP, DMSC, - DMGCP, DHO, DDB, DREF, diff --git a/src/gprs/gb_proxy_vty.c b/src/gprs/gb_proxy_vty.c index 423c582..d7d35fe 100644 --- a/src/gprs/gb_proxy_vty.c +++ b/src/gprs/gb_proxy_vty.c @@ -43,7 +43,7 @@ static struct gbproxy_config *g_cfg = NULL; /* - * vty code for mgcp below + * vty code for gbproxy below */ static struct cmd_node gbproxy_node = { GBPROXY_NODE, @@ -855,4 +855,3 @@ return 0; } - diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c index 7b80bcb..6534105 100644 --- a/src/libcommon/common_vty.c +++ b/src/libcommon/common_vty.c @@ -99,11 +99,6 @@ vty->node = NAT_NODE; vty->index = NULL; break; - case TRUNK_NODE: - vty->node = MGCP_NODE; - vty->index = NULL; - break; - case MGCP_NODE: case GBPROXY_NODE: case SGSN_NODE: case NAT_NODE: diff --git a/src/libcommon/debug.c b/src/libcommon/debug.c index 06653a9..27d7575 100644 --- a/src/libcommon/debug.c +++ b/src/libcommon/debug.c @@ -99,11 +99,6 @@ .description = "Mobile Switching Center", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DMGCP] = { - .name = "DMGCP", - .description = "Media Gateway Control Protocol", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DHO] = { .name = "DHO", .description = "Hand-Over", -- To view, visit https://gerrit.osmocom.org/9700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1c023d773bf196d41b4251ca7011a82969acb613 Gerrit-Change-Number: 9700 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 10:26:22 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Jun 2018 10:26:22 +0000 Subject: Change in osmo-sgsn[master]: Drop unused common_vty.c Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9701 Change subject: Drop unused common_vty.c ...................................................................... Drop unused common_vty.c Change-Id: I19f1ece5f2f62d1f8f40a9b9d0c6c41ad05e5c76 --- M debian/copyright M src/libcommon/Makefile.am D src/libcommon/common_vty.c 3 files changed, 0 insertions(+), 143 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/01/9701/1 diff --git a/debian/copyright b/debian/copyright index 8094f2a..65f3ba7 100644 --- a/debian/copyright +++ b/debian/copyright @@ -123,7 +123,6 @@ src/gprs/sgsn_libgtp.c src/gprs/sgsn_main.c src/gprs/sgsn_vty.c - src/libcommon/common_vty.c src/libcommon/debug.c src/libcommon/gsm_data.c src/libcommon/gsm_data_shared.c diff --git a/src/libcommon/Makefile.am b/src/libcommon/Makefile.am index 737265b..69fb37d 100644 --- a/src/libcommon/Makefile.am +++ b/src/libcommon/Makefile.am @@ -18,7 +18,6 @@ $(NULL) libcommon_a_SOURCES = \ - common_vty.c \ debug.c \ gsm_data.c \ gsm_data_shared.c \ diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c deleted file mode 100644 index 6534105..0000000 --- a/src/libcommon/common_vty.c +++ /dev/null @@ -1,141 +0,0 @@ -/* OpenBSC VTY common helpers */ -/* (C) 2009-2010 by Harald Welte - * (C) 2009-2010 by Holger Hans Peter Freyther - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - - -int bsc_vty_go_parent(struct vty *vty) -{ - switch (vty->node) { - case GSMNET_NODE: - vty->node = CONFIG_NODE; - vty->index = NULL; - break; - case BTS_NODE: - vty->node = GSMNET_NODE; - { - /* set vty->index correctly ! */ - struct gsm_bts *bts = vty->index; - vty->index = bts->network; - vty->index_sub = NULL; - } - break; - case TRX_NODE: - vty->node = BTS_NODE; - { - /* set vty->index correctly ! */ - struct gsm_bts_trx *trx = vty->index; - vty->index = trx->bts; - vty->index_sub = &trx->bts->description; - } - break; - case TS_NODE: - vty->node = TRX_NODE; - { - /* set vty->index correctly ! */ - struct gsm_bts_trx_ts *ts = vty->index; - vty->index = ts->trx; - vty->index_sub = &ts->trx->description; - } - break; - case OML_NODE: - case OM2K_NODE: - vty->node = ENABLE_NODE; - /* NOTE: this only works because it's not part of the config - * tree, where outer commands are searched via vty_go_parent() - * and only (!) executed when a matching one is found. - */ - talloc_free(vty->index); - vty->index = NULL; - break; - case OM2K_CON_GROUP_NODE: - vty->node = BTS_NODE; - { - struct con_group *cg = vty->index; - struct gsm_bts *bts = cg->bts; - vty->index = bts; - vty->index_sub = &bts->description; - } - break; - case NAT_BSC_NODE: - vty->node = NAT_NODE; - { - struct bsc_config *bsc_config = vty->index; - vty->index = bsc_config->nat; - } - break; - case PGROUP_NODE: - vty->node = NAT_NODE; - vty->index = NULL; - break; - case GBPROXY_NODE: - case SGSN_NODE: - case NAT_NODE: - case BSC_NODE: - case MSC_NODE: - case MNCC_INT_NODE: - case NITB_NODE: - vty->node = CONFIG_NODE; - vty->index = NULL; - break; - case SUBSCR_NODE: - vty->node = ENABLE_NODE; - vty->index = NULL; - break; - default: - osmo_ss7_vty_go_parent(vty); - } - - return vty->node; -} - -int bsc_vty_is_config_node(struct vty *vty, int node) -{ - /* Check if libosmo-sccp declares the node in - * question as config node */ - if (osmo_ss7_is_config_node(vty, node)) - return 1; - - switch (node) { - /* add items that are not config */ - case OML_NODE: - case OM2K_NODE: - case SUBSCR_NODE: - case CONFIG_NODE: - return 0; - - default: - return 1; - } -} -- To view, visit https://gerrit.osmocom.org/9701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I19f1ece5f2f62d1f8f40a9b9d0c6c41ad05e5c76 Gerrit-Change-Number: 9701 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 12:20:27 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jun 2018 12:20:27 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: extend log output Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9702 Change subject: gprs_bssgp: extend log output ...................................................................... gprs_bssgp: extend log output When uplink unit data is received, then the debug log shows the TLLI only, however it would also be interesting to know the exact length of the data as well as the contents of the LLCPU that is received - Display TLLI and LLCPDU-length on log level info - Display TLLI, LLCPDU-length and a hexdump of the LLCPDU on log level debug Change-Id: I2980174c899b63717efe218ff5ec8d314c0d6da4 Patch-by: Octasic inc. Related: SYS#4257 --- M src/gb/gprs_bssgp.c 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/02/9702/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index d5d4ea8..fb1862b 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -389,7 +389,15 @@ /* extract TLLI and parse TLV IEs */ msgb_tlli(msg) = osmo_ntohl(budh->tlli); - DEBUGP(DBSSGP, "BSSGP TLLI=0x%08x Rx UPLINK-UNITDATA\n", msgb_tlli(msg)); + LOGP(DBSSGP, LOGL_INFO, + "BSSGP TLLI=0x%08x Rx PLINK-UNITDATA, LLC-PDU LEN[%u]\n", + msgb_tlli(msg), TLVP_LEN(tp, BSSGP_IE_LLC_PDU)); + + LOGP(DBSSGP, LOGL_DEBUG, "TLLI=0x%08x, LLC-PDU LEN[%u], DATA[%s]\n", + msgb_tlli(msg), + TLVP_LEN(tp, BSSGP_IE_LLC_PDU), + osmo_hexdump((uint8_t *) TLVP_VAL(tp, BSSGP_IE_LLC_PDU), + TLVP_LEN(tp, BSSGP_IE_LLC_PDU))); /* Cell ID and LLC_PDU are the only mandatory IE */ if (!TLVP_PRESENT(tp, BSSGP_IE_CELL_ID) || -- To view, visit https://gerrit.osmocom.org/9702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2980174c899b63717efe218ff5ec8d314c0d6da4 Gerrit-Change-Number: 9702 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:41:06 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:41:06 +0000 Subject: Change in osmo-bts[master]: l1_if.c: Move decl of vars used in conditional macro In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9693 ) Change subject: l1_if.c: Move decl of vars used in conditional macro ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec6c28840745e1bd99406b777ea5db66ca1d6fd9 Gerrit-Change-Number: 9693 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:41:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:41:42 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:41:42 +0000 Subject: Change in osmo-bts[master]: sysmo: vty: Add missing include for lchan_deactivate In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9694 ) Change subject: sysmo: vty: Add missing include for lchan_deactivate ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1dba0b08fdb2af199f009842c9abf32e25f74be1 Gerrit-Change-Number: 9694 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:41:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:46:06 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:46:06 +0000 Subject: Change in osmo-bts[master]: jenkins_*.sh: add --enable-werror to configure flags In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9536 ) Change subject: jenkins_*.sh: add --enable-werror to configure flags ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 Gerrit-Change-Number: 9536 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:46:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:48:00 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:48:00 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Use --enable-werror only when iu support is disabled In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9697 ) Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia4285a88af6d4adfba08c055c6734f9d82c1a5a4 Gerrit-Change-Number: 9697 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:48:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:48:54 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:48:54 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Remove non-existent configure options In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9698 ) Change subject: jenkins.sh: Remove non-existent configure options ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/9698/1/contrib/jenkins.sh File contrib/jenkins.sh: https://gerrit.osmocom.org/#/c/9698/1/contrib/jenkins.sh at a57 PS1, Line 57: LOL, BSC in SGSN :) -- To view, visit https://gerrit.osmocom.org/9698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I331a187ae19125afa076e0a3d629ba7160d4b416 Gerrit-Change-Number: 9698 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:48:54 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:49:30 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:49:30 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused SMPP In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9699 ) Change subject: Drop all references of unused SMPP ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iffae03fd855e6cbd99e71b9ba0d4157cb7791db2 Gerrit-Change-Number: 9699 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:49:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:50:51 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:50:51 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused MGCP In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9700 ) Change subject: Drop all references of unused MGCP ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1c023d773bf196d41b4251ca7011a82969acb613 Gerrit-Change-Number: 9700 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:50:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:51:17 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:51:17 +0000 Subject: Change in osmo-sgsn[master]: Drop unused common_vty.c In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9701 ) Change subject: Drop unused common_vty.c ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19f1ece5f2f62d1f8f40a9b9d0c6c41ad05e5c76 Gerrit-Change-Number: 9701 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:51:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:52:20 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:52:20 +0000 Subject: Change in osmo-pcu[master]: jenkins.sh: use flag --enable-werror for sysmo and none In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9696 ) Change subject: jenkins.sh: use flag --enable-werror for sysmo and none ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I66a43822f8a40764d7d6e09503892cea6030e697 Gerrit-Change-Number: 9696 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:52:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 13:59:29 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 13:59:29 +0000 Subject: Change in osmo-msc[master]: jenkins.sh: Use --enable-werror only when iu support is disabled In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9695 ) Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I799ae49567c8e9ff7a98d296873ac0b12e926558 Gerrit-Change-Number: 9695 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 13:59:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 14:00:17 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 14:00:17 +0000 Subject: Change in osmo-ggsn[master]: ggsn: ctrl iface: listen on IP configured by VTY In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9692 ) Change subject: ggsn: ctrl iface: listen on IP configured by VTY ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9b2c1b310c7dc94ef09642f7f256ae259b41619d Gerrit-Change-Number: 9692 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 14:00:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Jun 21 15:10:07 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 21 Jun 2018 15:10:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#161?= In-Reply-To: <1146227421.247.1529507406951.JavaMail.jenkins@jenkins.osmocom.org> References: <1146227421.247.1529507406951.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1455824668.262.1529593807110.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.81 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Jun 21 15:20:01 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 15:20:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9688 to look at the new patch set (#2). Change subject: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* ...................................................................... library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* The 'SS Info' IE is optional for GSUP_PROC_SS_{REQ|RSP} messages, and is not carried in some cases, e.g. when a subscriber aborts an active transaction by pressing the 'red button'. Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30 --- M library/GSUP_Types.ttcn 1 file changed, 51 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/88/9688/2 -- To view, visit https://gerrit.osmocom.org/9688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30 Gerrit-Change-Number: 9688 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 15:20:01 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 15:20:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add test cases with network-initiaded SS/USSD In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9686 to look at the new patch set (#4). Change subject: msc/USSD: add test cases with network-initiaded SS/USSD ...................................................................... msc/USSD: add test cases with network-initiaded SS/USSD This change introduces two new test cases for network-initiaded USSD notification and network-initiaded USSD request, which are based on the existing SS/USSD related test cases. The idea of TC_lu_and_mt_ussd_notification is to verify that a network-initiaded USSD notification can arrive subscriber in IDLE mode using Paging procedure. The idea of TC_lu_and_mt_ussd_during_mt_call is to verify that a network-initiaded USSD notification can arrive subscriber in DEDICATED mode (in this case during a call) on a separate transaction. Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 215 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/9686/4 -- To view, visit https://gerrit.osmocom.org/9686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 Gerrit-Change-Number: 9686 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 15:24:13 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 15:24:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: introduce TC_lu_and_mo_ussd_mo_release In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9689 ) Change subject: msc/USSD: introduce TC_lu_and_mo_ussd_mo_release ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7936ed5072ed2ae02f039dc90a1fece1e7f70a70 Gerrit-Change-Number: 9689 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jun 2018 15:24:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 15:44:17 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Jun 2018 15:44:17 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: properly handle MS-initiated release Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9703 Change subject: libmsc/gsm_09_11.c: properly handle MS-initiated release ...................................................................... libmsc/gsm_09_11.c: properly handle MS-initiated release According to GSM TS 02.90, section 4.3, release of the connection used for SS/USSD is normally the responsibility of the network. But the user may also initiate connection release, e.g. by pressing the 'red button'. TTCN-3 test case: I7936ed5072ed2ae02f039dc90a1fece1e7f70a70 Change-Id: I76fc277bf9db614a97824b1541cd5bb75aa3e29d --- M src/libmsc/gsm_09_11.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/03/9703/1 diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index befb573..e7bdcf5 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -178,8 +178,11 @@ goto error; } - /* Don't release connection, wait for response */ - msc_subscr_conn_communicating(conn); + /* Should we release connection? Or wait for response? */ + if (msg_type == GSM0480_MTYPE_RELEASE_COMPLETE) + trans_free(trans); + else + msc_subscr_conn_communicating(conn); return 0; -- To view, visit https://gerrit.osmocom.org/9703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I76fc277bf9db614a97824b1541cd5bb75aa3e29d Gerrit-Change-Number: 9703 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 15:56:37 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Jun 2018 15:56:37 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9704 Change subject: octphy: add support for 16x oversampling mode ...................................................................... octphy: add support for 16x oversampling mode The latest octphy firmware release (octsdr-2g-02.11.00-B1927-alpha), introduces a 16X oversampling option which is not yet supported in osmo-bts. - Add oversampling flag in phy_link.h - Add VTY commands to enable/disable oversampling - Add phy messages to enable/disable oversampling - Add conditional compilation to preserve support for legacy header files and firmware Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Related: SYS#4257 Patch-by: Octasic inc. --- M configure.ac M include/osmo-bts/phy_link.h M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-octphy/octphy_vty.c 4 files changed, 86 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/9704/1 diff --git a/configure.ac b/configure.ac index 6456f8a..b364e4d 100644 --- a/configure.ac +++ b/configure.ac @@ -250,6 +250,13 @@ [], [#include ]) + AC_CHECK_MEMBER([tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD.ulOversample16xEnableFlag], + AC_DEFINE([OCTPHY_USE_16X_OVERSAMPLING], + [1], + [Define to 1 if your octphy header files support 16x oversampling]), + [], + [#include ]) + CPPFLAGS=$oldCPPFLAGS fi diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 0ffc58e..2295b27 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -74,6 +74,7 @@ uint32_t rx_gain_db; bool tx_atten_flag; uint32_t tx_atten_db; + uint32_t over_sample_16x; #if OCTPHY_MULTI_TRX == 1 /* arfcn used by TRX with id 0 */ uint16_t center_arfcn; diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 018a4f9..337b53c 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1375,6 +1375,53 @@ return l1if_req_compl(fl1h, msg, trx_open_compl_cb, NULL); } +#if OCTPHY_USE_16X_OVERSAMPLING == 1 +static int over_sample_16x_modif_compl_cb(struct octphy_hdl *fl1, + struct msgb *resp, void *data) +{ + tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_RSP *mcr = + (tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_RSP*) resp->l2h; + + /* in a completion call-back, we take msgb ownership and must + * release it before returning */ + + mOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_RSP_SWAP(mcr); + + LOGP(DL1C, LOGL_INFO, "Rx OVER-SAMPLE-16x-MODIFY.conf\n"); + + msgb_free(resp); + + return 0; +} + +static int l1if_over_sample_16x_modif(struct gsm_bts_trx *trx) +{ + struct phy_instance *pinst = trx_phy_instance(trx); + struct phy_link *plink = pinst->phy_link; + struct octphy_hdl *fl1h = pinst->phy_link->u.octphy.hdl; + struct msgb *msg = l1p_msgb_alloc(); + tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD *mc; + + mc = (tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD*) msgb_put(msg, + sizeof + (*mc)); + mOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD_DEF(mc); + l1if_fill_msg_hdr(&mc->Header, msg, fl1h, cOCTVC1_MSG_TYPE_COMMAND, + cOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CID); + + if (plink->u.octphy.over_sample_16x == 1) + mc->ulOversample16xEnableFlag = 1; + else + mc->ulOversample16xEnableFlag = 0; + + mOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD_SWAP(mc); + + LOGP(DL1C, LOGL_INFO, "Tx OVER-SAMPLE-16x-MODIF.req\n"); + + return l1if_req_compl(fl1h, msg, over_sample_16x_modif_compl_cb, 0); +} +#endif + uint32_t trx_get_hlayer1(struct gsm_bts_trx * trx) { return 0; @@ -1393,6 +1440,10 @@ l1if_check_app_version(trx); l1if_check_app_sys_version(trx); +#if OCTPHY_USE_16X_OVERSAMPLING == 1 + l1if_over_sample_16x_modif(trx); +#endif + return l1if_trx_open(trx); } diff --git a/src/osmo-bts-octphy/octphy_vty.c b/src/osmo-bts-octphy/octphy_vty.c index e5e8eba..1c81a4b 100644 --- a/src/osmo-bts-octphy/octphy_vty.c +++ b/src/osmo-bts-octphy/octphy_vty.c @@ -195,6 +195,26 @@ return CMD_SUCCESS; } +#if OCTPHY_USE_16X_OVERSAMPLING == 1 +DEFUN(cfg_phy_over_sample_16x, cfg_phy_over_sample_16x_cmd, + "octphy over-sample-16x <0-1>", + OCT_STR "Configure 16x over sampling rate for this TRX\n" + "Over Sampling Rate\n") +{ + struct phy_link *plink = vty->index; + + if (plink->state != PHY_LINK_SHUTDOWN) { + vty_out(vty, "Can only reconfigure a PHY link that is down%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + plink->u.octphy.over_sample_16x = atoi(argv[0]); + + return CMD_SUCCESS; +} +#endif + void show_rf_port_stats_cb(struct msgb *resp, void *data) { struct vty *vty = (struct vty*) data; @@ -370,6 +390,10 @@ vty_out(vty, " octphy rx-ant-id %u%s", plink->u.octphy.rx_ant_id, VTY_NEWLINE); #endif +#if OCTPHY_USE_16X_OVERSAMPLING == 1 + vty_out(vty, " octphy over-sample-16x %u%s", plink->u.octphy.over_sample_16x, + VTY_NEWLINE); +#endif } void bts_model_config_write_phy_inst(struct vty *vty, struct phy_instance *pinst) @@ -423,7 +447,9 @@ #endif install_element(PHY_NODE, &cfg_phy_rx_gain_db_cmd); install_element(PHY_NODE, &cfg_phy_tx_atten_db_cmd); - +#if OCTPHY_USE_16X_OVERSAMPLING == 1 + install_element(PHY_NODE, &cfg_phy_over_sample_16x_cmd); +#endif install_element_ve(&show_rf_port_stats_cmd); install_element_ve(&show_clk_sync_stats_cmd); install_element_ve(&show_sys_info_cmd); -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:10:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:10:50 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9704 ) Change subject: octphy: add support for 16x oversampling mode ...................................................................... Patch Set 1: I'm not quite sure if we should unconditionally enable it. If it should/must always be enabled, then why doesn't the DSP enable it automatically? And if it's run-time switchable, it makes probably sense to have a vty command for it? Might make sense to inquire with octasic. -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 21 Jun 2018 17:10:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:11:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:11:39 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: extend log output In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9702 ) Change subject: gprs_bssgp: extend log output ...................................................................... Patch Set 1: Code-Review-1 i think if you want to see the data, wireshark is a much better tool. And using GSMTAP log target, you can see log lines + packets in wirehsark. -- To view, visit https://gerrit.osmocom.org/9702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2980174c899b63717efe218ff5ec8d314c0d6da4 Gerrit-Change-Number: 9702 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jun 2018 17:11:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:12:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:12:02 +0000 Subject: Change in osmo-ggsn[master]: ggsn: ctrl iface: listen on IP configured by VTY In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9692 ) Change subject: ggsn: ctrl iface: listen on IP configured by VTY ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9b2c1b310c7dc94ef09642f7f256ae259b41619d Gerrit-Change-Number: 9692 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 17:12:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:12:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:12:04 +0000 Subject: Change in osmo-ggsn[master]: ggsn: ctrl iface: listen on IP configured by VTY In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9692 ) Change subject: ggsn: ctrl iface: listen on IP configured by VTY ...................................................................... ggsn: ctrl iface: listen on IP configured by VTY Previosuly, the CTRL iface of osmo-ggsn was always bound to 127.0.0.1 Fixes: OS#3287 Change-Id: I9b2c1b310c7dc94ef09642f7f256ae259b41619d --- M ggsn/ggsn.c 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c index 14bf04f..6d879c0 100644 --- a/ggsn/ggsn.c +++ b/ggsn/ggsn.c @@ -1111,7 +1111,8 @@ if (rc < 0) exit(1); - g_ctrlh = ctrl_interface_setup(NULL, OSMO_CTRL_PORT_GGSN, NULL); + g_ctrlh = ctrl_interface_setup_dynip(NULL, ctrl_vty_get_bind_addr(), + OSMO_CTRL_PORT_GGSN, NULL); if (!g_ctrlh) { LOGP(DGGSN, LOGL_ERROR, "Failed to create CTRL interface.\n"); exit(1); -- To view, visit https://gerrit.osmocom.org/9692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ggsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9b2c1b310c7dc94ef09642f7f256ae259b41619d Gerrit-Change-Number: 9692 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:12:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:12:40 +0000 Subject: Change in osmo-msc[master]: jenkins.sh: Use --enable-werror only when iu support is disabled In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9695 ) Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I799ae49567c8e9ff7a98d296873ac0b12e926558 Gerrit-Change-Number: 9695 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 17:12:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:12:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:12:41 +0000 Subject: Change in osmo-msc[master]: jenkins.sh: Use --enable-werror only when iu support is disabled In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9695 ) Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... jenkins.sh: Use --enable-werror only when iu support is disabled The flag cannot be enabled in all cases because current osmo-iuh header contain compilation warnings which are then propagated to this project when building against them. Change-Id: I799ae49567c8e9ff7a98d296873ac0b12e926558 --- M contrib/jenkins.sh 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index d80422d..c09c368 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -31,10 +31,13 @@ PARALLEL_MAKE="" osmo-build-dep.sh libsmpp34 osmo-build-dep.sh osmo-mgw +enable_werror="" if [ "x$IU" = "x--enable-iu" ]; then osmo-build-dep.sh libasn1c #osmo-build-dep.sh asn1c aper-prefix # only needed for make regen in osmo-iuh osmo-build-dep.sh osmo-iuh +else + enable_werror="--enable-werror" fi set +x @@ -47,12 +50,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize --enable-smpp $IU --enable-external-tests +./configure --enable-sanitize $enable_werror --enable-smpp $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="--enable-smpp $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror --enable-smpp $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/9695 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I799ae49567c8e9ff7a98d296873ac0b12e926558 Gerrit-Change-Number: 9695 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:12:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:12:56 +0000 Subject: Change in osmo-pcu[master]: jenkins.sh: use flag --enable-werror for sysmo and none In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9696 ) Change subject: jenkins.sh: use flag --enable-werror for sysmo and none ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I66a43822f8a40764d7d6e09503892cea6030e697 Gerrit-Change-Number: 9696 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Jun 2018 17:12:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:12:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:12:57 +0000 Subject: Change in osmo-pcu[master]: jenkins.sh: use flag --enable-werror for sysmo and none In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9696 ) Change subject: jenkins.sh: use flag --enable-werror for sysmo and none ...................................................................... jenkins.sh: use flag --enable-werror for sysmo and none The lc15 flavour still contains compilation warnings and thus the flag cannot be enabled while building it. Change-Id: I66a43822f8a40764d7d6e09503892cea6030e697 --- M contrib/jenkins.sh 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 2527127..5f81978 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -26,7 +26,7 @@ # Collect configure options for osmo-pcu PCU_CONFIG="" if [ "$with_dsp" = sysmo ]; then - PCU_CONFIG="$PCU_CONFIG --enable-sysmocom-dsp --with-sysmobts=$inst/include/" + PCU_CONFIG="$PCU_CONFIG --enable-werror --enable-sysmocom-dsp --with-sysmobts=$inst/include/" # For direct sysmo DSP access, provide the SysmoBTS Layer 1 API cd "$deps" @@ -43,7 +43,7 @@ elif [ -z "$with_dsp" -o "$with_dsp" = none ]; then echo "Direct DSP access disabled, sanitizer enabled" - PCU_CONFIG="$PCU_CONFIG --enable-sanitize" + PCU_CONFIG="$PCU_CONFIG --enable-werror --enable-sanitize" else echo 'Invalid $with_dsp value:' $with_dsp exit 1 -- To view, visit https://gerrit.osmocom.org/9696 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I66a43822f8a40764d7d6e09503892cea6030e697 Gerrit-Change-Number: 9696 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:13:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:13:42 +0000 Subject: Change in osmo-gsm-manuals[master]: common/gsup.adoc: document Supplementary Services extension In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9659 ) Change subject: common/gsup.adoc: document Supplementary Services extension ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib1331246097db736d98baf1a162574cadca9ee36 Gerrit-Change-Number: 9659 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 21 Jun 2018 17:13:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 21 17:13:45 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 17:13:45 +0000 Subject: Change in osmo-gsm-manuals[master]: common/gsup.adoc: document Supplementary Services extension In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9659 ) Change subject: common/gsup.adoc: document Supplementary Services extension ...................................................................... common/gsup.adoc: document Supplementary Services extension A while ago, we have introduced some new message types and IEs, related to TCAP-like transaction management and Supplementary Services. Let's document this extension. Change-Id: Ib1331246097db736d98baf1a162574cadca9ee36 --- M common/chapters/gsup.adoc 1 file changed, 95 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc index a231f7a..e87d979 100644 --- a/common/chapters/gsup.adoc +++ b/common/chapters/gsup.adoc @@ -454,6 +454,56 @@ |01|IMSI|<>|M|TLV|2-10 |=== +==== Process Supplementary Service Request + +Direction: bidirectional + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<>|M|V|1 +|01|IMSI|<>|M|TLV|2-10 +|30|Session ID|<>|M|TLV|6 +|31|Session State|<>|M|TLV|3 +|35|Supplementary Service Info|<>|O|TLV|2-... +|=== + +This message is used in both directions in case of USSD, because +it is not known is it request or response without parsing +the GSM 04.80 payload. + +==== Process Supplementary Service Error + +Direction: HLR => SGSN / VLR + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<>|M|V|1 +|01|IMSI|<>|M|TLV|2-10 +|30|Session ID|<>|M|TLV|6 +|31|Session State|<>|M|TLV|3 +|02|Cause|<>|M|TLV|3 +|=== + +==== Process Supplementary Service Response + +Direction: HLR => SGSN / VLR + +[options="header",cols="5%,20%,45%,10%,10%,10%"] +|=== +|IEI|IE|Type|Presence|Format|Length +| |Message Type|<>|M|V|1 +|01|IMSI|<>|M|TLV|2-10 +|30|Session ID|<>|M|TLV|6 +|31|Session State|<>|M|TLV|3 +|35|Supplementary Service Info|<>|O|TLV|2-... +|=== + +The purpose of this message is not clear yet. Probably, it +can be used to notify the MSC that a structured supplementary +service is successfully activated or deactivated, etc. + === Information Elements [[gsup-ie-msgtype]] @@ -481,6 +531,9 @@ |0x1c|Location Cancellation Request |0x1d|Location Cancellation Error |0x1e|Location Cancellation Result +|0x20|Supplementary Service Request +|0x21|Supplementary Service Error +|0x22|Supplementary Service Result |=== [[gsup-ie-ipaddr]] @@ -704,6 +757,9 @@ |0x26|AUTS|<> |0x27|RES|<> |0x28|CN Domain|<> +|0x30|Session ID|<> +|0x31|Session State|<> +|0x35|Supplementary Service Info|<> |=== [[gsup-ie-empty]] @@ -857,3 +913,42 @@ This IE shall be encoded according to the 'GMM Cause' as described in Chapter 10.5.5.14 of 3GPP TS 04.08. + +[[gsup-ie-ss-info]] +==== Supplementary Service Info + +This IE shall be used together with both <> +and <> IEs. It is used to carry the payload +of Supplementary Services encoded according to GSM TS 04.80. + +=== Session (transaction) management + +Unlike TCAP/MAP, GSUP is just a transport layer without the +dialogue/context. All communication is usually happening over +a single connection. In order to fill this gap, there is a few +optional IEs, which allow both communication sides to establish +and terminate TCAP-like transactions over GSUP. + +[[gsup-ie-session-id]] +==== Session ID + +This auxiliary IE shall be used together with <>. +The purpose of this IE is to identify a particular transaction using +the 4-byte unique identifier. + +[[gsup-ie-session-state]] +==== Session State + +This auxiliary IE shall be used together with <>. +The purpose of this IE is to indicate a state of a particular +transacrion, i.e. initiate, continue or terminate it. + +.Session state +[options="header",cols="15%,35%,50%"] +|=== +|State|TCAP alternative|Description +|0x00|Undefined|Used when session management is not required +|0x01|BEGIN|Used to initiate a new session +|0x02|CONTINUE|Used to continue an existing session +|0x03|END|Used to terminate an existing session +|=== -- To view, visit https://gerrit.osmocom.org/9659 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib1331246097db736d98baf1a162574cadca9ee36 Gerrit-Change-Number: 9659 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Jun 21 19:58:08 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 19:58:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b2c0353ec77e_706b8fc67c159028@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 182s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 182s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 182s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 182s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 182s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 182s] make[3]: Nothing to be done for 'install-exec-am'. [ 182s] make[3]: Nothing to be done for 'install-data-am'. [ 182s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 182s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 182s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 182s] dh_install [ 182s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 182s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 182s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 182s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 182s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 182s] dh_install: missing files, aborting [ 182s] debian/rules:6: recipe for target 'binary' failed [ 182s] make: *** [binary] Error 2 [ 182s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 182s] [ 182s] lamb76 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:57:33 UTC 2018. [ 182s] [ 182s] ### VM INTERACTION START ### [ 185s] [ 176.221716] reboot: Power down [ 185s] ### VM INTERACTION END ### [ 185s] [ 185s] lamb76 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:57:36 UTC 2018. [ 185s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 19:58:25 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 19:58:25 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b2c0375c3b42_706b8fc67c159274@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/i586 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 205s] make[3]: Nothing to be done for 'install-exec-am'. [ 205s] make[3]: Nothing to be done for 'install-data-am'. [ 205s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 205s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 205s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 205s] dh_install [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 205s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 205s] dh_install: missing files, aborting [ 205s] debian/rules:6: recipe for target 'binary' failed [ 205s] make: *** [binary] Error 2 [ 205s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 205s] [ 205s] lamb70 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:57:59 UTC 2018. [ 205s] [ 205s] ### VM INTERACTION START ### [ 208s] [ 197.137887] reboot: Power down [ 208s] ### VM INTERACTION END ### [ 208s] [ 208s] lamb70 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:58:03 UTC 2018. [ 208s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 19:58:25 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 19:58:25 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b2c037561b16_706b8fc67c159167@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 149s] dh_install [ 149s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 149s] [ 149s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 149s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 149s] [ 149s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 149s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 149s] [ 149s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 149s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 149s] [ 149s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 149s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 149s] [ 149s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 149s] dh_install: missing files, aborting [ 149s] debian/rules:6: recipe for target 'binary' failed [ 149s] make: *** [binary] Error 25 [ 149s] dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2 [ 149s] [ 149s] build79 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:57:50 UTC 2018. [ 149s] [ 149s] ### VM INTERACTION START ### [ 152s] [ 145.873820] reboot: Power down [ 152s] ### VM INTERACTION END ### [ 152s] [ 152s] build79 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:57:53 UTC 2018. [ 152s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 19:58:42 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 19:58:42 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b2c038f7eef7_706b8fc67c15933f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 199s] make[3]: Nothing to be done for 'install-exec-am'. [ 199s] make[3]: Nothing to be done for 'install-data-am'. [ 199s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 199s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 199s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 199s] dh_install [ 199s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 199s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 199s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 199s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 199s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 199s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 199s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 199s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 199s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 199s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 199s] dh_install: missing files, aborting [ 199s] debian/rules:6: recipe for target 'binary' failed [ 199s] make: *** [binary] Error 2 [ 199s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 199s] [ 199s] lamb20 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:58:05 UTC 2018. [ 199s] [ 199s] ### VM INTERACTION START ### [ 202s] [ 192.149353] reboot: Power down [ 202s] ### VM INTERACTION END ### [ 202s] [ 202s] lamb20 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:58:09 UTC 2018. [ 202s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 19:58:59 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 19:58:59 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b2c03903929_706b8fc67c1594c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 194s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 194s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 194s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 194s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 194s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 194s] make[3]: Nothing to be done for 'install-exec-am'. [ 194s] make[3]: Nothing to be done for 'install-data-am'. [ 194s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 194s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 194s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 194s] dh_install [ 194s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 194s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 194s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 194s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 194s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 194s] dh_install: missing files, aborting [ 194s] debian/rules:6: recipe for target 'binary' failed [ 194s] make: *** [binary] Error 2 [ 194s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 194s] [ 194s] lamb18 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:58:27 UTC 2018. [ 194s] [ 194s] ### VM INTERACTION START ### [ 197s] [ 188.488457] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] lamb18 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:58:30 UTC 2018. [ 197s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 20:01:50 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 20:01:50 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b2c044538e48_706b8fc67c15959b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 277s] make[3]: Nothing to be done for 'install-exec-am'. [ 277s] make[3]: Nothing to be done for 'install-data-am'. [ 277s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 277s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 277s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 277s] dh_install [ 278s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 278s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 278s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 278s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 278s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 278s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 278s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 278s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 278s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 278s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 278s] dh_install: missing files, aborting [ 278s] debian/rules:6: recipe for target 'binary' failed [ 278s] make: *** [binary] Error 2 [ 278s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 278s] [ 278s] cloud132 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 20:01:14 UTC 2018. [ 278s] [ 278s] ### VM INTERACTION START ### [ 281s] [ 261.197497] reboot: Power down [ 282s] ### VM INTERACTION END ### [ 282s] [ 282s] cloud132 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 20:01:19 UTC 2018. [ 282s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 20:13:16 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 20:13:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b2c06f5d26a9_706b8fc67c159787@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 312s] make[3]: Nothing to be done for 'install-data-am'. [ 312s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 312s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 312s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 312s] dh_install [ 312s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 312s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 312s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 312s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 312s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 312s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 312s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 312s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 312s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 312s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 312s] dh_install: missing files, aborting [ 312s] debian/rules:6: recipe for target 'binary' failed [ 312s] make: *** [binary] Error 2 [ 312s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 312s] [ 312s] armbuild21 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 20:12:51 UTC 2018. [ 312s] [ 312s] ### VM INTERACTION START ### [ 315s] [ 302.250798] SysRq : Power Off [ 315s] [ 302.251970] reboot: Power down [ 315s] ### VM INTERACTION END ### [ 315s] [ 315s] armbuild21 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 20:12:54 UTC 2018. [ 315s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 20:43:33 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 20:43:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b2c0dfd91dd8_706b8fc67c161236@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 136s] dh_install [ 136s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 136s] [ 136s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 136s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 136s] [ 136s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 136s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 136s] [ 136s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 136s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 136s] [ 136s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 136s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 136s] [ 136s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 136s] dh_install: missing files, aborting [ 136s] debian/rules:6: recipe for target 'binary' failed [ 136s] make: *** [binary] Error 25 [ 136s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 136s] [ 136s] build80 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:53:26 UTC 2018. [ 136s] [ 136s] ### VM INTERACTION START ### [ 139s] [ 133.071047] reboot: Power down [ 139s] ### VM INTERACTION END ### [ 139s] [ 139s] build80 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 19:53:29 UTC 2018. [ 139s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Thu Jun 21 20:47:16 2018 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Jun 2018 20:47:16 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b2c0eeec8238_706b8fc67c161329@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 263s] make[3]: Nothing to be done for 'install-exec-am'. [ 263s] make[3]: Nothing to be done for 'install-data-am'. [ 263s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 263s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 263s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 263s] dh_install [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 263s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 263s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 263s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 263s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 263s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 263s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 263s] dh_install: missing files, aborting [ 263s] debian/rules:6: recipe for target 'binary' failed [ 263s] make: *** [binary] Error 2 [ 263s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 263s] [ 263s] cloud118 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 20:46:41 UTC 2018. [ 263s] [ 263s] ### VM INTERACTION START ### [ 266s] [ 244.419264] reboot: Power down [ 267s] ### VM INTERACTION END ### [ 267s] [ 267s] cloud118 failed "build osmo-trx_0.4.0.dsc" at Thu Jun 21 20:46:45 UTC 2018. [ 267s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:19:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:19:58 +0000 Subject: Change in osmo-sgsn[master]: Drop unused common_vty.c In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9701 ) Change subject: Drop unused common_vty.c ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19f1ece5f2f62d1f8f40a9b9d0c6c41ad05e5c76 Gerrit-Change-Number: 9701 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 07:19:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:20:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:20:25 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused MGCP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9700 ) Change subject: Drop all references of unused MGCP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1c023d773bf196d41b4251ca7011a82969acb613 Gerrit-Change-Number: 9700 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 07:20:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:20:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:20:50 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused SMPP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9699 ) Change subject: Drop all references of unused SMPP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iffae03fd855e6cbd99e71b9ba0d4157cb7791db2 Gerrit-Change-Number: 9699 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 07:20:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:21:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:21:10 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Remove non-existent configure options In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9698 ) Change subject: jenkins.sh: Remove non-existent configure options ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I331a187ae19125afa076e0a3d629ba7160d4b416 Gerrit-Change-Number: 9698 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 07:21:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:21:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:21:17 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Use --enable-werror only when iu support is disabled In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9697 ) Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia4285a88af6d4adfba08c055c6734f9d82c1a5a4 Gerrit-Change-Number: 9697 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 07:21:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:21:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:21:23 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Use --enable-werror only when iu support is disabled In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9697 ) Change subject: jenkins.sh: Use --enable-werror only when iu support is disabled ...................................................................... jenkins.sh: Use --enable-werror only when iu support is disabled The flag cannot be enabled in all cases because current osmo-iuh header contain compilation warnings which are then propagated to this project when building against them. Change-Id: Ia4285a88af6d4adfba08c055c6734f9d82c1a5a4 --- M contrib/jenkins.sh 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index a32be1e..7b8cba3 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -29,11 +29,14 @@ osmo-build-dep.sh libosmo-netif osmo-build-dep.sh osmo-ggsn +enable_werror="" if [ "x$IU" = "x--enable-iu" ]; then osmo-build-dep.sh libosmo-sccp osmo-build-dep.sh libasn1c #osmo-build-dep.sh asn1c aper-prefix # only needed for make regen in osmo-iuh osmo-build-dep.sh osmo-iuh +else + enable_werror="--enable-werror" fi set +x @@ -46,12 +49,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize $SMPP $MGCP $IU --enable-external-tests +./configure --enable-sanitize $enable_werror $SMPP $MGCP $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="--enable-osmo-bsc --enable-nat $SMPP $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror --enable-osmo-bsc --enable-nat $SMPP $MGCP $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/9697 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia4285a88af6d4adfba08c055c6734f9d82c1a5a4 Gerrit-Change-Number: 9697 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:21:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:21:24 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: Remove non-existent configure options In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9698 ) Change subject: jenkins.sh: Remove non-existent configure options ...................................................................... jenkins.sh: Remove non-existent configure options Change-Id: I331a187ae19125afa076e0a3d629ba7160d4b416 --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 7b8cba3..e60e8a5 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -54,7 +54,7 @@ LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="$enable_werror --enable-osmo-bsc --enable-nat $SMPP $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror $SMPP $MGCP $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/9698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I331a187ae19125afa076e0a3d629ba7160d4b416 Gerrit-Change-Number: 9698 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:21:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:21:24 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused SMPP In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9699 ) Change subject: Drop all references of unused SMPP ...................................................................... Drop all references of unused SMPP Change-Id: Iffae03fd855e6cbd99e71b9ba0d4157cb7791db2 --- M contrib/jenkins.sh M include/osmocom/sgsn/debug.h M src/libcommon/common_vty.c M src/libcommon/debug.c 4 files changed, 2 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index e60e8a5..931d14c 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -49,12 +49,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize $enable_werror $SMPP $MGCP $IU --enable-external-tests +./configure --enable-sanitize $enable_werror $MGCP $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="$enable_werror $SMPP $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror $MGCP $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index 65e197d..eed2921 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -31,7 +31,6 @@ DSLHC, DNAT, DCTRL, - DSMPP, DFILTER, DGTPHUB, DRANAP, diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c index e960550..7b80bcb 100644 --- a/src/libcommon/common_vty.c +++ b/src/libcommon/common_vty.c @@ -103,11 +103,6 @@ vty->node = MGCP_NODE; vty->index = NULL; break; - case SMPP_ESME_NODE: - vty->node = SMPP_NODE; - vty->index = NULL; - break; - case SMPP_NODE: case MGCP_NODE: case GBPROXY_NODE: case SGSN_NODE: diff --git a/src/libcommon/debug.c b/src/libcommon/debug.c index 6076409..06653a9 100644 --- a/src/libcommon/debug.c +++ b/src/libcommon/debug.c @@ -154,11 +154,6 @@ .description = "Control interface", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DSMPP] = { - .name = "DSMPP", - .description = "SMPP interface for external SMS apps", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, [DFILTER] = { .name = "DFILTER", .description = "BSC/NAT IMSI based filtering", -- To view, visit https://gerrit.osmocom.org/9699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iffae03fd855e6cbd99e71b9ba0d4157cb7791db2 Gerrit-Change-Number: 9699 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:21:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:21:25 +0000 Subject: Change in osmo-sgsn[master]: Drop all references of unused MGCP In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9700 ) Change subject: Drop all references of unused MGCP ...................................................................... Drop all references of unused MGCP Change-Id: I1c023d773bf196d41b4251ca7011a82969acb613 --- M contrib/jenkins.sh M include/osmocom/sgsn/debug.h M src/gprs/gb_proxy_vty.c M src/libcommon/common_vty.c M src/libcommon/debug.c 5 files changed, 3 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 931d14c..d873ee9 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -49,12 +49,12 @@ cd "$base" autoreconf --install --force -./configure --enable-sanitize $enable_werror $MGCP $IU --enable-external-tests +./configure --enable-sanitize $enable_werror $IU --enable-external-tests $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check \ || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" \ - DISTCHECK_CONFIGURE_FLAGS="$enable_werror $MGCP $IU --enable-external-tests" \ + DISTCHECK_CONFIGURE_FLAGS="$enable_werror $IU --enable-external-tests" \ $MAKE distcheck \ || cat-testlogs.sh diff --git a/include/osmocom/sgsn/debug.h b/include/osmocom/sgsn/debug.h index eed2921..4d0fc69 100644 --- a/include/osmocom/sgsn/debug.h +++ b/include/osmocom/sgsn/debug.h @@ -19,7 +19,6 @@ DMEAS, DSCCP, DMSC, - DMGCP, DHO, DDB, DREF, diff --git a/src/gprs/gb_proxy_vty.c b/src/gprs/gb_proxy_vty.c index 423c582..d7d35fe 100644 --- a/src/gprs/gb_proxy_vty.c +++ b/src/gprs/gb_proxy_vty.c @@ -43,7 +43,7 @@ static struct gbproxy_config *g_cfg = NULL; /* - * vty code for mgcp below + * vty code for gbproxy below */ static struct cmd_node gbproxy_node = { GBPROXY_NODE, @@ -855,4 +855,3 @@ return 0; } - diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c index 7b80bcb..6534105 100644 --- a/src/libcommon/common_vty.c +++ b/src/libcommon/common_vty.c @@ -99,11 +99,6 @@ vty->node = NAT_NODE; vty->index = NULL; break; - case TRUNK_NODE: - vty->node = MGCP_NODE; - vty->index = NULL; - break; - case MGCP_NODE: case GBPROXY_NODE: case SGSN_NODE: case NAT_NODE: diff --git a/src/libcommon/debug.c b/src/libcommon/debug.c index 06653a9..27d7575 100644 --- a/src/libcommon/debug.c +++ b/src/libcommon/debug.c @@ -99,11 +99,6 @@ .description = "Mobile Switching Center", .enabled = 1, .loglevel = LOGL_NOTICE, }, - [DMGCP] = { - .name = "DMGCP", - .description = "Media Gateway Control Protocol", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, [DHO] = { .name = "DHO", .description = "Hand-Over", -- To view, visit https://gerrit.osmocom.org/9700 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1c023d773bf196d41b4251ca7011a82969acb613 Gerrit-Change-Number: 9700 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:21:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:21:25 +0000 Subject: Change in osmo-sgsn[master]: Drop unused common_vty.c In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9701 ) Change subject: Drop unused common_vty.c ...................................................................... Drop unused common_vty.c Change-Id: I19f1ece5f2f62d1f8f40a9b9d0c6c41ad05e5c76 --- M debian/copyright M src/libcommon/Makefile.am D src/libcommon/common_vty.c 3 files changed, 0 insertions(+), 143 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/debian/copyright b/debian/copyright index 8094f2a..65f3ba7 100644 --- a/debian/copyright +++ b/debian/copyright @@ -123,7 +123,6 @@ src/gprs/sgsn_libgtp.c src/gprs/sgsn_main.c src/gprs/sgsn_vty.c - src/libcommon/common_vty.c src/libcommon/debug.c src/libcommon/gsm_data.c src/libcommon/gsm_data_shared.c diff --git a/src/libcommon/Makefile.am b/src/libcommon/Makefile.am index 737265b..69fb37d 100644 --- a/src/libcommon/Makefile.am +++ b/src/libcommon/Makefile.am @@ -18,7 +18,6 @@ $(NULL) libcommon_a_SOURCES = \ - common_vty.c \ debug.c \ gsm_data.c \ gsm_data_shared.c \ diff --git a/src/libcommon/common_vty.c b/src/libcommon/common_vty.c deleted file mode 100644 index 6534105..0000000 --- a/src/libcommon/common_vty.c +++ /dev/null @@ -1,141 +0,0 @@ -/* OpenBSC VTY common helpers */ -/* (C) 2009-2010 by Harald Welte - * (C) 2009-2010 by Holger Hans Peter Freyther - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -#include -#include - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - - -int bsc_vty_go_parent(struct vty *vty) -{ - switch (vty->node) { - case GSMNET_NODE: - vty->node = CONFIG_NODE; - vty->index = NULL; - break; - case BTS_NODE: - vty->node = GSMNET_NODE; - { - /* set vty->index correctly ! */ - struct gsm_bts *bts = vty->index; - vty->index = bts->network; - vty->index_sub = NULL; - } - break; - case TRX_NODE: - vty->node = BTS_NODE; - { - /* set vty->index correctly ! */ - struct gsm_bts_trx *trx = vty->index; - vty->index = trx->bts; - vty->index_sub = &trx->bts->description; - } - break; - case TS_NODE: - vty->node = TRX_NODE; - { - /* set vty->index correctly ! */ - struct gsm_bts_trx_ts *ts = vty->index; - vty->index = ts->trx; - vty->index_sub = &ts->trx->description; - } - break; - case OML_NODE: - case OM2K_NODE: - vty->node = ENABLE_NODE; - /* NOTE: this only works because it's not part of the config - * tree, where outer commands are searched via vty_go_parent() - * and only (!) executed when a matching one is found. - */ - talloc_free(vty->index); - vty->index = NULL; - break; - case OM2K_CON_GROUP_NODE: - vty->node = BTS_NODE; - { - struct con_group *cg = vty->index; - struct gsm_bts *bts = cg->bts; - vty->index = bts; - vty->index_sub = &bts->description; - } - break; - case NAT_BSC_NODE: - vty->node = NAT_NODE; - { - struct bsc_config *bsc_config = vty->index; - vty->index = bsc_config->nat; - } - break; - case PGROUP_NODE: - vty->node = NAT_NODE; - vty->index = NULL; - break; - case GBPROXY_NODE: - case SGSN_NODE: - case NAT_NODE: - case BSC_NODE: - case MSC_NODE: - case MNCC_INT_NODE: - case NITB_NODE: - vty->node = CONFIG_NODE; - vty->index = NULL; - break; - case SUBSCR_NODE: - vty->node = ENABLE_NODE; - vty->index = NULL; - break; - default: - osmo_ss7_vty_go_parent(vty); - } - - return vty->node; -} - -int bsc_vty_is_config_node(struct vty *vty, int node) -{ - /* Check if libosmo-sccp declares the node in - * question as config node */ - if (osmo_ss7_is_config_node(vty, node)) - return 1; - - switch (node) { - /* add items that are not config */ - case OML_NODE: - case OM2K_NODE: - case SUBSCR_NODE: - case CONFIG_NODE: - return 0; - - default: - return 1; - } -} -- To view, visit https://gerrit.osmocom.org/9701 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I19f1ece5f2f62d1f8f40a9b9d0c6c41ad05e5c76 Gerrit-Change-Number: 9701 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:22:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:22:38 +0000 Subject: Change in osmo-bts[master]: l1_if.c: Move decl of vars used in conditional macro In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9693 ) Change subject: l1_if.c: Move decl of vars used in conditional macro ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec6c28840745e1bd99406b777ea5db66ca1d6fd9 Gerrit-Change-Number: 9693 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 07:22:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:22:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:22:56 +0000 Subject: Change in osmo-bts[master]: sysmo: vty: Add missing include for lchan_deactivate In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9694 ) Change subject: sysmo: vty: Add missing include for lchan_deactivate ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1dba0b08fdb2af199f009842c9abf32e25f74be1 Gerrit-Change-Number: 9694 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 07:22:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:23:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:23:47 +0000 Subject: Change in osmo-bts[master]: l1_if.c: Move decl of vars used in conditional macro In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9693 ) Change subject: l1_if.c: Move decl of vars used in conditional macro ...................................................................... l1_if.c: Move decl of vars used in conditional macro Nowadays, with latest versions of superfemto, those variables are unused. Change-Id: Iec6c28840745e1bd99406b777ea5db66ca1d6fd9 --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 57e2d5c..f1c6602 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1387,11 +1387,8 @@ /* mute/unmute RF time slots */ int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) { - const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 }; struct msgb *msg = sysp_msgb_alloc(); SuperFemto_Prim_t *sysp = msgb_sysprim(msg); - struct gsm_bts_trx *trx = hdl->phy_inst->trx; - int i; LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, %d)\n", mute[0], mute[1], mute[2], mute[3], @@ -1399,6 +1396,9 @@ ); #if SUPERFEMTO_API_VERSION < SUPERFEMTO_API(3,6,0) + const uint8_t unmuted[8] = { 0,0,0,0,0,0,0,0 }; + struct gsm_bts_trx *trx = hdl->phy_inst->trx; + int i; LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); msgb_free(msg); /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ -- To view, visit https://gerrit.osmocom.org/9693 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iec6c28840745e1bd99406b777ea5db66ca1d6fd9 Gerrit-Change-Number: 9693 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:23:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:23:48 +0000 Subject: Change in osmo-bts[master]: sysmo: vty: Add missing include for lchan_deactivate In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9694 ) Change subject: sysmo: vty: Add missing include for lchan_deactivate ...................................................................... sysmo: vty: Add missing include for lchan_deactivate Fixes following compilation warning: osmo-bts/src/osmo-bts-sysmo/sysmobts_vty.c:349:3: warning: implicit declaration of function ?lchan_deactivate? Change-Id: I1dba0b08fdb2af199f009842c9abf32e25f74be1 --- M src/osmo-bts-sysmo/sysmobts_vty.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-sysmo/sysmobts_vty.c b/src/osmo-bts-sysmo/sysmobts_vty.c index 039236f..b105bf4 100644 --- a/src/osmo-bts-sysmo/sysmobts_vty.c +++ b/src/osmo-bts-sysmo/sysmobts_vty.c @@ -44,6 +44,7 @@ #include #include #include +#include #include "femtobts.h" #include "l1_if.h" -- To view, visit https://gerrit.osmocom.org/9694 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1dba0b08fdb2af199f009842c9abf32e25f74be1 Gerrit-Change-Number: 9694 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 07:24:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 07:24:25 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9666 ) Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jun 2018 07:24:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 08:15:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 08:15:31 +0000 Subject: Change in osmo-bsc[master]: move RSL and RR related functions to abis_rsl.[hc] In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9669 ) Change subject: move RSL and RR related functions to abis_rsl.[hc] ...................................................................... Patch Set 3: I'm sorry, but I really don't think its a good idea to mix two completely different protocol layers in one file without a really good explanation. RSL is a protocol of the Avis interface, and RR is a L3 sub-layer used also on Um all the way into the phone. -- To view, visit https://gerrit.osmocom.org/9669 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie8ee334145bf7bc3a601d395ea7ab9b2009b61c7 Gerrit-Change-Number: 9669 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 22 Jun 2018 08:15:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 08:27:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 08:27:06 +0000 Subject: Change in osmo-bsc[master]: add gsm_timers, for Tnnn definitions usable by FSMs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9670 ) Change subject: add gsm_timers, for Tnnn definitions usable by FSMs ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 Gerrit-Change-Number: 9670 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Fri, 22 Jun 2018 08:27:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 09:26:40 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Jun 2018 09:26:40 +0000 Subject: Change in osmo-bts[master]: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9706 Change subject: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 ...................................................................... sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 Fixes following compilation warning: In file included from l1_if.c:32:0: l1_if.c: In function ?l1if_mute_rf?: /include/osmocom/core/utils.h:13:30: error: ?sizeof? on array function parameter ?mute? will return size of ?uint8_t * {aka unsigned char *}? [-Werror=sizeof-array-argument] #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) ^ l1_if.c:1405:29: note: in expansion of macro ?ARRAY_SIZE? if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) { ^~~~~~~~~~ l1_if.c:1388:51: note: declared here int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) ^~~~ In file included from l1_if.c:32:0: /include/osmocom/core/utils.h:13:30: error: ?sizeof? on array function parameter ?mute? will return size of ?uint8_t * {aka unsigned char *}? [-Werror=sizeof-array-argument] #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) ^ l1_if.c:1408:19: note: in expansion of macro ?ARRAY_SIZE? for (i = 0; i < ARRAY_SIZE(mute); ++i) ^~~~~~~~~~ l1_if.c:1388:51: note: declared here int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) ^~~~ Change-Id: Id040aeb35549ddb75072942be0093064a89092a6 --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/06/9706/1 diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index f1c6602..7fa82f2 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1402,10 +1402,10 @@ LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); msgb_free(msg); /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ - if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) { + if (!memcmp(mute, unmuted, ARRAY_SIZE(unmuted))) { bts_update_status(BTS_STATUS_RF_MUTE, mute[0]); oml_mo_rf_lock_chg(&trx->mo, mute, 1); - for (i = 0; i < ARRAY_SIZE(mute); ++i) + for (i = 0; i < ARRAY_SIZE(unmuted); ++i) mute_handle_ts(&trx->ts[i], mute[i]); return 0; } -- To view, visit https://gerrit.osmocom.org/9706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id040aeb35549ddb75072942be0093064a89092a6 Gerrit-Change-Number: 9706 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 09:26:41 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Jun 2018 09:26:41 +0000 Subject: Change in osmo-bts[master]: sysmo: l1if_mute_rf: Declare vars inside ifdef section Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9707 Change subject: sysmo: l1if_mute_rf: Declare vars inside ifdef section ...................................................................... sysmo: l1if_mute_rf: Declare vars inside ifdef section Otherwise sysp variable is unused and compiler triggers a warn. Change-Id: Ie3a3529442a36bb885ef634b8b49ac801bd263da --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 2 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/07/9707/1 diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 7fa82f2..9fde513 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1387,8 +1387,6 @@ /* mute/unmute RF time slots */ int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) { - struct msgb *msg = sysp_msgb_alloc(); - SuperFemto_Prim_t *sysp = msgb_sysprim(msg); LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, %d)\n", mute[0], mute[1], mute[2], mute[3], @@ -1400,7 +1398,6 @@ struct gsm_bts_trx *trx = hdl->phy_inst->trx; int i; LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); - msgb_free(msg); /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ if (!memcmp(mute, unmuted, ARRAY_SIZE(unmuted))) { bts_update_status(BTS_STATUS_RF_MUTE, mute[0]); @@ -1411,6 +1408,8 @@ } return -ENOTSUP; #else + struct msgb *msg = sysp_msgb_alloc(); + SuperFemto_Prim_t *sysp = msgb_sysprim(msg); sysp->id = SuperFemto_PrimId_MuteRfReq; memcpy(sysp->u.muteRfReq.u8Mute, mute, sizeof(sysp->u.muteRfReq.u8Mute)); /* save for later use */ -- To view, visit https://gerrit.osmocom.org/9707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie3a3529442a36bb885ef634b8b49ac801bd263da Gerrit-Change-Number: 9707 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 09:53:00 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Jun 2018 09:53:00 +0000 Subject: Change in osmo-bts[master]: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.... Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9708 Change subject: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build ...................................................................... sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build Change-Id: I4e6d97114289027fbcff00f77cd42db5277a54ab --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/08/9708/1 diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 9fde513..3adb442 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1259,6 +1259,7 @@ #endif } +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,2,0) /* * RevC was the last HW revision without an external * attenuator. Check for that. @@ -1268,13 +1269,13 @@ /* older version doesn't have an attenuator */ return hdl->hw_info.ver_major > 2; } +#endif /* 2.2.0 */ /* activate or de-activate the entire RF-Frontend */ int l1if_activate_rf(struct femtol1_hdl *hdl, int on) { struct msgb *msg = sysp_msgb_alloc(); SuperFemto_Prim_t *sysp = msgb_sysprim(msg); - struct gsm_bts_trx *trx = hdl->phy_inst->trx; if (on) { sysp->id = SuperFemto_PrimId_ActivateRfReq; @@ -1302,6 +1303,7 @@ sysp->u.activateRfReq.rfRx.iClkCor = get_clk_cal(hdl); #endif /* API 2.4.0 */ #if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,2,0) + struct gsm_bts_trx *trx = hdl->phy_inst->trx; if (has_external_atten(hdl)) { LOGP(DL1C, LOGL_INFO, "Using external attenuator.\n"); sysp->u.activateRfReq.rfTrx.u8UseExtAtten = 1; @@ -1426,7 +1428,6 @@ SuperFemto_Prim_t *sysp = msgb_sysprim(resp); SuperFemto_SystemInfoCnf_t *sic = &sysp->u.systemInfoCnf; struct femtol1_hdl *fl1h = trx_femtol1_hdl(trx); - int rc; fl1h->hw_info.dsp_version[0] = sic->dspVersion.major; fl1h->hw_info.dsp_version[1] = sic->dspVersion.minor; @@ -1469,7 +1470,7 @@ #if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) /* load calibration tables (if we know their path) */ - rc = calib_load(fl1h); + int rc = calib_load(fl1h); if (rc < 0) LOGP(DL1C, LOGL_ERROR, "Operating without calibration; " "unable to load tables!\n"); -- To view, visit https://gerrit.osmocom.org/9708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4e6d97114289027fbcff00f77cd42db5277a54ab Gerrit-Change-Number: 9708 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 09:53:00 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Jun 2018 09:53:00 +0000 Subject: Change in osmo-bts[master]: sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobt... Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9709 Change subject: sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build ...................................................................... sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build Change-Id: I853ff6d3562c5852bff58a07e7c23d49329d9a4f --- M src/osmo-bts-sysmo/calib_file.c 1 file changed, 19 insertions(+), 19 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/09/9709/1 diff --git a/src/osmo-bts-sysmo/calib_file.c b/src/osmo-bts-sysmo/calib_file.c index 8cb09d9..2f723dd 100644 --- a/src/osmo-bts-sysmo/calib_file.c +++ b/src/osmo-bts-sysmo/calib_file.c @@ -111,6 +111,7 @@ }, }; +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) static const unsigned int arrsize_by_band[] = { [GsmL1_FreqBand_850] = 124, [GsmL1_FreqBand_900] = 194, @@ -118,21 +119,6 @@ [GsmL1_FreqBand_1900] = 299 }; -/* determine next calibration file index based on supported bands */ -static int next_calib_file_idx(uint32_t band_mask, int last_idx) -{ - int i; - - for (i = last_idx+1; i < ARRAY_SIZE(calib_files); i++) { - int band = band_femto2osmo(calib_files[i].band); - if (band < 0) - continue; - if (band_mask & band) - return i; - } - return -1; -} - static float read_float(FILE *in) { int rc; @@ -168,7 +154,6 @@ extern const uint8_t fixup_macs[95][6]; - static void determine_fixup(struct femtol1_hdl *fl1h) { uint8_t macaddr[6]; @@ -212,6 +197,7 @@ return fl1h->fixup_needed == FIXUP_NEEDED; } +#endif /* API 2.4.0 */ static void calib_fixup_rx(struct femtol1_hdl *fl1h, SuperFemto_Prim_t *prim) { @@ -228,7 +214,6 @@ { FILE *in; char fname[PATH_MAX]; - int i; fname[0] = '\0'; snprintf(fname, sizeof(fname)-1, "%s/%s", path, desc->fname); @@ -242,6 +227,7 @@ } #if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) + int i; if (desc->rx) { SuperFemto_SetRxCalibTblReq_t *rx = &prim->u.setRxCalibTblReq; memset(rx, 0, sizeof(*rx)); @@ -296,10 +282,9 @@ static int calib_eeprom_read(const struct calib_file_desc *desc, SuperFemto_Prim_t *prim) { +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) eeprom_Error_t eerr; int i; - -#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) if (desc->rx) { SuperFemto_SetRxCalibTblReq_t *rx = &prim->u.setRxCalibTblReq; eeprom_RxCal_t rx_cal; @@ -379,6 +364,21 @@ return 0; } +/* determine next calibration file index based on supported bands */ +static int next_calib_file_idx(uint32_t band_mask, int last_idx) +{ + int i; + + for (i = last_idx+1; i < ARRAY_SIZE(calib_files); i++) { + int band = band_femto2osmo(calib_files[i].band); + if (band < 0) + continue; + if (band_mask & band) + return i; + } + return -1; +} + /* iteratively download the calibration data into the L1 */ static int calib_send_compl_cb(struct gsm_bts_trx *trx, struct msgb *l1_msg, -- To view, visit https://gerrit.osmocom.org/9709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I853ff6d3562c5852bff58a07e7c23d49329d9a4f Gerrit-Change-Number: 9709 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 10:14:33 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Jun 2018 10:14:33 +0000 Subject: Change in osmo-gsm-tester[master]: ggsn: Bind VTY and CTRL ifaces to assigned ip addr Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9710 Change subject: ggsn: Bind VTY and CTRL ifaces to assigned ip addr ...................................................................... ggsn: Bind VTY and CTRL ifaces to assigned ip addr Change-Id: I26735a21cd53183dfe0a75e5bd24954d583c354f --- M src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/10/9710/1 diff --git a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl index 1692db6..3f2d0e7 100644 --- a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl @@ -34,7 +34,9 @@ stats interval 5 ! line vty - no login + bind ${ggsn.ip_address.addr} +ctrl + bind ${ggsn.ip_address.addr} ! ggsn ggsn0 gtp state-dir ${ggsn.statedir} -- To view, visit https://gerrit.osmocom.org/9710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I26735a21cd53183dfe0a75e5bd24954d583c354f Gerrit-Change-Number: 9710 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 11:08:43 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 11:08:43 +0000 Subject: Change in osmo-bts[master]: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9706 ) Change subject: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id040aeb35549ddb75072942be0093064a89092a6 Gerrit-Change-Number: 9706 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 11:08:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 11:10:40 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 11:10:40 +0000 Subject: Change in osmo-bts[master]: sysmo: l1if_mute_rf: Declare vars inside ifdef section In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9707 ) Change subject: sysmo: l1if_mute_rf: Declare vars inside ifdef section ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3a3529442a36bb885ef634b8b49ac801bd263da Gerrit-Change-Number: 9707 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 11:10:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 11:11:32 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 11:11:32 +0000 Subject: Change in osmo-bts[master]: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.... In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9708 ) Change subject: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4e6d97114289027fbcff00f77cd42db5277a54ab Gerrit-Change-Number: 9708 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 11:11:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 12:51:19 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 12:51:19 +0000 Subject: Change in osmo-msc[master]: libmsc: move L3 call-control to separate C file (gsm_04_08_cc.c) In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9705 ) Change subject: libmsc: move L3 call-control to separate C file (gsm_04_08_cc.c) ...................................................................... Patch Set 1: Code-Review+1 Great change! I was always thinking about this separation while working on GSM 09.11... -- To view, visit https://gerrit.osmocom.org/9705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idb8dd7a8d9d8b4a28c492f12da3cc3305b695cca Gerrit-Change-Number: 9705 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 12:51:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 12:58:26 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 12:58:26 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9704 ) Change subject: octphy: add support for 16x oversampling mode ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9704/1/include/osmo-bts/phy_link.h File include/osmo-bts/phy_link.h: https://gerrit.osmocom.org/#/c/9704/1/include/osmo-bts/phy_link.h at 77 PS1, Line 77: uint32_t over_sample_16x; It seems this variable is going to be used as a flag (0 or 1), so do we really need 4-bytes to store such big range?? I think 'bool' is more suitable here. -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 12:58:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:00:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:00:40 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9704 ) Change subject: octphy: add support for 16x oversampling mode ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9704/1/include/osmo-bts/phy_link.h File include/osmo-bts/phy_link.h: https://gerrit.osmocom.org/#/c/9704/1/include/osmo-bts/phy_link.h at 77 PS1, Line 77: uint32_t over_sample_16x; > It seems this variable is going to be used as a flag (0 or 1), [?] a bool will also need 32bit. but I agree, it would be better style to indicate it's just a flag. -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 14:00:40 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:01:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:01:32 +0000 Subject: Change in osmo-gsm-tester[master]: ggsn: Bind VTY and CTRL ifaces to assigned ip addr In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9710 ) Change subject: ggsn: Bind VTY and CTRL ifaces to assigned ip addr ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I26735a21cd53183dfe0a75e5bd24954d583c354f Gerrit-Change-Number: 9710 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jun 2018 14:01:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:02:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:02:10 +0000 Subject: Change in osmo-bts[master]: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9706 ) Change subject: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id040aeb35549ddb75072942be0093064a89092a6 Gerrit-Change-Number: 9706 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 14:02:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:02:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:02:29 +0000 Subject: Change in osmo-bts[master]: sysmo: l1if_mute_rf: Declare vars inside ifdef section In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9707 ) Change subject: sysmo: l1if_mute_rf: Declare vars inside ifdef section ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3a3529442a36bb885ef634b8b49ac801bd263da Gerrit-Change-Number: 9707 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 14:02:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:02:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:02:46 +0000 Subject: Change in osmo-bts[master]: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9708 ) Change subject: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4e6d97114289027fbcff00f77cd42db5277a54ab Gerrit-Change-Number: 9708 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 14:02:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:02:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:02:51 +0000 Subject: Change in osmo-bts[master]: sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobt... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9709 ) Change subject: sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I853ff6d3562c5852bff58a07e7c23d49329d9a4f Gerrit-Change-Number: 9709 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jun 2018 14:02:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:03:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:03:00 +0000 Subject: Change in osmo-bts[master]: jenkins_*.sh: add --enable-werror to configure flags In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9536 ) Change subject: jenkins_*.sh: add --enable-werror to configure flags ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 Gerrit-Change-Number: 9536 Gerrit-PatchSet: 4 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 14:03:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:03:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:03:01 +0000 Subject: Change in osmo-bts[master]: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9706 ) Change subject: sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 ...................................................................... sysmo: Fix memcmp in RF-MUTE.req for superfemto < 3.6.0 Fixes following compilation warning: In file included from l1_if.c:32:0: l1_if.c: In function ?l1if_mute_rf?: /include/osmocom/core/utils.h:13:30: error: ?sizeof? on array function parameter ?mute? will return size of ?uint8_t * {aka unsigned char *}? [-Werror=sizeof-array-argument] #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) ^ l1_if.c:1405:29: note: in expansion of macro ?ARRAY_SIZE? if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) { ^~~~~~~~~~ l1_if.c:1388:51: note: declared here int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) ^~~~ In file included from l1_if.c:32:0: /include/osmocom/core/utils.h:13:30: error: ?sizeof? on array function parameter ?mute? will return size of ?uint8_t * {aka unsigned char *}? [-Werror=sizeof-array-argument] #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) ^ l1_if.c:1408:19: note: in expansion of macro ?ARRAY_SIZE? for (i = 0; i < ARRAY_SIZE(mute); ++i) ^~~~~~~~~~ l1_if.c:1388:51: note: declared here int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) ^~~~ Change-Id: Id040aeb35549ddb75072942be0093064a89092a6 --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index f1c6602..7fa82f2 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1402,10 +1402,10 @@ LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); msgb_free(msg); /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ - if (!memcmp(mute, unmuted, ARRAY_SIZE(mute))) { + if (!memcmp(mute, unmuted, ARRAY_SIZE(unmuted))) { bts_update_status(BTS_STATUS_RF_MUTE, mute[0]); oml_mo_rf_lock_chg(&trx->mo, mute, 1); - for (i = 0; i < ARRAY_SIZE(mute); ++i) + for (i = 0; i < ARRAY_SIZE(unmuted); ++i) mute_handle_ts(&trx->ts[i], mute[i]); return 0; } -- To view, visit https://gerrit.osmocom.org/9706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id040aeb35549ddb75072942be0093064a89092a6 Gerrit-Change-Number: 9706 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:03:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:03:01 +0000 Subject: Change in osmo-bts[master]: sysmo: l1if_mute_rf: Declare vars inside ifdef section In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9707 ) Change subject: sysmo: l1if_mute_rf: Declare vars inside ifdef section ...................................................................... sysmo: l1if_mute_rf: Declare vars inside ifdef section Otherwise sysp variable is unused and compiler triggers a warn. Change-Id: Ie3a3529442a36bb885ef634b8b49ac801bd263da --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 2 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 7fa82f2..9fde513 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1387,8 +1387,6 @@ /* mute/unmute RF time slots */ int l1if_mute_rf(struct femtol1_hdl *hdl, uint8_t mute[8], l1if_compl_cb *cb) { - struct msgb *msg = sysp_msgb_alloc(); - SuperFemto_Prim_t *sysp = msgb_sysprim(msg); LOGP(DL1C, LOGL_INFO, "Tx RF-MUTE.req (%d, %d, %d, %d, %d, %d, %d, %d)\n", mute[0], mute[1], mute[2], mute[3], @@ -1400,7 +1398,6 @@ struct gsm_bts_trx *trx = hdl->phy_inst->trx; int i; LOGP(DL1C, LOGL_ERROR, "RF-MUTE.req not supported by SuperFemto\n"); - msgb_free(msg); /* always acknowledge an un-MUTE (which is a no-op if MUTE is not supported */ if (!memcmp(mute, unmuted, ARRAY_SIZE(unmuted))) { bts_update_status(BTS_STATUS_RF_MUTE, mute[0]); @@ -1411,6 +1408,8 @@ } return -ENOTSUP; #else + struct msgb *msg = sysp_msgb_alloc(); + SuperFemto_Prim_t *sysp = msgb_sysprim(msg); sysp->id = SuperFemto_PrimId_MuteRfReq; memcpy(sysp->u.muteRfReq.u8Mute, mute, sizeof(sysp->u.muteRfReq.u8Mute)); /* save for later use */ -- To view, visit https://gerrit.osmocom.org/9707 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie3a3529442a36bb885ef634b8b49ac801bd263da Gerrit-Change-Number: 9707 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:03:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:03:02 +0000 Subject: Change in osmo-bts[master]: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9708 ) Change subject: sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build ...................................................................... sysmo: l1_if.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build Change-Id: I4e6d97114289027fbcff00f77cd42db5277a54ab --- M src/osmo-bts-sysmo/l1_if.c 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-sysmo/l1_if.c b/src/osmo-bts-sysmo/l1_if.c index 9fde513..3adb442 100644 --- a/src/osmo-bts-sysmo/l1_if.c +++ b/src/osmo-bts-sysmo/l1_if.c @@ -1259,6 +1259,7 @@ #endif } +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,2,0) /* * RevC was the last HW revision without an external * attenuator. Check for that. @@ -1268,13 +1269,13 @@ /* older version doesn't have an attenuator */ return hdl->hw_info.ver_major > 2; } +#endif /* 2.2.0 */ /* activate or de-activate the entire RF-Frontend */ int l1if_activate_rf(struct femtol1_hdl *hdl, int on) { struct msgb *msg = sysp_msgb_alloc(); SuperFemto_Prim_t *sysp = msgb_sysprim(msg); - struct gsm_bts_trx *trx = hdl->phy_inst->trx; if (on) { sysp->id = SuperFemto_PrimId_ActivateRfReq; @@ -1302,6 +1303,7 @@ sysp->u.activateRfReq.rfRx.iClkCor = get_clk_cal(hdl); #endif /* API 2.4.0 */ #if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,2,0) + struct gsm_bts_trx *trx = hdl->phy_inst->trx; if (has_external_atten(hdl)) { LOGP(DL1C, LOGL_INFO, "Using external attenuator.\n"); sysp->u.activateRfReq.rfTrx.u8UseExtAtten = 1; @@ -1426,7 +1428,6 @@ SuperFemto_Prim_t *sysp = msgb_sysprim(resp); SuperFemto_SystemInfoCnf_t *sic = &sysp->u.systemInfoCnf; struct femtol1_hdl *fl1h = trx_femtol1_hdl(trx); - int rc; fl1h->hw_info.dsp_version[0] = sic->dspVersion.major; fl1h->hw_info.dsp_version[1] = sic->dspVersion.minor; @@ -1469,7 +1470,7 @@ #if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) /* load calibration tables (if we know their path) */ - rc = calib_load(fl1h); + int rc = calib_load(fl1h); if (rc < 0) LOGP(DL1C, LOGL_ERROR, "Operating without calibration; " "unable to load tables!\n"); -- To view, visit https://gerrit.osmocom.org/9708 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4e6d97114289027fbcff00f77cd42db5277a54ab Gerrit-Change-Number: 9708 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:03:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:03:02 +0000 Subject: Change in osmo-bts[master]: sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobt... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9709 ) Change subject: sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build ...................................................................... sysmo: calib_file.c: Avoid decl of unused vars and funcs with femtobts_v2.7 build Change-Id: I853ff6d3562c5852bff58a07e7c23d49329d9a4f --- M src/osmo-bts-sysmo/calib_file.c 1 file changed, 19 insertions(+), 19 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-sysmo/calib_file.c b/src/osmo-bts-sysmo/calib_file.c index 8cb09d9..2f723dd 100644 --- a/src/osmo-bts-sysmo/calib_file.c +++ b/src/osmo-bts-sysmo/calib_file.c @@ -111,6 +111,7 @@ }, }; +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) static const unsigned int arrsize_by_band[] = { [GsmL1_FreqBand_850] = 124, [GsmL1_FreqBand_900] = 194, @@ -118,21 +119,6 @@ [GsmL1_FreqBand_1900] = 299 }; -/* determine next calibration file index based on supported bands */ -static int next_calib_file_idx(uint32_t band_mask, int last_idx) -{ - int i; - - for (i = last_idx+1; i < ARRAY_SIZE(calib_files); i++) { - int band = band_femto2osmo(calib_files[i].band); - if (band < 0) - continue; - if (band_mask & band) - return i; - } - return -1; -} - static float read_float(FILE *in) { int rc; @@ -168,7 +154,6 @@ extern const uint8_t fixup_macs[95][6]; - static void determine_fixup(struct femtol1_hdl *fl1h) { uint8_t macaddr[6]; @@ -212,6 +197,7 @@ return fl1h->fixup_needed == FIXUP_NEEDED; } +#endif /* API 2.4.0 */ static void calib_fixup_rx(struct femtol1_hdl *fl1h, SuperFemto_Prim_t *prim) { @@ -228,7 +214,6 @@ { FILE *in; char fname[PATH_MAX]; - int i; fname[0] = '\0'; snprintf(fname, sizeof(fname)-1, "%s/%s", path, desc->fname); @@ -242,6 +227,7 @@ } #if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) + int i; if (desc->rx) { SuperFemto_SetRxCalibTblReq_t *rx = &prim->u.setRxCalibTblReq; memset(rx, 0, sizeof(*rx)); @@ -296,10 +282,9 @@ static int calib_eeprom_read(const struct calib_file_desc *desc, SuperFemto_Prim_t *prim) { +#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) eeprom_Error_t eerr; int i; - -#if SUPERFEMTO_API_VERSION >= SUPERFEMTO_API(2,4,0) if (desc->rx) { SuperFemto_SetRxCalibTblReq_t *rx = &prim->u.setRxCalibTblReq; eeprom_RxCal_t rx_cal; @@ -379,6 +364,21 @@ return 0; } +/* determine next calibration file index based on supported bands */ +static int next_calib_file_idx(uint32_t band_mask, int last_idx) +{ + int i; + + for (i = last_idx+1; i < ARRAY_SIZE(calib_files); i++) { + int band = band_femto2osmo(calib_files[i].band); + if (band < 0) + continue; + if (band_mask & band) + return i; + } + return -1; +} + /* iteratively download the calibration data into the L1 */ static int calib_send_compl_cb(struct gsm_bts_trx *trx, struct msgb *l1_msg, -- To view, visit https://gerrit.osmocom.org/9709 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I853ff6d3562c5852bff58a07e7c23d49329d9a4f Gerrit-Change-Number: 9709 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 14:03:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 14:03:03 +0000 Subject: Change in osmo-bts[master]: jenkins_*.sh: add --enable-werror to configure flags In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9536 ) Change subject: jenkins_*.sh: add --enable-werror to configure flags ...................................................................... jenkins_*.sh: add --enable-werror to configure flags The flag is enabled for all BTS flavour except for lc15, which still contain several compilation warnings (fixes submitted to gerrit, but not merged since no contributor is testing lc15 nowadays). Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 --- M contrib/jenkins_bts_trx.sh M contrib/jenkins_lc15.sh M contrib/jenkins_oct.sh M contrib/jenkins_oct_and_bts_trx.sh M contrib/jenkins_sysmobts.sh 5 files changed, 20 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve diff --git a/contrib/jenkins_bts_trx.sh b/contrib/jenkins_bts_trx.sh index 3e3d8d3..1b723e6 100755 --- a/contrib/jenkins_bts_trx.sh +++ b/contrib/jenkins_bts_trx.sh @@ -14,9 +14,10 @@ cd "$deps" configure_flags="\ + --enable-sanitize \ + --enable-werror \ --with-osmo-pcu=$deps/osmo-pcu/include \ --enable-trx \ - --enable-sanitize \ " build_bts "osmo-bts-trx" "$configure_flags" diff --git a/contrib/jenkins_lc15.sh b/contrib/jenkins_lc15.sh index 38c1f33..c7d62c9 100755 --- a/contrib/jenkins_lc15.sh +++ b/contrib/jenkins_lc15.sh @@ -14,7 +14,11 @@ cd "$deps" osmo-layer1-headers.sh lc15 "$FIRMWARE_VERSION" -configure_flags="--enable-sanitize --with-litecell15=$deps/layer1-headers/inc/ --enable-litecell15" +configure_flags="\ + --enable-sanitize \ + --with-litecell15=$deps/layer1-headers/inc/ \ + --enable-litecell15 \ + " build_bts "osmo-bts-lc15" "$configure_flags" diff --git a/contrib/jenkins_oct.sh b/contrib/jenkins_oct.sh index efbd368..bd57dd1 100755 --- a/contrib/jenkins_oct.sh +++ b/contrib/jenkins_oct.sh @@ -14,7 +14,12 @@ cd "$deps" osmo-layer1-headers.sh oct "$FIRMWARE_VERSION" -configure_flags="--enable-sanitize --with-octsdr-2g=$deps/layer1-headers/ --enable-octphy" +configure_flags="\ + --enable-sanitize \ + --enable-werror \ + --with-octsdr-2g=$deps/layer1-headers/ \ + --enable-octphy \ + " build_bts "osmo-bts-octphy" "$configure_flags" diff --git a/contrib/jenkins_oct_and_bts_trx.sh b/contrib/jenkins_oct_and_bts_trx.sh index f68a9d3..049f5f7 100755 --- a/contrib/jenkins_oct_and_bts_trx.sh +++ b/contrib/jenkins_oct_and_bts_trx.sh @@ -16,6 +16,7 @@ osmo-layer1-headers.sh oct "$FIRMWARE_VERSION" configure_flags="\ + --enable-werror \ --with-osmo-pcu=$deps/osmo-pcu/include \ --with-octsdr-2g=$deps/layer1-headers/ \ --enable-octphy \ diff --git a/contrib/jenkins_sysmobts.sh b/contrib/jenkins_sysmobts.sh index 7488419..d0d05ae 100755 --- a/contrib/jenkins_sysmobts.sh +++ b/contrib/jenkins_sysmobts.sh @@ -16,7 +16,12 @@ mkdir -p "$inst/include/sysmocom/femtobts" ln -s $deps/layer1-headers/include/* "$inst/include/sysmocom/femtobts/" -configure_flags="--enable-sanitize --enable-sysmocom-bts --with-sysmobts=$inst/include/" +configure_flags="\ + --enable-sanitize \ + --enable-werror \ + --enable-sysmocom-bts \ + --with-sysmobts=$inst/include/ \ + " # This will not work for the femtobts if [ $FIRMWARE_VERSION != "femtobts_v2.7" ]; then -- To view, visit https://gerrit.osmocom.org/9536 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib65056633697dafa63831fc2a480b798df550db6 Gerrit-Change-Number: 9536 Gerrit-PatchSet: 4 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 22 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 22 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#162?= In-Reply-To: <1455824668.262.1529593807110.JavaMail.jenkins@jenkins.osmocom.org> References: <1455824668.262.1529593807110.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1941225446.276.1529680206994.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.74 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Jun 22 15:20:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Jun 2018 15:20:14 +0000 Subject: Change in osmo-bsc[master]: fix / clarify rsl dtap cache In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9668 ) Change subject: fix / clarify rsl dtap cache ...................................................................... Patch Set 3: (3 comments) as all RSL messages at all time now seem to pass thorugh some of the code, the logging ("DHO") will need to be reconsidered/modified. https://gerrit.osmocom.org/#/c/9668/3/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/9668/3/include/osmocom/bsc/gsm_data.h at 123 PS3, Line 123: struct llist_head dtap_cache; unrelated to this patch: I think "cache" is a misnomer. It' s simply a queue. A "cache" is something you keep for subsequent lookups, not simply something you're queueing. https://gerrit.osmocom.org/#/c/9668/3/src/osmo-bsc/bsc_subscr_conn_fsm.c File src/osmo-bsc/bsc_subscr_conn_fsm.c: https://gerrit.osmocom.org/#/c/9668/3/src/osmo-bsc/bsc_subscr_conn_fsm.c at 1125 PS3, Line 1125: 23 no #define? 23 seems like a lot, btw. https://gerrit.osmocom.org/#/c/9668/3/src/osmo-bsc/bsc_subscr_conn_fsm.c at 1126 PS3, Line 1126: DHO why do we log this in DHO, if it's now a generic functionality? -- To view, visit https://gerrit.osmocom.org/9668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 Gerrit-Change-Number: 9668 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 22 Jun 2018 15:20:14 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 22 20:04:53 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:04:53 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b2d567d7233_6a7486468828074b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 220s] make[3]: Nothing to be done for 'install-exec-am'. [ 220s] make[3]: Nothing to be done for 'install-data-am'. [ 220s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 220s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 220s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 220s] dh_install [ 220s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 220s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 220s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 220s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 220s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 220s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 220s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 220s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 220s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 220s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 220s] dh_install: missing files, aborting [ 220s] debian/rules:6: recipe for target 'binary' failed [ 220s] make: *** [binary] Error 2 [ 220s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 220s] [ 220s] lamb07 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:04:20 UTC 2018. [ 220s] [ 220s] ### VM INTERACTION START ### [ 223s] [ 214.046709] reboot: Power down [ 224s] ### VM INTERACTION END ### [ 224s] [ 224s] lamb07 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:04:24 UTC 2018. [ 224s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 22 20:04:53 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:04:53 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b2d567c4dfc2_6a7486468828064e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 192s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 192s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 192s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 192s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 192s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 192s] make[3]: Nothing to be done for 'install-exec-am'. [ 192s] make[3]: Nothing to be done for 'install-data-am'. [ 192s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 192s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 192s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 192s] dh_install [ 192s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 192s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 192s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 192s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 192s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 192s] dh_install: missing files, aborting [ 192s] debian/rules:6: recipe for target 'binary' failed [ 192s] make: *** [binary] Error 2 [ 192s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 192s] [ 192s] lamb17 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:04:14 UTC 2018. [ 192s] [ 192s] ### VM INTERACTION START ### [ 195s] [ 187.586609] reboot: Power down [ 195s] ### VM INTERACTION END ### [ 195s] [ 195s] lamb17 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:04:17 UTC 2018. [ 195s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 22 20:04:53 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:04:53 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b2d567bf02d4_6a748646882805e4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/i586 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 211s] make[3]: Nothing to be done for 'install-exec-am'. [ 211s] make[3]: Nothing to be done for 'install-data-am'. [ 211s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 211s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 211s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 211s] dh_install [ 211s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 211s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 211s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 211s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 211s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 211s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 211s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 211s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 211s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 211s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 211s] dh_install: missing files, aborting [ 211s] debian/rules:6: recipe for target 'binary' failed [ 211s] make: *** [binary] Error 2 [ 211s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 211s] [ 211s] lamb07 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:04:10 UTC 2018. [ 211s] [ 211s] ### VM INTERACTION START ### [ 214s] [ 204.335899] reboot: Power down [ 214s] ### VM INTERACTION END ### [ 214s] [ 214s] lamb07 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:04:14 UTC 2018. [ 214s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 22 20:06:53 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:06:53 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b2d56f539ade_6a748646882813c4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 197s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 197s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 197s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 197s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 197s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 197s] make[3]: Nothing to be done for 'install-exec-am'. [ 197s] make[3]: Nothing to be done for 'install-data-am'. [ 197s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 197s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 197s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 197s] dh_install [ 198s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 198s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 198s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 198s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 198s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 198s] dh_install: missing files, aborting [ 198s] debian/rules:6: recipe for target 'binary' failed [ 198s] make: *** [binary] Error 2 [ 198s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 198s] [ 198s] lamb17 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:06:13 UTC 2018. [ 198s] [ 198s] ### VM INTERACTION START ### [ 201s] [ 192.175708] reboot: Power down [ 201s] ### VM INTERACTION END ### [ 201s] [ 201s] lamb17 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:06:17 UTC 2018. [ 201s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 22 20:09:26 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:09:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b2d578d696db_6a74864688281842@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 150s] make[3]: Nothing to be done for 'install-exec-am'. [ 150s] make[3]: Nothing to be done for 'install-data-am'. [ 150s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 150s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 150s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 150s] dh_install [ 150s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 150s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 150s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 150s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 150s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 150s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 150s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 150s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 150s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 150s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 150s] dh_install: missing files, aborting [ 150s] debian/rules:6: recipe for target 'binary' failed [ 150s] make: *** [binary] Error 2 [ 150s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 150s] [ 150s] build71 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:08:51 UTC 2018. [ 150s] [ 150s] ### VM INTERACTION START ### [ 153s] [ 146.417499] reboot: Power down [ 154s] ### VM INTERACTION END ### [ 154s] [ 154s] build71 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:08:55 UTC 2018. [ 154s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 22 20:10:35 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:10:35 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b2d57c9c3349_6a74864688282154@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 208s] dh_install [ 208s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 208s] [ 208s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 208s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 208s] [ 208s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 208s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 208s] [ 208s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 208s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 208s] [ 208s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 208s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 208s] [ 208s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 208s] dh_install: missing files, aborting [ 208s] debian/rules:6: recipe for target 'binary' failed [ 208s] make: *** [binary] Error 25 [ 208s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 208s] [ 208s] lamb12 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:10:01 UTC 2018. [ 208s] [ 208s] ### VM INTERACTION START ### [ 211s] [ 202.091498] reboot: Power down [ 211s] ### VM INTERACTION END ### [ 211s] [ 211s] lamb12 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:10:05 UTC 2018. [ 211s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 22 20:11:26 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:11:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b2d580583894_6a748646882826ec@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 263s] dh_install [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 263s] [ 263s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 263s] [ 263s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 263s] [ 263s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 263s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 263s] [ 263s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 263s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 263s] [ 263s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 263s] dh_install: missing files, aborting [ 263s] debian/rules:6: recipe for target 'binary' failed [ 263s] make: *** [binary] Error 25 [ 263s] dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2 [ 263s] [ 263s] lamb10 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:10:58 UTC 2018. [ 263s] [ 263s] ### VM INTERACTION START ### [ 266s] [ 256.095587] reboot: Power down [ 266s] ### VM INTERACTION END ### [ 266s] [ 266s] lamb10 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:11:02 UTC 2018. [ 266s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Fri Jun 22 20:40:39 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:40:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b2d5ed25f20f_6a748646882904e2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 387s] make[3]: Nothing to be done for 'install-data-am'. [ 387s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 387s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 387s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 387s] dh_install [ 387s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 387s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 387s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 387s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 387s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 387s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 387s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 387s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 387s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 387s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 387s] dh_install: missing files, aborting [ 387s] debian/rules:6: recipe for target 'binary' failed [ 387s] make: *** [binary] Error 2 [ 387s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 387s] [ 387s] armbuild15 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:02:26 UTC 2018. [ 387s] [ 387s] ### VM INTERACTION START ### [ 390s] [ 356.285339] sysrq: SysRq : Power Off [ 390s] [ 356.287354] reboot: Power down [ 391s] ### VM INTERACTION END ### [ 391s] [ 391s] armbuild15 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:02:29 UTC 2018. [ 391s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jun 22 20:52:20 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 20:52:20 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9711 Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions This change introduces some new rate counters for call-independent SS/USSD connections. As OsmoMSC doesn't handle the messages itself, and only responsible for dispatching messages between both A and GSUP interfaces, the following is taken into account: - MS-initiated and network-initiated requests to establish a NC SS/USSD session (transaction) - "nc_ss:m{o|t}_requests"; - successfully established MS-initiated and network-initiated SS/USSD sessions (transactions) - "nc_ss:m{o|t}_established". Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 --- M include/osmocom/msc/gsm_data.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c 3 files changed, 38 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/11/9711/1 diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h index 73047ee..3af619d 100644 --- a/include/osmocom/msc/gsm_data.h +++ b/include/osmocom/msc/gsm_data.h @@ -200,6 +200,10 @@ MSC_CTR_CALL_ACTIVE, MSC_CTR_CALL_COMPLETE, MSC_CTR_CALL_INCOMPLETE, + MSC_CTR_NC_SS_MO_REQUESTS, + MSC_CTR_NC_SS_MO_ESTABLISHED, + MSC_CTR_NC_SS_MT_REQUESTS, + MSC_CTR_NC_SS_MT_ESTABLISHED, }; static const struct rate_ctr_desc msc_ctr_description[] = { @@ -227,6 +231,10 @@ [MSC_CTR_CALL_ACTIVE] = {"call:active", "Count total amount of calls that ever reached active state."}, [MSC_CTR_CALL_COMPLETE] = {"call:complete", "Count total amount of calls which got terminated by disconnect req or ind after reaching active state."}, [MSC_CTR_CALL_INCOMPLETE] = {"call:incomplete", "Count total amount of call which got terminated by any other reason after reaching active state."}, + [MSC_CTR_NC_SS_MO_REQUESTS] = {"nc_ss:mo_requests", "Received MS-initiated call independent SS/USSD requests."}, + [MSC_CTR_NC_SS_MO_ESTABLISHED] = {"nc_ss:mo_established", "Established MS-initiated call independent SS/USSD sessions."}, + [MSC_CTR_NC_SS_MT_REQUESTS] = {"nc_ss:mt_requests", "Received network-initiated call independent SS/USSD requests."}, + [MSC_CTR_NC_SS_MT_ESTABLISHED] = {"nc_ss:mt_established", "Established network-initiated call independent SS/USSD sessions."}, }; static const struct rate_ctr_group_desc msc_ctrg_desc = { diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index e7bdcf5..a04b1f9 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -30,6 +30,7 @@ #include #include +#include #include #include #include @@ -73,6 +74,9 @@ /* Reuse existing transaction, or create a new one */ trans = trans_find_by_id(conn, pdisc, tid); if (!trans) { + /* Count MS-initiated attempts to establish a NC SS/USSD session */ + rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS]); + /** * According to GSM TS 04.80, section 2.4.2 "Register * (mobile station to network direction)", the REGISTER @@ -184,6 +188,10 @@ else msc_subscr_conn_communicating(conn); + /* Count established MS-initiated NC SS/USSD sessions */ + if (msg_type == GSM0480_MTYPE_REGISTER) + rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED]); + return 0; error: @@ -232,6 +240,9 @@ /* Sent to the MS, give ownership of ss_msg */ msc_tx_dtap(transt->conn, ss_msg); transt->ss.msg = NULL; + + /* Count established network-initiated NC SS/USSD sessions */ + rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED]); break; case GSM_PAGING_EXPIRED: case GSM_PAGING_BUSY: @@ -377,6 +388,9 @@ /* Attempt to find DTAP-transaction */ trans = trans_find_by_callref(net, gsup_msg->session_id); if (!trans) { + /* Count network-initiated attempts to establish a NC SS/USSD session */ + rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS]); + /* Attempt to establish a new transaction */ trans = establish_nc_ss_trans(net, vsub, gsup_msg); if (!trans) { @@ -459,6 +473,10 @@ if (trans_end) trans_free(trans); + /* Count established network-initiated NC SS/USSD sessions */ + if (gsup_msg->session_state == OSMO_GSUP_SESSION_STATE_BEGIN) + rate_ctr_inc(&net->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED]); + vlr_subscr_put(vsub); return 0; } diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index d10028e..3cbb001 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -1217,6 +1217,18 @@ gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP].current, gsmnet->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT].current, VTY_NEWLINE); + vty_out(vty, "MO NC SS/USSD : %lu requests, %lu established, %lu rejected%s", + gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS].current, + gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED].current, + gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_REQUESTS].current + - gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MO_ESTABLISHED].current, + VTY_NEWLINE); + vty_out(vty, "MT NC SS/USSD : %lu requests, %lu established, %lu rejected%s", + gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS].current, + gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED].current, + gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_REQUESTS].current + - gsmnet->msc_ctrs->ctr[MSC_CTR_NC_SS_MT_ESTABLISHED].current, + VTY_NEWLINE); return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Fri Jun 22 20:52:22 2018 From: admin at opensuse.org (OBS Notification) Date: Fri, 22 Jun 2018 20:52:22 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b2d619f138f7_6a7486468829521a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 313s] make[3]: Nothing to be done for 'install-exec-am'. [ 313s] make[3]: Nothing to be done for 'install-data-am'. [ 313s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 313s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 313s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 313s] dh_install [ 313s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 313s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 313s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 313s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 313s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 313s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 313s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 313s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 313s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 313s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 313s] dh_install: missing files, aborting [ 313s] debian/rules:6: recipe for target 'binary' failed [ 313s] make: *** [binary] Error 2 [ 313s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 313s] [ 313s] cloud112 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:51:40 UTC 2018. [ 313s] [ 313s] ### VM INTERACTION START ### [ 316s] [ 293.460033] reboot: Power down [ 317s] ### VM INTERACTION END ### [ 317s] [ 317s] cloud112 failed "build osmo-trx_0.4.0.dsc" at Fri Jun 22 20:51:44 UTC 2018. [ 317s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Jun 22 21:16:13 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 21:16:13 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: properly handle MS-initiated release In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9703 ) Change subject: libmsc/gsm_09_11.c: properly handle MS-initiated release ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I76fc277bf9db614a97824b1541cd5bb75aa3e29d Gerrit-Change-Number: 9703 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jun 2018 21:16:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 21:57:58 2018 From: gerrit-no-reply at lists.osmocom.org (Alexander Chemeris) Date: Fri, 22 Jun 2018 21:57:58 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions In-Reply-To: References: Message-ID: Alexander Chemeris has posted comments on this change. ( https://gerrit.osmocom.org/9711 ) Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... Patch Set 1: Is there a counter which shows a number of currently active SS/USSD connections? I.e. active at the moment of querying. That's an important metric. -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jun 2018 21:57:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 21:58:37 2018 From: gerrit-no-reply at lists.osmocom.org (Alexander Chemeris) Date: Fri, 22 Jun 2018 21:58:37 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: properly handle MS-initiated release In-Reply-To: References: Message-ID: Alexander Chemeris has posted comments on this change. ( https://gerrit.osmocom.org/9703 ) Change subject: libmsc/gsm_09_11.c: properly handle MS-initiated release ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I76fc277bf9db614a97824b1541cd5bb75aa3e29d Gerrit-Change-Number: 9703 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 22 Jun 2018 21:58:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 22 22:24:41 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 22 Jun 2018 22:24:41 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9711 ) Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... Patch Set 1: > Is there a counter which shows a number of currently active SS/USSD > connections? I.e. active at the moment of querying. That's an > important metric. No. I am not sure that it can be implemented with the rate_ctr API. It can be implemented using the osmo_counter API, which allows to increment and also *decrement* a counter, but it looks deprecated, and it is used only once in the whole OsmoMSC... Maybe, @Harald can advice here? -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 22 Jun 2018 22:24:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Jun 23 00:47:13 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 23 Jun 2018 00:47:13 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-bts_=C2=BB_lc?= =?UTF-8?Q?15,master,default,osmocom-master-debian9_#807?= Message-ID: <1152855550.279.1529714833826.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 32.84 KB...] checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for ANSI C header files... (cached) yes checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/timerfd.h usability... yes checking sys/timerfd.h presence... yes checking for sys/timerfd.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking netinet/tcp.h usability... yes checking netinet/tcp.h presence... yes checking for netinet/tcp.h... yes checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking for library containing dlopen... -ldl checking for library containing dlsym... -ldl checking for backtrace in -lexecinfo... no checking for doxygen... /usr/bin/doxygen checking whether SYS_getrandom is declared... yes checking if gcc supports -fvisibility=hidden... yes checking whether struct tm has tm_gmtoff member... yes checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking whether C compiler accepts -mavx2... yes checking whether C compiler accepts -mssse3... yes checking whether C compiler accepts -msse4.1... yes checking whether gcc has __builtin_cpu_supports built-in... yes CFLAGS="-g -O2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS=" -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 0.11.0.54-60f31 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory ' GEN osmocom/core/bit64gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h osmocom/core/signal.h osmocom/core/socket.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/plugin.h osmocom/core/msgfile.h osmocom/core/serial.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/vty/buffer.h osmocom/vty/command.h osmocom/vty/logging.h osmocom/vty/stats.h osmocom/vty/misc.h osmocom/vty/telnet_interface.h osmocom/vty/vector.h osmocom/vty/vty.h osmocom/vty/ports.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_rlc.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h osmocom/ctrl/control_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' GEN crc8gen.c GEN crc64gen.c GEN crc16gen.c GEN crc32gen.c make install-am make[3]: Entering directory ' CC signal.lo CC select.lo CC timer_clockgettime.lo CC msgb.lo CC timer_gettimeofday.lo CC bits.lo CC bitvec.lo CC timer.lo CC bitcomp.lo CC counter.lo CC write_queue.lo CC fsm.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC rate_ctr.lo CC logging_gsmtap.lo CC gsmtap_util.lo CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo /bin/bash: line 2: 19046 Illegal instruction /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -DBUILDING_LIBOSMOCORE -Wall -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT application.lo -MD -MP -MF $depbase.Tpo -c -o application.lo application.c Makefile:548: recipe for target 'application.lo' failed make[3]: *** [application.lo] Error 132 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory ' Makefile:652: recipe for target 'install' failed make[2]: *** [install] Error 2 make[2]: Leaving directory ' Makefile:604: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:903: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Jun 23 09:51:01 2018 From: gerrit-no-reply at lists.osmocom.org (Alexander Chemeris) Date: Sat, 23 Jun 2018 09:51:01 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions In-Reply-To: References: Message-ID: Alexander Chemeris has posted comments on this change. ( https://gerrit.osmocom.org/9711 ) Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... Patch Set 1: I don't think something can be deprecated until there is a replacement? So it's either not deprecated, or there is another way to do this I assume. Let's wait for Harald to clarify. -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 23 Jun 2018 09:51:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 10:59:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 10:59:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9688 ) Change subject: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30 Gerrit-Change-Number: 9688 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jun 2018 10:59:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 10:59:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 10:59:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9683 ) Change subject: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic104a49bb2dce2127063bcef8443ee6b639c9f19 Gerrit-Change-Number: 9683 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 23 Jun 2018 10:59:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:00:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:00:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/SS_Templates.ttcn: add empty Return Result template In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9681 ) Change subject: library/SS_Templates.ttcn: add empty Return Result template ...................................................................... library/SS_Templates.ttcn: add empty Return Result template According to GSM TS 04.80, table 3.4, the Return Result component may be empty, i.e. may not contain any results nor operation code. It is used, for example, in responce to the network-originated USSD notification. Change-Id: Iaaff110c5f61cc87eda6143cd841f9832f6074bf --- M library/SS_Templates.ttcn 1 file changed, 21 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/SS_Templates.ttcn b/library/SS_Templates.ttcn index 316b71b..1129108 100644 --- a/library/SS_Templates.ttcn +++ b/library/SS_Templates.ttcn @@ -169,6 +169,27 @@ } } +template (value) SS_FacilityInformation ts_SS_USSD_FACILITY_RETURN_RESULT_EMPTY( + integer invoke_id := 1 +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := omit + } + } +} +template SS_FacilityInformation tr_SS_USSD_FACILITY_RETURN_RESULT_EMPTY( + template integer invoke_id := ? +) := { + { + returnResult := { + invokeId := { present_ := invoke_id }, + result := omit + } + } +} + /* Common for both structured and unstructured SS */ template (value) SS_FacilityInformation ts_SS_FACILITY_RETURN_ERROR( integer invoke_id := 1, -- To view, visit https://gerrit.osmocom.org/9681 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iaaff110c5f61cc87eda6143cd841f9832f6074bf Gerrit-Change-Number: 9681 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:00:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:00:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/L3_Templates.ttcn: fix f_facility_or_wc(omit) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9682 ) Change subject: library/L3_Templates.ttcn: fix f_facility_or_wc(omit) ...................................................................... library/L3_Templates.ttcn: fix f_facility_or_wc(omit) According to GSM TS 04.80, table 2.5, the Facility IE is optional for RELEASE COMPLETE message. So, if this IE is omitted, then the whole TVL shall be omitted. It's time to fix this. Change-Id: I216195ef71c95997708dad8c31b172b6f6cdc461 --- M library/L3_Templates.ttcn 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index d0f1406..9d6d3c3 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -1332,6 +1332,8 @@ return *; } else if (istemplatekind(facility, "?")) { return ?; + } else if (istemplatekind(facility, "omit")) { + return omit; } else { return tr_FacTLV(facility); } -- To view, visit https://gerrit.osmocom.org/9682 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I216195ef71c95997708dad8c31b172b6f6cdc461 Gerrit-Change-Number: 9682 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:00:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:00:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9688 ) Change subject: library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* ...................................................................... library/GSUP_Types.ttcn: SS Info IE is optional for GSUP_PROC_SS_* The 'SS Info' IE is optional for GSUP_PROC_SS_{REQ|RSP} messages, and is not carried in some cases, e.g. when a subscriber aborts an active transaction by pressing the 'red button'. Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30 --- M library/GSUP_Types.ttcn 1 file changed, 51 insertions(+), 28 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn index 359e272..6044565 100644 --- a/library/GSUP_Types.ttcn +++ b/library/GSUP_Types.ttcn @@ -581,62 +581,85 @@ } } +private function f_gen_ts_ss_ies( + hexstring imsi, + OCT4 sid, + GSUP_SessionState state, + template (omit) octetstring ss +) return GSUP_IEs { + /* Mandatory IEs */ + var GSUP_IEs ies := { + valueof(ts_GSUP_IE_IMSI(imsi)), + valueof(ts_GSUP_IE_SessionId(sid)), + valueof(ts_GSUP_IE_SessionState(state)) + }; + + /* Optional SS payload */ + if (isvalue(ss)) { + ies[3] := valueof(ts_GSUP_IE_SSInfo(valueof(ss))); + } + + return ies; +} +private function f_gen_tr_ss_ies( + template hexstring imsi, + template OCT4 sid := ?, + template GSUP_SessionState state := ?, + template octetstring ss := ? +) return template GSUP_IEs { + /* Mandatory IEs */ + var template GSUP_IEs ies := { + tr_GSUP_IE_IMSI(imsi), + tr_GSUP_IE_SessionId(sid), + tr_GSUP_IE_SessionState(state) + }; + + /* Optional SS payload */ + if (istemplatekind(ss, "*")) { + ies[3] := *; + } else if (not istemplatekind(ss, "omit")) { + ies[3] := tr_GSUP_IE_SSInfo(ss); + } + + return ies; +} + template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ( hexstring imsi, OCT4 sid, GSUP_SessionState state, - octetstring ss + template (omit) octetstring ss := omit ) := ts_GSUP( OSMO_GSUP_MSGT_PROC_SS_REQUEST, - { - valueof(ts_GSUP_IE_IMSI(imsi)), - valueof(ts_GSUP_IE_SessionId(sid)), - valueof(ts_GSUP_IE_SessionState(state)), - valueof(ts_GSUP_IE_SSInfo(ss)) - } + f_gen_ts_ss_ies(imsi, sid, state, ss) ); template GSUP_PDU tr_GSUP_PROC_SS_REQ( template hexstring imsi, template OCT4 sid := ?, template GSUP_SessionState state := ?, - template octetstring ss := ? + template octetstring ss := * ) := tr_GSUP( OSMO_GSUP_MSGT_PROC_SS_REQUEST, - { - tr_GSUP_IE_IMSI(imsi), - tr_GSUP_IE_SessionId(sid), - tr_GSUP_IE_SessionState(state), - tr_GSUP_IE_SSInfo(ss) - } + f_gen_tr_ss_ies(imsi, sid, state, ss) ); template (value) GSUP_PDU ts_GSUP_PROC_SS_RES( hexstring imsi, OCT4 sid, GSUP_SessionState state, - octetstring ss + template (omit) octetstring ss := omit ) := ts_GSUP( OSMO_GSUP_MSGT_PROC_SS_RESULT, - { - valueof(ts_GSUP_IE_IMSI(imsi)), - valueof(ts_GSUP_IE_SessionId(sid)), - valueof(ts_GSUP_IE_SessionState(state)), - valueof(ts_GSUP_IE_SSInfo(ss)) - } + f_gen_ts_ss_ies(imsi, sid, state, ss) ); template GSUP_PDU tr_GSUP_PROC_SS_RES( template hexstring imsi, template OCT4 sid := ?, template GSUP_SessionState state := ?, - template octetstring ss := ? + template octetstring ss := * ) := tr_GSUP( OSMO_GSUP_MSGT_PROC_SS_RESULT, - { - tr_GSUP_IE_IMSI(imsi), - tr_GSUP_IE_SessionId(sid), - tr_GSUP_IE_SessionState(state), - tr_GSUP_IE_SSInfo(ss) - } + f_gen_tr_ss_ies(imsi, sid, state, ss) ); template (value) GSUP_PDU ts_GSUP_PROC_SS_ERR( -- To view, visit https://gerrit.osmocom.org/9688 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I20d9028acbe0c457d2a2cf72eff372b749d8dc30 Gerrit-Change-Number: 9688 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:00:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:00:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9683 ) Change subject: msc/USSD: drop the TC_lu_and_ussd_wrong_code test case ...................................................................... msc/USSD: drop the TC_lu_and_ussd_wrong_code test case As we are about to finish the implementation of GSM TS 09.11, in our case it is 'SS/USSD over GSUP', OsmoMSC will not decide itself which USSD request-code is known, and which is wrong. Change-Id: Ic104a49bb2dce2127063bcef8443ee6b639c9f19 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 0 insertions(+), 55 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 3316563..ce95ff5 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2163,59 +2163,6 @@ vc_conn.done; } -private function f_tc_lu_and_ussd_wrong_code(charstring id, BSC_ConnHdlrPars pars) -runs on BSC_ConnHdlr { - f_init_handler(pars); - - /* Perform location update */ - f_perform_lu(); - - /* Send CM Service Request for SS/USSD */ - f_establish_fully(EST_TYPE_SS_ACT); - - /* Compose a new SS/REGISTER message with request */ - var template (value) PDU_ML3_MS_NW ussd_req := ts_ML3_MO_SS_REGISTER( - tid := 1, /* We just need a single transaction */ - ti_flag := c_TIF_ORIG, /* Sent from the side that originates the TI */ - facility := f_USSD_FACILITY_IE_INVOKE( - invoke_id := 5, /* Phone may not start from 0 or 1 */ - op_code := SS_OP_CODE_PROCESS_USS_REQ, - ussd_string := "*#999#" - ) - ); - - /* Compose SS/RELEASE_COMPLETE template with expected response */ - var template PDU_ML3_NW_MS ussd_rsp := tr_ML3_MT_SS_RELEASE_COMPLETE( - tid := 1, /* Response should arrive within the same transaction */ - ti_flag := c_TIF_REPL, /* Sent to the side that originates the TI */ - facility := f_USSD_FACILITY_IE_RETURN_ERROR( - invoke_id := 5, /* InvokeID shall be the same for both REQ and RSP */ - err_code := SS_ERR_CODE_UNEXPECTED_DATA_VALUE - ) - ); - - /* Request own number request */ - BSSAP.send(ts_PDU_DTAP_MO(ussd_req)); - alt { - /* We expect RELEASE_COMPLETE message with the response */ - [] BSSAP.receive(tr_PDU_DTAP_MT(ussd_rsp)) { - setverdict(pass); - } - [] BSSAP.receive { - setverdict(fail, "Unknown/unexpected BSSAP received"); - self.stop; - } - } - - f_expect_clear(); -} -testcase TC_lu_and_ussd_wrong_code() runs on MTC_CT { - var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_wrong_code), 47); - vc_conn.done; -} - /* LU followed by MT call and USSD request during this call */ private function f_tc_lu_and_ussd_during_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { @@ -2365,7 +2312,6 @@ execute( TC_smpp_mt_sms() ); execute( TC_lu_and_ussd_single_req() ); - execute( TC_lu_and_ussd_wrong_code() ); execute( TC_lu_and_ussd_during_call() ); /* Run this last: at the time of writing this test crashes the MSC */ diff --git a/msc/expected-results.xml b/msc/expected-results.xml index ba40519..8beab26 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -72,6 +72,5 @@ - -- To view, visit https://gerrit.osmocom.org/9683 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic104a49bb2dce2127063bcef8443ee6b639c9f19 Gerrit-Change-Number: 9683 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:00:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:00:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: use more informative names for test cases In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9684 ) Change subject: msc/USSD: use more informative names for test cases ...................................................................... msc/USSD: use more informative names for test cases Let's explicitly indicate is a SS/USSD message MO or MT. Change-Id: I87f16f935f015dbd2ac2867d8ea5e155cc365e3f --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 12 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index ce95ff5..dc5303e 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2109,7 +2109,8 @@ * USSD Testing ***********************************************************************/ -private function f_tc_lu_and_ussd_single_req(charstring id, BSC_ConnHdlrPars pars) +/* LU followed by MO USSD request */ +private function f_tc_lu_and_mo_ussd_single_request(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { f_init_handler(pars); @@ -2156,15 +2157,15 @@ f_expect_clear(); } -testcase TC_lu_and_ussd_single_req() runs on MTC_CT { +testcase TC_lu_and_mo_ussd_single_request() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_single_req), 46); + vc_conn := f_start_handler(refers(f_tc_lu_and_mo_ussd_single_request), 46); vc_conn.done; } -/* LU followed by MT call and USSD request during this call */ -private function f_tc_lu_and_ussd_during_call(charstring id, BSC_ConnHdlrPars pars) +/* LU followed by MT call and MO USSD request during this call */ +private function f_tc_lu_and_mo_ussd_during_mt_call(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { f_init_handler(pars); @@ -2223,10 +2224,10 @@ /* Release the call (does Clear Complete itself) */ f_call_hangup(cpars, true); } -testcase TC_lu_and_ussd_during_call() runs on MTC_CT { +testcase TC_lu_and_mo_ussd_during_mt_call() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_lu_and_ussd_during_call), 48); + vc_conn := f_start_handler(refers(f_tc_lu_and_mo_ussd_during_mt_call), 48); vc_conn.done; } @@ -2311,8 +2312,8 @@ execute( TC_smpp_mo_sms() ); execute( TC_smpp_mt_sms() ); - execute( TC_lu_and_ussd_single_req() ); - execute( TC_lu_and_ussd_during_call() ); + execute( TC_lu_and_mo_ussd_single_request() ); + execute( TC_lu_and_mo_ussd_during_mt_call() ); /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 8beab26..9595f17 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -71,6 +71,6 @@ - - + + -- To view, visit https://gerrit.osmocom.org/9684 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I87f16f935f015dbd2ac2867d8ea5e155cc365e3f Gerrit-Change-Number: 9684 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:08:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:08:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: introduce common GSUP/BSSAP matching functions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9687 ) Change subject: msc/USSD: introduce common GSUP/BSSAP matching functions ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116 Gerrit-Change-Number: 9687 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jun 2018 11:08:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:08:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:08:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: expect and reply SS/USSD messages over GSUP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9685 ) Change subject: msc/USSD: expect and reply SS/USSD messages over GSUP ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9685 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I01de73aced6057328a121577a5a83bc2615fb2d4 Gerrit-Change-Number: 9685 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jun 2018 11:08:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:37:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:37:25 +0000 Subject: Change in osmo-mgw[master]: mgw: clean up codec negotiation (sdp) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9648 ) Change subject: mgw: clean up codec negotiation (sdp) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If730d022ba6bdb217ad4e20b3fbbd1114dbb4b8f Gerrit-Change-Number: 9648 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jun 2018 11:37:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:38:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:38:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: ts_CRCX_no_lco: check media description instead of media a... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9691 ) Change subject: MGCP_Test: ts_CRCX_no_lco: check media description instead of media attribute ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I69600a1025e68011e8fc5d8bf22d842d9c63bf53 Gerrit-Change-Number: 9691 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jun 2018 11:38:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:38:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:38:32 +0000 Subject: Change in osmo-mgw[master]: client: add features to generate and parse codec information In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9649 ) Change subject: client: add features to generate and parse codec information ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78e72d41b73acfcb40599a0ff4823f17c3642059 Gerrit-Change-Number: 9649 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sat, 23 Jun 2018 11:38:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:39:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:39:44 +0000 Subject: Change in osmo-mgw[master]: mgw: clean up codec negotiation (sdp) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9648 ) Change subject: mgw: clean up codec negotiation (sdp) ...................................................................... mgw: clean up codec negotiation (sdp) The codec negotiation via SDP is currently in a neglected state. Also osmo-mgw does some kind of codec decision wile the SDP is parsed, the result is information for one codec, even when there are multiple codecs negotiated. This is problematic because we loose all information about alternate codecs while we parse. This should be untangled and the information should be presevered. Also we are not really capable picking a default. Wehen we do not supply any codec information (not even LCO), then we should pick a sane default codec. - separate the codec decision from the sdp parser and concentrate codec related code in a separate c file - add support for multiple codecs in one SDP negotiation - do not initalize "magic" codec defaults during conn allocation - do not allow invalid payload types, especially not 255. When someone tries to select an invalid payload type, do not fail hard, just pick a sane default. - handle the codec decision in protocol.c, pick a sane default codec when no (valid) codec has been negotiated (no LCO, no SDP) Change-Id: If730d022ba6bdb217ad4e20b3fbbd1114dbb4b8f Closes: OS#2658 Related: OS#3114 Related: OS#2728 --- M include/osmocom/mgcp/Makefile.am A include/osmocom/mgcp/mgcp_codec.h M include/osmocom/mgcp/mgcp_common.h M include/osmocom/mgcp/mgcp_internal.h M include/osmocom/mgcp/mgcp_sdp.h M src/libosmo-mgcp/Makefile.am A src/libosmo-mgcp/mgcp_codec.c M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_sdp.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c M tests/mgcp/mgcp_test.ok 14 files changed, 655 insertions(+), 247 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/mgcp/Makefile.am b/include/osmocom/mgcp/Makefile.am index 7e297e4..65ca670 100644 --- a/include/osmocom/mgcp/Makefile.am +++ b/include/osmocom/mgcp/Makefile.am @@ -5,5 +5,6 @@ mgcp_stat.h \ mgcp_endp.h \ mgcp_sdp.h \ + mgcp_codec.h \ debug.h \ $(NULL) diff --git a/include/osmocom/mgcp/mgcp_codec.h b/include/osmocom/mgcp/mgcp_codec.h new file mode 100644 index 0000000..f8d5e70 --- /dev/null +++ b/include/osmocom/mgcp/mgcp_codec.h @@ -0,0 +1,6 @@ +#pragma once + +void mgcp_codec_summary(struct mgcp_conn_rtp *conn); +void mgcp_codec_reset_all(struct mgcp_conn_rtp *conn); +int mgcp_codec_add(struct mgcp_conn_rtp *conn, int payload_type, const char *audio_name); +int mgcp_codec_decide(struct mgcp_conn_rtp *conn); diff --git a/include/osmocom/mgcp/mgcp_common.h b/include/osmocom/mgcp/mgcp_common.h index d23339f..eb6564f 100644 --- a/include/osmocom/mgcp/mgcp_common.h +++ b/include/osmocom/mgcp/mgcp_common.h @@ -82,4 +82,8 @@ /* A prefix to denote the virtual trunk (RTP on both ends) */ #define MGCP_ENDPOINT_PREFIX_VIRTUAL_TRUNK "rtpbridge/" +/* Maximal number of payload types / codecs that can be negotiated via SDP at + * at once. */ +#define MGCP_MAX_CODECS 10 + #endif diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index bff7da0..b564905 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -114,12 +114,19 @@ /* in network byte order */ int rtp_port, rtcp_port; - /* audio codec information */ - struct mgcp_rtp_codec codec; + /* currently selected audio codec */ + struct mgcp_rtp_codec *codec; + + /* array with assigned audio codecs to choose from (SDP) */ + struct mgcp_rtp_codec codecs[MGCP_MAX_CODECS]; + + /* number of assigned audio codecs (SDP) */ + unsigned int codecs_assigned; /* per endpoint data */ int frames_per_packet; uint32_t packet_duration_ms; + int maximum_packet_time; /* -1: not set */ char *fmtp_extra; /* are we transmitting packets (1) or dropping (0) outbound packets */ int output_enabled; diff --git a/include/osmocom/mgcp/mgcp_sdp.h b/include/osmocom/mgcp/mgcp_sdp.h index 240f8cf..950092e 100644 --- a/include/osmocom/mgcp/mgcp_sdp.h +++ b/include/osmocom/mgcp/mgcp_sdp.h @@ -26,9 +26,6 @@ struct mgcp_conn_rtp *conn, struct mgcp_parse_data *p); -int mgcp_set_audio_info(void *ctx, struct mgcp_rtp_codec *codec, - int payload_type, const char *audio_name); - int mgcp_write_response_sdp(const struct mgcp_endpoint *endp, const struct mgcp_conn_rtp *conn, struct msgb *sdp, const char *addr); diff --git a/src/libosmo-mgcp/Makefile.am b/src/libosmo-mgcp/Makefile.am index a98c391..587bdd4 100644 --- a/src/libosmo-mgcp/Makefile.am +++ b/src/libosmo-mgcp/Makefile.am @@ -35,6 +35,7 @@ mgcp_vty.c \ mgcp_osmux.c \ mgcp_sdp.c \ + mgcp_codec.c \ mgcp_msg.c \ mgcp_conn.c \ mgcp_stat.c \ diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c new file mode 100644 index 0000000..2ce90dd --- /dev/null +++ b/src/libosmo-mgcp/mgcp_codec.c @@ -0,0 +1,343 @@ +/* + * (C) 2009-2015 by Holger Hans Peter Freyther + * (C) 2009-2014 by On-Waves + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +#include +#include +#include + +/* Helper function to dump codec information of a specified codec to a printable + * string, used by dump_codec_summary() */ +static char *dump_codec(struct mgcp_rtp_codec *codec) +{ + static char str[256]; + char *pt_str; + + if (codec->payload_type > 76) + pt_str = "DYNAMIC"; + else if (codec->payload_type > 72) + pt_str = "RESERVED "; + else if (codec->payload_type != PTYPE_UNDEFINED) + pt_str = codec->subtype_name; + else + pt_str = "INVALID "; + + snprintf(str, sizeof(str), "(pt:%i=%s, audio:%s subt=%s, rate=%u, ch=%i, t=%u/%u)", codec->payload_type, pt_str, + codec->audio_name, codec->subtype_name, codec->rate, codec->channels, codec->frame_duration_num, + codec->frame_duration_den); + return str; +} + +/*! Dump a summary of all negotiated codecs to debug log + * \param[in] conn related rtp-connection. */ +void mgcp_codec_summary(struct mgcp_conn_rtp *conn) +{ + struct mgcp_rtp_end *rtp; + unsigned int i; + struct mgcp_rtp_codec *codec; + struct mgcp_endpoint *endp; + + rtp = &conn->end; + endp = conn->conn->endp; + + if (rtp->codecs_assigned == 0) { + LOGP(DLMGCP, LOGL_ERROR, "endpoint:0x%x conn:%s no codecs available\n", ENDPOINT_NUMBER(endp), + mgcp_conn_dump(conn->conn)); + return; + } + + /* Store parsed codec information */ + for (i = 0; i < rtp->codecs_assigned; i++) { + codec = &rtp->codecs[i]; + + LOGP(DLMGCP, LOGL_DEBUG, "endpoint:0x%x conn:%s codecs[%u]:%s", ENDPOINT_NUMBER(endp), + mgcp_conn_dump(conn->conn), i, dump_codec(codec)); + + if (codec == rtp->codec) + LOGPC(DLMGCP, LOGL_DEBUG, " [selected]"); + + LOGPC(DLMGCP, LOGL_DEBUG, "\n"); + } +} + +/* Initalize or reset codec information with default data. */ +void codec_init(struct mgcp_rtp_codec *codec) +{ + if (codec->subtype_name) + talloc_free(codec->subtype_name); + if (codec->audio_name) + talloc_free(codec->audio_name); + memset(codec, 0, sizeof(*codec)); + codec->payload_type = -1; + codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; + codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; + codec->rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; + codec->channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; +} + +/*! Initalize or reset codec information with default data. + * \param[out] conn related rtp-connection. */ +void mgcp_codec_reset_all(struct mgcp_conn_rtp *conn) +{ + memset(conn->end.codecs, 0, sizeof(conn->end.codecs)); + conn->end.codecs_assigned = 0; + conn->end.codec = NULL; +} + +/* Set members of struct mgcp_rtp_codec, extrapolate in missing information */ +static int codec_set(void *ctx, struct mgcp_rtp_codec *codec, + int payload_type, const char *audio_name, unsigned int pt_offset) +{ + int rate; + int channels; + char audio_codec[64]; + + /* Initalize the codec struct with some default data to begin with */ + codec_init(codec); + + if (payload_type != PTYPE_UNDEFINED) { + /* Make sure we do not get any reserved or undefined type numbers */ + /* See also: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml */ + if (payload_type == 1 || payload_type == 2 || payload_type == 19) + goto error; + if (payload_type >= 72 && payload_type <= 76) + goto error; + if (payload_type >= 127) + goto error; + + codec->payload_type = payload_type; + } + + /* When no audio name is given, we are forced to use the payload + * type to generate the audio name. This is only possible for + * non dynamic payload types, which are statically defined */ + if (!audio_name) { + switch (payload_type) { + case 0: + audio_name = talloc_strdup(ctx, "PCMU/8000/1"); + break; + case 3: + audio_name = talloc_strdup(ctx, "GSM/8000/1"); + break; + case 8: + audio_name = talloc_strdup(ctx, "PCMA/8000/1"); + break; + case 18: + audio_name = talloc_strdup(ctx, "G729/8000/1"); + break; + default: + /* The given payload type is not known to us, or it + * it is a dynamic payload type for which we do not + * know the audio name. We must give up here */ + goto error; + } + } + + /* Now we extract the codec subtype name, rate and channels. The latter + * two are optional. If they are not present we use the safe defaults + * above. */ + if (strlen(audio_name) > sizeof(audio_codec)) + goto error; + channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; + rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; + if (sscanf(audio_name, "%63[^/]/%d/%d", audio_codec, &rate, &channels) < 1) + goto error; + + /* Note: We only accept configurations with one audio channel! */ + if (channels != 1) + goto error; + + codec->rate = rate; + codec->channels = channels; + codec->subtype_name = talloc_strdup(ctx, audio_codec); + codec->audio_name = talloc_strdup(ctx, audio_name); + codec->payload_type = payload_type; + + if (!strcmp(audio_codec, "G729")) { + codec->frame_duration_num = 10; + codec->frame_duration_den = 1000; + } else { + codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; + codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; + } + + /* Derive the payload type if it is unknown */ + if (codec->payload_type == PTYPE_UNDEFINED) { + + /* For the known codecs from the static range we restore + * the IANA or 3GPP assigned payload type number */ + if (codec->rate == 8000 && codec->channels == 1) { + /* See also: https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml */ + if (!strcmp(codec->subtype_name, "GSM")) + codec->payload_type = 3; + else if (!strcmp(codec->subtype_name, "PCMA")) + codec->payload_type = 8; + else if (!strcmp(codec->subtype_name, "PCMU")) + codec->payload_type = 0; + else if (!strcmp(codec->subtype_name, "G729")) + codec->payload_type = 18; + + /* See also: 3GPP TS 48.103, chapter 5.4.2.2 RTP Payload + * Note: These are not fixed payload types as the IANA + * defined once, they still remain dymanic payload + * types, but with a payload type number preference. */ + else if (!strcmp(codec->subtype_name, "GSM-EFR")) + codec->payload_type = 110; + else if (!strcmp(codec->subtype_name, "GSM-HR-08")) + codec->payload_type = 111; + else if (!strcmp(codec->subtype_name, "AMR")) + codec->payload_type = 112; + else if (!strcmp(codec->subtype_name, "AMR-WB")) + codec->payload_type = 113; + } + + /* If we could not determine a payload type we assume that + * we are dealing with a codec from the dynamic range. We + * choose a fixed identifier from 96-109. (Note: normally, + * the dynamic payload type rante is from 96-127, but from + * 110 onwards 3gpp defines prefered codec types, which are + * also fixed, see above) */ + if (codec->payload_type < 0) { + codec->payload_type = 96 + pt_offset; + if (codec->payload_type > 109) + goto error; + } + } + + return 0; +error: + /* Make sure we leave a clean codec entry on error. */ + codec_init(codec); + memset(codec, 0, sizeof(*codec)); + return -EINVAL; +} + +/*! Add codec configuration depending on payload type and/or codec name. This + * function uses the input parameters to extrapolate the full codec information. + * \param[out] codec configuration (caller provided memory). + * \param[out] conn related rtp-connection. + * \param[in] payload_type codec type id (e.g. 3 for GSM, -1 when undefined). + * \param[in] audio_name audio codec name (e.g. "GSM/8000/1"). + * \returns 0 on success, -EINVAL on failure. */ +int mgcp_codec_add(struct mgcp_conn_rtp *conn, int payload_type, const char *audio_name) +{ + int rc; + + /* The amount of codecs we can store is limited, make sure we do not + * overrun this limit. */ + if (conn->end.codecs_assigned >= MGCP_MAX_CODECS) + return -EINVAL; + + rc = codec_set(conn->conn, &conn->end.codecs[conn->end.codecs_assigned], payload_type, audio_name, + conn->end.codecs_assigned); + if (rc != 0) + return -EINVAL; + + conn->end.codecs_assigned++; + + return 0; +} + +/* Check if the given codec is applicable on the specified endpoint + * Helper function for mgcp_codec_decide() */ +static bool is_codec_compatible(const struct mgcp_endpoint *endp, const struct mgcp_rtp_codec *codec) +{ + char codec_name[64]; + + /* A codec name must be set, if not, this might mean that the codec + * (payload type) that was assigned is unknown to us so we must stop + * here. */ + if (!codec->subtype_name) + return false; + + /* We now extract the codec_name (letters before the /, e.g. "GSM" + * from the audio name that is stored in the trunk configuration. + * We do not compare to the full audio_name because we expect that + * "GSM", "GSM/8000" and "GSM/8000/1" are all compatible when the + * audio name of the codec is set to "GSM" */ + if (sscanf(endp->tcfg->audio_name, "%63[^/]/%*d/%*d", codec_name) < 1) + return false; + + /* Finally we check if the subtype_name we have generated from the + * audio_name in the trunc struct patches the codec_name of the + * given codec */ + if (strcasecmp(codec_name, codec->subtype_name) == 0) + return true; + + /* FIXME: It is questinable that the method to pick a compatible + * codec can work properly. Since this useses tcfg->audio_name, as + * a reference, which is set to "AMR/8000" permanently. + * tcfg->audio_name must be updated by the first connection that + * has been made on an endpoint, so that the second connection + * can make a meaningful decision here */ + + return false; +} + +/*! Decide for one suitable codec + * \param[in] conn related rtp-connection. + * \returns 0 on success, -EINVAL on failure. */ +int mgcp_codec_decide(struct mgcp_conn_rtp *conn) +{ + struct mgcp_rtp_end *rtp; + unsigned int i; + struct mgcp_endpoint *endp; + bool codec_assigned = false; + + endp = conn->conn->endp; + rtp = &conn->end; + + /* This function works on the results the SDP/LCO parser has extracted + * from the MGCP message. The goal is to select a suitable codec for + * the given connection. When transcoding is available, the first codec + * from the codec list is taken without further checking. When + * transcoding is not available, then the choice must be made more + * carefully. Each codec in the list is checked until one is found that + * is rated compatible. The rating is done by the helper function + * is_codec_compatible(), which does the actual checking. */ + for (i = 0; i < rtp->codecs_assigned; i++) { + /* When no transcoding is available, avoid codecs that would + * require transcoding. */ + if (endp->tcfg->no_audio_transcoding && !is_codec_compatible(endp, &rtp->codecs[i])) { + LOGP(DLMGCP, LOGL_NOTICE, "transcoding not available, skipping codec: %d/%s\n", + rtp->codecs[i].payload_type, rtp->codecs[i].subtype_name); + continue; + } + + rtp->codec = &rtp->codecs[i]; + codec_assigned = true; + break; + } + + /* FIXME: To the reviewes: This is problematic. I do not get why we + * need to reset the packet_duration_ms depending on the codec + * selection. I thought it were all 20ms? Is this to address some + * cornercase. (This piece of code was in the code path before, + * together with the note: "TODO/XXX: Store this per codec and derive + * it on use" */ + if (codec_assigned) { + if (rtp->maximum_packet_time >= 0 + && rtp->maximum_packet_time * rtp->codec->frame_duration_den > + rtp->codec->frame_duration_num * 1500) + rtp->packet_duration_ms = 0; + + return 0; + } + + return -EINVAL; +} diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index 4926768..e49559c 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -25,6 +25,8 @@ #include #include #include +#include +#include #include #include #include @@ -88,22 +90,6 @@ return -1; } -/* Reset codec state and free memory */ -static void mgcp_rtp_codec_init(struct mgcp_rtp_codec *codec) -{ - /* see also mgcp_sdp.c, mgcp_set_audio_info() */ - talloc_free(codec->subtype_name); - talloc_free(codec->audio_name); - - codec->payload_type = -1; - codec->subtype_name = NULL; - codec->audio_name = NULL; - codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; - codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; - codec->rate = DEFAULT_RTP_AUDIO_DEFAULT_RATE; - codec->channels = DEFAULT_RTP_AUDIO_DEFAULT_CHANNELS; -} - /* Initialize rtp connection struct with default values */ static void mgcp_rtp_conn_init(struct mgcp_conn_rtp *conn_rtp, struct mgcp_conn *conn) { @@ -130,13 +116,15 @@ end->frames_per_packet = 0; /* unknown */ end->packet_duration_ms = DEFAULT_RTP_AUDIO_PACKET_DURATION_MS; end->output_enabled = 0; - - mgcp_rtp_codec_init(&end->codec); + end->maximum_packet_time = -1; conn_rtp->rate_ctr_group = rate_ctr_group_alloc(conn, &rate_ctr_group_desc, rate_ctr_index); conn_rtp->state.in_stream.err_ts_ctr = &conn_rtp->rate_ctr_group->ctr[IN_STREAM_ERR_TSTMP_CTR]; conn_rtp->state.out_stream.err_ts_ctr = &conn_rtp->rate_ctr_group->ctr[OUT_STREAM_ERR_TSTMP_CTR]; rate_ctr_index++; + + /* Make sure codec table is reset */ + mgcp_codec_reset_all(conn_rtp); } /* Cleanup rtp connection struct */ diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 2da37b4..b47b76c 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -310,7 +310,7 @@ ENDPOINT_NUMBER(endp), tsdelta, inet_ntoa(addr->sin_addr), ntohs(addr->sin_port)); } else { - tsdelta = rtp_end->codec.rate * 20 / 1000; + tsdelta = rtp_end->codec->rate * 20 / 1000; LOGP(DRTP, LOGL_NOTICE, "Fixed packet duration and last timestamp delta " "are not available on 0x%x, " @@ -421,8 +421,8 @@ "endpoint:0x%x conn:%s using format defaults\n", ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn->conn)); - *payload_type = conn->end.codec.payload_type; - *audio_name = conn->end.codec.audio_name; + *payload_type = conn->end.codec->payload_type; + *audio_name = conn->end.codec->audio_name; *fmtp_extra = conn->end.fmtp_extra; } @@ -490,7 +490,7 @@ uint16_t seq; uint32_t timestamp, ssrc; struct rtp_hdr *rtp_hdr; - int payload = rtp_end->codec.payload_type; + int payload = rtp_end->codec->payload_type; if (len < sizeof(*rtp_hdr)) return; @@ -498,7 +498,7 @@ rtp_hdr = (struct rtp_hdr *)data; seq = ntohs(rtp_hdr->sequence); timestamp = ntohl(rtp_hdr->timestamp); - arrival_time = get_current_ts(rtp_end->codec.rate); + arrival_time = get_current_ts(rtp_end->codec->rate); ssrc = ntohl(rtp_hdr->ssrc); transit = arrival_time - timestamp; @@ -524,7 +524,7 @@ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port)); if (state->packet_duration == 0) { state->packet_duration = - rtp_end->codec.rate * 20 / 1000; + rtp_end->codec->rate * 20 / 1000; LOGP(DRTP, LOGL_NOTICE, "endpoint:0x%x fixed packet duration is not available, " "using fixed 20ms instead: %d from %s:%d\n", diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 21f6cf3..eea67a6 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -40,6 +40,7 @@ #include #include #include +#include struct mgcp_request { char *name; @@ -534,12 +535,15 @@ talloc_free(lco->string); lco->string = talloc_strdup(ctx, options); - + p_opt = strstr(lco->string, "p:"); if (p_opt && sscanf(p_opt, "p:%d-%d", &lco->pkt_period_min, &lco->pkt_period_max) == 1) lco->pkt_period_max = lco->pkt_period_min; + /* FIXME: LCO also supports the negotiation of more then one codec. + * (e.g. a:PCMU;G726-32) But this implementation only supports a single + * codec only. */ a_opt = strstr(lco->string, "a:"); if (a_opt && sscanf(a_opt, "a:%8[^,]", codec) == 1) { talloc_free(lco->codec); @@ -585,15 +589,15 @@ /* Get the number of frames per channel and packet */ if (rtp->frames_per_packet) f = rtp->frames_per_packet; - else if (rtp->packet_duration_ms && rtp->codec.frame_duration_num) { - int den = 1000 * rtp->codec.frame_duration_num; - f = (rtp->packet_duration_ms * rtp->codec.frame_duration_den + + else if (rtp->packet_duration_ms && rtp->codec->frame_duration_num) { + int den = 1000 * rtp->codec->frame_duration_num; + f = (rtp->packet_duration_ms * rtp->codec->frame_duration_den + den / 2) / den; } - return rtp->codec.rate * f * rtp->codec.frame_duration_num / - rtp->codec.frame_duration_den; + return rtp->codec->rate * f * rtp->codec->frame_duration_num / + rtp->codec->frame_duration_den; } static int mgcp_osmux_setup(struct mgcp_endpoint *endp, const char *line) @@ -609,6 +613,68 @@ return mgcp_parse_osmux_cid(line); } +/* Process codec information contained in CRCX/MDCX */ +static int handle_codec_info(struct mgcp_conn_rtp *conn, + struct mgcp_parse_data *p, int have_sdp, bool crcx) +{ + struct mgcp_endpoint *endp = p->endp; + int rc; + char *cmd; + + if (crcx) + cmd = "CRCX"; + else + cmd = "MDCX"; + + /* Collect codec information */ + if (have_sdp) { + /* If we have SDP, we ignore the local connection options and + * use only the SDP information. */ + mgcp_codec_reset_all(conn); + rc = mgcp_parse_sdp_data(endp, conn, p); + if (rc != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "%s: endpoint:%x sdp not parseable\n", cmd, + ENDPOINT_NUMBER(endp)); + + /* See also RFC 3661: Protocol error */ + return 510; + } + } else if (endp->local_options.codec) { + /* When no SDP is available, we use the codec information from + * the local connection options (if present) */ + mgcp_codec_reset_all(conn); + rc = mgcp_codec_add(conn, PTYPE_UNDEFINED, endp->local_options.codec); + if (rc != 0) + goto error; + } + + /* Make sure we always set a sane default codec */ + if (conn->end.codecs_assigned == 0) { + /* When SDP and/or LCO did not supply any codec information, + * than it makes sense to pick a sane default: (payload-type 0, + * PCMU), see also: OS#2658 */ + mgcp_codec_reset_all(conn); + rc = mgcp_codec_add(conn, 0, NULL); + if (rc != 0) + goto error; + } + + /* Make codec decision */ + if (mgcp_codec_decide(conn) != 0) + goto error; + + return 0; + +error: + LOGP(DLMGCP, LOGL_ERROR, + "%s: endpoint:0x%x codec negotiation failure\n", cmd, + ENDPOINT_NUMBER(endp)); + + /* See also RFC 3661: Codec negotiation failure */ + return 534; +} + /* CRCX command handler, processes the received command */ static struct msgb *handle_create_con(struct mgcp_parse_data *p) { @@ -726,17 +792,6 @@ * connection ids) */ endp->callid = talloc_strdup(tcfg->endpoints, callid); - /* Extract audio codec information */ - rc = set_local_cx_options(endp->tcfg->endpoints, &endp->local_options, - local_options); - if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "CRCX: endpoint:%x inavlid local connection options!\n", - ENDPOINT_NUMBER(endp)); - error_code = rc; - goto error2; - } - snprintf(conn_name, sizeof(conn_name), "%s", callid); _conn = mgcp_conn_alloc(NULL, endp, MGCP_CONN_TYPE_RTP, conn_name); if (!_conn) { @@ -767,12 +822,27 @@ goto error2; } - /* set up RTP media parameters */ - if (have_sdp) - mgcp_parse_sdp_data(endp, conn, p); - else if (endp->local_options.codec) - mgcp_set_audio_info(p->cfg, &conn->end.codec, - PTYPE_UNDEFINED, endp->local_options.codec); + /* Set local connection options, if present */ + if (local_options) { + rc = set_local_cx_options(endp->tcfg->endpoints, + &endp->local_options, local_options); + if (rc != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "CRCX: endpoint:%x inavlid local connection options!\n", + ENDPOINT_NUMBER(endp)); + error_code = rc; + goto error2; + } + } + + /* Handle codec information and decide for a suitable codec */ + rc = handle_codec_info(conn, p, have_sdp, true); + mgcp_codec_summary(conn); + if (rc) { + error_code = rc; + goto error2; + } + conn->end.fmtp_extra = talloc_strdup(tcfg->endpoints, tcfg->audio_fmtp_extra); @@ -852,6 +922,10 @@ return create_err_response(endp, error_code, "CRCX", p->trans); } + + + + /* MDCX command handler, processes the received command */ static struct msgb *handle_modify_con(struct mgcp_parse_data *p) { @@ -943,23 +1017,27 @@ } else conn->conn->mode = conn->conn->mode_orig; - if (have_sdp) - mgcp_parse_sdp_data(endp, conn, p); + /* Set local connection options, if present */ + if (local_options) { + rc = set_local_cx_options(endp->tcfg->endpoints, + &endp->local_options, local_options); + if (rc != 0) { + LOGP(DLMGCP, LOGL_ERROR, + "MDCX: endpoint:%x inavlid local connection options!\n", + ENDPOINT_NUMBER(endp)); + error_code = rc; + goto error3; + } + } - rc = set_local_cx_options(endp->tcfg->endpoints, &endp->local_options, - local_options); - if (rc != 0) { - LOGP(DLMGCP, LOGL_ERROR, - "MDCX: endpoint:%x inavlid local connection options!\n", - ENDPOINT_NUMBER(endp)); + /* Handle codec information and decide for a suitable codec */ + rc = handle_codec_info(conn, p, have_sdp, false); + mgcp_codec_summary(conn); + if (rc) { error_code = rc; goto error3; } - if (!have_sdp && endp->local_options.codec) - mgcp_set_audio_info(p->cfg, &conn->end.codec, - PTYPE_UNDEFINED, endp->local_options.codec); - /* check connection mode setting */ if (conn->conn->mode != MGCP_CONN_LOOPBACK && conn->conn->mode != MGCP_CONN_RECV_ONLY @@ -971,6 +1049,7 @@ goto error3; } + if (setup_rtp_processing(endp, conn) != 0) goto error3; diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c index 5cc34ea..102c8c3 100644 --- a/src/libosmo-mgcp/mgcp_sdp.c +++ b/src/libosmo-mgcp/mgcp_sdp.c @@ -25,9 +25,13 @@ #include #include #include +#include #include +/* A struct to store intermediate parsing results. The function + * mgcp_parse_sdp_data() is using it as temporary storage for parsing the SDP + * codec information. */ struct sdp_rtp_map { /* the type */ int payload_type; @@ -40,89 +44,8 @@ int channels; }; -/*! Set codec configuration depending on payload type and codec name. - * \param[in] ctx talloc context. - * \param[out] codec configuration (caller provided memory). - * \param[in] payload_type codec type id (e.g. 3 for GSM, -1 when undefined). - * \param[in] audio_name audio codec name (e.g. "GSM/8000/1"). - * \returns 0 on success, -1 on failure. */ -int mgcp_set_audio_info(void *ctx, struct mgcp_rtp_codec *codec, - int payload_type, const char *audio_name) -{ - int rate = codec->rate; - int channels = codec->channels; - char audio_codec[64]; - - talloc_free(codec->subtype_name); - codec->subtype_name = NULL; - talloc_free(codec->audio_name); - codec->audio_name = NULL; - - if (payload_type != PTYPE_UNDEFINED) - codec->payload_type = payload_type; - - if (!audio_name) { - switch (payload_type) { - case 0: - audio_name = "PCMU/8000/1"; - break; - case 3: - audio_name = "GSM/8000/1"; - break; - case 8: - audio_name = "PCMA/8000/1"; - break; - case 18: - audio_name = "G729/8000/1"; - break; - default: - /* Payload type is unknown, don't change rate and - * channels. */ - /* TODO: return value? */ - return 0; - } - } - - if (sscanf(audio_name, "%63[^/]/%d/%d", - audio_codec, &rate, &channels) < 1) - return -EINVAL; - - codec->rate = rate; - codec->channels = channels; - codec->subtype_name = talloc_strdup(ctx, audio_codec); - codec->audio_name = talloc_strdup(ctx, audio_name); - - if (!strcmp(audio_codec, "G729")) { - codec->frame_duration_num = 10; - codec->frame_duration_den = 1000; - } else { - codec->frame_duration_num = DEFAULT_RTP_AUDIO_FRAME_DUR_NUM; - codec->frame_duration_den = DEFAULT_RTP_AUDIO_FRAME_DUR_DEN; - } - - if (payload_type < 0) { - payload_type = 96; - if (rate == 8000 && channels == 1) { - if (!strcmp(audio_codec, "GSM")) - payload_type = 3; - else if (!strcmp(audio_codec, "PCMA")) - payload_type = 8; - else if (!strcmp(audio_codec, "PCMU")) - payload_type = 0; - else if (!strcmp(audio_codec, "G729")) - payload_type = 18; - } - - codec->payload_type = payload_type; - } - - if (channels != 1) - LOGP(DLMGCP, LOGL_NOTICE, - "Channels != 1 in SDP: '%s'\n", audio_name); - - return 0; -} - +/* Helper function to extrapolate missing codec parameters in a codec mao from + * an already filled in payload_type, called from: mgcp_parse_sdp_data() */ static void codecs_initialize(void *ctx, struct sdp_rtp_map *codecs, int used) { int i; @@ -149,10 +72,16 @@ codecs[i].rate = 8000; codecs[i].channels = 1; break; + default: + codecs[i].codec_name = NULL; + codecs[i].rate = 0; + codecs[i].channels = 0; } } } +/* Helper function to update codec map information with additional data from + * SDP, called from: mgcp_parse_sdp_data() */ static void codecs_update(void *ctx, struct sdp_rtp_map *codecs, int used, int payload, const char *audio_name) { @@ -162,8 +91,13 @@ char audio_codec[64]; int rate = -1; int channels = -1; + + /* Note: We can only update payload codecs that already exist + * in our codec list. If we get an unexpected payload type, + * we just drop it */ if (codecs[i].payload_type != payload) continue; + if (sscanf(audio_name, "%63[^/]/%d/%d", audio_codec, &rate, &channels) < 1) { LOGP(DLMGCP, LOGL_ERROR, "Failed to parse '%s'\n", @@ -182,43 +116,72 @@ audio_name); } -/* Check if the codec matches what is set up in the trunk config */ -static int is_codec_compatible(const struct mgcp_endpoint *endp, - const struct sdp_rtp_map *codec) +/* Extract payload types from SDP, also check for duplicates */ +static int pt_from_sdp(void *ctx, struct sdp_rtp_map *codecs, + unsigned int codecs_len, char *sdp) { - char *codec_str; - char audio_codec[64]; + char *str; + char *str_ptr; + char *pt_str; + unsigned int pt; + unsigned int count = 0; + unsigned int i; - if (!codec->codec_name) - return 0; + str = talloc_zero_size(ctx, strlen(sdp) + 1); + str_ptr = str; + strcpy(str_ptr, sdp); - /* GSM, GSM/8000 and GSM/8000/1 should all be compatible... - * let's go by name first. */ - codec_str = endp->tcfg->audio_name; - if (sscanf(codec_str, "%63[^/]/%*d/%*d", audio_codec) < 1) - return 0; + str_ptr = strstr(str_ptr, "RTP/AVP "); + if (!str_ptr) + goto exit; - return strcasecmp(audio_codec, codec->codec_name) == 0; + pt_str = strtok(str_ptr, " "); + if (!pt_str) + goto exit; + + while (1) { + /* Do not allow excessive payload types */ + if (count > codecs_len) + goto error; + + pt_str = strtok(NULL, " "); + if (!pt_str) + break; + + pt = atoi(pt_str); + + /* Do not allow duplicate payload types */ + for (i = 0; i < count; i++) + if (codecs[i].payload_type == pt) + goto error; + + codecs[count].payload_type = pt; + count++; + } + +exit: + talloc_free(str); + return count; +error: + talloc_free(str); + return -EINVAL; } /*! Analyze SDP input string. * \param[in] endp trunk endpoint. * \param[out] conn associated rtp connection. * \param[out] caller provided memory to store the parsing results. - * \returns 1 when a codec is assigned, 0 when no codec is assigned * * Note: In conn (conn->end) the function returns the packet duration, - * rtp port, rtcp port and the assigned codec. */ + * rtp port, rtcp port and the codec information. + * \returns 0 on success, -1 on failure. */ int mgcp_parse_sdp_data(const struct mgcp_endpoint *endp, - struct mgcp_conn_rtp *conn, - struct mgcp_parse_data *p) + struct mgcp_conn_rtp *conn, struct mgcp_parse_data *p) { - struct sdp_rtp_map codecs[10]; - int codecs_used = 0; + struct sdp_rtp_map codecs[MGCP_MAX_CODECS]; + unsigned int codecs_used = 0; char *line; - int maxptime = -1; - int i; - bool codec_assigned = false; + unsigned int i; void *tmp_ctx = talloc_new(NULL); struct mgcp_rtp_end *rtp; @@ -255,34 +218,21 @@ rtp->packet_duration_ms = 0; else rtp->packet_duration_ms = ptime; - } else if (sscanf(line, "a=maxptime:%d", &ptime2) - == 1) { - maxptime = ptime2; + } else if (sscanf(line, "a=maxptime:%d", &ptime2) == 1) { + rtp->maximum_packet_time = ptime2; } break; case 'm': - rc = sscanf(line, - "m=audio %d RTP/AVP %d %d %d %d %d %d %d %d %d %d", - &port, &codecs[0].payload_type, - &codecs[1].payload_type, - &codecs[2].payload_type, - &codecs[3].payload_type, - &codecs[4].payload_type, - &codecs[5].payload_type, - &codecs[6].payload_type, - &codecs[7].payload_type, - &codecs[8].payload_type, - &codecs[9].payload_type); - if (rc >= 2) { + rc = sscanf(line, "m=audio %d RTP/AVP", &port); + if (rc == 1) { rtp->rtp_port = htons(port); rtp->rtcp_port = htons(port + 1); - codecs_used = rc - 1; - - /* So far we have only set the payload type in - * the codec struct. Now we fill up the - * remaining fields of the codec description */ - codecs_initialize(tmp_ctx, codecs, codecs_used); } + + rc = pt_from_sdp(conn->conn, codecs, + ARRAY_SIZE(codecs), line); + if (rc > 0) + codecs_used = rc; break; case 'c': @@ -303,47 +253,36 @@ break; } } + OSMO_ASSERT(codecs_used <= MGCP_MAX_CODECS); - /* Now select a suitable codec */ + /* So far we have only set the payload type in the codec struct. Now we + * fill up the remaining fields of the codec description with some default + * information */ + codecs_initialize(tmp_ctx, codecs, codecs_used); + + /* Store parsed codec information */ for (i = 0; i < codecs_used; i++) { - - /* When no transcoding is available, avoid codecs that would - * require transcoding. */ - if (endp->tcfg->no_audio_transcoding && - !is_codec_compatible(endp, &codecs[i])) { - LOGP(DLMGCP, LOGL_NOTICE, "Skipping codec %s\n", - codecs[i].codec_name); - continue; - } - - mgcp_set_audio_info(p->cfg, &rtp->codec, - codecs[i].payload_type, codecs[i].map_line); - - codec_assigned = true; - break; - } - - if (codec_assigned) { - /* TODO/XXX: Store this per codec and derive it on use */ - if (maxptime >= 0 && maxptime * rtp->codec.frame_duration_den > - rtp->codec.frame_duration_num * 1500) { - /* more than 1 frame */ - rtp->packet_duration_ms = 0; - } - - LOGP(DLMGCP, LOGL_NOTICE, - "Got media info via SDP: port %d, payload %d (%s), " - "duration %d, addr %s\n", - ntohs(rtp->rtp_port), rtp->codec.payload_type, - rtp->codec.subtype_name ? rtp-> - codec.subtype_name : "unknown", rtp->packet_duration_ms, - inet_ntoa(rtp->addr)); + rc = mgcp_codec_add(conn, codecs[i].payload_type, codecs[i].map_line); + if (rc < 0) + LOGP(DLMGCP, LOGL_NOTICE, "endpoint:0x%x, failed to add codec\n", ENDPOINT_NUMBER(p->endp)); } talloc_free(tmp_ctx); - if (codec_assigned) - return 1; + LOGP(DLMGCP, LOGL_NOTICE, + "Got media info via SDP: port:%d, addr:%s, duration:%d, payload-types:", + ntohs(rtp->rtp_port), inet_ntoa(rtp->addr), + rtp->packet_duration_ms); + if (codecs_used == 0) + LOGPC(DLMGCP, LOGL_NOTICE, "none"); + for (i = 0; i < codecs_used; i++) { + LOGPC(DLMGCP, LOGL_NOTICE, "%d=%s", + rtp->codecs[i].payload_type, + rtp->codecs[i].subtype_name ? rtp-> codecs[i].subtype_name : "unknown"); + LOGPC(DLMGCP, LOGL_NOTICE, " "); + } + LOGPC(DLMGCP, LOGL_NOTICE, "\n"); + return 0; } @@ -389,7 +328,9 @@ if (rc < 0) goto buffer_too_small; - if (audio_name && endp->tcfg->audio_send_name) { + /* FIXME: Check if the payload type is from the static range, + * if yes, omitthe a=rtpmap since it is unnecessary */ + if (audio_name && endp->tcfg->audio_send_name && (payload_type >= 96 && payload_type <= 127)) { rc = msgb_printf(sdp, "a=rtpmap:%d %s\r\n", payload_type, audio_name); diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 3c1b596..a7a1feb 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -157,7 +157,7 @@ static void dump_rtp_end(struct vty *vty, struct mgcp_rtp_state *state, struct mgcp_rtp_end *end) { - struct mgcp_rtp_codec *codec = &end->codec; + struct mgcp_rtp_codec *codec = end->codec; vty_out(vty, " Timestamp Errs: %lu->%lu%s" diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index 3fc8bc0..1d2cf4a 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -26,6 +26,8 @@ #include #include #include +#include +#include #include #include @@ -156,8 +158,8 @@ "s=-\r\n" \ "c=IN IP4 0.0.0.0\r\n" \ "t=0 0\r\n" \ - "m=audio 16002 RTP/AVP 96\r\n" \ - "a=rtpmap:96 AMR\r\n" \ + "m=audio 16002 RTP/AVP 112\r\n" \ + "a=rtpmap:112 AMR\r\n" \ "a=ptime:40\r\n" #define MDCX4_PT1 \ @@ -404,7 +406,7 @@ "v=0\r\n" \ "o=- 1439038275 1439038275 IN IP4 192.168.181.247\r\n" \ "s=-\r\nc=IN IP4 192.168.181.247\r\n" \ - "t=0 0\r\nm=audio 29084 RTP/AVP 255 0 8 3 18 4 96 97 101\r\n" \ + "t=0 0\r\nm=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101\r\n" \ "a=rtpmap:0 PCMU/8000\r\n" \ "a=rtpmap:8 PCMA/8000\r\n" \ "a=rtpmap:3 gsm/8000\r\n" \ @@ -425,7 +427,24 @@ "I: %s\r\n" \ "\r\n" \ "c=IN IP4 8.8.8.8\r\n" \ - "m=audio 16434 RTP/AVP 255\r\n" + "m=audio 16434 RTP/AVP 3\r\n" + +#define CRCX_NO_LCO_NO_SDP \ + "CRCX 2 6 at mgw MGCP 1.0\r\n" \ + "M: recvonly\r\n" \ + "C: 2\r\n" + +#define CRCX_NO_LCO_NO_SDP_RET \ + "200 2 OK\r\n" \ + "I: %s\r\n" \ + "\r\n" \ + "v=0\r\n" \ + "o=- %s 23 IN IP4 0.0.0.0\r\n" \ + "s=-\r\n" \ + "c=IN IP4 0.0.0.0\r\n" \ + "t=0 0\r\n" \ + "m=audio 16008 RTP/AVP 0\r\n" \ + "a=ptime:20\r\n" struct mgcp_test { const char *name; @@ -462,6 +481,7 @@ {"MDCX3", MDCX3, MDCX3_FMTP_RET, PTYPE_NONE,.extra_fmtp = "a=fmtp:126 0/1/2"}, {"DLCX", DLCX, DLCX_RET, PTYPE_IGNORE,.extra_fmtp = "a=fmtp:126 0/1/2"}, + {"CRCX", CRCX_NO_LCO_NO_SDP, CRCX_NO_LCO_NO_SDP_RET, 97}, }; static const struct mgcp_test retransmit[] = { @@ -764,14 +784,14 @@ fprintf(stderr, "endpoint %d: " "payload type %d (expected %d)\n", last_endpoint, - conn->end.codec.payload_type, t->ptype); + conn->end.codec->payload_type, t->ptype); if (t->ptype != PTYPE_IGNORE) - OSMO_ASSERT(conn->end.codec.payload_type == + OSMO_ASSERT(conn->end.codec->payload_type == t->ptype); /* Reset them again for next test */ - conn->end.codec.payload_type = PTYPE_NONE; + conn->end.codec->payload_type = PTYPE_NONE; } } @@ -1167,7 +1187,8 @@ rtp = &conn->end; - rtp->codec.payload_type = 98; + OSMO_ASSERT(mgcp_codec_add(conn, PTYPE_UNDEFINED, "AMR/8000/1") == 0); + rtp->codec = &rtp->codecs[0]; for (i = 0; i < ARRAY_SIZE(test_rtp_packets1); ++i) { struct rtp_packet_info *info = test_rtp_packets1 + i; @@ -1243,7 +1264,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 18); + OSMO_ASSERT(conn->end.codec->payload_type == 18); /* Allocate 2 at mgw with three codecs, last one ignored */ last_endpoint = -1; @@ -1258,9 +1279,14 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 18); + OSMO_ASSERT(conn->end.codec->payload_type == 18); - /* Allocate 3 at mgw with no codecs, check for PT == -1 */ + /* Allocate 3 at mgw with no codecs, check for PT == 0 */ + /* Note: It usually makes no sense to leave the payload type list + * out. However RFC 2327 does not clearly forbid this case and + * it makes and since we already decided in OS#2658 that a missing + * LCO should pick a sane default codec, it makes sense to expect + * the same behaviour if SDP lacks proper payload type information */ last_endpoint = -1; inp = create_msg(CRCX_MULT_3, NULL); resp = mgcp_handle_message(cfg, inp); @@ -1273,7 +1299,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == -1); + OSMO_ASSERT(conn->end.codec->payload_type == 0); /* Allocate 4 at mgw with a single codec */ last_endpoint = -1; @@ -1288,7 +1314,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 18); + OSMO_ASSERT(conn->end.codec->payload_type == 18); /* Allocate 5 at mgw at select GSM.. */ last_endpoint = -1; @@ -1306,7 +1332,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 3); + OSMO_ASSERT(conn->end.codec->payload_type == 3); inp = create_msg(MDCX_NAT_DUMMY, conn_id); last_endpoint = -1; @@ -1317,7 +1343,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 3); + OSMO_ASSERT(conn->end.codec->payload_type == 3); OSMO_ASSERT(conn->end.rtp_port == htons(16434)); memset(&addr, 0, sizeof(addr)); inet_aton("8.8.8.8", &addr); @@ -1347,7 +1373,7 @@ endp = &cfg->trunk.endpoints[last_endpoint]; conn = mgcp_conn_get_rtp(endp, conn_id); OSMO_ASSERT(conn); - OSMO_ASSERT(conn->end.codec.payload_type == 255); + OSMO_ASSERT(conn->end.codec->payload_type == 0); talloc_free(cfg); } diff --git a/tests/mgcp/mgcp_test.ok b/tests/mgcp/mgcp_test.ok index e293533..9838f4d 100644 --- a/tests/mgcp/mgcp_test.ok +++ b/tests/mgcp/mgcp_test.ok @@ -408,6 +408,21 @@ Testing CRCX creating message from statically defined input: ---------8<--------- +CRCX 2 6 at mgw MGCP 1.0 +M: recvonly +C: 2 + +---------8<--------- +checking response: +using message with patched conn_id for comparison +Response matches our expectations. +(response does not contain a connection id) +Dummy packets: 2 + +================================================ +Testing CRCX +creating message from statically defined input: +---------8<--------- CRCX 2 1 at mgw MGCP 1.0 M: recvonly C: 2 @@ -1031,7 +1046,7 @@ s=- c=IN IP4 192.168.181.247 t=0 0 -m=audio 29084 RTP/AVP 255 0 8 3 18 4 96 97 101 +m=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 gsm/8000 @@ -1054,7 +1069,7 @@ I: %s c=IN IP4 8.8.8.8 -m=audio 16434 RTP/AVP 255 +m=audio 16434 RTP/AVP 3 ---------8<--------- creating message from statically defined input: @@ -1069,7 +1084,7 @@ s=- c=IN IP4 192.168.181.247 t=0 0 -m=audio 29084 RTP/AVP 255 0 8 3 18 4 96 97 101 +m=audio 29084 RTP/AVP 0 8 3 18 4 96 97 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:3 gsm/8000 -- To view, visit https://gerrit.osmocom.org/9648 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If730d022ba6bdb217ad4e20b3fbbd1114dbb4b8f Gerrit-Change-Number: 9648 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:39:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:39:48 +0000 Subject: Change in osmo-mgw[master]: client: add features to generate and parse codec information In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9649 ) Change subject: client: add features to generate and parse codec information ...................................................................... client: add features to generate and parse codec information The current implementation does not support any way to influence the codec that is negotiated via SDP or LCO. The client statically negotitates AMR on an invalid payload type number. Also we ignore any codec information in the responses. - Add struct members to allow setting of user defined codec information. - Add struct members to retrieve parsed codec info from responses. - Add code to generate codec information in SDP - Add code to parse SDP codec info in MGCP responses Change-Id: I78e72d41b73acfcb40599a0ff4823f17c3642059 Related: OS#2728 Related: OS#3334 --- M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_fsm.h M src/libosmo-mgcp-client/mgcp_client.c M src/libosmo-mgcp-client/mgcp_client_fsm.c M tests/mgcp_client/mgcp_client_test.c M tests/mgcp_client/mgcp_client_test.err M tests/mgcp_client/mgcp_client_test.ok 7 files changed, 721 insertions(+), 85 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 73f3bba..3cecb8f 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -26,6 +26,33 @@ typedef unsigned int mgcp_trans_id_t; +/*! Enumeration of the codec types that mgcp_client is able to handle. */ +enum mgcp_codecs { + CODEC_PCMU_8000_1 = 0, + CODEC_GSM_8000_1 = 3, + CODEC_PCMA_8000_1 = 8, + CODEC_G729_8000_1 = 18, + CODEC_GSMEFR_8000_1 = 110, + CODEC_GSMHR_8000_1 = 111, + CODEC_AMR_8000_1 = 112, + CODEC_AMRWB_16000_1 = 113, +}; +/* Note: when new codec types are added, the corresponding value strings + * in mgcp_client.c (codec_table) must be updated as well. Enumerations + * in enum mgcp_codecs must correspond to a valid payload type. However, + * this is an internal assumption that is made to avoid lookup tables. + * The API-User should not rely on this coincidence! */ + +/*! Structure to build a payload type map to allow the defiition custom payload + * types. */ +struct ptmap { + /*!< codec for which a payload type number should be defined */ + enum mgcp_codecs codec; + + /*!< payload type number (96-127) */ + unsigned int pt; +}; + struct mgcp_response_head { int response_code; mgcp_trans_id_t trans_id; @@ -39,6 +66,11 @@ struct mgcp_response_head head; uint16_t audio_port; char audio_ip[INET_ADDRSTRLEN]; + unsigned int ptime; + enum mgcp_codecs codecs[MGCP_MAX_CODECS]; + unsigned int codecs_len; + struct ptmap ptmap[MGCP_MAX_CODECS]; + unsigned int ptmap_len; }; enum mgcp_verb { @@ -66,6 +98,11 @@ uint16_t audio_port; char *audio_ip; enum mgcp_connection_mode conn_mode; + unsigned int ptime; + enum mgcp_codecs codecs[MGCP_MAX_CODECS]; + unsigned int codecs_len; + struct ptmap ptmap[MGCP_MAX_CODECS]; + unsigned int ptmap_len; }; void mgcp_client_conf_init(struct mgcp_client_conf *conf); @@ -117,3 +154,9 @@ { return get_value_string(mgcp_client_connection_mode_strs, mode); } + +enum mgcp_codecs map_str_to_codec(const char *str); +unsigned int map_codec_to_pt(struct ptmap *ptmap, unsigned int ptmap_len, + enum mgcp_codecs codec); +enum mgcp_codecs map_pt_to_codec(struct ptmap *ptmap, unsigned int ptmap_len, + unsigned int pt); diff --git a/include/osmocom/mgcp_client/mgcp_client_fsm.h b/include/osmocom/mgcp_client/mgcp_client_fsm.h index 93fe582..47d9fab 100644 --- a/include/osmocom/mgcp_client/mgcp_client_fsm.h +++ b/include/osmocom/mgcp_client/mgcp_client_fsm.h @@ -25,6 +25,15 @@ /*!< CALL ID (unique per connection) */ unsigned int call_id; + + /*!< RTP packetization interval (optional) */ + unsigned int ptime; + + /*!< RTP codec list (optional) */ + enum mgcp_codecs codecs[MGCP_MAX_CODECS]; + + /*!< Number of codecs in RTP codec list (optional) */ + unsigned int codecs_len; }; struct osmo_fsm_inst *mgcp_conn_create(struct mgcp_client *mgcp, struct osmo_fsm_inst *parent_fi, uint32_t parent_term_evt, diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c index e054593..00b52f8 100644 --- a/src/libosmo-mgcp-client/mgcp_client.c +++ b/src/libosmo-mgcp-client/mgcp_client.c @@ -36,6 +36,150 @@ #include #include +/* Codec descripton for dynamic payload types (SDP) */ +static const struct value_string codec_table[] = { + { CODEC_PCMU_8000_1, "PCMU/8000/1" }, + { CODEC_GSM_8000_1, "GSM/8000/1" }, + { CODEC_PCMA_8000_1, "PCMA/8000/1" }, + { CODEC_G729_8000_1, "G729/8000/1" }, + { CODEC_GSMEFR_8000_1, "GSM-EFR/8000/1" }, + { CODEC_GSMHR_8000_1, "GSM-HR-08/8000/1" }, + { CODEC_AMR_8000_1, "AMR/8000/1" }, + { CODEC_AMRWB_16000_1, "AMR-WB/16000/1" }, + { 0, NULL }, +}; + +/* Get encoding name from a full codec string e,g. + * ("CODEC/8000/2" => returns "CODEC") */ +static char *extract_codec_name(const char *str) +{ + static char buf[64]; + unsigned int i; + + if (!str) + return NULL; + + /* FIXME osmo_strlcpy */ + osmo_strlcpy(buf, str, sizeof(buf)); + + for (i = 0; i < strlen(buf); i++) { + if (buf[i] == '/') + buf[i] = '\0'; + } + + return buf; +} + +/*! Map a string to a codec. + * \ptmap[in] str input string (e.g "GSM/8000/1", "GSM/8000" or "GSM") + * \returns codec that corresponds to the given string representation. */ +enum mgcp_codecs map_str_to_codec(const char *str) +{ + unsigned int i; + char *codec_name; + char str_buf[64]; + + osmo_strlcpy(str_buf, extract_codec_name(str), sizeof(str_buf)); + + for (i = 0; i < ARRAY_SIZE(codec_table); i++) { + codec_name = extract_codec_name(codec_table[i].str); + if (!codec_name) + continue; + if (strcmp(codec_name, str_buf) == 0) + return codec_table[i].value; + } + + return -1; +} + +/* Check the ptmap for illegal mappings */ +static int check_ptmap(struct ptmap *ptmap) +{ + /* Check if there are mappings that leave the IANA assigned dynamic + * payload type range. Under normal conditions such mappings should + * not occur */ + + /* Its ok to have a 1:1 mapping in the statically defined + * range, this won't hurt */ + if (ptmap->codec == ptmap->pt) + return 0; + + if (ptmap->codec < 96 || ptmap->codec > 127) + goto error; + if (ptmap->pt < 96 || ptmap->pt > 127) + goto error; + + return 0; +error: + LOGP(DLMGCP, LOGL_ERROR, + "ptmap contains illegal mapping: codec=%u maps to pt=%u\n", + ptmap->codec, ptmap->pt); + return -1; +} + +/*! Map a codec to a payload type. + * \ptmap[in] payload pointer to payload type map with specified payload types. + * \ptmap[in] ptmap_len length of the payload type map. + * \ptmap[in] codec the codec for which the payload type should be looked up. + * \returns assigned payload type */ +unsigned int map_codec_to_pt(struct ptmap *ptmap, unsigned int ptmap_len, + enum mgcp_codecs codec) +{ + unsigned int i; + + /*! Note: If the payload type map is empty or the codec is not found + * in the map, then a 1:1 mapping is performed. If the codec falls + * into the statically defined range or if the mapping table isself + * tries to map to the statically defined range, then the mapping + * is also ignored and a 1:1 mapping is performed instead. */ + + /* we may return the codec directly since enum mgcp_codecs directly + * corresponds to the stati?ally assigned payload types */ + if (codec < 96 || codec > 127) + return codec; + + for (i = 0; i < ptmap_len; i++) { + /* Skip illegal map entries */ + if (check_ptmap(ptmap) == 0 && ptmap->codec == codec) + return ptmap->pt; + ptmap++; + } + + /* If nothing is found, do not perform any mapping */ + return codec; +} + +/*! Map a payload type to a codec. + * \ptmap[in] payload pointer to payload type map with specified payload types. + * \ptmap[in] ptmap_len length of the payload type map. + * \ptmap[in] payload type for which the codec should be looked up. + * \returns codec that corresponds to the specified payload type */ +enum mgcp_codecs map_pt_to_codec(struct ptmap *ptmap, unsigned int ptmap_len, + unsigned int pt) +{ + unsigned int i; + + /*! Note: If the payload type map is empty or the payload type is not + * found in the map, then a 1:1 mapping is performed. If the payload + * type falls into the statically defined range or if the mapping + * table isself tries to map to the statically defined range, then + * the mapping is also ignored and a 1:1 mapping is performed + * instead. */ + + /* See also note in map_codec_to_pt() */ + if (pt < 96 || pt > 127) + return pt; + + for (i = 0; i < ptmap_len; i++) { + if (check_ptmap(ptmap) == 0 && ptmap->pt == pt) + return ptmap->codec; + ptmap++; + } + + /* If nothing is found, do not perform any mapping */ + return pt; +} + /*! Initalize MGCP client configuration struct with default values. * \param[out] conf Client configuration.*/ void mgcp_client_conf_init(struct mgcp_client_conf *conf) @@ -178,22 +322,114 @@ return true; } -/* Parse a line like "m=audio 16002 RTP/AVP 98" */ -static int mgcp_parse_audio_port(struct mgcp_response *r, const char *line) +/* Parse a line like "m=audio 16002 RTP/AVP 98", extract port and payload types */ +static int mgcp_parse_audio_port_pt(struct mgcp_response *r, char *line) { - if (sscanf(line, "m=audio %hu", - &r->audio_port) != 1) - goto response_parse_failure; + char *pt_str; + unsigned int pt; + unsigned int count = 0; + unsigned int i; + /* Extract port information */ + if (sscanf(line, "m=audio %hu", &r->audio_port) != 1) + goto response_parse_failure_port; if (r->audio_port == 0) - goto response_parse_failure; + goto response_parse_failure_port; + /* Extract payload types */ + line = strstr(line, "RTP/AVP "); + if (!line) + goto exit; + + pt_str = strtok(line, " "); + while (1) { + /* Do not allow excessive payload types */ + if (count > ARRAY_SIZE(r->codecs)) + goto response_parse_failure_pt; + + pt_str = strtok(NULL, " "); + if (!pt_str) + break; + pt = atoi(pt_str); + + /* Do not allow duplicate payload types */ + for (i = 0; i < count; i++) + if (r->codecs[i] == pt) + goto response_parse_failure_pt; + + /* Note: The payload type we store may not necessarly match + * the codec types we have defined in enum mgcp_codecs. To + * ensure that the end result only contains codec types which + * match enum mgcp_codecs, we will go through afterwards and + * remap the affected entries with the inrofmation we learn + * from rtpmap */ + r->codecs[count] = pt; + count++; + } + + r->codecs_len = count; + +exit: return 0; -response_parse_failure: +response_parse_failure_port: LOGP(DLMGCP, LOGL_ERROR, - "Failed to parse MGCP response header (audio port)\n"); + "Failed to parse SDP parameter port (%s)\n", line); return -EINVAL; + +response_parse_failure_pt: + LOGP(DLMGCP, LOGL_ERROR, + "Failed to parse SDP parameter payload types (%s)\n", line); + return -EINVAL; +} + +/* Parse a line like "m=audio 16002 RTP/AVP 98", extract port and payload types */ +static int mgcp_parse_audio_ptime_rtpmap(struct mgcp_response *r, const char *line) +{ + unsigned int pt; + char codec_resp[64]; + unsigned int codec; + + + if (strstr(line, "ptime")) { + if (sscanf(line, "a=ptime:%u", &r->ptime) != 1) + goto response_parse_failure_ptime; + } else if (strstr(line, "rtpmap")) { + if (sscanf(line, "a=rtpmap:%d %63s", &pt, codec_resp) == 2) { + /* The MGW may assign an own payload type in the + * response if the choosen codec falls into the IANA + * assigned dynamic payload type range (96-127). + * Normally the MGW should obey the 3gpp payload type + * assignments, which are fixed, so we likely wont see + * anything unexpected here. In order to be sure that + * we will now check the codec string and if the result + * does not match to what is IANA / 3gpp assigned, we + * will create an entry in the ptmap table so we can + * lookup later what has been assigned. */ + codec = map_str_to_codec(codec_resp); + if (codec != pt) { + if (r->ptmap_len < ARRAY_SIZE(r->ptmap)) { + r->ptmap[r->ptmap_len].pt = pt; + r->ptmap[r->ptmap_len].codec = codec; + r->ptmap_len++; + } else + goto response_parse_failure_rtpmap; + } + + } else + goto response_parse_failure_rtpmap; + } + + return 0; + +response_parse_failure_ptime: + LOGP(DLMGCP, LOGL_ERROR, + "Failed to parse SDP parameter, invalid ptime (%s)\n", line); + return -EINVAL; +response_parse_failure_rtpmap: + LOGP(DLMGCP, LOGL_ERROR, + "Failed to parse SDP parameter, invalid rtpmap (%s)\n", line); + return -EINVAL; } /* Parse a line like "c=IN IP4 10.11.12.13" */ @@ -253,6 +489,7 @@ int rc; char *data; char *data_ptr; + int i; /* Since this functions performs a destructive parsing, we create a * local copy of the body data */ @@ -277,8 +514,13 @@ return -EINVAL; switch (line[0]) { + case 'a': + rc = mgcp_parse_audio_ptime_rtpmap(r, line); + if (rc) + goto exit; + break; case 'm': - rc = mgcp_parse_audio_port(r, line); + rc = mgcp_parse_audio_port_pt(r, line); if (rc) goto exit; break; @@ -293,6 +535,10 @@ } } + /* See also note in mgcp_parse_audio_port_pt() */ + for (i = 0; i < r->codecs_len; i++) + r->codecs[i] = map_pt_to_codec(r->ptmap, r->ptmap_len, r->codecs[i]); + rc = 0; exit: talloc_free(data); @@ -813,6 +1059,119 @@ #define MGCP_AUEP_MANDATORY (MGCP_MSG_PRESENCE_ENDPOINT) #define MGCP_RSIP_MANDATORY 0 /* none */ +/* Helper function for mgcp_msg_gen(): Add LCO information to MGCP message */ +static int add_lco(struct msgb *msg, struct mgcp_msg *mgcp_msg) +{ + unsigned int i; + int rc = 0; + const char *codec; + unsigned int pt; + + rc += msgb_printf(msg, "L:"); + + if (mgcp_msg->ptime) + rc += msgb_printf(msg, " p:%u,", mgcp_msg->ptime); + + if (mgcp_msg->codecs_len) { + rc += msgb_printf(msg, " a:"); + for (i = 0; i < mgcp_msg->codecs_len; i++) { + pt = mgcp_msg->codecs[i]; + codec = get_value_string_or_null(codec_table, pt); + + /* Note: Use codec descriptors from enum mgcp_codecs + * in mgcp_client only! */ + OSMO_ASSERT(codec); + rc += msgb_printf(msg, "%s", extract_codec_name(codec)); + if (i < mgcp_msg->codecs_len - 1) + rc += msgb_printf(msg, ";"); + } + rc += msgb_printf(msg, ","); + } + + rc += msgb_printf(msg, " nt:IN\r\n"); + + return rc; +} + +/* Helper function for mgcp_msg_gen(): Add SDP information to MGCP message */ +static int add_sdp(struct msgb *msg, struct mgcp_msg *mgcp_msg, struct mgcp_client *mgcp) +{ + unsigned int i; + int rc = 0; + char local_ip[INET_ADDRSTRLEN]; + const char *codec; + unsigned int pt; + + /* Add separator to mark the beginning of the SDP block */ + rc += msgb_printf(msg, "\r\n"); + + /* Add SDP protocol version */ + rc += msgb_printf(msg, "v=0\r\n"); + + /* Determine local IP-Address */ + if (osmo_sock_local_ip(local_ip, mgcp->actual.remote_addr) < 0) { + LOGP(DLMGCP, LOGL_ERROR, + "Could not determine local IP-Address!\n"); + msgb_free(msg); + return -2; + } + + /* Add owner/creator (SDP) */ + rc += msgb_printf(msg, "o=- %x 23 IN IP4 %s\r\n", + mgcp_msg->call_id, local_ip); + + /* Add session name (none) */ + rc += msgb_printf(msg, "s=-\r\n"); + + /* Add RTP address and port */ + if (mgcp_msg->audio_port == 0) { + LOGP(DLMGCP, LOGL_ERROR, + "Invalid port number, can not generate MGCP message\n"); + msgb_free(msg); + return -2; + } + if (strlen(mgcp_msg->audio_ip) <= 0) { + LOGP(DLMGCP, LOGL_ERROR, + "Empty ip address, can not generate MGCP message\n"); + msgb_free(msg); + return -2; + } + rc += msgb_printf(msg, "c=IN IP4 %s\r\n", mgcp_msg->audio_ip); + + /* Add time description, active time (SDP) */ + rc += msgb_printf(msg, "t=0 0\r\n"); + + rc += msgb_printf(msg, "m=audio %u RTP/AVP", mgcp_msg->audio_port); + for (i = 0; i < mgcp_msg->codecs_len; i++) { + pt = map_codec_to_pt(mgcp_msg->ptmap, mgcp_msg->ptmap_len, mgcp_msg->codecs[i]); + rc += msgb_printf(msg, " %u", pt); + + } + rc += msgb_printf(msg, "\r\n"); + + for (i = 0; i < mgcp_msg->codecs_len; i++) { + pt = map_codec_to_pt(mgcp_msg->ptmap, mgcp_msg->ptmap_len, mgcp_msg->codecs[i]); + + /* Note: Only dynamic payload type from the range 96-127 + * require to be explained further via rtpmap. All others + * are implcitly definedby the number in m=audio */ + if (pt >= 96 && pt <= 127) { + codec = get_value_string_or_null(codec_table, mgcp_msg->codecs[i]); + + /* Note: Use codec descriptors from enum mgcp_codecs + * in mgcp_client only! */ + OSMO_ASSERT(codec); + + rc += msgb_printf(msg, "a=rtpmap:%u %s\r\n", pt, codec); + } + } + + if (mgcp_msg->ptime) + rc += msgb_printf(msg, "a=ptime:%u\r\n", mgcp_msg->ptime); + + return rc; +} + /*! Generate an MGCP message * \param[in] mgcp MGCP client descriptor. * \param[in] mgcp_msg Message description @@ -823,7 +1182,8 @@ uint32_t mandatory_mask; struct msgb *msg = msgb_alloc_headroom(4096, 128, "MGCP tx"); int rc = 0; - char local_ip[INET_ADDRSTRLEN]; + int rc_sdp; + bool use_sdp = false; msg->l2h = msg->data; msg->cb[MSGB_CB_MGCP_TRANS_ID] = trans_id; @@ -902,9 +1262,17 @@ rc += msgb_printf(msg, "I: %s\r\n", mgcp_msg->conn_id); } - /* Add local connection options */ - if (mgcp_msg->verb == MGCP_VERB_CRCX) - rc += msgb_printf(msg, "L: p:20, a:AMR, nt:IN\r\n"); + /* Using SDP makes sense when a valid IP/Port combination is specifiec, + * if we do not know this information yet, we fall back to LCO */ + if (mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_IP + && mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_PORT) + use_sdp = true; + + /* Add local connection options (LCO) */ + if (!use_sdp + && (mgcp_msg->verb == MGCP_VERB_CRCX + || mgcp_msg->verb == MGCP_VERB_MDCX)) + rc += add_lco(msg, mgcp_msg); /* Add mode */ if (mgcp_msg->presence & MGCP_MSG_PRESENCE_CONN_MODE) @@ -912,52 +1280,15 @@ msgb_printf(msg, "M: %s\r\n", mgcp_client_cmode_name(mgcp_msg->conn_mode)); - /* Add SDP body */ - if (mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_IP - && mgcp_msg->presence & MGCP_MSG_PRESENCE_AUDIO_PORT) { - - /* Add separator to mark the beginning of the SDP block */ - rc += msgb_printf(msg, "\r\n"); - - /* Add SDP protocol version */ - rc += msgb_printf(msg, "v=0\r\n"); - - /* Determine local IP-Address */ - if (osmo_sock_local_ip(local_ip, mgcp->actual.remote_addr) < 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Could not determine local IP-Address!\n"); - msgb_free(msg); + /* Add session description protocol (SDP) */ + if (use_sdp + && (mgcp_msg->verb == MGCP_VERB_CRCX + || mgcp_msg->verb == MGCP_VERB_MDCX)) { + rc_sdp = add_sdp(msg, mgcp_msg, mgcp); + if (rc_sdp == -2) return NULL; - } - - /* Add owner/creator (SDP) */ - rc += msgb_printf(msg, "o=- %x 23 IN IP4 %s\r\n", - mgcp_msg->call_id, local_ip); - - /* Add session name (none) */ - rc += msgb_printf(msg, "s=-\r\n"); - - /* Add RTP address and port */ - if (mgcp_msg->audio_port == 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Invalid port number, can not generate MGCP message\n"); - msgb_free(msg); - return NULL; - } - if (strlen(mgcp_msg->audio_ip) <= 0) { - LOGP(DLMGCP, LOGL_ERROR, - "Empty ip address, can not generate MGCP message\n"); - msgb_free(msg); - return NULL; - } - rc += msgb_printf(msg, "c=IN IP4 %s\r\n", mgcp_msg->audio_ip); - - /* Add time description, active time (SDP) */ - rc += msgb_printf(msg, "t=0 0\r\n"); - - rc += - msgb_printf(msg, "m=audio %u RTP/AVP 255\r\n", - mgcp_msg->audio_port); + else + rc += rc_sdp; } if (rc != 0) { diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c index 25543ae..fe1590f 100644 --- a/src/libosmo-mgcp-client/mgcp_client_fsm.c +++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c @@ -113,8 +113,11 @@ .presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | MGCP_MSG_PRESENCE_CONN_MODE), .call_id = mgcp_ctx->conn_peer_local.call_id, .conn_mode = MGCP_CONN_RECV_ONLY, + .ptime = mgcp_ctx->conn_peer_local.ptime, + .codecs_len = mgcp_ctx->conn_peer_local.codecs_len }; osmo_strlcpy(mgcp_msg.endpoint, mgcp_ctx->conn_peer_local.endpoint, MGCP_ENDPOINT_MAXLEN); + memcpy(mgcp_msg.codecs, mgcp_ctx->conn_peer_local.codecs, sizeof(mgcp_msg.codecs)); return mgcp_msg_gen(mgcp_ctx->mgcp, &mgcp_msg); } @@ -124,15 +127,19 @@ struct mgcp_msg mgcp_msg; mgcp_msg = (struct mgcp_msg) { - .verb = MGCP_VERB_CRCX,.presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | - MGCP_MSG_PRESENCE_CONN_MODE | MGCP_MSG_PRESENCE_AUDIO_IP | - MGCP_MSG_PRESENCE_AUDIO_PORT), + .verb = MGCP_VERB_CRCX, + .presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_MODE | MGCP_MSG_PRESENCE_AUDIO_IP | + MGCP_MSG_PRESENCE_AUDIO_PORT), .call_id = mgcp_ctx->conn_peer_local.call_id, .conn_mode = MGCP_CONN_RECV_SEND, .audio_ip = mgcp_ctx->conn_peer_local.addr, .audio_port = mgcp_ctx->conn_peer_local.port, + .ptime = mgcp_ctx->conn_peer_local.ptime, + .codecs_len = mgcp_ctx->conn_peer_local.codecs_len }; osmo_strlcpy(mgcp_msg.endpoint, mgcp_ctx->conn_peer_local.endpoint, MGCP_ENDPOINT_MAXLEN); + memcpy(mgcp_msg.codecs, mgcp_ctx->conn_peer_local.codecs, sizeof(mgcp_msg.codecs)); return mgcp_msg_gen(mgcp_ctx->mgcp, &mgcp_msg); } @@ -150,8 +157,11 @@ .conn_mode = MGCP_CONN_RECV_SEND, .audio_ip = mgcp_ctx->conn_peer_local.addr, .audio_port = mgcp_ctx->conn_peer_local.port, + .ptime = mgcp_ctx->conn_peer_local.ptime, + .codecs_len = mgcp_ctx->conn_peer_local.codecs_len }; osmo_strlcpy(mgcp_msg.endpoint, mgcp_ctx->conn_peer_remote.endpoint, MGCP_ENDPOINT_MAXLEN); + memcpy(mgcp_msg.codecs, mgcp_ctx->conn_peer_local.codecs, sizeof(mgcp_msg.codecs)); /* Note: We take the endpoint and the call_id from the remote * connection info, because we can be confident that the @@ -573,7 +583,7 @@ OSMO_ASSERT(mgcp); OSMO_ASSERT(conn_peer); - /* Check if IP/Port informstaion in conn info makes sense */ + /* Check if IP/Port information in conn info makes sense */ if (conn_peer->port && inet_aton(conn_peer->addr, &ip_test) == 0) return NULL; diff --git a/tests/mgcp_client/mgcp_client_test.c b/tests/mgcp_client/mgcp_client_test.c index 007b90c..9978f79 100644 --- a/tests/mgcp_client/mgcp_client_test.c +++ b/tests/mgcp_client/mgcp_client_test.c @@ -95,21 +95,26 @@ void test_response_cb(struct mgcp_response *response, void *priv) { + unsigned int i; OSMO_ASSERT(priv == mgcp); mgcp_response_parse_params(response); - printf("response cb received:\n" - " head.response_code = %d\n" - " head.trans_id = %u\n" - " head.comment = %s\n" - " audio_port = %u\n" - " audio_ip = %s\n", - response->head.response_code, - response->head.trans_id, - response->head.comment, - response->audio_port, - response->audio_ip - ); + printf("response cb received:\n"); + printf(" head.response_code = %d\n", response->head.response_code); + printf(" head.trans_id = %u\n", response->head.trans_id); + printf(" head.comment = %s\n", response->head.comment); + printf(" audio_port = %u\n", response->audio_port); + printf(" audio_ip = %s\n", response->audio_ip); + printf(" ptime = %u\n", response->ptime); + printf(" codecs_len = %u\n", response->codecs_len); + for(i=0;icodecs_len;i++) + printf(" codecs[%u] = %u\n", i, response->codecs[i]); + printf(" ptmap_len = %u\n", response->ptmap_len); + for(i=0;iptmap_len;i++) { + printf(" ptmap[%u].codec = %u\n", i, response->ptmap[i].codec); + printf(" ptmap[%u].pt = %u\n", i, response->ptmap[i].pt); + } + } mgcp_trans_id_t dummy_mgcp_send(struct msgb *msg) @@ -149,8 +154,9 @@ "s=-\r\n" "c=IN IP4 10.9.1.120\r\n" "t=0 0\r\n" - "m=audio 16002 RTP/AVP 98\r\n" - "a=rtpmap:98 AMR/8000\r\n" + "m=audio 16002 RTP/AVP 110 96\r\n" + "a=rtpmap:110 AMR/8000\r\n" + "a=rtpmap:96 GSM-EFR/8000\r\n" "a=ptime:20\r\n"); } @@ -166,7 +172,15 @@ .audio_port = 1234, .call_id = 47, .conn_id = "11", - .conn_mode = MGCP_CONN_RECV_SEND + .conn_mode = MGCP_CONN_RECV_SEND, + .ptime = 20, + .codecs[0] = CODEC_GSM_8000_1, + .codecs[1] = CODEC_AMR_8000_1, + .codecs[2] = CODEC_GSMEFR_8000_1, + .codecs_len = 1, + .ptmap[0].codec = CODEC_GSMEFR_8000_1, + .ptmap[0].pt = 96, + .ptmap_len = 1 }; if (mgcp) @@ -183,6 +197,26 @@ msg = mgcp_msg_gen(mgcp, &mgcp_msg); printf("%s\n", (char *)msg->data); + printf("Generated CRCX message (two codecs):\n"); + mgcp_msg.verb = MGCP_VERB_CRCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE); + mgcp_msg.codecs_len = 2; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + + printf("Generated CRCX message (three codecs, one with custom pt):\n"); + mgcp_msg.verb = MGCP_VERB_CRCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE); + mgcp_msg.codecs_len = 3; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + printf("Generated MDCX message:\n"); mgcp_msg.verb = MGCP_VERB_MDCX; mgcp_msg.presence = @@ -192,6 +226,28 @@ msg = mgcp_msg_gen(mgcp, &mgcp_msg); printf("%s\n", (char *)msg->data); + printf("Generated MDCX message (two codecs):\n"); + mgcp_msg.verb = MGCP_VERB_MDCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE | + MGCP_MSG_PRESENCE_AUDIO_IP | MGCP_MSG_PRESENCE_AUDIO_PORT); + mgcp_msg.codecs_len = 2; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + + printf("Generated MDCX message (three codecs, one with custom pt):\n"); + mgcp_msg.verb = MGCP_VERB_MDCX; + mgcp_msg.presence = + (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | + MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE | + MGCP_MSG_PRESENCE_AUDIO_IP | MGCP_MSG_PRESENCE_AUDIO_PORT); + mgcp_msg.codecs_len = 3; + msg = mgcp_msg_gen(mgcp, &mgcp_msg); + mgcp_msg.codecs_len = 1; + printf("%s\n", (char *)msg->data); + printf("Generated DLCX message:\n"); mgcp_msg.verb = MGCP_VERB_DLCX; mgcp_msg.presence = @@ -242,6 +298,9 @@ .conn_mode = MGCP_CONN_RECV_SEND, .presence = (MGCP_MSG_PRESENCE_ENDPOINT | MGCP_MSG_PRESENCE_CALL_ID | MGCP_MSG_PRESENCE_CONN_ID | MGCP_MSG_PRESENCE_CONN_MODE), + .ptime = 20, + .codecs[0] = CODEC_AMR_8000_1, + .codecs_len = 1 }; printf("\n%s():\n", __func__); @@ -376,6 +435,99 @@ OSMO_ASSERT(!failures); } +static void test_map_pt_to_codec(void) +{ + /* Full form */ + OSMO_ASSERT(map_str_to_codec("PCMU/8000/1") == CODEC_PCMU_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM/8000/1") == CODEC_GSM_8000_1); + OSMO_ASSERT(map_str_to_codec("PCMA/8000/1") == CODEC_PCMA_8000_1); + OSMO_ASSERT(map_str_to_codec("G729/8000/1") == CODEC_G729_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM-EFR/8000/1") == CODEC_GSMEFR_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM-HR-08/8000/1") == CODEC_GSMHR_8000_1); + OSMO_ASSERT(map_str_to_codec("AMR/8000/1") == CODEC_AMR_8000_1); + OSMO_ASSERT(map_str_to_codec("AMR-WB/16000/1") == CODEC_AMRWB_16000_1); + + /* Short form */ + OSMO_ASSERT(map_str_to_codec("GSM-EFR") == CODEC_GSMEFR_8000_1); + OSMO_ASSERT(map_str_to_codec("G729") == CODEC_G729_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM-HR-08") == CODEC_GSMHR_8000_1); + + /* We do not care about what is after the first delimiter */ + OSMO_ASSERT(map_str_to_codec("AMR-WB/123///456") == CODEC_AMRWB_16000_1); + OSMO_ASSERT(map_str_to_codec("PCMA/asdf") == CODEC_PCMA_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM/qwertz") == CODEC_GSM_8000_1); + + /* A trailing delimiter should not hurt */ + OSMO_ASSERT(map_str_to_codec("AMR/") == CODEC_AMR_8000_1); + OSMO_ASSERT(map_str_to_codec("G729/") == CODEC_G729_8000_1); + OSMO_ASSERT(map_str_to_codec("GSM/") == CODEC_GSM_8000_1); + + /* This is expected to fail */ + OSMO_ASSERT(map_str_to_codec("INVALID/1234/7") == -1); + OSMO_ASSERT(map_str_to_codec(NULL) == -1); + OSMO_ASSERT(map_str_to_codec("") == -1); + OSMO_ASSERT(map_str_to_codec("/////") == -1); + + /* The buffers are 64 bytes long, check what happens with overlong + * strings as input (This schould still work.) */ + OSMO_ASSERT(map_str_to_codec("AMR-WB/16000/1############################################################################################################") == CODEC_AMRWB_16000_1); + + /* This should not work, as there is no delimiter after the codec + * name */ + OSMO_ASSERT(map_str_to_codec("AMR-WB####################################################################################################################") == -1); +} + +static void test_map_codec_to_pt_and_map_pt_to_codec(void) +{ + struct ptmap ptmap[10]; + unsigned int ptmap_len; + unsigned int i; + + ptmap[0].codec = CODEC_GSMEFR_8000_1; + ptmap[0].pt = 96; + ptmap[1].codec = CODEC_GSMHR_8000_1; + ptmap[1].pt = 97; + ptmap[2].codec = CODEC_AMR_8000_1; + ptmap[2].pt = 98; + ptmap[3].codec = CODEC_AMRWB_16000_1; + ptmap[3].pt = 99; + ptmap_len = 4; + + /* Mappings that are covered by the table */ + for (i = 0; i < ptmap_len; i++) + printf(" %u => %u\n", ptmap[i].codec, map_codec_to_pt(ptmap, ptmap_len, ptmap[i].codec)); + for (i = 0; i < ptmap_len; i++) + printf(" %u <= %u\n", ptmap[i].pt, map_pt_to_codec(ptmap, ptmap_len, ptmap[i].pt)); + printf("\n"); + + /* Map some codecs/payload types from the static range, result must + * always be a 1:1 mapping */ + printf(" %u => %u\n", CODEC_PCMU_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_PCMU_8000_1)); + printf(" %u => %u\n", CODEC_GSM_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_GSM_8000_1)); + printf(" %u => %u\n", CODEC_PCMA_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_PCMA_8000_1)); + printf(" %u => %u\n", CODEC_G729_8000_1, map_codec_to_pt(ptmap, ptmap_len, CODEC_G729_8000_1)); + printf(" %u <= %u\n", CODEC_PCMU_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_PCMU_8000_1)); + printf(" %u <= %u\n", CODEC_GSM_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_GSM_8000_1)); + printf(" %u <= %u\n", CODEC_PCMA_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_PCMA_8000_1)); + printf(" %u <= %u\n", CODEC_G729_8000_1, map_pt_to_codec(ptmap, ptmap_len, CODEC_G729_8000_1)); + printf("\n"); + + /* Try to do mappings from statically defined range to danymic range and vice versa. This + * is illegal and should result into a 1:1 mapping */ + ptmap[3].codec = CODEC_AMRWB_16000_1; + ptmap[3].pt = 2; + ptmap[4].codec = CODEC_PCMU_8000_1; + ptmap[4].pt = 100; + ptmap_len = 5; + + /* Apply all mappings again, the illegal ones we defined should result into 1:1 mappings */ + for (i = 0; i < ptmap_len; i++) + printf(" %u => %u\n", ptmap[i].codec, map_codec_to_pt(ptmap, ptmap_len, ptmap[i].codec)); + for (i = 0; i < ptmap_len; i++) + printf(" %u <= %u\n", ptmap[i].pt, map_pt_to_codec(ptmap, ptmap_len, ptmap[i].pt)); + printf("\n"); +} + static const struct log_info_cat log_categories[] = { }; @@ -403,6 +555,8 @@ test_mgcp_msg(); test_mgcp_client_cancel(); test_sdp_section_start(); + test_map_codec_to_pt_and_map_pt_to_codec(); + test_map_pt_to_codec(); printf("Done\n"); fprintf(stderr, "Done\n"); diff --git a/tests/mgcp_client/mgcp_client_test.err b/tests/mgcp_client/mgcp_client_test.err index 7309242..1d5a1a0 100644 --- a/tests/mgcp_client/mgcp_client_test.err +++ b/tests/mgcp_client/mgcp_client_test.err @@ -62,4 +62,8 @@ body: "some mgcp header data\r\nand header params\n\r\rm=audio 23\r\n" DLMGCP MGCP response: cannot find start of SDP parameters got rc=-22 +DLMGCP ptmap contains illegal mapping: codec=113 maps to pt=2 +DLMGCP ptmap contains illegal mapping: codec=0 maps to pt=100 +DLMGCP ptmap contains illegal mapping: codec=113 maps to pt=2 +DLMGCP ptmap contains illegal mapping: codec=0 maps to pt=100 Done diff --git a/tests/mgcp_client/mgcp_client_test.ok b/tests/mgcp_client/mgcp_client_test.ok index fc6db30..454ee3d 100644 --- a/tests/mgcp_client/mgcp_client_test.ok +++ b/tests/mgcp_client/mgcp_client_test.ok @@ -18,8 +18,9 @@ s=- c=IN IP4 10.9.1.120 t=0 0 -m=audio 16002 RTP/AVP 98 -a=rtpmap:98 AMR/8000 +m=audio 16002 RTP/AVP 110 96 +a=rtpmap:110 AMR/8000 +a=rtpmap:96 GSM-EFR/8000 a=ptime:20 ----- @@ -29,16 +30,39 @@ head.comment = OK audio_port = 16002 audio_ip = 10.9.1.120 + ptime = 20 + codecs_len = 2 + codecs[0] = 112 + codecs[1] = 110 + ptmap_len = 2 + ptmap[0].codec = 112 + ptmap[0].pt = 110 + ptmap[1].codec = 110 + ptmap[1].pt = 96 Generated CRCX message: CRCX 1 23 at mgw MGCP 1.0 C: 2f I: 11 -L: p:20, a:AMR, nt:IN +L: p:20, a:GSM, nt:IN +M: sendrecv + +Generated CRCX message (two codecs): +CRCX 2 23 at mgw MGCP 1.0 +C: 2f +I: 11 +L: p:20, a:GSM;AMR, nt:IN +M: sendrecv + +Generated CRCX message (three codecs, one with custom pt): +CRCX 3 23 at mgw MGCP 1.0 +C: 2f +I: 11 +L: p:20, a:GSM;AMR;GSM-EFR, nt:IN M: sendrecv Generated MDCX message: -MDCX 2 23 at mgw MGCP 1.0 +MDCX 4 23 at mgw MGCP 1.0 C: 2f I: 11 M: sendrecv @@ -48,18 +72,50 @@ s=- c=IN IP4 192.168.100.23 t=0 0 -m=audio 1234 RTP/AVP 255 +m=audio 1234 RTP/AVP 3 +a=ptime:20 + +Generated MDCX message (two codecs): +MDCX 5 23 at mgw MGCP 1.0 +C: 2f +I: 11 +M: sendrecv + +v=0 +o=- 2f 23 IN IP4 127.0.0.1 +s=- +c=IN IP4 192.168.100.23 +t=0 0 +m=audio 1234 RTP/AVP 3 112 +a=rtpmap:112 AMR/8000/1 +a=ptime:20 + +Generated MDCX message (three codecs, one with custom pt): +MDCX 6 23 at mgw MGCP 1.0 +C: 2f +I: 11 +M: sendrecv + +v=0 +o=- 2f 23 IN IP4 127.0.0.1 +s=- +c=IN IP4 192.168.100.23 +t=0 0 +m=audio 1234 RTP/AVP 3 112 96 +a=rtpmap:112 AMR/8000/1 +a=rtpmap:96 GSM-EFR/8000/1 +a=ptime:20 Generated DLCX message: -DLCX 3 23 at mgw MGCP 1.0 +DLCX 7 23 at mgw MGCP 1.0 C: 2f I: 11 Generated AUEP message: -AUEP 4 23 at mgw MGCP 1.0 +AUEP 8 23 at mgw MGCP 1.0 Generated RSIP message: -RSIP 5 23 at mgw MGCP 1.0 +RSIP 9 23 at mgw MGCP 1.0 Overfolow test: @@ -102,4 +158,33 @@ test_sdp_section_start() test [8]: test_sdp_section_start() test [9]: + 110 => 96 + 111 => 97 + 112 => 98 + 113 => 99 + 96 <= 110 + 97 <= 111 + 98 <= 112 + 99 <= 113 + + 0 => 0 + 3 => 3 + 8 => 8 + 18 => 18 + 0 <= 0 + 3 <= 3 + 8 <= 8 + 18 <= 18 + + 110 => 96 + 111 => 97 + 112 => 98 + 113 => 113 + 0 => 0 + 96 <= 110 + 97 <= 111 + 98 <= 112 + 2 <= 2 + 100 <= 100 + Done -- To view, visit https://gerrit.osmocom.org/9649 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I78e72d41b73acfcb40599a0ff4823f17c3642059 Gerrit-Change-Number: 9649 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:40:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:40:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: ts_CRCX_no_lco: check media description instead of media a... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9691 ) Change subject: MGCP_Test: ts_CRCX_no_lco: check media description instead of media attribute ...................................................................... MGCP_Test: ts_CRCX_no_lco: check media description instead of media attribute The testcase ts_CRCX_no_lco looks at the media attributes to see if it findes the expected default codec there. In this testcase we expect PCMU/8000/1 as media attribute, but this is a codec from the fixed payload type domain. The MGW may not list this info inside the media attributes. Listing the payload type number in the media description is sufficient. We should check this instead. - Remove media attribute check - Check meida description for PCMU (0) Change-Id: I69600a1025e68011e8fc5d8bf22d842d9c63bf53 Related: OS#2658 --- M mgw/MGCP_Test.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 26a0701..6868405 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -326,7 +326,7 @@ /* See also OS#2658: Even when we omit the LCO information, we expect the MGW to pick a sane payload type for us. This payload type should be visible in the SDP of the response. */ - if (resp.sdp.media_list[0].attributes[0].rtpmap.attr_value != "0 PCMU/8000/1") { + if (resp.sdp.media_list[0].media_field.fmts[0] != "0") { setverdict(fail, "SDP contains unexpected codec"); } -- To view, visit https://gerrit.osmocom.org/9691 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I69600a1025e68011e8fc5d8bf22d842d9c63bf53 Gerrit-Change-Number: 9691 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 11:43:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Jun 2018 11:43:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump-stop.sh: print colored verdict In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9675 ) Change subject: ttcn3-tcpdump-stop.sh: print colored verdict ...................................................................... ttcn3-tcpdump-stop.sh: print colored verdict Change-Id: I0d2d6171430f1eebb5377edac5e237a99ddbd743 --- M ttcn3-tcpdump-stop.sh 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/ttcn3-tcpdump-stop.sh b/ttcn3-tcpdump-stop.sh index a085bf7..9404841 100755 --- a/ttcn3-tcpdump-stop.sh +++ b/ttcn3-tcpdump-stop.sh @@ -2,6 +2,14 @@ PIDFILE=/tmp/tcpdump.pid TESTCASE=$1 +VERDICT="$2" + +if [ x"$VERDICT" = x"pass" ]; then + echo "\033[1;32m====== $TESTCASE $VERDICT ======\033[0m" +else + echo "\033[1;31m------ $TESTCASE $VERDICT ------\033[0m" +fi +echo if [ "z$TTCN3_PCAP_PATH" = "z" ]; then TTCN3_PCAP_PATH=/tmp -- To view, visit https://gerrit.osmocom.org/9675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0d2d6171430f1eebb5377edac5e237a99ddbd743 Gerrit-Change-Number: 9675 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 13:42:56 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 13:42:56 +0000 Subject: Change in osmo-gsm-tester[master]: Begin to refactor and be able to share functionality Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9712 Change subject: Begin to refactor and be able to share functionality ...................................................................... Begin to refactor and be able to share functionality Change-Id: I840af0396f08744ce8ee6a2967f880d5cb7f815f --- M src/osmo_ms_driver/location_update_test.py A src/osmo_ms_driver/test_support.py 2 files changed, 57 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/12/9712/1 diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 0d27d0e..2a3c246 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -1,5 +1,5 @@ -# osmo_ms_driver: Starter for processes -# Help to start processes over time. +# osmo_ms_driver: Locationg Update Test +# Create MS's and wait for the Location Update to succeed. # # Copyright (C) 2018 by Holger Hans Peter Freyther # @@ -19,46 +19,22 @@ from osmo_gsm_tester import log from .starter import OsmoVirtPhy, OsmoMobile +from .test_support import imsi_ki_gen, Results from datetime import timedelta import time -def imsi_ki_gen(): - """ - Generate IMSIs and KIs to be used by test. - """ - n = 1010000000000 - while True: - yield ("%.15d" % n, "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00") - n += 1 - -class Results(log.Origin): +class LUResult(Results): def __init__(self, name): - super().__init__(log.C_RUN, name) - self._time_of_registration = None - self._time_of_launch = None + super().__init__(name) self._time_of_lu = None - def set_start_time(self, time): - assert self._time_of_registration is None - self._time_of_registration = time - - def set_launch_time(self, time): - assert self._time_of_launch is None - self._time_of_launch = time - def set_lu_time(self, time): assert self._time_of_lu is None self._time_of_lu = time - def start_time(self): - return self._time_of_registration or 0 - - def launch_time(self): - return self._time_of_launch or 0 - def lu_time(self): return self._time_of_lu or 0 @@ -98,7 +74,7 @@ self.TEMPLATE_CFG, imsi_gen, phy.phy_filename(), event_server.server_path()) - self._results[ms_name] = Results(ms_name) + self._results[ms_name] = LUResult(ms_name) self._unstarted.append(launcher) self._event_server = event_server self._event_server.register(self.handle_msg) diff --git a/src/osmo_ms_driver/test_support.py b/src/osmo_ms_driver/test_support.py new file mode 100644 index 0000000..f1c34fb --- /dev/null +++ b/src/osmo_ms_driver/test_support.py @@ -0,0 +1,51 @@ +# osmo_ms_driver: Test helpers and base classes +# +# Copyright (C) 2018 by Holger Hans Peter Freyther +# +# 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 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU 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 . + +from osmo_gsm_tester import log + +def imsi_ki_gen(): + """ + Generate IMSIs and KIs to be used by test. + """ + n = 1010000000000 + while True: + yield ("%.15d" % n, "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00") + n += 1 + +class Results(log.Origin): + """ + A base class to collect results from tests. + """ + + def __init__(self, name): + super().__init__(log.C_RUN, name) + self._time_of_registration = None + self._time_of_launch = None + + def set_start_time(self, time): + assert self._time_of_registration is None + self._time_of_registration = time + + def set_launch_time(self, time): + assert self._time_of_launch is None + self._time_of_launch = time + + def start_time(self): + return self._time_of_registration or 0 + + def launch_time(self): + return self._time_of_launch or 0 -- To view, visit https://gerrit.osmocom.org/9712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I840af0396f08744ce8ee6a2967f880d5cb7f815f Gerrit-Change-Number: 9712 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 13:42:56 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 13:42:56 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Make the outer variables configurable Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9713 Change subject: ms: Make the outer variables configurable ...................................................................... ms: Make the outer variables configurable Do the easy part for making these variables configurable. Change-Id: If8bbedcf672f6481a12c30d3669564704063626c --- M src/osmo_ms_driver/__main__.py M src/osmo_ms_driver/cdf.py 2 files changed, 31 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/13/9713/1 diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py index 0e35280..7bca1d1 100644 --- a/src/osmo_ms_driver/__main__.py +++ b/src/osmo_ms_driver/__main__.py @@ -19,50 +19,65 @@ from .event_server import EventServer from .simple_loop import SimpleLoop from .location_update_test import MassUpdateLocationTest -from .cdf import ease_in_out_duration, linear_with_duration +from .cdf import ease_in_out_duration, linear_with_duration, cdfs from osmo_gsm_tester import log # System modules +import argparse import datetime import subprocess import signal import tempfile import os.path +import os +def parser(): + parser = argparse.ArgumentParser(epilog=__doc__, formatter_class=argparse.RawTextHelpFormatter) + parser.add_argument('-s', '--launch-duration', dest='launch_duration', + default=60, type=int, + help="Time launching applications should take in seconds") + parser.add_argument('-i', '--launch-interval', dest='launch_interval', + default=100, type=int, + help="Time between launching in milliseconds") + parser.add_argument('-d', '--distribution', dest="cdf_name", + choices=cdfs.keys(), default="ease_in_out", + help="Curve to use for starting within launch duration") + parser.add_argument('-m', '--number-ms', dest="num_ms", + default=10, type=int, + help="Number of MobileStations to simulate") + return parser def main(): # Create a default log to stdout log.LogTarget().style(src=False) + args = parser().parse_args() + # We don't care what is happening to child processes we spawn! signal.signal(signal.SIGCHLD, signal.SIG_IGN) loop = SimpleLoop() - # TODO: Parse parameters and test composition. Right now we test - # with a single set of values. - num_ms = 10 - tmp_dir = tempfile.mkdtemp(suffix="osmo-ms-driver") log.log("Going to store files in ", tmp_dir=tmp_dir) # How long should starting all apps take - time_start=datetime.timedelta(seconds=60) + time_start=datetime.timedelta(seconds=args.launch_duration) # In which steps to start processes - time_step=datetime.timedelta(milliseconds=100) + time_step=datetime.timedelta(milliseconds=args.launch_interval) # Event server path event_server_path = os.path.join(tmp_dir, "osmo_ms_driver.unix") # The function that decides when to start something - cdf = ease_in_out_duration(time_start, time_step) + cdf = cdfs[args.cdf_name](time_start, time_step) # Event server to handle MS->test events ev_server = EventServer("ev_server", event_server_path) ev_server.listen(loop) # Just a single test for now. - test = MassUpdateLocationTest("lu_test", num_ms, cdf, ev_server, tmp_dir) + test = MassUpdateLocationTest("lu_test", args.num_ms, cdf, ev_server, tmp_dir) # Run until everything has been launched test.launch(loop) diff --git a/src/osmo_ms_driver/cdf.py b/src/osmo_ms_driver/cdf.py index 781349b..e163cc3 100644 --- a/src/osmo_ms_driver/cdf.py +++ b/src/osmo_ms_driver/cdf.py @@ -103,3 +103,10 @@ scale = 1.0/duration.total_seconds() return DistributionFunctionHandler(step_size, duration, lambda x: _in_out(x*scale)) + + +cdfs = { + 'immediate': lambda x,y: immediate(y), + 'linear': linear_with_duration, + 'ease_in_out': ease_in_out_duration, +} -- To view, visit https://gerrit.osmocom.org/9713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If8bbedcf672f6481a12c30d3669564704063626c Gerrit-Change-Number: 9713 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 13:42:56 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 13:42:56 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Attempt to stop all mobile/virtphy instances on exit Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9714 Change subject: ms: Attempt to stop all mobile/virtphy instances on exit ...................................................................... ms: Attempt to stop all mobile/virtphy instances on exit We leave mobile/virtphy running after the test. Attempt to gracefully exit and kill all of them. I experimented with both os.setpgrp and the prctl(PR_SET_DEATH_SIG) but that didn't improve the situation. Change-Id: I6cec050db7d4c355fb6678b2d84309fbbe5587b3 --- M src/osmo_ms_driver/__main__.py 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/14/9714/1 diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py index 7bca1d1..abc5e54 100644 --- a/src/osmo_ms_driver/__main__.py +++ b/src/osmo_ms_driver/__main__.py @@ -24,6 +24,7 @@ # System modules import argparse +import atexit import datetime import subprocess import signal @@ -78,6 +79,7 @@ # Just a single test for now. test = MassUpdateLocationTest("lu_test", args.num_ms, cdf, ev_server, tmp_dir) + atexit.register(test.stop_all) # Run until everything has been launched test.launch(loop) -- To view, visit https://gerrit.osmocom.org/9714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6cec050db7d4c355fb6678b2d84309fbbe5587b3 Gerrit-Change-Number: 9714 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 13:43:22 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 13:43:22 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Begin to refactor and be able to share functionality In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9712 ) Change subject: ms: Begin to refactor and be able to share functionality ...................................................................... ms: Begin to refactor and be able to share functionality Change-Id: I840af0396f08744ce8ee6a2967f880d5cb7f815f --- M src/osmo_ms_driver/location_update_test.py A src/osmo_ms_driver/test_support.py 2 files changed, 57 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/12/9712/2 -- To view, visit https://gerrit.osmocom.org/9712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I840af0396f08744ce8ee6a2967f880d5cb7f815f Gerrit-Change-Number: 9712 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 14:53:22 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Sat, 23 Jun 2018 14:53:22 +0000 Subject: Change in osmo-sgsn[master]: finish gbproxy_parse_bssgp_unitdata test Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9715 Change subject: finish gbproxy_parse_bssgp_unitdata test ...................................................................... finish gbproxy_parse_bssgp_unitdata test The message this test is trying to parse is indeed invalid. Add a comment showing the message in decoded form, and assert that the parser rejects it. Also, add a missing call to cleanup_test(). Change-Id: I2a86432d080c38d3c95626372a0129499d7146dd Related: OS#3178 --- M tests/gbproxy/gbproxy_test.c 1 file changed, 55 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/15/9715/1 diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index e6bb2e6..157da8b 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -4944,14 +4944,64 @@ parse_ctx.to_bss = 0; parse_ctx.peer_nsei = msgb_nsei(msg); - /* TODO: Determine whether our parser or the message is wrong. */ - rc = gprs_gb_parse_bssgp(msg->data, msg->len, &parse_ctx); - if (!rc) { - fprintf(stderr, "%s: Failed to parse message %s\n", __func__, msgb_hexdump(msg)); - } + if (!rc) + fprintf(stderr, "%s: Test passed; Failed to parse invalid message %s\n", __func__, msgb_hexdump(msg)); + else + fprintf(stderr, "%s: Test failed; invalid message was accepted by parser: %s\n", __func__, msgb_hexdump(msg)); + + OSMO_ASSERT(!rc); + + /* Manually decoded message according to: + ETSI TS 148 018 V10.6.0 (2012 07) 96 + 3GPP TS 48.018 version 10.6.0 Release 10 + Table 10.2.2: UL-UNITDATA PDU content + + 00 - PDU type UL-UNITDATA (ok) + + 11.3.35 Temporary logical link Identity (TLLI) + 00 - TLLI[0] + 23 - TLLI[1] + 94 - TLLI[2] + 01 - TLLI[3] + TLLI == "00239401" + + e1 - QOS[0] (bit rate MSB) + 55 - QOS[1] (bit rate LSB) + bit rate = "57685" (57685*100000 bit/s per PBRG) + cf - QOS[2] PBRG = 11 (bit rate is expressed in 100000 bit/s increments), + C/R 0 (contains LLC ACK/SACK), + T 0 (contains signalling), + A 1 (radio if uses MAC/UNITDATA, + Precedence 111 (reserved value) + + ea - CELL_ID[0] (TLV IEI: wrong, should be 0x08) + 00 - CELL_ID[1] (length 1) + 00 - CELL_ID[2] (length 2) + lenth == 0 + 04 -- CELL_ID[3] + 08 -- CELL_ID[4] + 88 -- CELL_ID[5] + 72 -- CELL_ID[6] + f4 -- CELL_ID[7] + 80 -- CELL_ID[8] + 10 -- CELL_DI[9] + + 18 -- QOSP[0] OoS Profile IEI + not allowed in BSSGP Userdata + 00 -- QOSP[1] + 9c -- QOSP[2] + 40 -- QOSP[3] + 00 -- QOSP[4] + + 80 -- IEI for "E-UTRAN Inter RAT Handover Info" + not allowed in BSSGP Userdata + 0e -- length (14 bytes -- only 8 bytes remain) + 00 06 01 c0 41 6c 43 38 */ msgb_free(msg); + + cleanup_test(); } static struct log_info_cat gprs_categories[] = { -- To view, visit https://gerrit.osmocom.org/9715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2a86432d080c38d3c95626372a0129499d7146dd Gerrit-Change-Number: 9715 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Jun 23 15:10:07 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 23 Jun 2018 15:10:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#163?= In-Reply-To: <1941225446.276.1529680206994.JavaMail.jenkins@jenkins.osmocom.org> References: <1941225446.276.1529680206994.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <991357438.292.1529766607106.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.81 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From admin at opensuse.org Sat Jun 23 19:59:04 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 19:59:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b2ea6965f857_6a74864688533257@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 186s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 186s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 186s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 186s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 186s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 186s] make[3]: Nothing to be done for 'install-exec-am'. [ 186s] make[3]: Nothing to be done for 'install-data-am'. [ 186s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 186s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 186s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 186s] dh_install [ 186s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 186s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 186s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 186s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 186s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 186s] dh_install: missing files, aborting [ 186s] debian/rules:6: recipe for target 'binary' failed [ 186s] make: *** [binary] Error 2 [ 186s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 186s] [ 186s] lamb73 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 19:58:31 UTC 2018. [ 186s] [ 186s] ### VM INTERACTION START ### [ 190s] [ 181.574518] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] lamb73 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 19:58:35 UTC 2018. [ 190s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 19:59:04 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 19:59:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b2ea696d80f5_6a7486468853338e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 188s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 188s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 188s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 188s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 188s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 188s] make[3]: Nothing to be done for 'install-exec-am'. [ 188s] make[3]: Nothing to be done for 'install-data-am'. [ 188s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 188s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 188s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 188s] dh_install [ 188s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 188s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 188s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 188s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 188s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 188s] dh_install: missing files, aborting [ 188s] debian/rules:6: recipe for target 'binary' failed [ 188s] make: *** [binary] Error 2 [ 188s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 188s] [ 188s] lamb76 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 19:58:37 UTC 2018. [ 188s] [ 188s] ### VM INTERACTION START ### [ 191s] [ 182.353828] reboot: Power down [ 191s] ### VM INTERACTION END ### [ 191s] [ 191s] lamb76 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 19:58:40 UTC 2018. [ 191s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 20:00:12 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 20:00:12 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b2ea6d0c3f08_6a74864688533965@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/i586 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 209s] make[3]: Nothing to be done for 'install-exec-am'. [ 209s] make[3]: Nothing to be done for 'install-data-am'. [ 209s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 209s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 209s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 209s] dh_install [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 210s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 210s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 210s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 210s] dh_install: missing files, aborting [ 210s] debian/rules:6: recipe for target 'binary' failed [ 210s] make: *** [binary] Error 2 [ 210s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 210s] [ 210s] lamb69 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 19:59:32 UTC 2018. [ 210s] [ 210s] ### VM INTERACTION START ### [ 213s] [ 202.105831] reboot: Power down [ 213s] ### VM INTERACTION END ### [ 213s] [ 213s] lamb69 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 19:59:36 UTC 2018. [ 213s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 20:00:46 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 20:00:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b2ea6f1da8b7_6a74864688534296@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 250s] make[3]: Nothing to be done for 'install-exec-am'. [ 250s] make[3]: Nothing to be done for 'install-data-am'. [ 250s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 250s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 250s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 250s] dh_install [ 250s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 250s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 250s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 250s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 250s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 250s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 250s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 250s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 250s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 250s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 250s] dh_install: missing files, aborting [ 250s] debian/rules:6: recipe for target 'binary' failed [ 250s] make: *** [binary] Error 2 [ 250s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 250s] [ 250s] lamb12 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:00:04 UTC 2018. [ 250s] [ 250s] ### VM INTERACTION START ### [ 254s] [ 244.833069] reboot: Power down [ 254s] ### VM INTERACTION END ### [ 254s] [ 254s] lamb12 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:00:08 UTC 2018. [ 254s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 20:01:37 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 20:01:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b2ea72ee8245_6a7486468853442c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 214s] make[3]: Nothing to be done for 'install-exec-am'. [ 214s] make[3]: Nothing to be done for 'install-data-am'. [ 214s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 214s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 214s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 214s] dh_install [ 214s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 214s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 214s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 214s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 214s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 214s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 214s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 214s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 214s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 214s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 214s] dh_install: missing files, aborting [ 214s] debian/rules:6: recipe for target 'binary' failed [ 214s] make: *** [binary] Error 2 [ 214s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 214s] [ 214s] lamb23 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:01:04 UTC 2018. [ 214s] [ 214s] ### VM INTERACTION START ### [ 217s] [ 207.865681] reboot: Power down [ 217s] ### VM INTERACTION END ### [ 217s] [ 217s] lamb23 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:01:08 UTC 2018. [ 217s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 20:01:54 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 20:01:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b2ea7498573f_6a74864688534563@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 319s] dh_install [ 319s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 319s] [ 319s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 319s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 319s] [ 319s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 319s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 319s] [ 319s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 319s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 319s] [ 319s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 319s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 319s] [ 319s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 319s] dh_install: missing files, aborting [ 319s] debian/rules:6: recipe for target 'binary' failed [ 319s] make: *** [binary] Error 25 [ 319s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 319s] [ 319s] cloud122 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:01:12 UTC 2018. [ 319s] [ 320s] ### VM INTERACTION START ### [ 323s] [ 275.715041] reboot: Power down [ 323s] ### VM INTERACTION END ### [ 323s] [ 323s] cloud122 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:01:16 UTC 2018. [ 323s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 20:03:02 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 20:03:02 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b2ea786c3212_6a7486468853489a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 236s] dh_install [ 236s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 236s] [ 236s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 236s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 236s] [ 236s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 236s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 236s] [ 236s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 236s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 236s] [ 236s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 236s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 236s] [ 236s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 236s] dh_install: missing files, aborting [ 236s] debian/rules:6: recipe for target 'binary' failed [ 236s] make: *** [binary] Error 25 [ 236s] dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2 [ 236s] [ 236s] lamb72 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:02:29 UTC 2018. [ 236s] [ 236s] ### VM INTERACTION START ### [ 239s] [ 228.887280] reboot: Power down [ 239s] ### VM INTERACTION END ### [ 239s] [ 239s] lamb72 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:02:32 UTC 2018. [ 239s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 20:03:19 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 20:03:19 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b2ea7a12a8d7_6a7486468853493b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 300s] make[3]: Nothing to be done for 'install-exec-am'. [ 300s] make[3]: Nothing to be done for 'install-data-am'. [ 300s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 300s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 300s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 300s] dh_install [ 300s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 300s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 300s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 300s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 300s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 300s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 300s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 300s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 300s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 300s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 300s] dh_install: missing files, aborting [ 300s] debian/rules:6: recipe for target 'binary' failed [ 300s] make: *** [binary] Error 2 [ 300s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 300s] [ 300s] cloud118 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:02:36 UTC 2018. [ 300s] [ 300s] ### VM INTERACTION START ### [ 303s] [ 280.076072] reboot: Power down [ 304s] ### VM INTERACTION END ### [ 304s] [ 304s] cloud118 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:02:41 UTC 2018. [ 304s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sat Jun 23 20:42:26 2018 From: admin at opensuse.org (OBS Notification) Date: Sat, 23 Jun 2018 20:42:26 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b2eb0c6eff17_6a74864688543075@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 511s] make[3]: Nothing to be done for 'install-data-am'. [ 511s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 511s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 511s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 511s] dh_install [ 511s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 511s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 511s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 511s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 511s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 511s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 511s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 511s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 511s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 511s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 511s] dh_install: missing files, aborting [ 511s] debian/rules:6: recipe for target 'binary' failed [ 511s] make: *** [binary] Error 2 [ 511s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 511s] [ 511s] armbuild18 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:03:56 UTC 2018. [ 511s] [ 512s] ### VM INTERACTION START ### [ 515s] [ 450.207149] SysRq : Power Off [ 515s] [ 450.208716] reboot: Power down [ 515s] ### VM INTERACTION END ### [ 515s] [ 515s] armbuild18 failed "build osmo-trx_0.4.0.dsc" at Sat Jun 23 20:03:59 UTC 2018. [ 515s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Sat Jun 23 20:55:55 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 20:55:55 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Quit early when all tests concluded.. Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9716 Change subject: ms: Quit early when all tests concluded.. ...................................................................... ms: Quit early when all tests concluded.. And fix the the detection if everything has completed. Change-Id: I3575ee7618c35e3b66d25fa31844d267489d9179 --- M src/osmo_ms_driver/location_update_test.py 1 file changed, 9 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/16/9716/1 diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 2a3c246..9bab8ad 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -35,6 +35,9 @@ assert self._time_of_lu is None self._time_of_lu = time + def has_lu_time(self): + return self._time_of_lu is not None + def lu_time(self): return self._time_of_lu or 0 @@ -165,7 +168,7 @@ def wait_for_result(self, loop): to_complete_time = self._start_time + self.TEST_TIME.total_seconds() - while True: + while not self.all_completed(): now_time = time.clock_gettime(time.CLOCK_MONOTONIC) sleep_time = to_complete_time - now_time if sleep_time < 0: @@ -173,9 +176,12 @@ loop.schedule_timeout(sleep_time) loop.select() - def print_stats(self): + def all_completed(self): from functools import reduce - all_completed = reduce(lambda b, ms: b and ms.lu_time() is not None, self._results.values(), True) + return reduce(lambda b, ms: b and ms.has_lu_time(), self._results.values(), True) + + def print_stats(self): + all_completed = self.all_completed() min_value = min(self._results.values(), key=lambda x: x.lu_delay()) max_value = max(self._results.values(), key=lambda x: x.lu_delay()) -- To view, visit https://gerrit.osmocom.org/9716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3575ee7618c35e3b66d25fa31844d267489d9179 Gerrit-Change-Number: 9716 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 20:55:56 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 20:55:56 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Simplify starting of the test and combine loop and wait Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9717 Change subject: ms: Simplify starting of the test and combine loop and wait ...................................................................... ms: Simplify starting of the test and combine loop and wait This will make it easier to strt different kind of tests. The cost of calling step_once is hopefully neglectable as it simplifies the test. Change-Id: I3708ac382c0a34e17cf147d18f03603946437a53 --- M src/osmo_ms_driver/__main__.py M src/osmo_ms_driver/location_update_test.py 2 files changed, 45 insertions(+), 42 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/17/9717/1 diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py index abc5e54..ef06393 100644 --- a/src/osmo_ms_driver/__main__.py +++ b/src/osmo_ms_driver/__main__.py @@ -82,10 +82,7 @@ atexit.register(test.stop_all) # Run until everything has been launched - test.launch(loop) - - # Wait for it to complete - test.wait_for_result(loop) + test.run_test(loop) # Print stats test.print_stats() diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 9bab8ad..a5823a5 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -97,7 +97,7 @@ for phy in self._phys: phy.verify_ready() - def launch(self, loop): + def prepare(self, loop): self.log("Starting testcase") self.pre_launch(loop) @@ -107,40 +107,57 @@ self._cdf.duration().total_seconds() + \ timedelta(seconds=120).total_seconds() - current_time = self._start_time - step_size = self._cdf.step_size().total_seconds() self._started = [] - too_slow = 0 + self._too_slow = 0 + + def step_once(self, loop, current_time): + if len(self._unstarted) <= 0: + return current_time, None + + step_size = self._cdf.step_size().total_seconds() # Start self._cdf.step_once() - while len(self._unstarted) > 0: - # Check for timeout - # start pending MS - while len(self._started) < self._cdf.current_scaled_value() and len(self._unstarted) > 0: - ms = self._unstarted.pop(0) - ms.start(loop) - launch_time = time.clock_gettime(time.CLOCK_MONOTONIC) - self._results[ms.name_number()].set_launch_time(launch_time) - self._started.append(ms) + # Check for timeout + # start pending MS + while len(self._started) < self._cdf.current_scaled_value() and len(self._unstarted) > 0: + ms = self._unstarted.pop(0) + ms.start(loop) + launch_time = time.clock_gettime(time.CLOCK_MONOTONIC) + self._results[ms.name_number()].set_launch_time(launch_time) + self._started.append(ms) - # Progress and sleep - self._cdf.step_once() + now_time = time.clock_gettime(time.CLOCK_MONOTONIC) + sleep_time = (current_time + step_size) - now_time + if sleep_time <= 0: + self.log("Starting too slowly. Moving on", + target=(current_time + step_size), now=now_time, sleep=sleep_time) + self._too_slow += 1 + sleep_time = 0 + if len(self._unstarted) == 0: + end_time = time.clock_gettime(time.CLOCK_MONOTONIC) + self.log("All started...", too_slow=self._too_slow, duration=end_time - self._start_time) + return current_time, None + + return current_time + step_size, sleep_time + + def run_test(self, loop): + self.prepare(loop) + + to_complete_time = self._start_time + self.TEST_TIME.total_seconds() + tick_time = self._start_time + + while not self.all_completed(): + tick_time, sleep_time = self.step_once(loop, tick_time) now_time = time.clock_gettime(time.CLOCK_MONOTONIC) - sleep_time = (current_time + step_size) - now_time - if sleep_time <= 0: - self.log("Starting too slowly. Moving on", - target=(current_time + step_size), now=now_time, sleep=sleep_time) - too_slow += 1 - else: - loop.schedule_timeout(sleep_time) - loop.select() - current_time += step_size - - end_time = time.clock_gettime(time.CLOCK_MONOTONIC) - self.log("All started...", too_slow=too_slow, duration=end_time - self._start_time) + if sleep_time is None: + sleep_time = to_complete_time - now_time + if sleep_time < 0: + break + loop.schedule_timeout(sleep_time) + loop.select() def stop_all(self): for launcher in self._started: @@ -165,17 +182,6 @@ raise Exception("Unknown event type..:" + _data.decode()) - def wait_for_result(self, loop): - to_complete_time = self._start_time + self.TEST_TIME.total_seconds() - - while not self.all_completed(): - now_time = time.clock_gettime(time.CLOCK_MONOTONIC) - sleep_time = to_complete_time - now_time - if sleep_time < 0: - break - loop.schedule_timeout(sleep_time) - loop.select() - def all_completed(self): from functools import reduce return reduce(lambda b, ms: b and ms.has_lu_time(), self._results.values(), True) -- To view, visit https://gerrit.osmocom.org/9717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3708ac382c0a34e17cf147d18f03603946437a53 Gerrit-Change-Number: 9717 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 20:55:56 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 20:55:56 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Only use completed tests for min/max handling Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9718 Change subject: ms: Only use completed tests for min/max handling ...................................................................... ms: Only use completed tests for min/max handling Remove non completed results before calculating the min/max. We will need to check success/failure based on completion ratio. Change-Id: Icaf9e90dd729b2339e409b3ec1593f456969fd19 --- M src/osmo_ms_driver/location_update_test.py 1 file changed, 11 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/18/9718/1 diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index a5823a5..c1113b1 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -186,10 +186,18 @@ from functools import reduce return reduce(lambda b, ms: b and ms.has_lu_time(), self._results.values(), True) + def results_min_max(self, results): + min_value = max_value = None + for result in results: + if min_value is None or result.lu_delay() < min_value: + min_value = result.lu_delay() + if max_value is None or result.lu_delay() > max_value: + max_value = result.lu_delay() + return min_value, max_value + def print_stats(self): all_completed = self.all_completed() - min_value = min(self._results.values(), key=lambda x: x.lu_delay()) - max_value = max(self._results.values(), key=lambda x: x.lu_delay()) + min_value, max_value = self.results_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) self.log("Tests done", all_completed=all_completed, - min=min_value.lu_delay(), max=max_value.lu_delay()) + min=min_value, max=max_value) -- To view, visit https://gerrit.osmocom.org/9718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icaf9e90dd729b2339e409b3ec1593f456969fd19 Gerrit-Change-Number: 9718 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 20:55:56 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 20:55:56 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Remove unused imports Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9719 Change subject: ms: Remove unused imports ...................................................................... ms: Remove unused imports Change-Id: Idd428d1bbd937a26a320eb69b1031856e49d3e4b --- M src/osmo_ms_driver/__main__.py M src/osmo_ms_driver/event_server.py M src/osmo_ms_driver/simple_loop.py 3 files changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/19/9719/1 diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py index ef06393..5314d71 100644 --- a/src/osmo_ms_driver/__main__.py +++ b/src/osmo_ms_driver/__main__.py @@ -19,14 +19,13 @@ from .event_server import EventServer from .simple_loop import SimpleLoop from .location_update_test import MassUpdateLocationTest -from .cdf import ease_in_out_duration, linear_with_duration, cdfs +from .cdf import cdfs from osmo_gsm_tester import log # System modules import argparse import atexit import datetime -import subprocess import signal import tempfile import os.path diff --git a/src/osmo_ms_driver/event_server.py b/src/osmo_ms_driver/event_server.py index b0f699d..ce9d5c1 100644 --- a/src/osmo_ms_driver/event_server.py +++ b/src/osmo_ms_driver/event_server.py @@ -1,6 +1,5 @@ from osmo_gsm_tester import log -from functools import partial import time diff --git a/src/osmo_ms_driver/simple_loop.py b/src/osmo_ms_driver/simple_loop.py index f4b3e05..29a4b5b 100644 --- a/src/osmo_ms_driver/simple_loop.py +++ b/src/osmo_ms_driver/simple_loop.py @@ -16,7 +16,6 @@ # along with this program. If not, see . from osmo_gsm_tester import log -from functools import partial import os import selectors -- To view, visit https://gerrit.osmocom.org/9719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idd428d1bbd937a26a320eb69b1031856e49d3e4b Gerrit-Change-Number: 9719 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 23 21:27:43 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Jun 2018 21:27:43 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Make the total test duration configurable Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/9720 Change subject: ms: Make the total test duration configurable ...................................................................... ms: Make the total test duration configurable Change-Id: I5598d5dfd51e224e13835307ad20d108a5aa3935 --- M src/osmo_ms_driver/__main__.py M src/osmo_ms_driver/location_update_test.py 2 files changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/20/9720/1 diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py index 5314d71..1573084 100644 --- a/src/osmo_ms_driver/__main__.py +++ b/src/osmo_ms_driver/__main__.py @@ -23,6 +23,8 @@ from osmo_gsm_tester import log # System modules +from datetime import timedelta + import argparse import atexit import datetime @@ -39,6 +41,9 @@ parser.add_argument('-i', '--launch-interval', dest='launch_interval', default=100, type=int, help="Time between launching in milliseconds") + parser.add_argument('-t', '--test-duration', dest="test_duration", + default=120, type=int, + help="Time of the test duration in seconds") parser.add_argument('-d', '--distribution', dest="cdf_name", choices=cdfs.keys(), default="ease_in_out", help="Curve to use for starting within launch duration") @@ -81,7 +86,7 @@ atexit.register(test.stop_all) # Run until everything has been launched - test.run_test(loop) + test.run_test(loop, timedelta(seconds=args.test_duration)) # Print stats test.print_stats() diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index c1113b1..3ba255c 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -55,7 +55,6 @@ TEMPLATE_LUA = "osmo-mobile-lu.lua" TEMPLATE_CFG = "osmo-mobile.cfg" - TEST_TIME = timedelta(seconds=120) def __init__(self, name, number_of_ms, cdf_function, event_server, tmp_dir): super().__init__(log.C_RUN, name) @@ -143,10 +142,10 @@ return current_time + step_size, sleep_time - def run_test(self, loop): + def run_test(self, loop, test_duration): self.prepare(loop) - to_complete_time = self._start_time + self.TEST_TIME.total_seconds() + to_complete_time = self._start_time + test_duration.total_seconds() tick_time = self._start_time while not self.all_completed(): -- To view, visit https://gerrit.osmocom.org/9720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5598d5dfd51e224e13835307ad20d108a5aa3935 Gerrit-Change-Number: 9720 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Jun 23 23:20:41 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 23 Jun 2018 23:20:41 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-bts?= =?UTF-8?Q?_=C2=BB_lc15,master,default,osmocom-master-debian9_#808?= In-Reply-To: <1152855550.279.1529714833826.JavaMail.jenkins@jenkins.osmocom.org> References: <1152855550.279.1529714833826.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1789093606.295.1529796041559.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sun Jun 24 11:32:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 11:32:48 +0000 Subject: Change in osmo-hlr[master]: move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9721 Change subject: move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h ...................................................................... move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h Change-Id: I33165b7b58bd8c863083ed50ce21e3c032c579f5 --- M src/gsup_router.h M src/luop.h 2 files changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/21/9721/1 diff --git a/src/gsup_router.h b/src/gsup_router.h index 7a5bd25..f177347 100644 --- a/src/gsup_router.h +++ b/src/gsup_router.h @@ -6,3 +6,7 @@ /* delete all routes for the given connection */ int gsup_route_del_conn(struct osmo_gsup_conn *conn); + +int osmo_gsup_addr_send(struct osmo_gsup_server *gs, + const uint8_t *addr, size_t addrlen, + struct msgb *msg); diff --git a/src/luop.h b/src/luop.h index d690243..f96593b 100644 --- a/src/luop.h +++ b/src/luop.h @@ -63,9 +63,6 @@ uint8_t *peer; }; -int osmo_gsup_addr_send(struct osmo_gsup_server *gs, - const uint8_t *addr, size_t addrlen, - struct msgb *msg); struct lu_operation *lu_op_alloc(struct osmo_gsup_server *srv); struct lu_operation *lu_op_alloc_conn(struct osmo_gsup_conn *conn); -- To view, visit https://gerrit.osmocom.org/9721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I33165b7b58bd8c863083ed50ce21e3c032c579f5 Gerrit-Change-Number: 9721 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 11:32:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 11:32:49 +0000 Subject: Change in osmo-hlr[master]: gsup_router: Use "#pragma once" and add missing #includes Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9722 Change subject: gsup_router: Use "#pragma once" and add missing #includes ...................................................................... gsup_router: Use "#pragma once" and add missing #includes Change-Id: I2cc43ea5846e5b98281efc897252c8dcc3ef5728 --- M src/gsup_router.h 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/22/9722/1 diff --git a/src/gsup_router.h b/src/gsup_router.h index f177347..282531d 100644 --- a/src/gsup_router.h +++ b/src/gsup_router.h @@ -1,3 +1,8 @@ +#pragma once + +#include +#include "gsup_server.h" + struct osmo_gsup_conn *gsup_route_find(struct osmo_gsup_server *gs, const uint8_t *addr, size_t addrlen); -- To view, visit https://gerrit.osmocom.org/9722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2cc43ea5846e5b98281efc897252c8dcc3ef5728 Gerrit-Change-Number: 9722 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 11:32:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 11:32:49 +0000 Subject: Change in osmo-hlr[master]: Store identity of VLR/SGSN in UpdateLocation Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9723 Change subject: Store identity of VLR/SGSN in UpdateLocation ...................................................................... Store identity of VLR/SGSN in UpdateLocation The HLR must store the least-recently used VLR and SGSN identities in its database to ensure subsequent mobile-terminated transactions can be routed accordingly. Change-Id: Ib2611421f3638eadc361787af801fffe9a34bd8a Closes: OS#2796 --- M src/hlr.c 1 file changed, 9 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/23/9723/1 diff --git a/src/hlr.c b/src/hlr.c index 643dfff..41566be 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -296,10 +296,19 @@ } else #endif { + int rc; + uint8_t *addr; + rc = osmo_gsup_conn_ccm_get(conn, &addr, IPAC_IDTAG_SERNR); + if (rc <= 0) { + osmo_strlcpy(luop->subscr.imsi, gsup->imsi, sizeof(luop->subscr.imsi)); + lu_op_tx_error(luop, GMM_CAUSE_NET_FAIL); + return 0; + } /* TODO: Subscriber allowed to roam in PLMN? */ /* TODO: Update RoutingInfo */ /* TODO: Reset Flag MS Purged (cs/ps) */ /* TODO: Control_Tracing_HLR / Control_Tracing_HLR_with_SGSN */ + db_subscr_lu(g_hlr->dbc, luop->subscr.id, (char *)addr, luop->is_ps); lu_op_tx_insert_subscr_data(luop); } return 0; -- To view, visit https://gerrit.osmocom.org/9723 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib2611421f3638eadc361787af801fffe9a34bd8a Gerrit-Change-Number: 9723 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 11:32:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 11:32:50 +0000 Subject: Change in osmo-hlr[master]: Add "show gsup-connections" VTY command Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9724 Change subject: Add "show gsup-connections" VTY command ...................................................................... Add "show gsup-connections" VTY command This can help with debugging and give operational insight. Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd --- M src/hlr_vty.c 1 file changed, 34 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/24/9724/1 diff --git a/src/hlr_vty.c b/src/hlr_vty.c index c10829d..ecc2f5c 100644 --- a/src/hlr_vty.c +++ b/src/hlr_vty.c @@ -1,9 +1,10 @@ /* OsmoHLR VTY implementation */ /* (C) 2016 sysmocom s.f.m.c. GmbH - * All Rights Reserved - * * Author: Neels Hofmeyr + * (C) 2018 Harald Welte + * + * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -25,9 +26,11 @@ #include #include #include +#include #include "hlr_vty.h" #include "hlr_vty_subscr.h" +#include "gsup_server.h" static struct hlr *g_hlr = NULL; @@ -75,6 +78,33 @@ return CMD_SUCCESS; } +static void show_one_conn(struct vty *vty, const struct osmo_gsup_conn *conn) +{ + const struct ipa_server_conn *isc = conn->conn; + char *name; + int rc; + + rc = osmo_gsup_conn_ccm_get(conn, (uint8_t **) &name, IPAC_IDTAG_SERNR); + OSMO_ASSERT(rc); + + vty_out(vty, " '%s' from %s:%5u, CS=%u, PS=%u, 3G_IND=%u%s", + name, isc->addr, isc->port, conn->supports_cs, conn->supports_ps, conn->auc_3g_ind, + VTY_NEWLINE); +} + +DEFUN(show_gsup_conn, show_gsup_conn_cmd, + "show gsup-connections", + SHOW_STR "GSUP Connections from VLRs, SGSNs, EUSEs\n") +{ + struct osmo_gsup_server *gs = g_hlr->gs; + struct osmo_gsup_conn *conn; + + llist_for_each_entry(conn, &gs->clients, list) + show_one_conn(vty, conn); + + return CMD_SUCCESS; +} + DEFUN(cfg_hlr_gsup_bind_ip, cfg_hlr_gsup_bind_ip_cmd, "bind ip A.B.C.D", @@ -129,6 +159,8 @@ logging_vty_add_cmds(cat); osmo_talloc_vty_add_cmds(); + install_element_ve(&show_gsup_conn_cmd); + install_element(CONFIG_NODE, &cfg_hlr_cmd); install_node(&hlr_node, config_write_hlr); -- To view, visit https://gerrit.osmocom.org/9724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd Gerrit-Change-Number: 9724 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:02:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:02:58 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Attempt to stop all mobile/virtphy instances on exit In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9714 ) Change subject: ms: Attempt to stop all mobile/virtphy instances on exit ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6cec050db7d4c355fb6678b2d84309fbbe5587b3 Gerrit-Change-Number: 9714 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jun 2018 12:02:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:03:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:03:05 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Make the outer variables configurable In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9713 ) Change subject: ms: Make the outer variables configurable ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If8bbedcf672f6481a12c30d3669564704063626c Gerrit-Change-Number: 9713 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jun 2018 12:03:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:03:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:03:22 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Begin to refactor and be able to share functionality In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9712 ) Change subject: ms: Begin to refactor and be able to share functionality ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I840af0396f08744ce8ee6a2967f880d5cb7f815f Gerrit-Change-Number: 9712 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jun 2018 12:03:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:03:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:03:28 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Quit early when all tests concluded.. In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9716 ) Change subject: ms: Quit early when all tests concluded.. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3575ee7618c35e3b66d25fa31844d267489d9179 Gerrit-Change-Number: 9716 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 24 Jun 2018 12:03:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:03:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:03:41 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Simplify starting of the test and combine loop and wait In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9717 ) Change subject: ms: Simplify starting of the test and combine loop and wait ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3708ac382c0a34e17cf147d18f03603946437a53 Gerrit-Change-Number: 9717 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Sun, 24 Jun 2018 12:03:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:03:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:03:55 +0000 Subject: Change in osmo-hlr[master]: move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9721 ) Change subject: move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I33165b7b58bd8c863083ed50ce21e3c032c579f5 Gerrit-Change-Number: 9721 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jun 2018 12:03:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:03:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:03:57 +0000 Subject: Change in osmo-hlr[master]: gsup_router: Use "#pragma once" and add missing #includes In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9722 ) Change subject: gsup_router: Use "#pragma once" and add missing #includes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2cc43ea5846e5b98281efc897252c8dcc3ef5728 Gerrit-Change-Number: 9722 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jun 2018 12:03:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 12:07:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 12:07:23 +0000 Subject: Change in osmo-hlr[master]: Add "show gsup-connections" VTY command In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9724 to look at the new patch set (#2). Change subject: Add "show gsup-connections" VTY command ...................................................................... Add "show gsup-connections" VTY command This can help with debugging and give operational insight. Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd --- M src/hlr_vty.c M tests/test_nodes.vty 2 files changed, 35 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/24/9724/2 -- To view, visit https://gerrit.osmocom.org/9724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd Gerrit-Change-Number: 9724 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 13:21:47 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 24 Jun 2018 13:21:47 +0000 Subject: Change in osmo-hlr[master]: gsup_router: Use "#pragma once" and add missing #includes In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9722 ) Change subject: gsup_router: Use "#pragma once" and add missing #includes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2cc43ea5846e5b98281efc897252c8dcc3ef5728 Gerrit-Change-Number: 9722 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 24 Jun 2018 13:21:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 13:25:50 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 24 Jun 2018 13:25:50 +0000 Subject: Change in osmo-hlr[master]: Add "show gsup-connections" VTY command In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9724 ) Change subject: Add "show gsup-connections" VTY command ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd Gerrit-Change-Number: 9724 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 24 Jun 2018 13:25:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 13:33:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 13:33:59 +0000 Subject: Change in osmo-hlr[master]: Add "show gsup-connections" VTY command In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9724 ) Change subject: Add "show gsup-connections" VTY command ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd Gerrit-Change-Number: 9724 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 24 Jun 2018 13:33:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 13:34:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 13:34:02 +0000 Subject: Change in osmo-hlr[master]: move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9721 ) Change subject: move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h ...................................................................... move osmo_gsup_addr_send() declaration from luop.h to gsup_router.h Change-Id: I33165b7b58bd8c863083ed50ce21e3c032c579f5 --- M src/gsup_router.h M src/luop.h 2 files changed, 4 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gsup_router.h b/src/gsup_router.h index 7a5bd25..f177347 100644 --- a/src/gsup_router.h +++ b/src/gsup_router.h @@ -6,3 +6,7 @@ /* delete all routes for the given connection */ int gsup_route_del_conn(struct osmo_gsup_conn *conn); + +int osmo_gsup_addr_send(struct osmo_gsup_server *gs, + const uint8_t *addr, size_t addrlen, + struct msgb *msg); diff --git a/src/luop.h b/src/luop.h index d690243..f96593b 100644 --- a/src/luop.h +++ b/src/luop.h @@ -63,9 +63,6 @@ uint8_t *peer; }; -int osmo_gsup_addr_send(struct osmo_gsup_server *gs, - const uint8_t *addr, size_t addrlen, - struct msgb *msg); struct lu_operation *lu_op_alloc(struct osmo_gsup_server *srv); struct lu_operation *lu_op_alloc_conn(struct osmo_gsup_conn *conn); -- To view, visit https://gerrit.osmocom.org/9721 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I33165b7b58bd8c863083ed50ce21e3c032c579f5 Gerrit-Change-Number: 9721 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 13:34:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 13:34:03 +0000 Subject: Change in osmo-hlr[master]: gsup_router: Use "#pragma once" and add missing #includes In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9722 ) Change subject: gsup_router: Use "#pragma once" and add missing #includes ...................................................................... gsup_router: Use "#pragma once" and add missing #includes Change-Id: I2cc43ea5846e5b98281efc897252c8dcc3ef5728 --- M src/gsup_router.h 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve diff --git a/src/gsup_router.h b/src/gsup_router.h index f177347..282531d 100644 --- a/src/gsup_router.h +++ b/src/gsup_router.h @@ -1,3 +1,8 @@ +#pragma once + +#include +#include "gsup_server.h" + struct osmo_gsup_conn *gsup_route_find(struct osmo_gsup_server *gs, const uint8_t *addr, size_t addrlen); -- To view, visit https://gerrit.osmocom.org/9722 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2cc43ea5846e5b98281efc897252c8dcc3ef5728 Gerrit-Change-Number: 9722 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 13:34:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 13:34:03 +0000 Subject: Change in osmo-hlr[master]: Add "show gsup-connections" VTY command In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9724 ) Change subject: Add "show gsup-connections" VTY command ...................................................................... Add "show gsup-connections" VTY command This can help with debugging and give operational insight. Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd --- M src/hlr_vty.c M tests/test_nodes.vty 2 files changed, 35 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/hlr_vty.c b/src/hlr_vty.c index c10829d..ecc2f5c 100644 --- a/src/hlr_vty.c +++ b/src/hlr_vty.c @@ -1,9 +1,10 @@ /* OsmoHLR VTY implementation */ /* (C) 2016 sysmocom s.f.m.c. GmbH - * All Rights Reserved - * * Author: Neels Hofmeyr + * (C) 2018 Harald Welte + * + * All Rights Reserved * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by @@ -25,9 +26,11 @@ #include #include #include +#include #include "hlr_vty.h" #include "hlr_vty_subscr.h" +#include "gsup_server.h" static struct hlr *g_hlr = NULL; @@ -75,6 +78,33 @@ return CMD_SUCCESS; } +static void show_one_conn(struct vty *vty, const struct osmo_gsup_conn *conn) +{ + const struct ipa_server_conn *isc = conn->conn; + char *name; + int rc; + + rc = osmo_gsup_conn_ccm_get(conn, (uint8_t **) &name, IPAC_IDTAG_SERNR); + OSMO_ASSERT(rc); + + vty_out(vty, " '%s' from %s:%5u, CS=%u, PS=%u, 3G_IND=%u%s", + name, isc->addr, isc->port, conn->supports_cs, conn->supports_ps, conn->auc_3g_ind, + VTY_NEWLINE); +} + +DEFUN(show_gsup_conn, show_gsup_conn_cmd, + "show gsup-connections", + SHOW_STR "GSUP Connections from VLRs, SGSNs, EUSEs\n") +{ + struct osmo_gsup_server *gs = g_hlr->gs; + struct osmo_gsup_conn *conn; + + llist_for_each_entry(conn, &gs->clients, list) + show_one_conn(vty, conn); + + return CMD_SUCCESS; +} + DEFUN(cfg_hlr_gsup_bind_ip, cfg_hlr_gsup_bind_ip_cmd, "bind ip A.B.C.D", @@ -129,6 +159,8 @@ logging_vty_add_cmds(cat); osmo_talloc_vty_add_cmds(); + install_element_ve(&show_gsup_conn_cmd); + install_element(CONFIG_NODE, &cfg_hlr_cmd); install_node(&hlr_node, config_write_hlr); diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index 5afa144..21809c8 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -16,6 +16,7 @@ show talloc-context (application|all) (full|brief|DEPTH) show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP + show gsup-connections subscriber (imsi|msisdn|id) IDENT show OsmoHLR> enable -- To view, visit https://gerrit.osmocom.org/9724 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I977b4b8cdb36dab42b3d736a28d8b5f17cff04cd Gerrit-Change-Number: 9724 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Jun 24 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 24 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#164?= In-Reply-To: <991357438.292.1529766607106.JavaMail.jenkins@jenkins.osmocom.org> References: <991357438.292.1529766607106.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1012310081.307.1529853006957.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.74 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Jun 24 17:13:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 17:13:04 +0000 Subject: Change in osmo-sgsn[master]: finish gbproxy_parse_bssgp_unitdata test In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9715 ) Change subject: finish gbproxy_parse_bssgp_unitdata test ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2a86432d080c38d3c95626372a0129499d7146dd Gerrit-Change-Number: 9715 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jun 2018 17:13:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 17:13:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 17:13:35 +0000 Subject: Change in osmo-gsm-tester[master]: ggsn: Bind VTY and CTRL ifaces to assigned ip addr In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9710 ) Change subject: ggsn: Bind VTY and CTRL ifaces to assigned ip addr ...................................................................... ggsn: Bind VTY and CTRL ifaces to assigned ip addr Change-Id: I26735a21cd53183dfe0a75e5bd24954d583c354f --- M src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl index 1692db6..3f2d0e7 100644 --- a/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl +++ b/src/osmo_gsm_tester/templates/osmo-ggsn.cfg.tmpl @@ -34,7 +34,9 @@ stats interval 5 ! line vty - no login + bind ${ggsn.ip_address.addr} +ctrl + bind ${ggsn.ip_address.addr} ! ggsn ggsn0 gtp state-dir ${ggsn.statedir} -- To view, visit https://gerrit.osmocom.org/9710 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I26735a21cd53183dfe0a75e5bd24954d583c354f Gerrit-Change-Number: 9710 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 17:14:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 17:14:02 +0000 Subject: Change in osmo-hlr[master]: sql/Makefile.am: Make docsdir completely configurable In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9690 ) Change subject: sql/Makefile.am: Make docsdir completely configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I77fa16d0edcf88a8e120921504cd088328077836 Gerrit-Change-Number: 9690 Gerrit-PatchSet: 1 Gerrit-Owner: roox Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Sun, 24 Jun 2018 17:14:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Jun 24 17:14:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Jun 2018 17:14:05 +0000 Subject: Change in osmo-hlr[master]: sql/Makefile.am: Make docsdir completely configurable In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9690 ) Change subject: sql/Makefile.am: Make docsdir completely configurable ...................................................................... sql/Makefile.am: Make docsdir completely configurable $(docdir) defaults to $(datadir)/doc/osmo-hlr Change-Id: I77fa16d0edcf88a8e120921504cd088328077836 --- M sql/Makefile.am 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/sql/Makefile.am b/sql/Makefile.am index ab44e2a..f71037b 100644 --- a/sql/Makefile.am +++ b/sql/Makefile.am @@ -3,5 +3,5 @@ hlr.sql \ $(NULL) -docsdir = $(datadir)/doc/osmo-hlr +docsdir = $(docdir) docs_DATA = $(srcdir)/hlr.sql -- To view, visit https://gerrit.osmocom.org/9690 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I77fa16d0edcf88a8e120921504cd088328077836 Gerrit-Change-Number: 9690 Gerrit-PatchSet: 2 Gerrit-Owner: roox Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Jun 24 19:57:29 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 19:57:29 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5b2ff7c55d48e_6a7486468870055a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 124s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 124s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 124s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 124s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 124s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 124s] make[3]: Nothing to be done for 'install-exec-am'. [ 124s] make[3]: Nothing to be done for 'install-data-am'. [ 124s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 124s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 124s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 124s] dh_install [ 124s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 124s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 124s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 124s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 124s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 124s] dh_install: missing files, aborting [ 124s] debian/rules:6: recipe for target 'binary' failed [ 124s] make: *** [binary] Error 2 [ 124s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 124s] [ 124s] build75 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:56:51 UTC 2018. [ 124s] [ 124s] ### VM INTERACTION START ### [ 127s] [ 122.149159] reboot: Power down [ 127s] ### VM INTERACTION END ### [ 127s] [ 127s] build75 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:56:55 UTC 2018. [ 127s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 24 19:57:46 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 19:57:46 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5b2ff7c6237a0_6a748646887006ca@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 190s] make[4]: Leaving directory '/usr/src/packages/BUILD/tests' [ 190s] make[3]: Leaving directory '/usr/src/packages/BUILD/tests' [ 190s] make[2]: Leaving directory '/usr/src/packages/BUILD/tests' [ 190s] make[2]: Entering directory '/usr/src/packages/BUILD' [ 190s] make[3]: Entering directory '/usr/src/packages/BUILD' [ 190s] make[3]: Nothing to be done for 'install-exec-am'. [ 190s] make[3]: Nothing to be done for 'install-data-am'. [ 190s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 190s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 190s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 190s] dh_install [ 190s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 190s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 190s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 190s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 190s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 190s] dh_install: missing files, aborting [ 190s] debian/rules:6: recipe for target 'binary' failed [ 190s] make: *** [binary] Error 2 [ 190s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 190s] [ 190s] lamb54 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:57:08 UTC 2018. [ 190s] [ 190s] ### VM INTERACTION START ### [ 193s] [ 183.466006] reboot: Power down [ 193s] ### VM INTERACTION END ### [ 193s] [ 193s] lamb54 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:57:11 UTC 2018. [ 193s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 24 19:58:37 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 19:58:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5b2ff804473dd_6a748646887009c5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 242s] dh_install [ 242s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 242s] [ 242s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 242s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 242s] [ 242s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 242s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 242s] [ 242s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 242s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 242s] [ 242s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 242s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 242s] [ 242s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 242s] dh_install: missing files, aborting [ 242s] debian/rules:6: recipe for target 'binary' failed [ 242s] make: *** [binary] Error 25 [ 242s] dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2 [ 242s] [ 242s] lamb05 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:57:57 UTC 2018. [ 242s] [ 242s] ### VM INTERACTION START ### [ 245s] [ 232.446321] reboot: Power down [ 245s] ### VM INTERACTION END ### [ 245s] [ 245s] lamb05 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:58:00 UTC 2018. [ 245s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 24 19:58:37 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 19:58:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/x86_64 In-Reply-To: References: Message-ID: <5b2ff804835b3_6a748646887010aa@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 204s] make[3]: Nothing to be done for 'install-exec-am'. [ 204s] make[3]: Nothing to be done for 'install-data-am'. [ 204s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 204s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 204s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 204s] dh_install [ 204s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 204s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 204s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 204s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 204s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 204s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 204s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 204s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 204s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 204s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 204s] dh_install: missing files, aborting [ 204s] debian/rules:6: recipe for target 'binary' failed [ 204s] make: *** [binary] Error 2 [ 204s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 204s] [ 204s] lamb18 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:57:58 UTC 2018. [ 204s] [ 204s] ### VM INTERACTION START ### [ 207s] [ 197.019292] reboot: Power down [ 207s] ### VM INTERACTION END ### [ 207s] [ 207s] lamb18 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:58:01 UTC 2018. [ 207s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 24 19:58:37 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 19:58:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5b2ff804bcc81_6a748646887011aa@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 231s] dh_install [ 231s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in ., debian/tmp) [ 231s] [ 231s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 231s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 231s] [ 231s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 231s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in ., debian/tmp) [ 231s] [ 231s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 231s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in ., debian/tmp) [ 231s] [ 231s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 231s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in ., debian/tmp) [ 231s] [ 231s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 231s] dh_install: missing files, aborting [ 231s] debian/rules:6: recipe for target 'binary' failed [ 231s] make: *** [binary] Error 25 [ 231s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 231s] [ 231s] wildcard3 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:57:58 UTC 2018. [ 231s] [ 231s] ### VM INTERACTION START ### [ 235s] [ 213.046684] reboot: Power down [ 235s] ### VM INTERACTION END ### [ 235s] [ 235s] wildcard3 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:58:02 UTC 2018. [ 235s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 24 19:58:37 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 19:58:37 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5b2ff8056f33_6a748646887012b1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 232s] make[3]: Nothing to be done for 'install-exec-am'. [ 232s] make[3]: Nothing to be done for 'install-data-am'. [ 232s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 232s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 232s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 232s] dh_install [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 233s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 233s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 233s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 233s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 233s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 233s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 233s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 233s] dh_install: missing files, aborting [ 233s] debian/rules:6: recipe for target 'binary' failed [ 233s] make: *** [binary] Error 2 [ 233s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 233s] [ 233s] wildcard3 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:57:58 UTC 2018. [ 233s] [ 233s] ### VM INTERACTION START ### [ 236s] [ 204.927311] reboot: Power down [ 237s] ### VM INTERACTION END ### [ 237s] [ 237s] wildcard3 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 19:58:03 UTC 2018. [ 237s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 24 21:03:29 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 21:03:29 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5b30073b5bae7_6a74864688704315@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/i586 Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 265s] make[3]: Nothing to be done for 'install-exec-am'. [ 265s] make[3]: Nothing to be done for 'install-data-am'. [ 265s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 265s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 265s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 265s] dh_install [ 265s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 265s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 265s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 265s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 265s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 265s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 265s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 265s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 265s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 265s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 265s] dh_install: missing files, aborting [ 265s] debian/rules:6: recipe for target 'binary' failed [ 265s] make: *** [binary] Error 2 [ 265s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 265s] [ 265s] cloud135 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 21:02:52 UTC 2018. [ 265s] [ 265s] ### VM INTERACTION START ### [ 268s] [ 251.734799] reboot: Power down [ 269s] ### VM INTERACTION END ### [ 269s] [ 269s] cloud135 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 21:02:56 UTC 2018. [ 269s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Sun Jun 24 21:05:29 2018 From: admin at opensuse.org (OBS Notification) Date: Sun, 24 Jun 2018 21:05:29 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in xUbuntu_16.10/i586 In-Reply-To: References: Message-ID: <5b3007b6ed501_6a748646887044b1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/xUbuntu_16.10/i586 Package network:osmocom:nightly/osmo-trx failed to build in xUbuntu_16.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 205s] make[3]: Nothing to be done for 'install-exec-am'. [ 205s] make[3]: Nothing to be done for 'install-data-am'. [ 205s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 205s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 205s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 205s] dh_install [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 205s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 205s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 205s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 205s] dh_install: missing files, aborting [ 205s] debian/rules:6: recipe for target 'binary' failed [ 205s] make: *** [binary] Error 2 [ 205s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 205s] [ 205s] lamb13 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 21:04:54 UTC 2018. [ 205s] [ 205s] ### VM INTERACTION START ### [ 208s] [ 199.035748] reboot: Power down [ 208s] ### VM INTERACTION END ### [ 208s] [ 208s] lamb13 failed "build osmo-trx_0.4.0.dsc" at Sun Jun 24 21:04:57 UTC 2018. [ 208s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Jun 25 01:00:32 2018 From: admin at opensuse.org (OBS Notification) Date: Mon, 25 Jun 2018 01:00:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-trx in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5b303eb47c580_6a74864688713568@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-trx/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-trx failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-trx Last lines of build log: [ 1799s] make[3]: Nothing to be done for 'install-data-am'. [ 1799s] make[3]: Leaving directory '/usr/src/packages/BUILD' [ 1799s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 1799s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 1799s] dh_install [ 1799s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg" (tried in "." and "debian/tmp") [ 1800s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg [ 1800s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 1800s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg [ 1800s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg" (tried in "." and "debian/tmp") [ 1800s] dh_install: osmo-trx-uhd missing files: /usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg [ 1800s] dh_install: Cannot find (any matches for) "/usr/bin/osmo-trx-lms" (tried in "." and "debian/tmp") [ 1800s] dh_install: osmo-trx-lms missing files: /usr/bin/osmo-trx-lms [ 1800s] dh_install: Cannot find (any matches for) "/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg" (tried in "." and "debian/tmp") [ 1800s] dh_install: osmo-trx-lms missing files: /usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg [ 1800s] dh_install: missing files, aborting [ 1800s] debian/rules:6: recipe for target 'binary' failed [ 1800s] make: *** [binary] Error 2 [ 1800s] dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 [ 1800s] [ 1800s] armbuild23 failed "build osmo-trx_0.4.0.dsc" at Mon Jun 25 00:59:57 UTC 2018. [ 1800s] [ 1800s] ### VM INTERACTION START ### [ 1803s] [ 1726.555968] SysRq : Power Off [ 1803s] [ 1726.630993] reboot: Power down [ 1805s] ### VM INTERACTION END ### [ 1805s] [ 1805s] armbuild23 failed "build osmo-trx_0.4.0.dsc" at Mon Jun 25 01:00:02 UTC 2018. [ 1805s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Jun 25 07:44:36 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 25 Jun 2018 07:44:36 +0000 Subject: Change in docker-playground[master]: osmo-bsc-master/Dockerfile: drop wrong configure option Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9725 Change subject: osmo-bsc-master/Dockerfile: drop wrong configure option ...................................................................... osmo-bsc-master/Dockerfile: drop wrong configure option Change-Id: I3fecd622df136a18a32a9095ede3e2629e2f7b4e --- M osmo-bsc-master/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/25/9725/1 diff --git a/osmo-bsc-master/Dockerfile b/osmo-bsc-master/Dockerfile index 470abcb..5af6abf 100644 --- a/osmo-bsc-master/Dockerfile +++ b/osmo-bsc-master/Dockerfile @@ -34,7 +34,7 @@ RUN cd osmo-bsc && \ git fetch && git checkout -f -B $OSMO_BSC_BRANCH origin/$OSMO_BSC_BRANCH && \ autoreconf -fi && \ - ./configure --enable-trx && \ + ./configure && \ make -j8 install VOLUME /data -- To view, visit https://gerrit.osmocom.org/9725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3fecd622df136a18a32a9095ede3e2629e2f7b4e Gerrit-Change-Number: 9725 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 07:53:28 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 25 Jun 2018 07:53:28 +0000 Subject: Change in docker-playground[master]: osmocom-bb-trxcon/Dockerfile: drop unused dependencies Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9726 Change subject: osmocom-bb-trxcon/Dockerfile: drop unused dependencies ...................................................................... osmocom-bb-trxcon/Dockerfile: drop unused dependencies Change-Id: Ib2fd0c73e50d24f11d3dd3b19bbde4d3d3e496c2 --- M osmocom-bb-trxcon/Dockerfile 1 file changed, 1 insertion(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/26/9726/1 diff --git a/osmocom-bb-trxcon/Dockerfile b/osmocom-bb-trxcon/Dockerfile index 0f3cb12..313b669 100644 --- a/osmocom-bb-trxcon/Dockerfile +++ b/osmocom-bb-trxcon/Dockerfile @@ -15,14 +15,8 @@ ADD $OSMOCOM_REPO/Release /tmp/Release RUN apt-get update && \ apt-get install -y --no-install-recommends \ - telnet \ tcpdump \ - libosmocore-dev \ - libosmo-abis-dev \ - libosmo-netif-dev \ - libosmo-sccp-dev \ - libsmpp34-dev \ - libgtp-dev && \ + libosmocore-dev && \ apt-get clean WORKDIR /tmp -- To view, visit https://gerrit.osmocom.org/9726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib2fd0c73e50d24f11d3dd3b19bbde4d3d3e496c2 Gerrit-Change-Number: 9726 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 08:22:05 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 08:22:05 +0000 Subject: Change in osmo-sgsn[master]: finish gbproxy_parse_bssgp_unitdata test In-Reply-To: References: Message-ID: Stefan Sperling has submitted this change and it was merged. ( https://gerrit.osmocom.org/9715 ) Change subject: finish gbproxy_parse_bssgp_unitdata test ...................................................................... finish gbproxy_parse_bssgp_unitdata test The message this test is trying to parse is indeed invalid. Add a comment showing the message in decoded form, and assert that the parser rejects it. Also, add a missing call to cleanup_test(). Change-Id: I2a86432d080c38d3c95626372a0129499d7146dd Related: OS#3178 --- M tests/gbproxy/gbproxy_test.c 1 file changed, 55 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index e6bb2e6..157da8b 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -4944,14 +4944,64 @@ parse_ctx.to_bss = 0; parse_ctx.peer_nsei = msgb_nsei(msg); - /* TODO: Determine whether our parser or the message is wrong. */ - rc = gprs_gb_parse_bssgp(msg->data, msg->len, &parse_ctx); - if (!rc) { - fprintf(stderr, "%s: Failed to parse message %s\n", __func__, msgb_hexdump(msg)); - } + if (!rc) + fprintf(stderr, "%s: Test passed; Failed to parse invalid message %s\n", __func__, msgb_hexdump(msg)); + else + fprintf(stderr, "%s: Test failed; invalid message was accepted by parser: %s\n", __func__, msgb_hexdump(msg)); + + OSMO_ASSERT(!rc); + + /* Manually decoded message according to: + ETSI TS 148 018 V10.6.0 (2012 07) 96 + 3GPP TS 48.018 version 10.6.0 Release 10 + Table 10.2.2: UL-UNITDATA PDU content + + 00 - PDU type UL-UNITDATA (ok) + + 11.3.35 Temporary logical link Identity (TLLI) + 00 - TLLI[0] + 23 - TLLI[1] + 94 - TLLI[2] + 01 - TLLI[3] + TLLI == "00239401" + + e1 - QOS[0] (bit rate MSB) + 55 - QOS[1] (bit rate LSB) + bit rate = "57685" (57685*100000 bit/s per PBRG) + cf - QOS[2] PBRG = 11 (bit rate is expressed in 100000 bit/s increments), + C/R 0 (contains LLC ACK/SACK), + T 0 (contains signalling), + A 1 (radio if uses MAC/UNITDATA, + Precedence 111 (reserved value) + + ea - CELL_ID[0] (TLV IEI: wrong, should be 0x08) + 00 - CELL_ID[1] (length 1) + 00 - CELL_ID[2] (length 2) + lenth == 0 + 04 -- CELL_ID[3] + 08 -- CELL_ID[4] + 88 -- CELL_ID[5] + 72 -- CELL_ID[6] + f4 -- CELL_ID[7] + 80 -- CELL_ID[8] + 10 -- CELL_DI[9] + + 18 -- QOSP[0] OoS Profile IEI + not allowed in BSSGP Userdata + 00 -- QOSP[1] + 9c -- QOSP[2] + 40 -- QOSP[3] + 00 -- QOSP[4] + + 80 -- IEI for "E-UTRAN Inter RAT Handover Info" + not allowed in BSSGP Userdata + 0e -- length (14 bytes -- only 8 bytes remain) + 00 06 01 c0 41 6c 43 38 */ msgb_free(msg); + + cleanup_test(); } static struct log_info_cat gprs_categories[] = { -- To view, visit https://gerrit.osmocom.org/9715 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2a86432d080c38d3c95626372a0129499d7146dd Gerrit-Change-Number: 9715 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 09:05:41 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 09:05:41 +0000 Subject: Change in osmo-bts[master]: log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9727 Change subject: log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu ...................................................................... log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu osmo-pcu currently sends paging requests in PCU_IF_MSG_DATA_REQ messages, rather than PCU_IF_MSG_PAG_REQ. Clarify a comment which already alluded to this, and leave an explicit log entry if a PCU_IF_MSG_PAG_REQ message is received. Change-Id: I75fd8f051f943d876b5614fa088fff7e56b310ab Related: OS#3018 --- M src/common/pcu_sock.c 1 file changed, 22 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/27/9727/1 diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index bdebf65..7f32f32 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -481,13 +481,7 @@ switch (data_req->sapi) { case PCU_IF_SAPI_PCH: - if (msg_type == PCU_IF_MSG_PAG_REQ) { - /* FIXME: Add function to schedule paging request. - * This might not be required, if PCU_IF_MSG_DATA_REQ - * is used instead. */ - } else { - paging_add_imm_ass(bts->paging_state, data_req->data, data_req->len); - } + paging_add_imm_ass(bts->paging_state, data_req->data, data_req->len); break; case PCU_IF_SAPI_AGCH: msg = msgb_alloc(data_req->len, "pcu_agch"); @@ -543,6 +537,24 @@ return rc; } +static int pcu_rx_pag_req(struct gsm_bts *bts, uint8_t msg_type, + struct gsm_pcu_if_pag_req *pag_req) +{ + int rc = 0; + + OSMO_ASSERT(msg_type == PCU_IF_MSG_PAG_REQ); + + /* FIXME: Add function to schedule paging request. + * At present, osmo-pcu sends paging requests in PCU_IF_MSG_DATA_REQ + * messages which are processed by pcu_rx_data_req(). + * This code path is not triggered in practice. */ + LOGP(DPCU, LOGL_NOTICE, "Paging request received: chan_needed=%d length=%d " + "(dropping message because support for PCU_IF_MSG_PAG_REQ is not yet implemented)\n", + pag_req->chan_needed, pag_req->identity_lv[0]); + + return rc; +} + int pcu_tx_si13(const struct gsm_bts *bts, bool enable) { /* the SI is per-BTS so it doesn't matter which TRX we use */ @@ -631,9 +643,11 @@ switch (msg_type) { case PCU_IF_MSG_DATA_REQ: - case PCU_IF_MSG_PAG_REQ: rc = pcu_rx_data_req(bts, msg_type, &pcu_prim->u.data_req); break; + case PCU_IF_MSG_PAG_REQ: + rc = pcu_rx_pag_req(bts, msg_type, &pcu_prim->u.pag_req); + break; case PCU_IF_MSG_ACT_REQ: rc = pcu_rx_act_req(bts, &pcu_prim->u.act_req); break; -- To view, visit https://gerrit.osmocom.org/9727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I75fd8f051f943d876b5614fa088fff7e56b310ab Gerrit-Change-Number: 9727 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 09:56:18 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 09:56:18 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Make the outer variables configurable In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9713 ) Change subject: ms: Make the outer variables configurable ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9713 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If8bbedcf672f6481a12c30d3669564704063626c Gerrit-Change-Number: 9713 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 09:56:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 09:59:30 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 09:59:30 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Attempt to stop all mobile/virtphy instances on exit In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9714 ) Change subject: ms: Attempt to stop all mobile/virtphy instances on exit ...................................................................... Patch Set 2: Code-Review+2 You get all this for free when inheriting from osmo_gsm_tester.Process class, then using osmo_gsm_tester.suite.py (SuiteDefition & SuiteRun) to maintain them for you. You may want to integrate all these tests with it in the future. -- To view, visit https://gerrit.osmocom.org/9714 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6cec050db7d4c355fb6678b2d84309fbbe5587b3 Gerrit-Change-Number: 9714 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 09:59:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:04:17 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:04:17 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Begin to refactor and be able to share functionality In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9712 ) Change subject: ms: Begin to refactor and be able to share functionality ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9712 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I840af0396f08744ce8ee6a2967f880d5cb7f815f Gerrit-Change-Number: 9712 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:04:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:09:14 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:09:14 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Quit early when all tests concluded.. In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9716 ) Change subject: ms: Quit early when all tests concluded.. ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/9716/1/src/osmo_ms_driver/location_update_test.py File src/osmo_ms_driver/location_update_test.py: https://gerrit.osmocom.org/#/c/9716/1/src/osmo_ms_driver/location_update_test.py at 181 PS1, Line 181: return reduce(lambda b, ms: b and ms.has_lu_time(), self._results.values(), True) Not related to this commit itself, but this looks really computation intesive given tht you are running a lot of ms and you are checking this everytime you select (or timeout). May be worth moving this to a counter you increase and decrease and simply check for counter to be 0. -- To view, visit https://gerrit.osmocom.org/9716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3575ee7618c35e3b66d25fa31844d267489d9179 Gerrit-Change-Number: 9716 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:09:14 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:18:46 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:18:46 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Simplify starting of the test and combine loop and wait In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9717 ) Change subject: ms: Simplify starting of the test and combine loop and wait ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/9717/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9717/1//COMMIT_MSG at 9 PS1, Line 9: This will make it easier to strt different kind of tests. The cost s/strt/start/ -- To view, visit https://gerrit.osmocom.org/9717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3708ac382c0a34e17cf147d18f03603946437a53 Gerrit-Change-Number: 9717 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:18:46 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:21:44 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 10:21:44 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9728 Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error and log corresponding packets. Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Related: OS#3178 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/9728/1 diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 1524fb3..1f58809 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -388,6 +388,11 @@ data_len = msgb_bssgp_len(msg) - sizeof(*budh); rc = bssgp_tlv_parse(&tp, budh->data, data_len); } + if (rc < 0) { + LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", + bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); + return rc; + } if (pdu_type == BSSGP_PDUT_BVC_RESET) { rc = bssgp_rcvmsg(msg); -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:21:53 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 10:21:53 +0000 Subject: Change in libosmocore[master]: check bssgp_tlv_parse() return code in bssgp_rcvmsg() Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9729 Change subject: check bssgp_tlv_parse() return code in bssgp_rcvmsg() ...................................................................... check bssgp_tlv_parse() return code in bssgp_rcvmsg() The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error and log corresponding packets. Change-Id: Id3d7c52ec3df2bcf4efcee0e0b14fe22ef96964e Related: OS#3178 --- M src/gb/gprs_bssgp.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/9729/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index d5d4ea8..1445a56 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1049,6 +1049,11 @@ data_len = msgb_bssgp_len(msg) - sizeof(*budh); rc = bssgp_tlv_parse(&tp, budh->data, data_len); } + if (rc < 0) { + LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", + bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); + return rc; + } if (bvci == BVCI_SIGNALLING && TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) bvci = tlvp_val16be(&tp, BSSGP_IE_BVCI); -- To view, visit https://gerrit.osmocom.org/9729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id3d7c52ec3df2bcf4efcee0e0b14fe22ef96964e Gerrit-Change-Number: 9729 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:21:59 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:21:59 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Only use completed tests for min/max handling In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9718 ) Change subject: ms: Only use completed tests for min/max handling ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9718 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icaf9e90dd729b2339e409b3ec1593f456969fd19 Gerrit-Change-Number: 9718 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:21:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:22:31 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:22:31 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Remove unused imports In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9719 ) Change subject: ms: Remove unused imports ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9719 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd428d1bbd937a26a320eb69b1031856e49d3e4b Gerrit-Change-Number: 9719 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:22:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:23:09 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:23:09 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Make the total test duration configurable In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9720 ) Change subject: ms: Make the total test duration configurable ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5598d5dfd51e224e13835307ad20d108a5aa3935 Gerrit-Change-Number: 9720 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:23:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:23:14 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:23:14 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Use the new API to pass credentials to the event server In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9663 ) Change subject: ms: Use the new API to pass credentials to the event server ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f Gerrit-Change-Number: 9663 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:23:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:23:46 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:23:46 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Make the total test duration configurable In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9720 ) Change subject: ms: Make the total test duration configurable ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9720 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5598d5dfd51e224e13835307ad20d108a5aa3935 Gerrit-Change-Number: 9720 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:23:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:26:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:26:03 +0000 Subject: Change in libosmocore[master]: check bssgp_tlv_parse() return code in bssgp_rcvmsg() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9729 ) Change subject: check bssgp_tlv_parse() return code in bssgp_rcvmsg() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id3d7c52ec3df2bcf4efcee0e0b14fe22ef96964e Gerrit-Change-Number: 9729 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:26:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:26:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:26:05 +0000 Subject: Change in libosmocore[master]: check bssgp_tlv_parse() return code in bssgp_rcvmsg() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9729 ) Change subject: check bssgp_tlv_parse() return code in bssgp_rcvmsg() ...................................................................... check bssgp_tlv_parse() return code in bssgp_rcvmsg() The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error and log corresponding packets. Change-Id: Id3d7c52ec3df2bcf4efcee0e0b14fe22ef96964e Related: OS#3178 --- M src/gb/gprs_bssgp.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index d5d4ea8..1445a56 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1049,6 +1049,11 @@ data_len = msgb_bssgp_len(msg) - sizeof(*budh); rc = bssgp_tlv_parse(&tp, budh->data, data_len); } + if (rc < 0) { + LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", + bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); + return rc; + } if (bvci == BVCI_SIGNALLING && TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) bvci = tlvp_val16be(&tp, BSSGP_IE_BVCI); -- To view, visit https://gerrit.osmocom.org/9729 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id3d7c52ec3df2bcf4efcee0e0b14fe22ef96964e Gerrit-Change-Number: 9729 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:28:58 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:28:58 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/9728/1/src/gprs_bssgp_pcu.cpp File src/gprs_bssgp_pcu.cpp: https://gerrit.osmocom.org/#/c/9728/1/src/gprs_bssgp_pcu.cpp at 392 PS1, Line 392: LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", I think it's wise to not only log the message but also send a BSSGP STATUS PDU. Section 9 of TS 48.018 defines which error codes to send depending on the type of error. Even if we cannot distinguish betweeon those error cases, I think it's better to send a STATUS at all [even with a not so clear cause value] than to silently ignore it. At least we give the SGSN [operator] a chance to see that something is not working. -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:28:58 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:30:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:30:06 +0000 Subject: Change in osmo-bts[master]: log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9727 ) Change subject: log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I75fd8f051f943d876b5614fa088fff7e56b310ab Gerrit-Change-Number: 9727 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:30:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:30:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:30:08 +0000 Subject: Change in osmo-bts[master]: log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9727 ) Change subject: log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu ...................................................................... log reception of PCU_IF_MSG_PAG_REQ messages from osmo-pcu osmo-pcu currently sends paging requests in PCU_IF_MSG_DATA_REQ messages, rather than PCU_IF_MSG_PAG_REQ. Clarify a comment which already alluded to this, and leave an explicit log entry if a PCU_IF_MSG_PAG_REQ message is received. Change-Id: I75fd8f051f943d876b5614fa088fff7e56b310ab Related: OS#3018 --- M src/common/pcu_sock.c 1 file changed, 22 insertions(+), 8 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index bdebf65..7f32f32 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -481,13 +481,7 @@ switch (data_req->sapi) { case PCU_IF_SAPI_PCH: - if (msg_type == PCU_IF_MSG_PAG_REQ) { - /* FIXME: Add function to schedule paging request. - * This might not be required, if PCU_IF_MSG_DATA_REQ - * is used instead. */ - } else { - paging_add_imm_ass(bts->paging_state, data_req->data, data_req->len); - } + paging_add_imm_ass(bts->paging_state, data_req->data, data_req->len); break; case PCU_IF_SAPI_AGCH: msg = msgb_alloc(data_req->len, "pcu_agch"); @@ -543,6 +537,24 @@ return rc; } +static int pcu_rx_pag_req(struct gsm_bts *bts, uint8_t msg_type, + struct gsm_pcu_if_pag_req *pag_req) +{ + int rc = 0; + + OSMO_ASSERT(msg_type == PCU_IF_MSG_PAG_REQ); + + /* FIXME: Add function to schedule paging request. + * At present, osmo-pcu sends paging requests in PCU_IF_MSG_DATA_REQ + * messages which are processed by pcu_rx_data_req(). + * This code path is not triggered in practice. */ + LOGP(DPCU, LOGL_NOTICE, "Paging request received: chan_needed=%d length=%d " + "(dropping message because support for PCU_IF_MSG_PAG_REQ is not yet implemented)\n", + pag_req->chan_needed, pag_req->identity_lv[0]); + + return rc; +} + int pcu_tx_si13(const struct gsm_bts *bts, bool enable) { /* the SI is per-BTS so it doesn't matter which TRX we use */ @@ -631,9 +643,11 @@ switch (msg_type) { case PCU_IF_MSG_DATA_REQ: - case PCU_IF_MSG_PAG_REQ: rc = pcu_rx_data_req(bts, msg_type, &pcu_prim->u.data_req); break; + case PCU_IF_MSG_PAG_REQ: + rc = pcu_rx_pag_req(bts, msg_type, &pcu_prim->u.pag_req); + break; case PCU_IF_MSG_ACT_REQ: rc = pcu_rx_act_req(bts, &pcu_prim->u.act_req); break; -- To view, visit https://gerrit.osmocom.org/9727 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I75fd8f051f943d876b5614fa088fff7e56b310ab Gerrit-Change-Number: 9727 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:30:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:30:27 +0000 Subject: Change in docker-playground[master]: osmo-bsc-master/Dockerfile: drop wrong configure option In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9725 ) Change subject: osmo-bsc-master/Dockerfile: drop wrong configure option ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3fecd622df136a18a32a9095ede3e2629e2f7b4e Gerrit-Change-Number: 9725 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 25 Jun 2018 10:30:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:30:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:30:36 +0000 Subject: Change in docker-playground[master]: osmocom-bb-trxcon/Dockerfile: drop unused dependencies In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9726 ) Change subject: osmocom-bb-trxcon/Dockerfile: drop unused dependencies ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib2fd0c73e50d24f11d3dd3b19bbde4d3d3e496c2 Gerrit-Change-Number: 9726 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 25 Jun 2018 10:30:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:30:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:30:37 +0000 Subject: Change in docker-playground[master]: osmo-bsc-master/Dockerfile: drop wrong configure option In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9725 ) Change subject: osmo-bsc-master/Dockerfile: drop wrong configure option ...................................................................... osmo-bsc-master/Dockerfile: drop wrong configure option Change-Id: I3fecd622df136a18a32a9095ede3e2629e2f7b4e --- M osmo-bsc-master/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/osmo-bsc-master/Dockerfile b/osmo-bsc-master/Dockerfile index 470abcb..5af6abf 100644 --- a/osmo-bsc-master/Dockerfile +++ b/osmo-bsc-master/Dockerfile @@ -34,7 +34,7 @@ RUN cd osmo-bsc && \ git fetch && git checkout -f -B $OSMO_BSC_BRANCH origin/$OSMO_BSC_BRANCH && \ autoreconf -fi && \ - ./configure --enable-trx && \ + ./configure && \ make -j8 install VOLUME /data -- To view, visit https://gerrit.osmocom.org/9725 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3fecd622df136a18a32a9095ede3e2629e2f7b4e Gerrit-Change-Number: 9725 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:30:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:30:38 +0000 Subject: Change in docker-playground[master]: osmocom-bb-trxcon/Dockerfile: drop unused dependencies In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9726 ) Change subject: osmocom-bb-trxcon/Dockerfile: drop unused dependencies ...................................................................... osmocom-bb-trxcon/Dockerfile: drop unused dependencies Change-Id: Ib2fd0c73e50d24f11d3dd3b19bbde4d3d3e496c2 --- M osmocom-bb-trxcon/Dockerfile 1 file changed, 1 insertion(+), 7 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/osmocom-bb-trxcon/Dockerfile b/osmocom-bb-trxcon/Dockerfile index 0f3cb12..313b669 100644 --- a/osmocom-bb-trxcon/Dockerfile +++ b/osmocom-bb-trxcon/Dockerfile @@ -15,14 +15,8 @@ ADD $OSMOCOM_REPO/Release /tmp/Release RUN apt-get update && \ apt-get install -y --no-install-recommends \ - telnet \ tcpdump \ - libosmocore-dev \ - libosmo-abis-dev \ - libosmo-netif-dev \ - libosmo-sccp-dev \ - libsmpp34-dev \ - libgtp-dev && \ + libosmocore-dev && \ apt-get clean WORKDIR /tmp -- To view, visit https://gerrit.osmocom.org/9726 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib2fd0c73e50d24f11d3dd3b19bbde4d3d3e496c2 Gerrit-Change-Number: 9726 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:33:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:33:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: introduce common GSUP/BSSAP matching functions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9687 ) Change subject: msc/USSD: introduce common GSUP/BSSAP matching functions ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/9687/3/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9687/3/msc/MSC_Tests.ttcn at 2133 PS3, Line 2133: bssap_msg you call the function "expect_mt_bssap_msg" and you pass in a bssap_msg. Yet then in the receive below you use a tr_PDU_DTAP_MT() which seems to imply that it's actually only for DTAP? -- To view, visit https://gerrit.osmocom.org/9687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I846c2d40a7c37afa8647e644673b4df905e3e116 Gerrit-Change-Number: 9687 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:33:25 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:34:00 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 10:34:00 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 10:34:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:35:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:35:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: add test cases with network-initiaded SS/USSD In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9686 ) Change subject: msc/USSD: add test cases with network-initiaded SS/USSD ...................................................................... Patch Set 4: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/9686/4/msc/MSC_Tests.ttcn File msc/MSC_Tests.ttcn: https://gerrit.osmocom.org/#/c/9686/4/msc/MSC_Tests.ttcn at 2273 PS4, Line 2273: alt { : [] BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)) { : setverdict(pass); : } : [] BSSAP.receive { : setverdict(fail, "Unknown/unexpected BSSAP received"); : self.stop; : } : [] GSUP.receive { : setverdict(fail, "Unexpected GSUP message received"); : self.stop; : } : } The fact that you still have those alt-clauses here means that somehow the abstraction level chosen doesn't work. You have not implemented the altstep suggestion that I hinted in a previous comment and instead introduced functions lie f_expect_bssap(). But then, that function works only for DTAP, so you need to open-code this again here. The detailed design is up to you, but I think it would be good t o generalize this, i.e. either have a f_expect_bssap() that works for both dtap + bssmap, or have separate expect functions. And independent of all of this, the "[] foo.receive {setverdict(fail); self.stop}" which are repeated in every of those functions could be an altstep, whcih is then invoked from every f_expect_ function, further reducing code duplication. -- To view, visit https://gerrit.osmocom.org/9686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I073893c6e11be27e9e36f98f11c1491d0c173985 Gerrit-Change-Number: 9686 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Jun 2018 10:35:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:36:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:36:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc/USSD: introduce TC_lu_and_mo_ussd_mo_release In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9689 ) Change subject: msc/USSD: introduce TC_lu_and_mo_ussd_mo_release ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7936ed5072ed2ae02f039dc90a1fece1e7f70a70 Gerrit-Change-Number: 9689 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:36:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:38:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:38:26 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: introduce the generic GSUP message router In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9656 ) Change subject: libvlr/vlr.c: introduce the generic GSUP message router ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9656/2/src/libvlr/vlr.c File src/libvlr/vlr.c: https://gerrit.osmocom.org/#/c/9656/2/src/libvlr/vlr.c at 969 PS2, Line 969: static int vlr_route_gsup_msg I would move that entire function out of libvlr. Just have the MSC provide this function as a function pointer during vlr_start() or the like. This way the libvlr code stays clean. -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:38:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:38:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:38:43 +0000 Subject: Change in osmo-msc[master]: msc_vlr_tests: don't abuse USSD-request to conclude connections In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9657 ) Change subject: msc_vlr_tests: don't abuse USSD-request to conclude connections ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9657 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I40b4caac3113263f5a06c861dff5e10d43c319b5 Gerrit-Change-Number: 9657 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:38:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:41:35 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 10:41:35 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9728 to look at the new patch set (#2). Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error, log corresponding packets, and return an error notification to the sender. Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Related: OS#3178 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/9728/2 -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:44:33 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 10:44:33 +0000 Subject: Change in libosmocore[master]: return error to sender upon bssgp_tlv_parse() failure Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9730 Change subject: return error to sender upon bssgp_tlv_parse() failure ...................................................................... return error to sender upon bssgp_tlv_parse() failure Return an error notification to the sender in case bssgp_tlv_parse() failed. Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Related: OS#3178 --- M src/gb/gprs_bssgp.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/9730/1 diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 1445a56..e44694d 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1052,7 +1052,7 @@ if (rc < 0) { LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); - return rc; + return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); } if (bvci == BVCI_SIGNALLING && TLVP_PRESENT(&tp, BSSGP_IE_BVCI)) -- To view, visit https://gerrit.osmocom.org/9730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Gerrit-Change-Number: 9730 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:47:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:47:19 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: properly handle MS-initiated release In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9703 ) Change subject: libmsc/gsm_09_11.c: properly handle MS-initiated release ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9703 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I76fc277bf9db614a97824b1541cd5bb75aa3e29d Gerrit-Change-Number: 9703 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:47:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:48:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:48:37 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9711 ) Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Jun 2018 10:48:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:51:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:51:30 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9711 ) Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... Patch Set 1: you are basically referring to two different bits of information: a) the *rate* of events (ussd requests) over time and b) the currently active number of sessions. That's what some monitoring systems call a "gauge". Only "a)" can be implemented as a rate_ctr. I *think* stat_items can do the "gauge"? In any case, we can merge this current patch as-is. as it implements "a)". If somebody wants a "b)" patch later, fine. -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Jun 2018 10:51:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:52:06 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 10:52:06 +0000 Subject: Change in libosmocore[master]: return error to sender upon bssgp_tlv_parse() failure In-Reply-To: References: Message-ID: Stefan Sperling has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9730 ) Change subject: return error to sender upon bssgp_tlv_parse() failure ...................................................................... return error to sender upon bssgp_tlv_parse() failure Return "invalid mandatory information" error status to the sender in case bssgp_tlv_parse() failed. Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Related: OS#3178 --- M src/gb/gprs_bssgp.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/9730/2 -- To view, visit https://gerrit.osmocom.org/9730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Gerrit-Change-Number: 9730 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:52:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:52:47 +0000 Subject: Change in libosmocore[master]: return error to sender upon bssgp_tlv_parse() failure In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9730 ) Change subject: return error to sender upon bssgp_tlv_parse() failure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9730/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/#/c/9730/1/src/gb/gprs_bssgp.c at 1035 PS1, Line 1035: uint8_t pdu_type = bgph->pdu_type; I'm not sure if a STATUS message can ever be present in this code path. we might wnat to make sure that we never generate a STATUS in response to a STATUS, as that could cause horrible loops/floods. -- To view, visit https://gerrit.osmocom.org/9730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Gerrit-Change-Number: 9730 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-CC: Harald Welte Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 10:52:47 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:53:04 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 10:53:04 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Stefan Sperling has posted comments on this change. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... Patch Set 2: > (1 comment) It seems this error code applies: """ any type of BSSGP PDU received with a syntactical er ror in a mandatory IE is discarded and a STATUS PDU (cause "Invalid mandatory information") is sent; """ -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling Gerrit-Comment-Date: Mon, 25 Jun 2018 10:53:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:53:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:53:32 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... Patch Set 2: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/9728/2/src/gprs_bssgp_pcu.cpp File src/gprs_bssgp_pcu.cpp: https://gerrit.osmocom.org/#/c/9728/2/src/gprs_bssgp_pcu.cpp at 394 PS2, Line 394: return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); here this function has a clear exit path for PDUT_STATUS above, so we have no risk of returning STATUS for STATUS. -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling Gerrit-Comment-Date: Mon, 25 Jun 2018 10:53:32 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:55:02 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 10:55:02 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9728 to look at the new patch set (#3). Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error, log corresponding packets, and return an "invalid mandatory information" error status to the sender. Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Related: OS#3178 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/9728/3 -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 10:57:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 10:57:01 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling Gerrit-Comment-Date: Mon, 25 Jun 2018 10:57:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:01:06 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 11:01:06 +0000 Subject: Change in libosmocore[master]: return error to sender upon bssgp_tlv_parse() failure In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9730 to look at the new patch set (#3). Change subject: return error to sender upon bssgp_tlv_parse() failure ...................................................................... return error to sender upon bssgp_tlv_parse() failure Return "invalid mandatory information" error status to the sender in case bssgp_tlv_parse() failed. To avoid loops, do not respond with an error status to STATUS PDUs which failed parsing. Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Related: OS#3178 --- M src/gb/gprs_bssgp.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/30/9730/3 -- To view, visit https://gerrit.osmocom.org/9730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Gerrit-Change-Number: 9730 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:03:00 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 11:03:00 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9728 to look at the new patch set (#4). Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error, log corresponding packets, and return an "invalid mandatory information" error status to the sender. To avoid loops, do not respond with an error status to STATUS PDUs. Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Related: OS#3178 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/28/9728/4 -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 4 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:05:01 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 11:05:01 +0000 Subject: Change in libosmocore[master]: return error to sender upon bssgp_tlv_parse() failure In-Reply-To: References: Message-ID: Stefan Sperling has posted comments on this change. ( https://gerrit.osmocom.org/9730 ) Change subject: return error to sender upon bssgp_tlv_parse() failure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9730/1/src/gb/gprs_bssgp.c File src/gb/gprs_bssgp.c: https://gerrit.osmocom.org/#/c/9730/1/src/gb/gprs_bssgp.c at 1035 PS1, Line 1035: uint8_t pdu_type = bgph->pdu_type; > I'm not sure if a STATUS message can ever be present in this code path. [?] Indeed, good point. We could probably drop some other messages, such as various ACKs. But at a minimum we must avoid a STATUS loop. Fixed in updated patch set. -- To view, visit https://gerrit.osmocom.org/9730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Gerrit-Change-Number: 9730 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 25 Jun 2018 11:05:01 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:07:44 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 11:07:44 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Stefan Sperling has posted comments on this change. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/9728/2/src/gprs_bssgp_pcu.cpp File src/gprs_bssgp_pcu.cpp: https://gerrit.osmocom.org/#/c/9728/2/src/gprs_bssgp_pcu.cpp at 394 PS2, Line 394: return bssgp_tx_status(BSSGP_CAUSE_PROTO_ERR_UNSPEC, NULL, msg); > here this function has a clear exit path for PDUT_STATUS above, so we have no risk of returning STAT [?] Hmm, true. I'd still add the check down here though in case the code gets refactored. -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling Gerrit-Comment-Date: Mon, 25 Jun 2018 11:07:44 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:58:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 11:58:18 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 4 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling Gerrit-Comment-Date: Mon, 25 Jun 2018 11:58:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:58:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 11:58:38 +0000 Subject: Change in libosmocore[master]: return error to sender upon bssgp_tlv_parse() failure In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9730 ) Change subject: return error to sender upon bssgp_tlv_parse() failure ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Gerrit-Change-Number: 9730 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling Gerrit-Comment-Date: Mon, 25 Jun 2018 11:58:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:58:39 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 11:58:39 +0000 Subject: Change in libosmocore[master]: return error to sender upon bssgp_tlv_parse() failure In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9730 ) Change subject: return error to sender upon bssgp_tlv_parse() failure ...................................................................... return error to sender upon bssgp_tlv_parse() failure Return "invalid mandatory information" error status to the sender in case bssgp_tlv_parse() failed. To avoid loops, do not respond with an error status to STATUS PDUs which failed parsing. Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Related: OS#3178 --- M src/gb/gprs_bssgp.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gb/gprs_bssgp.c b/src/gb/gprs_bssgp.c index 1445a56..5dfce16 100644 --- a/src/gb/gprs_bssgp.c +++ b/src/gb/gprs_bssgp.c @@ -1052,6 +1052,8 @@ if (rc < 0) { LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); + if (pdu_type != BSSGP_PDUT_STATUS) + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); return rc; } -- To view, visit https://gerrit.osmocom.org/9730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If73719b75a94d6742bdefc9b6572525cb00a96ee Gerrit-Change-Number: 9730 Gerrit-PatchSet: 3 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 11:58:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 11:58:41 +0000 Subject: Change in osmo-pcu[master]: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9728 ) Change subject: check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() ...................................................................... check bssgp_tlv_parse() return code in gprs_bssgp_pcu_rcvmsg() The return code from bssgp_tlv_parse() was not checked for a parsing error. In case of a parsing error the stored return code could have been overwritten later in this function. Explicitly check for a parsing error, log corresponding packets, and return an "invalid mandatory information" error status to the sender. To avoid loops, do not respond with an error status to STATUS PDUs. Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Related: OS#3178 --- M src/gprs_bssgp_pcu.cpp 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 1524fb3..100e33d 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -388,6 +388,13 @@ data_len = msgb_bssgp_len(msg) - sizeof(*budh); rc = bssgp_tlv_parse(&tp, budh->data, data_len); } + if (rc < 0) { + LOGP(DBSSGP, LOGL_ERROR, "Failed to parse BSSGP %s message. Invalid message was: %s\n", + bssgp_pdu_str(pdu_type), msgb_hexdump(msg)); + if (pdu_type != BSSGP_PDUT_STATUS) + return bssgp_tx_status(BSSGP_CAUSE_INV_MAND_INF, NULL, msg); + return rc; + } if (pdu_type == BSSGP_PDUT_BVC_RESET) { rc = bssgp_rcvmsg(msg); -- To view, visit https://gerrit.osmocom.org/9728 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I56e10a97cda7fd2d40bc7b4b2e6202f97772e1b3 Gerrit-Change-Number: 9728 Gerrit-PatchSet: 4 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 13:36:38 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 13:36:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: default to number of CPUs for parallel make jobs Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9731 Change subject: default to number of CPUs for parallel make jobs ...................................................................... default to number of CPUs for parallel make jobs The previous default behaviour was to always run 'make -j8', which can cause C++ build failures on machines which are low on memory. "Low" being a relative measure; I've seen failures with 4GB of RAM. Rather than assuming a beefy 8-core box, try to detect the number of available CPU cores with nproc(1) from GNU coreutils and set the number of parallel make jobs to the number of CPU cores. If this command is not available, default to a safe choice: -j1 Note that installing ccache will speed up repeated builds a lot more than -jX ever will, so falling back to -j1 isn't very bad. Change-Id: I61c3ea1b3cb5b64eecb08ad6c390594f70cdf785 --- M Makefile 1 file changed, 5 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/31/9731/1 diff --git a/Makefile b/Makefile index fcd6601..a12a504 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,10 @@ SUBDIRS=bsc bsc-nat bts ggsn_tests hlr lapdm mgw msc pcu selftest sgsn sip sysinfo -PARALLEL_MAKE ?= -j8 +NPROC=$(shell nproc 2>/dev/null) +ifeq ($(NPROC),) +NPROC=1 +endif +PARALLEL_MAKE ?= -j$(NPROC) # This master makefile allows you to do things like # make clean (remove all generated binary, c++ and symlinks) -- To view, visit https://gerrit.osmocom.org/9731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I61c3ea1b3cb5b64eecb08ad6c390594f70cdf785 Gerrit-Change-Number: 9731 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 13:38:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 13:38:47 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 6: (5 comments) https://gerrit.osmocom.org/#/c/9671/6//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9671/6//COMMIT_MSG at 35 PS6, Line 35: Thus I can log with or without : typing "\n" and always get an \n termination anyway I'm not sure if that's such a great feature. I agree we can talk about a policy-change to discontinue the LOGPC continuation. But I would still suggest that programmers explicitly terminate all log lines with \n. IF we want, we could have a "make check" step that validates the source code for that. Wireshark is doing things like that at compile/check time, rather than adding [potential] runtime. If we now introduce this magic, I fear that people will accidentially introduce log statements without newline. https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/gsm_data.h at 37 PS6, Line 37: #define GSM_T3122_DEFAULT 10 I guess we don't ned to define this again (it is defined two lines below) https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/gsm_data.h at 155 PS6, Line 155: mo I'm still wondering about terminology. It's "handing-out" or "handing-in" or something the like, but MO/MT don't really have pre-conceived/general/unabiguous meaning in the context of hand-over, at least not that I'm aware from reading specs and books. https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/gsm_data.h at 262 PS6, Line 262: Not critical, but I don't really like that the old code had extensive comments and the new code doesn't have any. https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/gsm_data.h at 518 PS6, Line 518: uint8_t error_cause; might be good to mention that this refers to RSL cause values? -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 25 Jun 2018 13:38:47 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Jun 25 15:10:07 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 25 Jun 2018 15:10:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#165?= In-Reply-To: <1012310081.307.1529853006957.JavaMail.jenkins@jenkins.osmocom.org> References: <1012310081.307.1529853006957.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <736578046.320.1529939407080.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.92 KB...] checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:10:56 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:10:56 +0000 Subject: Change in osmo-ci[master]: obs-nightly: list limesuite before osmo-trx Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9732 Change subject: obs-nightly: list limesuite before osmo-trx ...................................................................... obs-nightly: list limesuite before osmo-trx Let's move limesuite first since it doesn't depend itself on any osmocom related package, and osmo-trx depends on it. Change-Id: I0cdc85a2d0212432bf0c2586230660d363212dcc --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/32/9732/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 2898d8b..1f38116 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -139,6 +139,7 @@ prepare + checkout_limesuite checkout libosmocore checkout libosmo-sccp checkout libosmo-abis @@ -162,8 +163,8 @@ checkout osmo-bsc checkout rtl-sdr checkout osmo-fl2k - checkout_limesuite + build limesuite no_commit --git-upstream-tree=v17.12.0 build libosmocore build libosmo-sccp build libosmo-abis @@ -189,7 +190,6 @@ build osmo-fl2k download_bumpversion - build limesuite no_commit --git-upstream-tree=v17.12.0 post } -- To view, visit https://gerrit.osmocom.org/9732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0cdc85a2d0212432bf0c2586230660d363212dcc Gerrit-Change-Number: 9732 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:10:57 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:10:57 +0000 Subject: Change in osmo-ci[master]: obs-nightly: Upgrade to newer required limesuite Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9733 Change subject: obs-nightly: Upgrade to newer required limesuite ...................................................................... obs-nightly: Upgrade to newer required limesuite osmo-trx-lms requires limesuite newer than 17.02, as there were a lot of features and bug fixes which osmo-trx relies on. Furthermore, osmo-trx-lms cannot build with that version since it doesn't provide yet a pkgconfig file. We cannot use latest tagged release (18.06) since that version has some build related bugs which have been fixed later on (c1496679cadff2913cacdaa84afe93bbee76d8e4), hence why we are using latest available master instead. Change-Id: If47a3767c7fefbb75923cbfc8eeb921e29393285 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/33/9733/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 1f38116..3659d70 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -118,7 +118,7 @@ } checkout_limesuite() { - TAG="v17.12.0" + TAG="01e2d00c5005b85d1f94cca02881756a72e35e2a" cd "$REPO" git clone https://github.com/myriadrf/LimeSuite limesuite @@ -164,7 +164,7 @@ checkout rtl-sdr checkout osmo-fl2k - build limesuite no_commit --git-upstream-tree=v17.12.0 + build limesuite no_commit --git-upstream-tree=01e2d00c5005b85d1f94cca02881756a72e35e2a build libosmocore build libosmo-sccp build libosmo-abis -- To view, visit https://gerrit.osmocom.org/9733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If47a3767c7fefbb75923cbfc8eeb921e29393285 Gerrit-Change-Number: 9733 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:12:07 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:12:07 +0000 Subject: Change in osmo-trx[master]: Use correct paths when installing example files Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9734 Change subject: Use correct paths when installing example files ...................................................................... Use correct paths when installing example files Fixes: c7756e73b73f9e7c64a1391f13e65f4f9d227bf4 Change-Id: If55d14768727c7119d86da60413861674dd3538b --- M debian/osmo-trx-lms.install M debian/osmo-trx-uhd.install 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/34/9734/1 diff --git a/debian/osmo-trx-lms.install b/debian/osmo-trx-lms.install index e8bb867..dd9d407 100644 --- a/debian/osmo-trx-lms.install +++ b/debian/osmo-trx-lms.install @@ -1,2 +1,2 @@ /usr/bin/osmo-trx-lms -/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-lms/examples +/usr/share/doc/osmo-trx/examples/osmo-trx-lms/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-lms/ diff --git a/debian/osmo-trx-uhd.install b/debian/osmo-trx-uhd.install index 2db0142..8944b13 100644 --- a/debian/osmo-trx-uhd.install +++ b/debian/osmo-trx-uhd.install @@ -1,4 +1,4 @@ /usr/bin/osmo-trx-uhd -/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg /usr/share/doc/osmo-trx-uhd/examples -/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-uhd/examples -/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg /usr/share/doc/osmo-trx-uhd/examples +/usr/share/doc/osmo-trx/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-uhd/ +/usr/share/doc/osmo-trx/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-uhd/ +/usr/share/doc/osmo-trx/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-uhd/ -- To view, visit https://gerrit.osmocom.org/9734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If55d14768727c7119d86da60413861674dd3538b Gerrit-Change-Number: 9734 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:12:08 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:12:08 +0000 Subject: Change in osmo-trx[master]: debian: Enable build of osmo-trx-lms Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9735 Change subject: debian: Enable build of osmo-trx-lms ...................................................................... debian: Enable build of osmo-trx-lms Change-Id: I4711e97c844e582601a588fdc359fc020bcee001 --- M debian/rules 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/35/9735/1 diff --git a/debian/rules b/debian/rules index c700bce..1c0cd00 100755 --- a/debian/rules +++ b/debian/rules @@ -9,7 +9,7 @@ dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info override_dh_auto_configure: - dh_auto_configure -- --with-usrp1 + dh_auto_configure -- --with-usrp1 --with-lms override_dh_strip: dh_strip --dbg-package=osmo-trx-dbg -- To view, visit https://gerrit.osmocom.org/9735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4711e97c844e582601a588fdc359fc020bcee001 Gerrit-Change-Number: 9735 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:12:08 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:12:08 +0000 Subject: Change in osmo-trx[master]: debian: Explicitly enable osmo-trx-uhd build Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9736 Change subject: debian: Explicitly enable osmo-trx-uhd build ...................................................................... debian: Explicitly enable osmo-trx-uhd build osmotrxuhd is already being built since it's enabled by default, but let's make it more explicit that we are building it too. Change-Id: Ie9c224485cce047cd3ee4600ff7fbdb082355cdc --- M debian/rules 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/36/9736/1 diff --git a/debian/rules b/debian/rules index 1c0cd00..8081162 100755 --- a/debian/rules +++ b/debian/rules @@ -9,7 +9,7 @@ dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info override_dh_auto_configure: - dh_auto_configure -- --with-usrp1 --with-lms + dh_auto_configure -- --with-uhd --with-usrp1 --with-lms override_dh_strip: dh_strip --dbg-package=osmo-trx-dbg -- To view, visit https://gerrit.osmocom.org/9736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie9c224485cce047cd3ee4600ff7fbdb082355cdc Gerrit-Change-Number: 9736 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:12:09 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jun 2018 15:12:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: use correct payload types and encoding names on MGCP Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9737 Change subject: BSC_Tests: use correct payload types and encoding names on MGCP ...................................................................... BSC_Tests: use correct payload types and encoding names on MGCP The test currently use a hardcoded payload type and encoding name. This does mean in practice that even when an assignment with EFR is happeining. The MGCP responses to the BSC tell that the codec is AMR. This is not correct. The testcases should always pick a suitable payload type / encoding name in the MGCP response - Add constants for IANA/3GPP assigned payload types - Add function to lookup the right encoding name for a payload type - Initalize the encoding name and payload type in g_media according to the BSSAP PDU. Change-Id: I2735267091059e2f2169da80bdcd30abc2b1554b Realted: OS#2728 --- M bsc/MSC_ConnectionHandler.ttcn M library/MGCP_Emulation.ttcn M library/MGCP_Types.ttcn 3 files changed, 67 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/37/9737/1 diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 2042979..0f123b6 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -32,6 +32,24 @@ * Media related handling ***********************************************************************/ +/* Get the matching payload type for a specified BSSAP codec type + * (see also: BSSAP_Types.ttcn */ +private function f_get_mgcp_pt(BSSMAP_FIELD_CodecType codecType) return SDP_FIELD_PayloadType { + if (codecType == GSM_FR) { + return PT_GSM; + } else if (codecType == GSM_HR) { + return PT_GSMHR; + } else if (codecType == GSM_EFR) { + return PT_GSMEFR; + } else if (codecType == FR_AMR or codecType == HR_AMR) { + return PT_AMR; + } else if (codecType == FR_AMR_WB or codecType == OHR_AMR or codecType == OFR_AMR_WB or codecType == OHR_AMR_WB) { + return PT_AMRWB; + } + + return PT_PCMU; +} + /* Tuple containing host/ip and port */ type record HostPort { HostName host, @@ -66,7 +84,7 @@ BtsMediaState bts1 /* only during hand-over */ }; -function f_MediaState_init(inout MediaState g_media, integer nr, HostName bts, HostName mgw) { +function f_MediaState_init(inout MediaState g_media, integer nr, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) { /* BTS Side */ g_media.bts := { ipa_crcx_seen := false, @@ -93,10 +111,10 @@ g_media.mgcp_ep := "rtpbridge/" & int2str(nr) & "@mgw"; for (var integer i:= 0; i < sizeof(g_media.mgcp_conn); i := i+1) { - g_media.mgcp_conn[i].mime_type := "AMR"; + g_media.mgcp_conn[i].mime_type := f_encoding_name_from_pt(f_get_mgcp_pt(codecType)); g_media.mgcp_conn[i].sample_rate := 8000; g_media.mgcp_conn[i].ptime := 20; - g_media.mgcp_conn[i].rtp_pt := 98; + g_media.mgcp_conn[i].rtp_pt := enum2int(f_get_mgcp_pt(codecType)); g_media.mgcp_conn[i].crcx_seen := false; g_media.mgcp_conn[i].conn_id := f_mgcp_alloc_conn_id(); } @@ -301,8 +319,8 @@ } /* initialize all parameters */ -function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw) runs on MSC_ConnHdlr { - f_MediaState_init(g_media, i, bts, mgw); +function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) runs on MSC_ConnHdlr { + f_MediaState_init(g_media, i, bts, mgw, codecType); if (not g_vty_initialized) { map(self:BSCVTY, system:BSCVTY); f_vty_set_prompts(BSCVTY); @@ -754,7 +772,18 @@ /* establish a channel fully, expecting an assignment matching 'exp' */ function f_establish_fully(template (omit) PDU_BSSAP ass_tpl, template PDU_BSSAP exp_ass_cpl) runs on MSC_ConnHdlr { - f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3"); + + var BSSMAP_FIELD_CodecType codecType; + + if (isvalue(ass_tpl.pdu.bssmap.assignmentRequest.codecList)) { + codecType := valueof(ass_tpl.pdu.bssmap.assignmentRequest.codecList.codecElements[0].codecType); + } else { + /* Make sure a meaningful default is assigned in case the + * codecList is not populated */ + codecType := FR_AMR; + } + + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", codecType); /* patch in the LCLS related items, as needed */ f_ass_patch_lcls(ass_tpl, exp_ass_cpl); diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn index b02dc06..0863511 100644 --- a/library/MGCP_Emulation.ttcn +++ b/library/MGCP_Emulation.ttcn @@ -441,5 +441,26 @@ return omit; } +/* Determine encoding name for a specified payload type number */ +function f_encoding_name_from_pt(SDP_FIELD_PayloadType pt) return charstring { + if (pt == PT_PCMU) { + return "PCMU"; + } else if (pt == PT_GSM) { + return "GSM"; + } else if (pt == PT_PCMA) { + return "PCMA"; + } else if (pt == PT_GSMEFR) { + return "GSM-EFR"; + } else if (pt == PT_GSMHR) { + return "GSM-HR-08"; + } else if (pt == PT_AMR) { + return "AMR"; + } else if (pt == PT_AMRWB) { + return "AMR-WB"; + } + + setverdict(fail); + return ""; +} } diff --git a/library/MGCP_Types.ttcn b/library/MGCP_Types.ttcn index 9d1a4e1..6bb266e 100644 --- a/library/MGCP_Types.ttcn +++ b/library/MGCP_Types.ttcn @@ -121,5 +121,16 @@ external function dec_MgcpMessage(in charstring id) return MgcpMessage with { extension "prototype(convert) decode(TEXT)" }; + /* IANA / 3gpp assigned payload type numbers */ + type enumerated SDP_FIELD_PayloadType { + PT_PCMU(0), + PT_GSM(3), + PT_PCMA(8), + PT_G729(18), + PT_GSMEFR(110), + PT_GSMHR(111), + PT_AMR(112), + PT_AMRWB(113) + } } with { encode "TEXT" } -- To view, visit https://gerrit.osmocom.org/9737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2735267091059e2f2169da80bdcd30abc2b1554b Gerrit-Change-Number: 9737 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:12:48 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:12:48 +0000 Subject: Change in osmo-ci[master]: obs-nightly: Upgrade to newer required limesuite In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9733 ) Change subject: obs-nightly: Upgrade to newer required limesuite ...................................................................... Patch Set 1: Verified+1 Tested in https://build.opensuse.org/package/show/home:pespin:branches:network:osmocom:nightly/limesuite -- To view, visit https://gerrit.osmocom.org/9733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If47a3767c7fefbb75923cbfc8eeb921e29393285 Gerrit-Change-Number: 9733 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 15:12:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:12:56 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:12:56 +0000 Subject: Change in osmo-ci[master]: obs-nightly: list limesuite before osmo-trx In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9732 ) Change subject: obs-nightly: list limesuite before osmo-trx ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0cdc85a2d0212432bf0c2586230660d363212dcc Gerrit-Change-Number: 9732 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 15:12:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:13:42 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:13:42 +0000 Subject: Change in osmo-trx[master]: debian: Enable build of osmo-trx-lms In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9735 ) Change subject: debian: Enable build of osmo-trx-lms ...................................................................... Patch Set 1: Requires https://gerrit.osmocom.org/#/c/osmo-ci/+/9733/ -- To view, visit https://gerrit.osmocom.org/9735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4711e97c844e582601a588fdc359fc020bcee001 Gerrit-Change-Number: 9735 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 15:13:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:22:41 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Jun 2018 15:22:41 +0000 Subject: Change in osmo-bsc[master]: gscon: pick suitable payload type / encoding name for MGCP Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9738 Change subject: gscon: pick suitable payload type / encoding name for MGCP ...................................................................... gscon: pick suitable payload type / encoding name for MGCP The GSCON FSM does not care about the codec information when performing interactions with the MGW. Before upgrading the client the codec information was hardcoded to AMR inside the client. Now the client offers APIs to set the codec information. Since this feature is new, osmo-bsc does not set any codec information yet, which causes many of the TTCN3 tests to fail. So lets add some logic to pick suitable codec info. - Hardcode ptime to 20 (is the same for all possible codecs) - Select a codec according to the flags in userplane Change-Id: Ibddc3492572b39f166e3a1b8b8120813ce2dadc2 Related: OS#2728 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 34 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/38/9738/1 diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 4f09ae6..0f3d9d2 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -120,6 +120,32 @@ {0, NULL} }; +/* Depending on the channel mode and rate, set the codec type that is signalled + * towards the MGW. */ +static void mgcp_pick_codec(struct gsm_subscriber_connection *conn, + struct mgcp_conn_peer *conn_peer) +{ + switch (conn->user_plane.chan_mode) { + case GSM48_CMODE_SPEECH_V1: + if (conn->user_plane.full_rate) + conn_peer->codecs[0] = CODEC_GSM_8000_1; + else + conn_peer->codecs[0] = CODEC_GSMHR_8000_1; + conn_peer->codecs_len = 1; + break; + case GSM48_CMODE_SPEECH_EFR: + conn_peer->codecs[0] = CODEC_GSMEFR_8000_1; + conn_peer->codecs_len = 1; + break; + case GSM48_CMODE_SPEECH_AMR: + conn_peer->codecs[0] = CODEC_AMR_8000_1; + conn_peer->codecs_len = 1; + break; + default: + conn_peer->codecs_len = 0; + } +} + /* Send data SCCP message through SCCP connection. All sigtran messages * that are send from this FSM must use this function. Never use * osmo_bsc_sigtran_send() directly since this would defeat the checks @@ -414,7 +440,9 @@ /* A voice channel is requested, so we run down the * mgcp-ass-mgcp state-chain (see FIXME above) */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); conn_peer.call_id = conn->sccp.conn_id; + conn_peer.ptime = 20; osmo_strlcpy(conn_peer.endpoint, get_mgw_ep_name(conn), sizeof(conn_peer.endpoint)); /* (Pre)Change state and create the connection */ @@ -572,9 +600,11 @@ /* Prepare parameters with the information we got during the assignment */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; + conn_peer.ptime = 20; /* (Pre)Change state and modify the connection */ osmo_fsm_inst_state_chg(fi, ST_WAIT_MDCX_BTS, MGCP_MGW_TIMEOUT, MGCP_MGW_TIMEOUT_TIMER_NR); @@ -637,10 +667,12 @@ /* Prepare parameters with the connection information we got * with the assignment command */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); conn_peer.call_id = conn->sccp.conn_id; sin = (struct sockaddr_in *)&conn->user_plane.aoip_rtp_addr_remote; conn_peer.port = osmo_ntohs(sin->sin_port); osmo_strlcpy(conn_peer.addr, inet_ntoa(sin->sin_addr), sizeof(conn_peer.addr)); + conn_peer.ptime = 20; /* Make sure we use the same endpoint where we created the * BTS connection. */ @@ -760,9 +792,11 @@ /* Prepare parameters with the information we got during the * handover procedure (via IPACC) */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; + conn_peer.ptime = 20; /* (Pre)Change state and modify the connection */ osmo_fsm_inst_state_chg(fi, ST_WAIT_MDCX_BTS_HO, MGCP_MGW_TIMEOUT, MGCP_MGW_HO_TIMEOUT_TIMER_NR); -- To view, visit https://gerrit.osmocom.org/9738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibddc3492572b39f166e3a1b8b8120813ce2dadc2 Gerrit-Change-Number: 9738 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:31:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:31:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: default to number of CPUs for parallel make jobs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9731 ) Change subject: default to number of CPUs for parallel make jobs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I61c3ea1b3cb5b64eecb08ad6c390594f70cdf785 Gerrit-Change-Number: 9731 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 15:31:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:32:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:32:22 +0000 Subject: Change in osmo-trx[master]: Use correct paths when installing example files In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9734 ) Change subject: Use correct paths when installing example files ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If55d14768727c7119d86da60413861674dd3538b Gerrit-Change-Number: 9734 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 15:32:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:32:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:32:28 +0000 Subject: Change in osmo-trx[master]: debian: Enable build of osmo-trx-lms In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9735 ) Change subject: debian: Enable build of osmo-trx-lms ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4711e97c844e582601a588fdc359fc020bcee001 Gerrit-Change-Number: 9735 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 15:32:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:32:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:32:35 +0000 Subject: Change in osmo-trx[master]: debian: Explicitly enable osmo-trx-uhd build In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9736 ) Change subject: debian: Explicitly enable osmo-trx-uhd build ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie9c224485cce047cd3ee4600ff7fbdb082355cdc Gerrit-Change-Number: 9736 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 15:32:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:32:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:32:36 +0000 Subject: Change in osmo-trx[master]: Use correct paths when installing example files In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9734 ) Change subject: Use correct paths when installing example files ...................................................................... Use correct paths when installing example files Fixes: c7756e73b73f9e7c64a1391f13e65f4f9d227bf4 Change-Id: If55d14768727c7119d86da60413861674dd3538b --- M debian/osmo-trx-lms.install M debian/osmo-trx-uhd.install 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/debian/osmo-trx-lms.install b/debian/osmo-trx-lms.install index e8bb867..dd9d407 100644 --- a/debian/osmo-trx-lms.install +++ b/debian/osmo-trx-lms.install @@ -1,2 +1,2 @@ /usr/bin/osmo-trx-lms -/usr/share/doc/osmo-trx-lms/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-lms/examples +/usr/share/doc/osmo-trx/examples/osmo-trx-lms/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-lms/ diff --git a/debian/osmo-trx-uhd.install b/debian/osmo-trx-uhd.install index 2db0142..8944b13 100644 --- a/debian/osmo-trx-uhd.install +++ b/debian/osmo-trx-uhd.install @@ -1,4 +1,4 @@ /usr/bin/osmo-trx-uhd -/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-usrp_b200.cfg /usr/share/doc/osmo-trx-uhd/examples -/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx-uhd/examples -/usr/share/doc/osmo-trx-uhd/examples/osmo-trx-umtrx.cfg /usr/share/doc/osmo-trx-uhd/examples +/usr/share/doc/osmo-trx/examples/osmo-trx-uhd/osmo-trx-usrp_b200.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-uhd/ +/usr/share/doc/osmo-trx/examples/osmo-trx-uhd/osmo-trx-limesdr.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-uhd/ +/usr/share/doc/osmo-trx/examples/osmo-trx-uhd/osmo-trx-umtrx.cfg /usr/share/doc/osmo-trx/examples/osmo-trx-uhd/ -- To view, visit https://gerrit.osmocom.org/9734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If55d14768727c7119d86da60413861674dd3538b Gerrit-Change-Number: 9734 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:32:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:32:36 +0000 Subject: Change in osmo-trx[master]: debian: Enable build of osmo-trx-lms In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9735 ) Change subject: debian: Enable build of osmo-trx-lms ...................................................................... debian: Enable build of osmo-trx-lms Change-Id: I4711e97c844e582601a588fdc359fc020bcee001 --- M debian/rules 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/debian/rules b/debian/rules index c700bce..1c0cd00 100755 --- a/debian/rules +++ b/debian/rules @@ -9,7 +9,7 @@ dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info override_dh_auto_configure: - dh_auto_configure -- --with-usrp1 + dh_auto_configure -- --with-usrp1 --with-lms override_dh_strip: dh_strip --dbg-package=osmo-trx-dbg -- To view, visit https://gerrit.osmocom.org/9735 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4711e97c844e582601a588fdc359fc020bcee001 Gerrit-Change-Number: 9735 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:32:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:32:37 +0000 Subject: Change in osmo-trx[master]: debian: Explicitly enable osmo-trx-uhd build In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9736 ) Change subject: debian: Explicitly enable osmo-trx-uhd build ...................................................................... debian: Explicitly enable osmo-trx-uhd build osmotrxuhd is already being built since it's enabled by default, but let's make it more explicit that we are building it too. Change-Id: Ie9c224485cce047cd3ee4600ff7fbdb082355cdc --- M debian/rules 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/debian/rules b/debian/rules index 1c0cd00..8081162 100755 --- a/debian/rules +++ b/debian/rules @@ -9,7 +9,7 @@ dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info override_dh_auto_configure: - dh_auto_configure -- --with-usrp1 --with-lms + dh_auto_configure -- --with-uhd --with-usrp1 --with-lms override_dh_strip: dh_strip --dbg-package=osmo-trx-dbg -- To view, visit https://gerrit.osmocom.org/9736 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-trx Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie9c224485cce047cd3ee4600ff7fbdb082355cdc Gerrit-Change-Number: 9736 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:33:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:33:01 +0000 Subject: Change in osmo-ci[master]: obs-nightly: list limesuite before osmo-trx In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9732 ) Change subject: obs-nightly: list limesuite before osmo-trx ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0cdc85a2d0212432bf0c2586230660d363212dcc Gerrit-Change-Number: 9732 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 15:33:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:33:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:33:03 +0000 Subject: Change in osmo-ci[master]: obs-nightly: list limesuite before osmo-trx In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9732 ) Change subject: obs-nightly: list limesuite before osmo-trx ...................................................................... obs-nightly: list limesuite before osmo-trx Let's move limesuite first since it doesn't depend itself on any osmocom related package, and osmo-trx depends on it. Change-Id: I0cdc85a2d0212432bf0c2586230660d363212dcc --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Pau Espin Pedrol: Verified Harald Welte: Looks good to me, approved diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 2898d8b..1f38116 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -139,6 +139,7 @@ prepare + checkout_limesuite checkout libosmocore checkout libosmo-sccp checkout libosmo-abis @@ -162,8 +163,8 @@ checkout osmo-bsc checkout rtl-sdr checkout osmo-fl2k - checkout_limesuite + build limesuite no_commit --git-upstream-tree=v17.12.0 build libosmocore build libosmo-sccp build libosmo-abis @@ -189,7 +190,6 @@ build osmo-fl2k download_bumpversion - build limesuite no_commit --git-upstream-tree=v17.12.0 post } -- To view, visit https://gerrit.osmocom.org/9732 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0cdc85a2d0212432bf0c2586230660d363212dcc Gerrit-Change-Number: 9732 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:33:17 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:33:17 +0000 Subject: Change in osmo-ci[master]: obs-nightly: Upgrade to newer required limesuite In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9733 ) Change subject: obs-nightly: Upgrade to newer required limesuite ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If47a3767c7fefbb75923cbfc8eeb921e29393285 Gerrit-Change-Number: 9733 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 15:33:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:33:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 15:33:18 +0000 Subject: Change in osmo-ci[master]: obs-nightly: Upgrade to newer required limesuite In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9733 ) Change subject: obs-nightly: Upgrade to newer required limesuite ...................................................................... obs-nightly: Upgrade to newer required limesuite osmo-trx-lms requires limesuite newer than 17.02, as there were a lot of features and bug fixes which osmo-trx relies on. Furthermore, osmo-trx-lms cannot build with that version since it doesn't provide yet a pkgconfig file. We cannot use latest tagged release (18.06) since that version has some build related bugs which have been fixed later on (c1496679cadff2913cacdaa84afe93bbee76d8e4), hence why we are using latest available master instead. Change-Id: If47a3767c7fefbb75923cbfc8eeb921e29393285 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Pau Espin Pedrol: Verified Harald Welte: Looks good to me, approved diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 1f38116..3659d70 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -118,7 +118,7 @@ } checkout_limesuite() { - TAG="v17.12.0" + TAG="01e2d00c5005b85d1f94cca02881756a72e35e2a" cd "$REPO" git clone https://github.com/myriadrf/LimeSuite limesuite @@ -164,7 +164,7 @@ checkout rtl-sdr checkout osmo-fl2k - build limesuite no_commit --git-upstream-tree=v17.12.0 + build limesuite no_commit --git-upstream-tree=01e2d00c5005b85d1f94cca02881756a72e35e2a build libosmocore build libosmo-sccp build libosmo-abis -- To view, visit https://gerrit.osmocom.org/9733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If47a3767c7fefbb75923cbfc8eeb921e29393285 Gerrit-Change-Number: 9733 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:41:07 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:41:07 +0000 Subject: Change in osmo-bsc[master]: debian: Move meas related binaries into new package osmo-bsc-meas-utils In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/7483 ) Change subject: debian: Move meas related binaries into new package osmo-bsc-meas-utils ...................................................................... Patch Set 1: Code-Review+1 Tested in https://build.opensuse.org/package/live_build_log/home:pespin:branches:network:osmocom:nightly/osmo-bsc/Debian_9.0/i586 Works fine, can be merged. -- To view, visit https://gerrit.osmocom.org/7483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I35ba3c19fcdfb5663691a67c9876537765963c5d Gerrit-Change-Number: 7483 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 15:41:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:42:21 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 15:42:21 +0000 Subject: Change in osmo-msc[master]: VLR: reject overlong IMSIs in ID RESP messages Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9739 Change subject: VLR: reject overlong IMSIs in ID RESP messages ...................................................................... VLR: reject overlong IMSIs in ID RESP messages Overlong IMSIs in ID RESP messages were accepted and used in truncated form. Log an error when truncation occurs, and prevent truncated IMSIs from being installed for a subscriber via ID RESP messages. Other code paths leading to vlr_subscr_set_imsi() with truncated IMSIs will only a leave a trail of log entries for now, because vlr_subscr_set_imsi() is currently unable to return an error code. Change-Id: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Related: OS#2864 --- M src/libvlr/vlr.c 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/39/9739/1 diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 29098b1..cff2e12 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -396,7 +396,13 @@ { if (!vsub) return; - OSMO_STRLCPY_ARRAY(vsub->imsi, imsi); + + if (OSMO_STRLCPY_ARRAY(vsub->imsi, imsi) >= sizeof(vsub->imsi)) { + LOGP(DVLR, LOGL_NOTICE, "IMSI was truncated: full IMSI=%s, truncated IMSI=%s\n", + imsi, vsub->imsi); + /* XXX Set truncated IMSI anyway, we currently cannot return an error from here. */ + } + vsub->id = atoll(vsub->imsi); DEBUGP(DVLR, "set IMSI on subscriber; IMSI=%s id=%llu\n", vsub->imsi, vsub->id); @@ -1062,10 +1068,15 @@ /* update the vlr_subscr with the given identity */ switch (mi_type) { case GSM_MI_TYPE_IMSI: - if (vsub->imsi[0] + if (strlen(mi_string) >= sizeof(vsub->imsi)) { + LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP too long (>%zu bytes): %s\n", + sizeof(vsub->imsi) - 1, mi_string); + return -ENOSPC; /* ignore message; do not avance LU FSM */ + } else if (vsub->imsi[0] && !vlr_subscr_matches_imsi(vsub, mi_string)) { LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP differs:" " %s\n", mi_string); + /* XXX Should we return an error, e.g. -EINVAL ? */ } else vlr_subscr_set_imsi(vsub, mi_string); break; -- To view, visit https://gerrit.osmocom.org/9739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Gerrit-Change-Number: 9739 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:42:49 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:42:49 +0000 Subject: Change in osmo-pcu[master]: contrib: jenkins.sh: Use flag --enable-werror In-Reply-To: References: Message-ID: Pau Espin Pedrol has abandoned this change. ( https://gerrit.osmocom.org/7331 ) Change subject: contrib: jenkins.sh: Use flag --enable-werror ...................................................................... Abandoned Abandoning since another patch was merged enabling Werror for all osmo-pcu except lc15 flavour. -- To view, visit https://gerrit.osmocom.org/7331 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I7023f3637df12d2483b745db9881d37c5b0aa91d Gerrit-Change-Number: 7331 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:49:53 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Jun 2018 15:49:53 +0000 Subject: Change in osmo-msc[master]: VLR: reject overlong IMSIs in ID RESP messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9739 ) Change subject: VLR: reject overlong IMSIs in ID RESP messages ...................................................................... Patch Set 1: I'd prefer getting the return error code paths introduced in this commit instead of only half fixing the issue and adding more TODOs. Is there something I'm not aware of which prevents you from adding those? -- To view, visit https://gerrit.osmocom.org/9739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Gerrit-Change-Number: 9739 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 15:49:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:52:03 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 15:52:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: check for osmo-msc crash upon overlong IMSI Message-ID: Stefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/9740 Change subject: check for osmo-msc crash upon overlong IMSI ...................................................................... check for osmo-msc crash upon overlong IMSI Overlong IMSIs used to trigger an assertion failure in osmo-msc. This problem has been fixed but there was no test for it yet. A lazy way of testing for this problem is to send an overlong IMSI from an existing test which already verifies related behaviour and would fail if the MSC crashed: TC_lu_by_tmsi_noauth_unknown However, osmo-msc currently accepts overlong IMSIs and silently truncates them, so this change as-is currently breaks this test. But I would argue that osmo-msc's current behaviour is unreasonable anyway and have proposed a patch to change it: https://gerrit.osmocom.org/#/c/osmo-msc/+/9739/ With that patch applied to osmo-msc, this test keeps passing. Change-Id: I2c472bee76086f6c84ec684d2e58b3351ebc3147 Depends: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Related: OS#2864 Related: g#9739 --- M msc/MSC_Tests.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/9740/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index dc5303e..dc3ad1e 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -807,6 +807,8 @@ /* Test LU by TMSI with unknown TMSI, expect (and answer) ID REQ. */ private function f_tc_lu_tmsi_noauth_unknown(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + /* We piggyback a test for an MSC crash on overlong IMSI (OS#2864) onto this test. */ + var hexstring overlong_imsi := '012345789ABCDEF0123456789ABCDEF'H; f_init_handler(pars); var PDU_ML3_MS_NW l3_lu := f_build_lu_tmsi('01020304'O); /* FIXME: Random */ @@ -823,6 +825,7 @@ /* Wait for + respond to ID REQ (IMSI) */ BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req('001'B))); + BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(overlong_imsi))); /* test for OS#2864 */ BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi))); /* Expect MSC to do UpdateLocation to HLR; respond to it */ -- To view, visit https://gerrit.osmocom.org/9740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2c472bee76086f6c84ec684d2e58b3351ebc3147 Gerrit-Change-Number: 9740 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 15:53:32 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 15:53:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: default to number of CPUs for parallel make jobs In-Reply-To: References: Message-ID: Stefan Sperling has submitted this change and it was merged. ( https://gerrit.osmocom.org/9731 ) Change subject: default to number of CPUs for parallel make jobs ...................................................................... default to number of CPUs for parallel make jobs The previous default behaviour was to always run 'make -j8', which can cause C++ build failures on machines which are low on memory. "Low" being a relative measure; I've seen failures with 4GB of RAM. Rather than assuming a beefy 8-core box, try to detect the number of available CPU cores with nproc(1) from GNU coreutils and set the number of parallel make jobs to the number of CPU cores. If this command is not available, default to a safe choice: -j1 Note that installing ccache will speed up repeated builds a lot more than -jX ever will, so falling back to -j1 isn't very bad. Change-Id: I61c3ea1b3cb5b64eecb08ad6c390594f70cdf785 --- M Makefile 1 file changed, 5 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/Makefile b/Makefile index fcd6601..a12a504 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,10 @@ SUBDIRS=bsc bsc-nat bts ggsn_tests hlr lapdm mgw msc pcu selftest sgsn sip sysinfo -PARALLEL_MAKE ?= -j8 +NPROC=$(shell nproc 2>/dev/null) +ifeq ($(NPROC),) +NPROC=1 +endif +PARALLEL_MAKE ?= -j$(NPROC) # This master makefile allows you to do things like # make clean (remove all generated binary, c++ and symlinks) -- To view, visit https://gerrit.osmocom.org/9731 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I61c3ea1b3cb5b64eecb08ad6c390594f70cdf785 Gerrit-Change-Number: 9731 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 16:18:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 16:18:19 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 6: (6 comments) https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/handover_fsm.h File include/osmocom/bsc/handover_fsm.h: https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/handover_fsm.h at 42 PS6, Line 42: inter-MO FSM what's inter-MO ? two mobile originated (outbound) hand-overs? https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/lchan_fsm.h File include/osmocom/bsc/lchan_fsm.h: https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/lchan_fsm.h at 53 PS6, Line 53: /* FIXME: not yet implemented: Chan Mode Modify */ does this mean that channel mode modify still bypasses the FSM or that this functionality is missing/broken? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/abis_rsl.c at 885 PS6, Line 885: if (!lchan->conn) { when do we expect this? Is it a normal event? should we log it? The "cause" variable is initialized once to the static value of "0" above and hence could be removed. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/assignment_fsm.c at 44 PS6, Line 44: #define GET_CONN() \ I'm sorry, but I don't like the idea of hiding a variable declaration in a macro. I don't think we have any precedent for that. I think This could well become: struct gsm_subscriber_connection *conn = ass_fi_get_conn(fi); at the caller site, with the ass_fi_get_conn() then doing the dereference and ASSERTs and returning the pointer. The ass_fi_geet_conn() name is just an example, not set in stone. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/assignment_fsm.c at 48 PS6, Line 48: struct state_timeout assignment_fsm_timeouts[32] = { is either of tose possible here: const? static? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/assignment_fsm.c at 294 PS6, Line 294: static bool g_initialized = false; : if (!g_initialized) { : OSMO_ASSERT(osmo_fsm_register(&assignment_fsm) == 0); : g_initialized = true; : } I'm much more in favor of an explicit registration somewhere. But not critical. -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 25 Jun 2018 16:18:19 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 16:54:35 2018 From: gerrit-no-reply at lists.osmocom.org (Stefan Sperling) Date: Mon, 25 Jun 2018 16:54:35 +0000 Subject: Change in osmo-msc[master]: VLR: reject overlong IMSIs in ID RESP messages In-Reply-To: References: Message-ID: Stefan Sperling has posted comments on this change. ( https://gerrit.osmocom.org/9739 ) Change subject: VLR: reject overlong IMSIs in ID RESP messages ...................................................................... Patch Set 1: > I'd prefer getting the return error code paths introduced in this > commit instead of only half fixing the issue and adding more TODOs. > > Is there something I'm not aware of which prevents you from adding > those? It is just a question of how much to chew off in one bite. Probably the biggest item to figure out is how the LU FSM should handle this error condition. -- To view, visit https://gerrit.osmocom.org/9739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Gerrit-Change-Number: 9739 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 16:54:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Jun 25 18:04:02 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 25 Jun 2018 18:04:02 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_maste?= =?UTF-8?Q?r-openbsc_=C2=BB_--disable-iu,--enab?= =?UTF-8?Q?le-mgcp-transcoding,--enable-smpp,osmocom-master-debian9_#2164?= Message-ID: <429330078.322.1529949842022.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 99.31 KB...] + git clean -dxf + [ -d ] + [ -d layer1-headers ] + git checkout -f origin/master Note: checking out 'origin/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 7839556... osmux: change log lvl of batch full to debug + git rev-parse HEAD 7839556ca950f02e2dda48f8e10dd68e90266926 + cd libosmo-netif + mkdir -p /build/deps/install/stow + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' configure.ac:20: installing './compile' configure.ac:22: installing './config.guess' configure.ac:22: installing './config.sub' configure.ac:8: installing './install-sh' configure.ac:8: installing './missing' examples/Makefile.am: installing './depcomp' + ./configure --prefix=/build/deps/install/stow/libosmo-netif checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for ANSI C header files... (cached) yes checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking if gcc supports -fvisibility=hidden... yes checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOABIS... yes checking for library containing sctp_send... -lsctp checking dahdi/user.h usability... no checking dahdi/user.h presence... no checking for dahdi/user.h... no configure: WARNING: DAHDI input driver will not be built checking pcap.h usability... yes checking pcap.h presence... yes checking for pcap.h... yes checking for doxygen... /usr/bin/doxygen checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-netif.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/netif/Makefile config.status: creating include/osmocom/netif/channel/Makefile config.status: creating src/Makefile config.status: creating src/channel/Makefile config.status: creating src/channel/abis/Makefile config.status: creating examples/Makefile config.status: creating examples/channel/Makefile config.status: creating tests/Makefile config.status: creating Doxyfile config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 0.2.0.4-7839 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmo-netif' Making install in include make[2]: Entering directory '/build/deps/libosmo-netif/include' Making install in osmocom make[3]: Entering directory '/build/deps/libosmo-netif/include/osmocom' Making install in netif make[4]: Entering directory '/build/deps/libosmo-netif/include/osmocom/netif' Making install in channel make[5]: Entering directory '/build/deps/libosmo-netif/include/osmocom/netif/channel' make[6]: Entering directory '/build/deps/libosmo-netif/include/osmocom/netif/channel' make[6]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-netif/include/osmocom/netif/channel' /usr/bin/install -c -m 644 abis_ipa_server.h abis_ipa_client.h '/build/deps/install/stow/libosmo-netif/include/osmocom/netif/channel' make[6]: Leaving directory '/build/deps/libosmo-netif/include/osmocom/netif/channel' make[5]: Leaving directory '/build/deps/libosmo-netif/include/osmocom/netif/channel' make[5]: Entering directory '/build/deps/libosmo-netif/include/osmocom/netif' make[6]: Entering directory '/build/deps/libosmo-netif/include/osmocom/netif' make[6]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-netif/include/osmocom/netif' /usr/bin/install -c -m 644 amr.h channel.h datagram.h jibuf.h osmux.h ipa.h ipa_unit.h rs232.h rtp.h stream.h '/build/deps/install/stow/libosmo-netif/include/osmocom/netif' make[6]: Leaving directory '/build/deps/libosmo-netif/include/osmocom/netif' make[5]: Leaving directory '/build/deps/libosmo-netif/include/osmocom/netif' make[4]: Leaving directory '/build/deps/libosmo-netif/include/osmocom/netif' make[4]: Entering directory '/build/deps/libosmo-netif/include/osmocom' make[5]: Entering directory '/build/deps/libosmo-netif/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/libosmo-netif/include/osmocom' make[4]: Leaving directory '/build/deps/libosmo-netif/include/osmocom' make[3]: Leaving directory '/build/deps/libosmo-netif/include/osmocom' make[3]: Entering directory '/build/deps/libosmo-netif/include' make[4]: Entering directory '/build/deps/libosmo-netif/include' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/libosmo-netif/include' make[3]: Leaving directory '/build/deps/libosmo-netif/include' make[2]: Leaving directory '/build/deps/libosmo-netif/include' Making install in src make[2]: Entering directory '/build/deps/libosmo-netif/src' Making install in channel make[3]: Entering directory '/build/deps/libosmo-netif/src/channel' Making install in abis make[4]: Entering directory '/build/deps/libosmo-netif/src/channel/abis' CC ipa_stream_client.lo CC ipa_stream_server.lo CCLD libosmonetif-abis.la make[5]: Entering directory '/build/deps/libosmo-netif/src/channel/abis' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/libosmo-netif/src/channel/abis' make[4]: Leaving directory '/build/deps/libosmo-netif/src/channel/abis' make[4]: Entering directory '/build/deps/libosmo-netif/src/channel' make[5]: Entering directory '/build/deps/libosmo-netif/src/channel' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/libosmo-netif/src/channel' make[4]: Leaving directory '/build/deps/libosmo-netif/src/channel' make[3]: Leaving directory '/build/deps/libosmo-netif/src/channel' make[3]: Entering directory '/build/deps/libosmo-netif/src' CC amr.lo CC channel.lo CC datagram.lo CC ipa.lo CC ipa_unit.lo CC jibuf.lo CC osmux.lo CC rs232.lo /bin/bash: line 2: 14912 Illegal instruction (core dumped) /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I.. -Wall -fPIC -Wall -I/build/deps/install/stow/libosmocore/include/ -I/build/deps/install/stow/libosmo-abis/include/ -g -O2 -Wall -MT channel.lo -MD -MP -MF $depbase.Tpo -c -o channel.lo channel.c Makefile:499: recipe for target 'channel.lo' failed make[3]: *** [channel.lo] Error 132 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/libosmo-netif/src' make[2]: *** [install-recursive] Error 1 Makefile:519: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/libosmo-netif/src' Makefile:483: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmo-netif' make[1]: *** [install-recursive] Error 1 Makefile:782: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:11:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:11:49 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 6: (26 comments) https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/bsc_vty.c at a1240 PS6, Line 1240: was it moved to libosmgsm? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/bsc_vty.c at 1727 PS6, Line 1727: DEFUN(handover_ext_cgi, we should probably have a FIXME here https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c at 1536 PS6, Line 1536: static enum gsm0808_permitted_speech audio_support_to_gsm88(const struct gsm_audio_support *audio) static helper functions here and below also don't seem gsm_data.[ch] related and should be moved wherever their sole caller is moved. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c at 1653 PS6, Line 1653: int bsc_match_codec_pref(enum gsm48_chan_mode *chan_mode, this is also probably not really right here in gsm_data.c. IT doesn't work with lchan/ts/trx/bts type structures but purely on other data. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c at 1708 PS6, Line 1708: bool sockaddr_to_str_and_uint(char *rtp_addr, size_t rtp_addr_len, uint16_t *rtp_port, this is not something we'd traditionally have in gsm_data.c - also it seems like it's a rather generic function. candidate for libosmocore? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c at 1715 PS6, Line 1715: osmo_ntohs we normally only use osmo_ntohs() in situations where it's not IP/socket related and hence htons() may not be available. If you're working on a port, ntohs/htons/etc. are available. But anyway, we can probably ignore it. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_decision.c File src/osmo-bsc/handover_decision.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_decision.c at 203 PS6, Line 203: { style-wise, I would generally prefer the variable declaration at the top of the function, rather than those separate blocks. This applies to all of the code. I don't think we've been doing this in osmocom so far (I don't recall it?). Why now? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_decision_2.c File src/osmo-bsc/handover_decision_2.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_decision_2.c at 722 PS6, Line 722: { why that separate block? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_fsm.c File src/osmo-bsc/handover_fsm.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_fsm.c at 141 PS6, Line 141: #define GET_CONN() \ see previous comment about hiding variable declarations in macros https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_fsm.c at 249 PS6, Line 249: static bool g_initialized = false; see previous comment about avoiding this automatic registration https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_fsm.c at 644 PS6, Line 644: return result_counter_INTER_BSC_HO_MT(result); two return statements in one case? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_logic.c File src/osmo-bsc/handover_logic.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_logic.c at 99 PS6, Line 99: int handover_count(struct gsm_bts *bts, int ho_scopes) might make sense to prefix symbol name with bts_ ? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/lchan_fsm.c File src/osmo-bsc/lchan_fsm.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/lchan_fsm.c at 41 PS6, Line 41: #define GET_LCHAN() \ see previous comment about hiding variable declaration in macros https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/lchan_fsm.c at 326 PS6, Line 326: static bool g_initialized = false; see previous comment about automatic vs. explicit registration https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/lchan_select.c File src/osmo-bsc/lchan_select.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/lchan_select.c at 1 PS6, Line 1: /* Select a suitable lchan from a given cell. I guess this is code we traditionally would have had in chan_alloc.c? Any particular rationale to have a new file and not use chan_alloc.c? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/mgw_endpoint_fsm.c File src/osmo-bsc/mgw_endpoint_fsm.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/mgw_endpoint_fsm.c at 188 PS6, Line 188: if (!g_initialized) { see previous code about automatic vs. explicit registration https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/mgw_endpoint_fsm.c at 196 PS6, Line 196: #define GET_MGWEP() \ see previous comment about hiding vatiable declarations in macros https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/mgw_endpoint_fsm.c at 372 PS6, Line 372: struct state_timeout mgwep_fsm_timeouts[32] = { do we need those non-static? can they be const? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/mgw_endpoint_fsm.c at 682 PS6, Line 682: int mgwep_fsm_timer_cb(struct osmo_fsm_inst *fi) do we need to export this symbol? is it used by anyting but the timer_cb below? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_api.c File src/osmo-bsc/osmo_bsc_api.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_api.c at 189 PS6, Line 189: no-one is using this this is odd? any service we don't know / support should be rejected. how does the code do this? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_bssap.c at 757 PS6, Line 757: LOGP(DMSC, LOGL_ERROR, "Received Handover Command, but no handover was requested"); might make sense to log "conn" context here? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_bssap.c at 767 PS6, Line 767: LOGP(DMSC, LOGL_ERROR, "Mandatory IE not present: Layer 3 Information\n"); might make sense to log "conn" context here? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_bssap.c at 772 PS6, Line 772: { see previous comment about those extra blocks rather than declaring the variable at the top of the function. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/timeslot_fsm.c File src/osmo-bsc/timeslot_fsm.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/timeslot_fsm.c at 40 PS6, Line 40: #define GET_TS(fi, TS) \ see previous comments about hiding variable declarations in macros https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/timeslot_fsm.c at 44 PS6, Line 44: #define GET_BTS_TS(fi, BTS, TS) \ see previous comments about hiding variable declarations in macros https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/timeslot_fsm.c at 57 PS6, Line 57: if (!g_initialized) { see previous comments about explicit registration -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 25 Jun 2018 19:11:49 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:15:25 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:15:25 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 6: In the jenkins-sscplite.sh execution I get the following unexpected test results: pass->FAIL BSC_Tests.TC_assignment_fr_a5_0 pass->FAIL BSC_Tests.TC_assignment_fr_a5_1 pass->FAIL BSC_Tests.TC_assignment_fr_a5_3 pass->FAIL BSC_Tests.TC_assignment_fr_a5_4 pass->FAIL BSC_Tests.TC_assignment_codec_fr pass->FAIL BSC_Tests.TC_assignment_codec_hr pass->FAIL BSC_Tests.TC_assignment_codec_efr pass->FAIL BSC_Tests.TC_assignment_codec_amr_f pass->FAIL BSC_Tests.TC_assignment_codec_amr_h pass->FAIL BSC_Tests.TC_ho_int So it seems most unexpected test failures are happening both in AoIP and in SCCPlite -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 25 Jun 2018 19:15:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:21:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:21:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: check for osmo-msc crash upon overlong IMSI In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9740 ) Change subject: check for osmo-msc crash upon overlong IMSI ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2c472bee76086f6c84ec684d2e58b3351ebc3147 Gerrit-Change-Number: 9740 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 19:21:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:21:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:21:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: check for osmo-msc crash upon overlong IMSI In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9740 ) Change subject: check for osmo-msc crash upon overlong IMSI ...................................................................... check for osmo-msc crash upon overlong IMSI Overlong IMSIs used to trigger an assertion failure in osmo-msc. This problem has been fixed but there was no test for it yet. A lazy way of testing for this problem is to send an overlong IMSI from an existing test which already verifies related behaviour and would fail if the MSC crashed: TC_lu_by_tmsi_noauth_unknown However, osmo-msc currently accepts overlong IMSIs and silently truncates them, so this change as-is currently breaks this test. But I would argue that osmo-msc's current behaviour is unreasonable anyway and have proposed a patch to change it: https://gerrit.osmocom.org/#/c/osmo-msc/+/9739/ With that patch applied to osmo-msc, this test keeps passing. Change-Id: I2c472bee76086f6c84ec684d2e58b3351ebc3147 Depends: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Related: OS#2864 Related: g#9739 --- M msc/MSC_Tests.ttcn 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index dc5303e..dc3ad1e 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -807,6 +807,8 @@ /* Test LU by TMSI with unknown TMSI, expect (and answer) ID REQ. */ private function f_tc_lu_tmsi_noauth_unknown(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { + /* We piggyback a test for an MSC crash on overlong IMSI (OS#2864) onto this test. */ + var hexstring overlong_imsi := '012345789ABCDEF0123456789ABCDEF'H; f_init_handler(pars); var PDU_ML3_MS_NW l3_lu := f_build_lu_tmsi('01020304'O); /* FIXME: Random */ @@ -823,6 +825,7 @@ /* Wait for + respond to ID REQ (IMSI) */ BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_MM_ID_Req('001'B))); + BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(overlong_imsi))); /* test for OS#2864 */ BSSAP.send(ts_PDU_DTAP_MO(ts_ML3_MO_MM_ID_Rsp_IMSI(g_pars.imsi))); /* Expect MSC to do UpdateLocation to HLR; respond to it */ -- To view, visit https://gerrit.osmocom.org/9740 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2c472bee76086f6c84ec684d2e58b3351ebc3147 Gerrit-Change-Number: 9740 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:21:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:21:53 +0000 Subject: Change in osmo-msc[master]: VLR: reject overlong IMSIs in ID RESP messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9739 ) Change subject: VLR: reject overlong IMSIs in ID RESP messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Gerrit-Change-Number: 9739 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 19:21:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:21:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:21:57 +0000 Subject: Change in osmo-msc[master]: VLR: reject overlong IMSIs in ID RESP messages In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9739 ) Change subject: VLR: reject overlong IMSIs in ID RESP messages ...................................................................... VLR: reject overlong IMSIs in ID RESP messages Overlong IMSIs in ID RESP messages were accepted and used in truncated form. Log an error when truncation occurs, and prevent truncated IMSIs from being installed for a subscriber via ID RESP messages. Other code paths leading to vlr_subscr_set_imsi() with truncated IMSIs will only a leave a trail of log entries for now, because vlr_subscr_set_imsi() is currently unable to return an error code. Change-Id: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Related: OS#2864 --- M src/libvlr/vlr.c 1 file changed, 13 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 29098b1..cff2e12 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -396,7 +396,13 @@ { if (!vsub) return; - OSMO_STRLCPY_ARRAY(vsub->imsi, imsi); + + if (OSMO_STRLCPY_ARRAY(vsub->imsi, imsi) >= sizeof(vsub->imsi)) { + LOGP(DVLR, LOGL_NOTICE, "IMSI was truncated: full IMSI=%s, truncated IMSI=%s\n", + imsi, vsub->imsi); + /* XXX Set truncated IMSI anyway, we currently cannot return an error from here. */ + } + vsub->id = atoll(vsub->imsi); DEBUGP(DVLR, "set IMSI on subscriber; IMSI=%s id=%llu\n", vsub->imsi, vsub->id); @@ -1062,10 +1068,15 @@ /* update the vlr_subscr with the given identity */ switch (mi_type) { case GSM_MI_TYPE_IMSI: - if (vsub->imsi[0] + if (strlen(mi_string) >= sizeof(vsub->imsi)) { + LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP too long (>%zu bytes): %s\n", + sizeof(vsub->imsi) - 1, mi_string); + return -ENOSPC; /* ignore message; do not avance LU FSM */ + } else if (vsub->imsi[0] && !vlr_subscr_matches_imsi(vsub, mi_string)) { LOGVSUBP(LOGL_ERROR, vsub, "IMSI in ID RESP differs:" " %s\n", mi_string); + /* XXX Should we return an error, e.g. -EINVAL ? */ } else vlr_subscr_set_imsi(vsub, mi_string); break; -- To view, visit https://gerrit.osmocom.org/9739 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I785c994f41a646d8d83d3d82f5a9ae6b572eb641 Gerrit-Change-Number: 9739 Gerrit-PatchSet: 2 Gerrit-Owner: Stefan Sperling Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Stefan Sperling Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:22:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:22:15 +0000 Subject: Change in osmo-bsc[master]: debian: Move meas related binaries into new package osmo-bsc-meas-utils In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/7483 ) Change subject: debian: Move meas related binaries into new package osmo-bsc-meas-utils ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/7483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I35ba3c19fcdfb5663691a67c9876537765963c5d Gerrit-Change-Number: 7483 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Jun 2018 19:22:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:22:16 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:22:16 +0000 Subject: Change in osmo-bsc[master]: debian: Move meas related binaries into new package osmo-bsc-meas-utils In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/7483 ) Change subject: debian: Move meas related binaries into new package osmo-bsc-meas-utils ...................................................................... debian: Move meas related binaries into new package osmo-bsc-meas-utils Only meas_json is added so far, since the other related ones are conditionally built. Change-Id: I35ba3c19fcdfb5663691a67c9876537765963c5d --- M debian/control A debian/osmo-bsc-meas-utils.install 2 files changed, 7 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/debian/control b/debian/control index 03e5a14..0190aba 100644 --- a/debian/control +++ b/debian/control @@ -57,3 +57,9 @@ There is a tool in this package for configuring the Siemens BS-11 BTS. Additionally, it contains one tool for making use of an ISDN-card and the public telephone network as frequency standard for the E1 line. + +Package: osmo-bsc-meas-utils +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends} +Description: Command line utilities to manage measurement reports. diff --git a/debian/osmo-bsc-meas-utils.install b/debian/osmo-bsc-meas-utils.install new file mode 100644 index 0000000..d8fb318 --- /dev/null +++ b/debian/osmo-bsc-meas-utils.install @@ -0,0 +1 @@ +usr/bin/meas_json -- To view, visit https://gerrit.osmocom.org/7483 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I35ba3c19fcdfb5663691a67c9876537765963c5d Gerrit-Change-Number: 7483 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:54:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:54:24 +0000 Subject: Change in osmo-bsc[master]: gscon: pick suitable payload type / encoding name for MGCP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9738 ) Change subject: gscon: pick suitable payload type / encoding name for MGCP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibddc3492572b39f166e3a1b8b8120813ce2dadc2 Gerrit-Change-Number: 9738 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 19:54:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:54:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:54:28 +0000 Subject: Change in osmo-bsc[master]: gscon: pick suitable payload type / encoding name for MGCP In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9738 ) Change subject: gscon: pick suitable payload type / encoding name for MGCP ...................................................................... gscon: pick suitable payload type / encoding name for MGCP The GSCON FSM does not care about the codec information when performing interactions with the MGW. Before upgrading the client the codec information was hardcoded to AMR inside the client. Now the client offers APIs to set the codec information. Since this feature is new, osmo-bsc does not set any codec information yet, which causes many of the TTCN3 tests to fail. So lets add some logic to pick suitable codec info. - Hardcode ptime to 20 (is the same for all possible codecs) - Select a codec according to the flags in userplane Change-Id: Ibddc3492572b39f166e3a1b8b8120813ce2dadc2 Related: OS#2728 --- M src/osmo-bsc/bsc_subscr_conn_fsm.c 1 file changed, 34 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 4f09ae6..0f3d9d2 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -120,6 +120,32 @@ {0, NULL} }; +/* Depending on the channel mode and rate, set the codec type that is signalled + * towards the MGW. */ +static void mgcp_pick_codec(struct gsm_subscriber_connection *conn, + struct mgcp_conn_peer *conn_peer) +{ + switch (conn->user_plane.chan_mode) { + case GSM48_CMODE_SPEECH_V1: + if (conn->user_plane.full_rate) + conn_peer->codecs[0] = CODEC_GSM_8000_1; + else + conn_peer->codecs[0] = CODEC_GSMHR_8000_1; + conn_peer->codecs_len = 1; + break; + case GSM48_CMODE_SPEECH_EFR: + conn_peer->codecs[0] = CODEC_GSMEFR_8000_1; + conn_peer->codecs_len = 1; + break; + case GSM48_CMODE_SPEECH_AMR: + conn_peer->codecs[0] = CODEC_AMR_8000_1; + conn_peer->codecs_len = 1; + break; + default: + conn_peer->codecs_len = 0; + } +} + /* Send data SCCP message through SCCP connection. All sigtran messages * that are send from this FSM must use this function. Never use * osmo_bsc_sigtran_send() directly since this would defeat the checks @@ -414,7 +440,9 @@ /* A voice channel is requested, so we run down the * mgcp-ass-mgcp state-chain (see FIXME above) */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); conn_peer.call_id = conn->sccp.conn_id; + conn_peer.ptime = 20; osmo_strlcpy(conn_peer.endpoint, get_mgw_ep_name(conn), sizeof(conn_peer.endpoint)); /* (Pre)Change state and create the connection */ @@ -572,9 +600,11 @@ /* Prepare parameters with the information we got during the assignment */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; + conn_peer.ptime = 20; /* (Pre)Change state and modify the connection */ osmo_fsm_inst_state_chg(fi, ST_WAIT_MDCX_BTS, MGCP_MGW_TIMEOUT, MGCP_MGW_TIMEOUT_TIMER_NR); @@ -637,10 +667,12 @@ /* Prepare parameters with the connection information we got * with the assignment command */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); conn_peer.call_id = conn->sccp.conn_id; sin = (struct sockaddr_in *)&conn->user_plane.aoip_rtp_addr_remote; conn_peer.port = osmo_ntohs(sin->sin_port); osmo_strlcpy(conn_peer.addr, inet_ntoa(sin->sin_addr), sizeof(conn_peer.addr)); + conn_peer.ptime = 20; /* Make sure we use the same endpoint where we created the * BTS connection. */ @@ -760,9 +792,11 @@ /* Prepare parameters with the information we got during the * handover procedure (via IPACC) */ memset(&conn_peer, 0, sizeof(conn_peer)); + mgcp_pick_codec(conn, &conn_peer); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; + conn_peer.ptime = 20; /* (Pre)Change state and modify the connection */ osmo_fsm_inst_state_chg(fi, ST_WAIT_MDCX_BTS_HO, MGCP_MGW_TIMEOUT, MGCP_MGW_HO_TIMEOUT_TIMER_NR); -- To view, visit https://gerrit.osmocom.org/9738 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibddc3492572b39f166e3a1b8b8120813ce2dadc2 Gerrit-Change-Number: 9738 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:55:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:55:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: use correct payload types and encoding names on MGCP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9737 ) Change subject: BSC_Tests: use correct payload types and encoding names on MGCP ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2735267091059e2f2169da80bdcd30abc2b1554b Gerrit-Change-Number: 9737 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Mon, 25 Jun 2018 19:55:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 19:55:09 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 25 Jun 2018 19:55:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: use correct payload types and encoding names on MGCP In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9737 ) Change subject: BSC_Tests: use correct payload types and encoding names on MGCP ...................................................................... BSC_Tests: use correct payload types and encoding names on MGCP The test currently use a hardcoded payload type and encoding name. This does mean in practice that even when an assignment with EFR is happeining. The MGCP responses to the BSC tell that the codec is AMR. This is not correct. The testcases should always pick a suitable payload type / encoding name in the MGCP response - Add constants for IANA/3GPP assigned payload types - Add function to lookup the right encoding name for a payload type - Initalize the encoding name and payload type in g_media according to the BSSAP PDU. Change-Id: I2735267091059e2f2169da80bdcd30abc2b1554b Realted: OS#2728 --- M bsc/MSC_ConnectionHandler.ttcn M library/MGCP_Emulation.ttcn M library/MGCP_Types.ttcn 3 files changed, 67 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn index 2042979..0f123b6 100644 --- a/bsc/MSC_ConnectionHandler.ttcn +++ b/bsc/MSC_ConnectionHandler.ttcn @@ -32,6 +32,24 @@ * Media related handling ***********************************************************************/ +/* Get the matching payload type for a specified BSSAP codec type + * (see also: BSSAP_Types.ttcn */ +private function f_get_mgcp_pt(BSSMAP_FIELD_CodecType codecType) return SDP_FIELD_PayloadType { + if (codecType == GSM_FR) { + return PT_GSM; + } else if (codecType == GSM_HR) { + return PT_GSMHR; + } else if (codecType == GSM_EFR) { + return PT_GSMEFR; + } else if (codecType == FR_AMR or codecType == HR_AMR) { + return PT_AMR; + } else if (codecType == FR_AMR_WB or codecType == OHR_AMR or codecType == OFR_AMR_WB or codecType == OHR_AMR_WB) { + return PT_AMRWB; + } + + return PT_PCMU; +} + /* Tuple containing host/ip and port */ type record HostPort { HostName host, @@ -66,7 +84,7 @@ BtsMediaState bts1 /* only during hand-over */ }; -function f_MediaState_init(inout MediaState g_media, integer nr, HostName bts, HostName mgw) { +function f_MediaState_init(inout MediaState g_media, integer nr, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) { /* BTS Side */ g_media.bts := { ipa_crcx_seen := false, @@ -93,10 +111,10 @@ g_media.mgcp_ep := "rtpbridge/" & int2str(nr) & "@mgw"; for (var integer i:= 0; i < sizeof(g_media.mgcp_conn); i := i+1) { - g_media.mgcp_conn[i].mime_type := "AMR"; + g_media.mgcp_conn[i].mime_type := f_encoding_name_from_pt(f_get_mgcp_pt(codecType)); g_media.mgcp_conn[i].sample_rate := 8000; g_media.mgcp_conn[i].ptime := 20; - g_media.mgcp_conn[i].rtp_pt := 98; + g_media.mgcp_conn[i].rtp_pt := enum2int(f_get_mgcp_pt(codecType)); g_media.mgcp_conn[i].crcx_seen := false; g_media.mgcp_conn[i].conn_id := f_mgcp_alloc_conn_id(); } @@ -301,8 +319,8 @@ } /* initialize all parameters */ -function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw) runs on MSC_ConnHdlr { - f_MediaState_init(g_media, i, bts, mgw); +function f_MscConnHdlr_init(integer i, HostName bts, HostName mgw, BSSMAP_FIELD_CodecType codecType) runs on MSC_ConnHdlr { + f_MediaState_init(g_media, i, bts, mgw, codecType); if (not g_vty_initialized) { map(self:BSCVTY, system:BSCVTY); f_vty_set_prompts(BSCVTY); @@ -754,7 +772,18 @@ /* establish a channel fully, expecting an assignment matching 'exp' */ function f_establish_fully(template (omit) PDU_BSSAP ass_tpl, template PDU_BSSAP exp_ass_cpl) runs on MSC_ConnHdlr { - f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3"); + + var BSSMAP_FIELD_CodecType codecType; + + if (isvalue(ass_tpl.pdu.bssmap.assignmentRequest.codecList)) { + codecType := valueof(ass_tpl.pdu.bssmap.assignmentRequest.codecList.codecElements[0].codecType); + } else { + /* Make sure a meaningful default is assigned in case the + * codecList is not populated */ + codecType := FR_AMR; + } + + f_MscConnHdlr_init(g_pars.media_nr, "127.0.0.2", "127.0.0.3", codecType); /* patch in the LCLS related items, as needed */ f_ass_patch_lcls(ass_tpl, exp_ass_cpl); diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn index b02dc06..0863511 100644 --- a/library/MGCP_Emulation.ttcn +++ b/library/MGCP_Emulation.ttcn @@ -441,5 +441,26 @@ return omit; } +/* Determine encoding name for a specified payload type number */ +function f_encoding_name_from_pt(SDP_FIELD_PayloadType pt) return charstring { + if (pt == PT_PCMU) { + return "PCMU"; + } else if (pt == PT_GSM) { + return "GSM"; + } else if (pt == PT_PCMA) { + return "PCMA"; + } else if (pt == PT_GSMEFR) { + return "GSM-EFR"; + } else if (pt == PT_GSMHR) { + return "GSM-HR-08"; + } else if (pt == PT_AMR) { + return "AMR"; + } else if (pt == PT_AMRWB) { + return "AMR-WB"; + } + + setverdict(fail); + return ""; +} } diff --git a/library/MGCP_Types.ttcn b/library/MGCP_Types.ttcn index 9d1a4e1..6bb266e 100644 --- a/library/MGCP_Types.ttcn +++ b/library/MGCP_Types.ttcn @@ -121,5 +121,16 @@ external function dec_MgcpMessage(in charstring id) return MgcpMessage with { extension "prototype(convert) decode(TEXT)" }; + /* IANA / 3gpp assigned payload type numbers */ + type enumerated SDP_FIELD_PayloadType { + PT_PCMU(0), + PT_GSM(3), + PT_PCMA(8), + PT_G729(18), + PT_GSMEFR(110), + PT_GSMHR(111), + PT_AMR(112), + PT_AMRWB(113) + } } with { encode "TEXT" } -- To view, visit https://gerrit.osmocom.org/9737 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2735267091059e2f2169da80bdcd30abc2b1554b Gerrit-Change-Number: 9737 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 20:26:17 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Jun 2018 20:26:17 +0000 Subject: Change in osmocom-bb[master]: lua: Add API to enable passing credentials In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/9662 ) Change subject: lua: Add API to enable passing credentials ...................................................................... lua: Add API to enable passing credentials This can be useful to have bidirectional communication between the mobile lua script an external control script. Change-Id: Ib4a5eef611f524f5d21cb6a7f4eace22b8ba60d0 --- M src/host/layer23/src/mobile/script_lua.c 1 file changed, 22 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve diff --git a/src/host/layer23/src/mobile/script_lua.c b/src/host/layer23/src/mobile/script_lua.c index 8d3064d..4cfe55a 100644 --- a/src/host/layer23/src/mobile/script_lua.c +++ b/src/host/layer23/src/mobile/script_lua.c @@ -1,4 +1,4 @@ -/* (C) 2017 by Holger Hans Peter Freyther +/* (C) 2017-2018 by Holger Hans Peter Freyther * * All Rights Reserved * @@ -30,6 +30,9 @@ #include +#include +#include + struct timer_userdata { int cb_ref; }; @@ -410,6 +413,23 @@ return 1; } +/* Expect a fd on the stack and enable SO_PASSCRED */ +static int lua_unix_passcred(lua_State *L) +{ + int one = 1; + int fd, rc; + + luaL_argcheck(L, lua_isnumber(L, -1), 1, "needs to be a filedescriptor"); + fd = (int) lua_tonumber(L, -1); + + rc = setsockopt(fd, SOL_SOCKET, SO_PASSCRED, &one, sizeof(one)); + if (rc != 0) + LOGP(DLUA, LOGL_ERROR, "Failed to set SO_PASSCRED: %s\n", + strerror(errno)); + lua_pushinteger(L, rc); + return 1; +} + static const struct luaL_Reg ms_funcs[] = { { "imsi", lua_ms_imsi }, { "imei", lua_ms_imei }, @@ -426,6 +446,7 @@ static const struct luaL_Reg osmo_funcs[] = { { "timeout", lua_osmo_timeout }, + { "unix_passcred", lua_unix_passcred }, { "ms", lua_osmo_ms }, { NULL, NULL }, }; -- To view, visit https://gerrit.osmocom.org/9662 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib4a5eef611f524f5d21cb6a7f4eace22b8ba60d0 Gerrit-Change-Number: 9662 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 20:27:41 2018 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Jun 2018 20:27:41 +0000 Subject: Change in osmo-gsm-tester[master]: ms: Use the new API to pass credentials to the event server In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/9663 ) Change subject: ms: Use the new API to pass credentials to the event server ...................................................................... ms: Use the new API to pass credentials to the event server We are using the "autobind" feature of Linux to get a special socket address. This allows us to have roughly 2^20 clients on the system. Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f --- M src/osmo_ms_driver/event_server.py M src/osmo_ms_driver/location_update_test.py M src/osmo_ms_driver/lua/ms_support.lua 3 files changed, 4 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_ms_driver/event_server.py b/src/osmo_ms_driver/event_server.py index 6b0232b..b0f699d 100644 --- a/src/osmo_ms_driver/event_server.py +++ b/src/osmo_ms_driver/event_server.py @@ -27,7 +27,7 @@ def read_cb(self, obj, mask): # addresss doesn't give us the remote but currently we don't # need it. - (data, address) = self._server.recvfrom(4096) + data, ancdata, flags, addr = self._server.recvmsg(4096, 4096) now = time.clock_gettime(time.CLOCK_MONOTONIC) for handler in self._handlers: - handler(data, now) + handler(data, addr, now) diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 2d661ca..0d27d0e 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -167,7 +167,7 @@ for launcher in self._started: launcher.kill() - def handle_msg(self, _data, time): + def handle_msg(self, _data, addr, time): import json data = json.loads(_data.decode()) diff --git a/src/osmo_ms_driver/lua/ms_support.lua b/src/osmo_ms_driver/lua/ms_support.lua index 817a564..6490bec 100644 --- a/src/osmo_ms_driver/lua/ms_support.lua +++ b/src/osmo_ms_driver/lua/ms_support.lua @@ -11,6 +11,7 @@ function mod.register(ms, path) g_ms = ms + osmo.unix_passcred(g_c:getfd()) g_c:connect(path) local event = {} -- To view, visit https://gerrit.osmocom.org/9663 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie9b9ac6267f40345baf7dbb3becaecf264a5df5f Gerrit-Change-Number: 9663 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Jun 25 22:10:16 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 25 Jun 2018 22:10:16 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen comment markers Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9741 Change subject: cosmetic: fix doxygen comment markers ...................................................................... cosmetic: fix doxygen comment markers There has obviously been a misunderstanding on how the doxygen comments work. A comment marked '<' is for placing a comment *after* a member, to point back to the item before it, typically enum foo { thing, /*!< this is a thing */ a_bobby, } It does not make sense to place these above the item they are describing. We actually don't use doxygen in the osmo-mgw build, but if we have doxygen syntax, we might as well have the correct one. Change-Id: I9e8ea0e3bd5ae5fcc0a6fae8e26e11baa8f35e27 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_fsm.h 4 files changed, 30 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/41/9741/1 diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 9283373..3876794 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -42,13 +42,13 @@ /*! MGCP endpoint properties */ struct mgcp_endpoint_type { - /*!< maximum number of connections */ + /*! maximum number of connections */ int max_conns; - /*!< callback that defines how to dispatch incoming RTP data */ + /*! callback that defines how to dispatch incoming RTP data */ mgcp_dispatch_rtp_cb dispatch_rtp_cb; - /*!< callback that implements endpoint specific cleanup actions */ + /*! callback that implements endpoint specific cleanup actions */ mgcp_cleanup_cp cleanup_cb; }; @@ -63,31 +63,31 @@ /*! MGCP endpoint model */ struct mgcp_endpoint { - /*!< Call identifier string (as supplied by the call agant) */ + /*! Call identifier string (as supplied by the call agant) */ char *callid; - /*!< Local connection options (see mgcp_internal.h) */ + /*! Local connection options (see mgcp_internal.h) */ struct mgcp_lco local_options; - /*!< List with connections active on this endpoint */ + /*! List with connections active on this endpoint */ struct llist_head conns; - /*!< Backpointer to the MGW configuration */ + /*! Backpointer to the MGW configuration */ struct mgcp_config *cfg; - /*!< Backpointer to the Trunk specific configuration */ + /*! Backpointer to the Trunk specific configuration */ struct mgcp_trunk_config *tcfg; - /*!< Endpoint properties (see above) */ + /*! Endpoint properties (see above) */ const struct mgcp_endpoint_type *type; - /*!< Last MGCP transmission (in case re-transmission is required) */ + /*! Last MGCP transmission (in case re-transmission is required) */ char *last_trans; - /*!< Last MGCP response (in case re-transmission is required) */ + /*! Last MGCP response (in case re-transmission is required) */ char *last_response; - /*!< Memorize if this endpoint was choosen by the MGW (wildcarded, true) + /*! Memorize if this endpoint was choosen by the MGW (wildcarded, true) * or if the user has choosen the particular endpoint explicitly. */ bool wildcarded_req; }; diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index b564905..7712593 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -221,33 +221,33 @@ /*! MGCP connection (untyped) */ struct mgcp_conn { - /*!< list head */ + /*! list head */ struct llist_head entry; - /*!< Backpointer to the endpoint where the conn belongs to */ + /*! Backpointer to the endpoint where the conn belongs to */ struct mgcp_endpoint *endp; - /*!< type of the connection (union) */ + /*! type of the connection (union) */ enum mgcp_conn_type type; - /*!< mode of the connection */ + /*! mode of the connection */ enum mgcp_connection_mode mode; - /*!< copy of the mode to restore the original setting (VTY) */ + /*! copy of the mode to restore the original setting (VTY) */ enum mgcp_connection_mode mode_orig; - /*!< connection id to identify the connection */ + /*! connection id to identify the connection */ char id[MGCP_CONN_ID_LENGTH]; - /*!< human readable name (vty, logging) */ + /*! human readable name (vty, logging) */ char name[256]; - /*!< union with connection description */ + /*! union with connection description */ union { struct mgcp_conn_rtp rtp; } u; - /*!< pointer to optional private data */ + /*! pointer to optional private data */ void *priv; }; diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 3cecb8f..19c684d 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -46,10 +46,10 @@ /*! Structure to build a payload type map to allow the defiition custom payload * types. */ struct ptmap { - /*!< codec for which a payload type number should be defined */ + /*! codec for which a payload type number should be defined */ enum mgcp_codecs codec; - /*!< payload type number (96-127) */ + /*! payload type number (96-127) */ unsigned int pt; }; diff --git a/include/osmocom/mgcp_client/mgcp_client_fsm.h b/include/osmocom/mgcp_client/mgcp_client_fsm.h index 47d9fab..353baff 100644 --- a/include/osmocom/mgcp_client/mgcp_client_fsm.h +++ b/include/osmocom/mgcp_client/mgcp_client_fsm.h @@ -14,25 +14,25 @@ * identifier is supplied it is checked against the internal state to make * sure it is correct. */ struct mgcp_conn_peer { - /*!< RTP connection IP-Address (optional, string e.g. "127.0.0.1") */ + /*! RTP connection IP-Address (optional, string e.g. "127.0.0.1") */ char addr[INET_ADDRSTRLEN]; - /*!< RTP connection IP-Port (optional) */ + /*! RTP connection IP-Port (optional) */ uint16_t port; - /*!< RTP endpoint */ + /*! RTP endpoint */ char endpoint[MGCP_ENDPOINT_MAXLEN]; - /*!< CALL ID (unique per connection) */ + /*! CALL ID (unique per connection) */ unsigned int call_id; - /*!< RTP packetization interval (optional) */ + /*! RTP packetization interval (optional) */ unsigned int ptime; - /*!< RTP codec list (optional) */ + /*! RTP codec list (optional) */ enum mgcp_codecs codecs[MGCP_MAX_CODECS]; - /*!< Number of codecs in RTP codec list (optional) */ + /*! Number of codecs in RTP codec list (optional) */ unsigned int codecs_len; }; -- To view, visit https://gerrit.osmocom.org/9741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9e8ea0e3bd5ae5fcc0a6fae8e26e11baa8f35e27 Gerrit-Change-Number: 9741 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 26 00:04:20 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Jun 2018 00:04:20 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:?= =?UTF-8?Q?_master-openbsc_=C2=BB_--disable-iu,--?= =?UTF-8?Q?enable-mgcp-transcoding,--enable-?= =?UTF-8?Q?smpp,osmocom-master-debian9_#2165?= In-Reply-To: <429330078.322.1529949842022.JavaMail.jenkins@jenkins.osmocom.org> References: <429330078.322.1529949842022.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <86405586.324.1529971460300.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Tue Jun 26 00:51:49 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Jun 2018 00:51:49 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3864?= Message-ID: <754435666.325.1529974309883.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 811.68 KB...] CC RANAP_MBMS-PTP-RAB-ID.lo CC RANAP_MBMSBearerServiceType.lo CC RANAP_MBMSCNDe-Registration.lo CC RANAP_MBMSCountingInformation.lo CC RANAP_MBMSHCIndicator.lo CC RANAP_MBMSIPMulticastAddressandAPNRequest.lo CC RANAP_MBMSLinkingInformation.lo CC RANAP_MBMSRegistrationRequestType.lo CC RANAP_MBMSServiceArea.lo CC RANAP_MBMSSessionDuration.lo CC RANAP_MBMSSessionIdentity.lo CC RANAP_MBMSSessionRepetitionNumber.lo CC RANAP_MDT-Activation.lo CC RANAP_MDTAreaScope.lo CC RANAP_MDT-Configuration.lo CC RANAP_MDTMode.lo CC RANAP_MDT-PLMN-List.lo CC RANAP_MDT-Report-Parameters.lo CC RANAP_MeasurementQuantity.lo CC RANAP_MeasurementsToActivate.lo CC RANAP_MSISDN.lo CC RANAP_NAS-PDU.lo CC RANAP_NAS-SequenceNumber.lo CC RANAP_NAS-SynchronisationIndicator.lo CC RANAP_NewBSS-To-OldBSS-Information.lo CC RANAP_NonSearchingIndication.lo CC RANAP_NRTLoadInformationValue.lo CC RANAP_NumberOfIuInstances.lo CC RANAP_NumberOfSteps.lo CC RANAP_Offload-RAB-Parameters.lo CC RANAP_Offload-RAB-Parameters-APN.lo CC RANAP_Offload-RAB-Parameters-ChargingCharacteristics.lo CC RANAP_OldBSS-ToNewBSS-Information.lo CC RANAP_OMC-ID.lo CC RANAP_Out-Of-UTRAN.lo CC RANAP_PagingAreaID.lo CC RANAP_PagingCause.lo CC RANAP_PDP-TypeInformation.lo CC RANAP_PDP-Type.lo CC RANAP_PDP-TypeInformation-extension.lo CC RANAP_PDP-Type-extension.lo CC RANAP_PDUType14FrameSequenceNumber.lo CC RANAP_PeriodicLocationInfo.lo CC RANAP_PermanentNAS-UE-ID.lo CC RANAP_PermittedEncryptionAlgorithms.lo CC RANAP_PermittedIntegrityProtectionAlgorithms.lo CC RANAP_LABased.lo CC RANAP_LAI-List.lo CC RANAP_LoggedMDT.lo CC RANAP_LoggingInterval.lo CC RANAP_LoggingDuration.lo CC RANAP_PLMNidentity.lo CC RANAP_PLMNs-in-shared-network.lo CC RANAP_Port-Number.lo CC RANAP_PositioningDataDiscriminator.lo In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:14, from RANAP_PLMNs-in-shared-network.c:7: ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:23: warning: 'struct MemberA' declared inside parameter list A_SEQUENCE_OF(struct MemberA { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberA { ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberA { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberA { ^ ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:23: warning: 'struct MemberM' declared inside parameter list A_SEQUENCE_OF(struct MemberM { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberM { ^ CC RANAP_PositioningDataSet.lo CC RANAP_PositioningMethodAndUsage.lo CC RANAP_PositioningPriority.lo CC RANAP_PositionData.lo CC RANAP_PositionDataSpecificToGERANIuMode.lo CC RANAP_Pre-emptionCapability.lo CC RANAP_Pre-emptionVulnerability.lo CC RANAP_PriorityLevel.lo CC RANAP_Priority-Class-Indicator.lo CC RANAP_ProvidedData.lo CC RANAP_P-TMSI.lo CC RANAP_QueuingAllowed.lo In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:14, from ../../include/osmocom/ranap/RANAP_Shared-Network-Information.h:14, from ../../include/osmocom/ranap/RANAP_ProvidedData.h:14, from RANAP_ProvidedData.c:7: ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:23: warning: 'struct MemberA' declared inside parameter list A_SEQUENCE_OF(struct MemberA { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberA { ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberA { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberA { ^ ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:23: warning: 'struct MemberM' declared inside parameter list A_SEQUENCE_OF(struct MemberM { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberM { ^ CC RANAP_RAB-AsymmetryIndicator.lo CC RANAP_RABased.lo CC RANAP_RAI-List.lo CC RANAP_RABDataVolumeReport.lo CC RANAP_RAB-ID.lo CC RANAP_RAB-Parameter-ExtendedGuaranteedBitrateList.lo In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:14, from RANAP_RABDataVolumeReport.c:7: ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: 'struct MemberN' declared inside parameter list A_SEQUENCE_OF(struct MemberN { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberN { ^ ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberN { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberN { ^ CC RANAP_RAB-Parameter-ExtendedMaxBitrateList.lo CC RANAP_RAB-Parameter-GuaranteedBitrateList.lo CC RANAP_RAB-Parameter-MaxBitrateList.lo CC RANAP_RAB-Parameters.lo CC RANAP_RABParametersList.lo CC RANAP_RAB-SubflowCombinationBitRate.lo CC RANAP_RAB-TrCH-Mapping.lo CC RANAP_RAB-TrCH-MappingItem.lo In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_RABParametersList.h:14, from RANAP_RABParametersList.c:7: ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: 'struct MemberN' declared inside parameter list A_SEQUENCE_OF(struct MemberN { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberN { ^ ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberN { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_RABDataVolumeReport.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberN { ^ ../../include/osmocom/ranap/RANAP_RABParametersList.h:29:23: warning: 'struct MemberB' declared inside parameter list A_SEQUENCE_OF(struct MemberB { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_RABParametersList.h:29:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberB { ^ CC RANAP_RAC.lo CC RANAP_RAI.lo CC RANAP_RAListofIdleModeUEs.lo CC RANAP_NotEmptyRAListofIdleModeUEs.lo CC RANAP_RAofIdleModeUEs.lo CC RANAP_LAListofIdleModeUEs.lo CC RANAP_RAT-Type.lo CC RANAP_RateControlAllowed.lo CC RANAP_RedirectAttemptFlag.lo CC RANAP_RedirectionCompleted.lo CC RANAP_RejectCauseValue.lo CC RANAP_RelocationRequirement.lo CC RANAP_RelocationType.lo CC RANAP_RepetitionNumber0.lo CC RANAP_RepetitionNumber1.lo CC RANAP_ReportArea.lo CC RANAP_ReportInterval.lo CC RANAP_ReportAmount.lo CC RANAP_RequestedGPSAssistanceData.lo CC RANAP_RequestedGANSSAssistanceData.lo CC RANAP_RequestedLocationRelatedDataType.lo CC RANAP_RequestedMBMSIPMulticastAddressandAPNRequest.lo CC RANAP_MBMSIPMulticastAddressandAPNlist.lo CC RANAP_RequestedMulticastServiceList.lo CC RANAP_Requested-RAB-Parameter-Values.lo CC RANAP_Requested-RAB-Parameter-ExtendedMaxBitrateList.lo CC RANAP_Requested-RAB-Parameter-ExtendedGuaranteedBitrateList.lo CC RANAP_Requested-RAB-Parameter-MaxBitrateList.lo CC RANAP_Requested-RAB-Parameter-GuaranteedBitrateList.lo CC RANAP_RequestType.lo CC RANAP_ResidualBitErrorRatio.lo CC RANAP_ResponseTime.lo CC RANAP_RIMInformation.lo CC RANAP_RIM-Transfer.lo CC RANAP_RIMRoutingAddress.lo CC RANAP_RNC-ID.lo CC RANAP_RNCTraceInformation.lo /bin/bash: line 1: 16930 Segmentation fault (core dumped) /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.3.0.1-7a97f\" -DPACKAGE_STRING=\"osmo-iuh\ 0.3.0.1-7a97f\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-iuh\" -DVERSION=\"0.3.0.1-7a97f\" -DSTDC_HEADERS=1 -I. -Wall -I../../include -I/build/deps/install/stow/libasn1c/include/ -I/build/deps/install/stow/libasn1c/include/asn1c -I/build/deps/install/stow/libosmocore/include/ -g -O2 -Wall -MT RANAP_RNCTraceInformation.lo -MD -MP -MF .deps/RANAP_RNCTraceInformation.Tpo -c -o RANAP_RNCTraceInformation.lo RANAP_RNCTraceInformation.c Makefile:2494: recipe for target 'RANAP_RNCTraceInformation.lo' failed make[4]: *** [RANAP_RNCTraceInformation.lo] Error 139 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory '/build/deps/osmo-iuh/src/ranap' Makefile:630: recipe for target 'install-recursive' failed make[3]: Leaving directory '/build/deps/osmo-iuh/src' make[3]: *** [install-recursive] Error 1 Makefile:789: recipe for target 'install' failed make[2]: Leaving directory '/build/deps/osmo-iuh/src' make[2]: *** [install] Error 2 Makefile:442: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory '/build/deps/osmo-iuh' make: *** [install] Error 2 Makefile:741: recipe for target 'install' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Jun 26 00:56:14 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Jun 2018 00:56:14 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-sgsn_=C2=BB_--en?= =?UTF-8?Q?able-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3865?= In-Reply-To: <754435666.325.1529974309883.JavaMail.jenkins@jenkins.osmocom.org> References: <754435666.325.1529974309883.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <793169282.326.1529974574416.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Jun 26 02:55:08 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 02:55:08 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 6: (13 comments) https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/gsm_data.h at 518 PS6, Line 518: uint8_t error_cause; > might be good to mention that this refers to RSL cause values? (would be nice to have an RTP error enum instead of #defines) https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/handover_fsm.h File include/osmocom/bsc/handover_fsm.h: https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/handover_fsm.h at 42 PS6, Line 42: inter-MO FSM > what's inter-MO ? two mobile originated (outbound) hand-overs? inter-MO means we are handover-ing an lchan to another BSC. In my current wording, a HO always has an MO and an MT side; MO is where the MS is, and MT is where the MS is supposed to carry on after the HO. In intra-BSC, one cell is the MO and another is the MT cell. In inter-BSC HO, one BSC is the MO and another is the MT BSC. MO: the MS sent a measurement report, so the handover reason is mobile-originated. MT: we are asking an MS to respond on a prepared lchan, kind of like how paging is mobile-terminated. (it does make consistent sense to me, but different terminology pending...) https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/lchan_fsm.h File include/osmocom/bsc/lchan_fsm.h: https://gerrit.osmocom.org/#/c/9671/6/include/osmocom/bsc/lchan_fsm.h at 53 PS6, Line 53: /* FIXME: not yet implemented: Chan Mode Modify */ > does this mean that channel mode modify still bypasses the FSM or that this functionality is missing [?] The current master branch code does not ever perform a Chan Mode Modify, so neither does this refactored code. It is relatively trivial to add it, but I decided to not add more to this refactoring. For example: we gave an MS a TCH/F lchan for initial Channel Request. Now a BSSMAP Assignment Command tells us to assign a TCH/F to the MS. We don't need to find a new unused lchan, we can just use the assigned one. All that's needed is to send a Chan Mode Modify to the BTS and go through the FSM states that set up the RTP stream. But we don't do that yet; so far, instead we look for a completely new lchan. (If the lchan mode already matches, we do use the current lchan. See assignment_fsm_start() in assignment_fsm.c ) https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/abis_rsl.c at 885 PS6, Line 885: if (!lchan->conn) { > when do we expect this? Is it a normal event? should we log it? [?] Adding a comment to explain. Thanks for spotting the cause, it got lost when I added rsl_cause_name(), also in other places; will fix. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/assignment_fsm.c at 44 PS6, Line 44: #define GET_CONN() \ > I'm sorry, but I don't like the idea of hiding a variable declaration in a macro. [?] The drawback there is that if an assertion hits, we will get the line number of the one common function, and to find out which of the N handling functions had the problem, we need to go and do a traceback first. It's a common pattern I'm using in FSM implementations. But can change that if you prefer. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/assignment_fsm.c at 294 PS6, Line 294: static bool g_initialized = false; : if (!g_initialized) { : OSMO_ASSERT(osmo_fsm_register(&assignment_fsm) == 0); : g_initialized = true; : } > I'm much more in favor of an explicit registration somewhere. But not critical. in principle i agree; but the resulting code would be bloaty and easy to forget. With this though no fsm definition is registered until an fi first turns up; is that a good thing or a bad thing? (thinking ctrl interface) (I think I copied this pattern from somewhere else, actually) https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/bsc_vty.c at 1727 PS6, Line 1727: DEFUN(handover_ext_cgi, > we should probably have a FIXME here actually i think i should keep this bit shelved on a private branch yet... https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c File src/osmo-bsc/gsm_data.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c at 1536 PS6, Line 1536: static enum gsm0808_permitted_speech audio_support_to_gsm88(const struct gsm_audio_support *audio) > static helper functions here and below also don't seem gsm_data. [?] used in osmo_bsc_bssap.c and handover_fsm.c. The point is that handover_fsm.c is used in handover_test.c, which does explicitly want to avoid linking osmo_bsc_bssap.c with its dependencies on sigtran. Since they are little more than converting enum values based on libosmocore API, I decided to just drop it here. I could create a new file just for gsm0808_permitted_speech() and audio_support_to_gsm88() ... yes? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/gsm_data.c at 1715 PS6, Line 1715: osmo_ntohs > we normally only use osmo_ntohs() in situations where it's not IP/socket related and hence htons() m [?] I merely copied this code from the current-master assignment code paths... so, what, this should use ntohs() instead? https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_decision.c File src/osmo-bsc/handover_decision.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_decision.c at 203 PS6, Line 203: { > style-wise, I would generally prefer the variable declaration at the top of the function, rather tha [?] I want to highlight that the local struct exists merely to pass parameters to the function call, and then be gone. Style wise it's the same reason as when creating a variable in an if-/for-/while-body --- just without the if/for/while... If you don't stop me I will use this every now and then, so if you still disagree after my reasoning I can bite my lip and drop it. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_fsm.c File src/osmo-bsc/handover_fsm.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/handover_fsm.c at 644 PS6, Line 644: return result_counter_INTER_BSC_HO_MT(result); > two return statements in one case? very interesting indeed. copy paste artifact... https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/lchan_select.c File src/osmo-bsc/lchan_select.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/lchan_select.c at 1 PS6, Line 1: /* Select a suitable lchan from a given cell. > I guess this is code we traditionally would have had in chan_alloc. [?] This is not allocating an lchan, it is looking for an unused lchan. IMO chan_alloc.c has always been a misnomer... lchan_alloc() used to lead more or less directly into an RSL Chan Activ. Now I see it further removed as a separate preliminary step; the {assignment,handover,...} FSM using the lchan might still decide to not use the lchan after all, e.g. if the conn FSM is in the wrong state and denies {assignment,handover,...}; and the point where we start really "allocating" the lchan (which I understand as Chan Activ and establishing RLL) is wayy further down the road. I wanted to get rid of that misunderstanding. This really and only just selects an unused lchan that might get allocated -- or not. https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_api.c File src/osmo-bsc/osmo_bsc_api.c: https://gerrit.osmocom.org/#/c/9671/6/src/osmo-bsc/osmo_bsc_api.c at 189 PS6, Line 189: no-one is using this > this is odd? any service we don't know / support should be rejected. [?] i _think_ we just forward the service to the MSC regardless?? ... but beats me. If it should change, then probably in a separate patch. -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 26 Jun 2018 02:55:08 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 02:56:46 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 02:56:46 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 6: I will now submit tweaks of this patch in separate patch sets: 1) rebasing onto current master resolving merge conflicts; 2) general code review items; 3) dropping the GET_FOO() macros from FSM impls. The idea is that we can see the changes separately in gerrit. -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 26 Jun 2018 02:56:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 02:57:05 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 02:57:05 +0000 Subject: Change in osmo-bsc[master]: fix / clarify rsl dtap cache In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9668 to look at the new patch set (#4). Change subject: fix / clarify rsl dtap cache ...................................................................... fix / clarify rsl dtap cache In certain situations like handover or assignment, DTAP must not go out via RSL directly but is cached to be submitted later. Make sure that all RSL DTAP sending adheres to this: gscon_submit_rsl_dtap() is the new "public" API to request an RSL DTAP to be sent. Depending on the gscon's state, this ends up in the cache or is sent directly. When caching, there is no way to tell whether sending will succeed or not, so semantically it does not make sense to even return a result code. Just return void. Change all "public" callers to gscon_submit_rsl_dtap(). Merge gsm0808_submit_dtap() and submit_dtap() guts to gsm0808_send_rsl_dtap(), static in bsc_subscr_conn_fsm.c: directly send DTAP, assume a conn->lchan to be present, or otherwise trigger a BSSMAP Clear Request. The static submit_dtap() becomes a thin convenience wrapper. Move ho_dtap_cache* functions to bsc_subscr_conn_fsm.c and rename to gscon_dtap_cache_* -- they are not only for handover, also for assignment. Function gsm0808_submit_dtap() m Introduce function gscon_submit_rsl_dtap() Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 --- M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_api.c M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_04_80_utils.c M src/osmo-bsc/osmo_bsc_api.c M tests/bsc/bsc_test.c 9 files changed, 185 insertions(+), 160 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/9668/4 -- To view, visit https://gerrit.osmocom.org/9668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 Gerrit-Change-Number: 9668 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 02:57:05 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 02:57:05 +0000 Subject: Change in osmo-bsc[master]: add gsm_timers, for Tnnn definitions usable by FSMs In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9670 to look at the new patch set (#4). Change subject: add gsm_timers, for Tnnn definitions usable by FSMs ...................................................................... add gsm_timers, for Tnnn definitions usable by FSMs Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/gsm_data.h A include/osmocom/bsc/gsm_timers.h M src/ipaccess/Makefile.am M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ipaccess_nanobts_omlattr.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/gsm_data.c A src/osmo-bsc/gsm_timers.c A src/osmo-bsc/gsm_timers_vty.c M src/osmo-bsc/net_init.c M src/osmo-bsc/paging.c M src/utils/Makefile.am M tests/abis/Makefile.am M tests/bsc/Makefile.am M tests/gsm0408/Makefile.am M tests/handover/Makefile.am M tests/nanobts_omlattr/Makefile.am M tests/nanobts_omlattr/nanobts_omlattr_test.c 23 files changed, 514 insertions(+), 180 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/70/9670/4 -- To view, visit https://gerrit.osmocom.org/9670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 Gerrit-Change-Number: 9670 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 02:57:05 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 02:57:05 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#7). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/ipaccess/Makefile.am M src/ipaccess/stubs.c M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c M src/utils/Makefile.am M src/utils/bs11_config.c M src/utils/meas_json.c D src/utils/stubs.c M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.c 70 files changed, 8,297 insertions(+), 4,864 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/7 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 02:57:48 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 02:57:48 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#8). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/gsm_timers.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/ipaccess/Makefile.am M src/ipaccess/stubs.c M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/gsm_timers.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c M src/utils/Makefile.am M src/utils/bs11_config.c M src/utils/meas_json.c D src/utils/stubs.c M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.c 72 files changed, 8,326 insertions(+), 4,878 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/8 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 8 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 02:58:09 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 02:58:09 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9671 to look at the new patch set (#9). Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... large refactoring: use FSMs for lchans; add inter-BSC HO Add FSMs: - timeslot_fsm: handle dynamic timeslots and OML+RSL availability. - lchan_fsm: handle an individual lchan activation, RTP stream and release, signal the appropriate calling FSMs on success, failure, release. - mgw_endpoint_fsm: handle one entire endpoint with several CI. - assignment_fsm: BSSMAP Assignment Request. - handover_fsm: all of intra, inter-MO and inter-MT handover. Above FSMs absorb large parts of the gscon FSM. The gscon FSM was surpassing the maximum amount events (32), and it is more logical to treat assignment, handover and MGW procedures in separate FSMs. - Add logging macros for each FSM type: - LOG_TS() - LOG_LCHAN() - LOG_MGWEP(), LOG_CI() - LOG_ASSIGNMENT() - LOG_HO() These log with the osmo_fsm_inst where present. New style decision: logging without a final newline char is awkward, especially for gsmtap logging and when other logs interleave LOGPC() calls; we have various cases where the final \n goes missing, and also this invokes the log category checking N times instead of once. So I decided to make these macros *always* append a newline, but only if there is no final newline yet. I hope that the compiler optimizes the strlen() of the constant format strings away. Thus I can log with or without typing "\n" and always get an \n termination anyway. General: - replace osmo_timers, state enums and program-wide osmo_signal_dispatch() with dedicated FSM timeouts, states and events. - introduce a common way to handle Tnnn timers: gsm_timers.h/.c: struct T_def. These can be used (with some macro magic) to define a state's timeout once, and not make mistakes for each osmo_fsm_inst_state_chg(). Details: bsc_subscr_conn_fsm.c: - move most states of this FSM to lchan_fsm, assignment_fsm, handover_fsm and mgw_endpoint_fsm. - There is exactly one state for an ongoing Assignment, with all details handled in conn->assignment.fi. The state relies on the assignment_fsm's timeout. - There is one state for an ongoing Handover; except for an incoming Handover from a remote BSS, the gscon remains in ST_INIT until the new lchan and conn are both established. - move bssmap_add_lcls_status() to osmo_bsc_lcls.c abis_rsl.c: - move all dynamic timeslot logic away into timeslot_fsm. Only keep plain send/receive functions in abis_rsl.c - reduce some rsl functions to merely send a message, rename to "_tx_". - rsl_ipacc_mdcx(): add '_tx_' in the name; move parts that change the lchan state out into the lchan_fsm, the lchan->abis_ip.* are now set there prior to invoking this function. - move all timers and error/release handling away into various FSMs. - tweak ipa_smod_s_for_lchan() and ipa_rtp_pt_for_lchan() to not require an lchan passed, but just mode,type that they require. Rename to ipacc_speech_mode*() and ipacc_payload_type(). - add rsl_forward_layer3_info, used for inter-BSC HO MO, to just send the RR message received during BSSMAP Handover Command. - move various logging to LOG_LCHAN() in order to log with the lchan FSM instance. One drawback is that the lchan FSM is limited to one logging category, i.e. this moves some logging from DRR to DRSL. It might actually make sense to combine those categories. - lose LOGP...LOGPC logging cascades: they are bad for gsmtap logging and for performance. - handle_classmark_chg(): change logging, move cm2 len check out of the cm3 condition (I hope that's correct). - gsm48_send_ho_cmd(): split off gsm48_make_ho_cmd() which doesn't send right away, so that during inter-bsc HO we can make an RR Handover Command to send via the MSC to the remote BSS. assignment_fsm.c: - the Chan Mode Modify in case of re-using the same lchan is not implemented yet, because this was also missing in the previous implementation. Depends: I03ee7ce840ecfa0b6a33358e7385528aabd4873f Change-Id: I82e3f918295daa83274a4cf803f046979f284366 --- M include/osmocom/bsc/Makefile.am M include/osmocom/bsc/abis_rsl.h A include/osmocom/bsc/assignment_fsm.h M include/osmocom/bsc/bsc_api.h M include/osmocom/bsc/bsc_msc_data.h M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/bsc_subscriber.h M include/osmocom/bsc/chan_alloc.h M include/osmocom/bsc/debug.h M include/osmocom/bsc/gsm_data.h M include/osmocom/bsc/gsm_timers.h M include/osmocom/bsc/handover.h A include/osmocom/bsc/handover_fsm.h A include/osmocom/bsc/lchan_fsm.h A include/osmocom/bsc/lchan_select.h A include/osmocom/bsc/mgw_endpoint_fsm.h M include/osmocom/bsc/neighbor_ident.h M include/osmocom/bsc/osmo_bsc.h M include/osmocom/bsc/osmo_bsc_lcls.h A include/osmocom/bsc/timeslot_fsm.h M src/ipaccess/Makefile.am M src/ipaccess/stubs.c M src/osmo-bsc/Makefile.am M src/osmo-bsc/abis_om2000.c M src/osmo-bsc/abis_rsl.c A src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_api.c D src/osmo-bsc/bsc_dyn_ts.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/bsc_subscriber.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/bts_ericsson_rbs2000.c M src/osmo-bsc/bts_ipaccess_nanobts.c M src/osmo-bsc/bts_nokia_site.c M src/osmo-bsc/bts_siemens_bs11.c M src/osmo-bsc/chan_alloc.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_data.c M src/osmo-bsc/gsm_timers.c M src/osmo-bsc/handover_decision.c M src/osmo-bsc/handover_decision_2.c A src/osmo-bsc/handover_fsm.c M src/osmo-bsc/handover_logic.c A src/osmo-bsc/lchan_fsm.c A src/osmo-bsc/lchan_select.c M src/osmo-bsc/meas_feed.c A src/osmo-bsc/mgw_endpoint_fsm.c M src/osmo-bsc/neighbor_ident_vty.c M src/osmo-bsc/osmo_bsc_api.c D src/osmo-bsc/osmo_bsc_audio.c M src/osmo-bsc/osmo_bsc_bssap.c M src/osmo-bsc/osmo_bsc_filter.c M src/osmo-bsc/osmo_bsc_grace.c M src/osmo-bsc/osmo_bsc_lcls.c M src/osmo-bsc/osmo_bsc_main.c M src/osmo-bsc/osmo_bsc_sigtran.c M src/osmo-bsc/paging.c M src/osmo-bsc/pcu_sock.c M src/osmo-bsc/system_information.c A src/osmo-bsc/timeslot_fsm.c M src/utils/Makefile.am M src/utils/bs11_config.c M src/utils/meas_json.c D src/utils/stubs.c M tests/abis/abis_test.c M tests/bsc/Makefile.am M tests/bsc/bsc_test.c M tests/gsm0408/gsm0408_test.c M tests/handover/Makefile.am M tests/handover/handover_test.c M tests/handover/neighbor_ident_test.c M tests/nanobts_omlattr/nanobts_omlattr_test.c 72 files changed, 8,339 insertions(+), 4,878 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/71/9671/9 -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 9 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 03:03:40 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 03:03:40 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 9: So much for the fixes I have for now, not complete. Still pending: * LOG with newlines; * final verdict on "extra blocks" (local scopes to pass function arg struct, which are liked by me, but not universally); * some ttcn3 tests are still failing: ** sccplite tests fail some assignment tests; ** after the rebase some LCLS tests as well as TC_early_conn_fail and TC_late_conn_fail have started to fail; -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 9 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 26 Jun 2018 03:03:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 10:05:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 10:05:57 +0000 Subject: Change in osmo-bsc[master]: add gsm_timers, for Tnnn definitions usable by FSMs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9670 ) Change subject: add gsm_timers, for Tnnn definitions usable by FSMs ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9670 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If212fcd042051b6fa53484254223614c5b93a9c6 Gerrit-Change-Number: 9670 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 26 Jun 2018 10:05:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 10:06:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 10:06:28 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9666 ) Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... Patch Set 4: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 10:06:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 10:06:53 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 10:06:53 +0000 Subject: Change in osmo-bsc[master]: fix / clarify rsl dtap cache In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9668 ) Change subject: fix / clarify rsl dtap cache ...................................................................... Patch Set 4: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/9668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 Gerrit-Change-Number: 9668 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 10:06:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 10:07:33 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 10:07:33 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen comment markers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9741 ) Change subject: cosmetic: fix doxygen comment markers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9e8ea0e3bd5ae5fcc0a6fae8e26e11baa8f35e27 Gerrit-Change-Number: 9741 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 10:07:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 10:07:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 10:07:35 +0000 Subject: Change in osmo-mgw[master]: cosmetic: fix doxygen comment markers In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9741 ) Change subject: cosmetic: fix doxygen comment markers ...................................................................... cosmetic: fix doxygen comment markers There has obviously been a misunderstanding on how the doxygen comments work. A comment marked '<' is for placing a comment *after* a member, to point back to the item before it, typically enum foo { thing, /*!< this is a thing */ a_bobby, } It does not make sense to place these above the item they are describing. We actually don't use doxygen in the osmo-mgw build, but if we have doxygen syntax, we might as well have the correct one. Change-Id: I9e8ea0e3bd5ae5fcc0a6fae8e26e11baa8f35e27 --- M include/osmocom/mgcp/mgcp_endp.h M include/osmocom/mgcp/mgcp_internal.h M include/osmocom/mgcp_client/mgcp_client.h M include/osmocom/mgcp_client/mgcp_client_fsm.h 4 files changed, 30 insertions(+), 30 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h index 9283373..3876794 100644 --- a/include/osmocom/mgcp/mgcp_endp.h +++ b/include/osmocom/mgcp/mgcp_endp.h @@ -42,13 +42,13 @@ /*! MGCP endpoint properties */ struct mgcp_endpoint_type { - /*!< maximum number of connections */ + /*! maximum number of connections */ int max_conns; - /*!< callback that defines how to dispatch incoming RTP data */ + /*! callback that defines how to dispatch incoming RTP data */ mgcp_dispatch_rtp_cb dispatch_rtp_cb; - /*!< callback that implements endpoint specific cleanup actions */ + /*! callback that implements endpoint specific cleanup actions */ mgcp_cleanup_cp cleanup_cb; }; @@ -63,31 +63,31 @@ /*! MGCP endpoint model */ struct mgcp_endpoint { - /*!< Call identifier string (as supplied by the call agant) */ + /*! Call identifier string (as supplied by the call agant) */ char *callid; - /*!< Local connection options (see mgcp_internal.h) */ + /*! Local connection options (see mgcp_internal.h) */ struct mgcp_lco local_options; - /*!< List with connections active on this endpoint */ + /*! List with connections active on this endpoint */ struct llist_head conns; - /*!< Backpointer to the MGW configuration */ + /*! Backpointer to the MGW configuration */ struct mgcp_config *cfg; - /*!< Backpointer to the Trunk specific configuration */ + /*! Backpointer to the Trunk specific configuration */ struct mgcp_trunk_config *tcfg; - /*!< Endpoint properties (see above) */ + /*! Endpoint properties (see above) */ const struct mgcp_endpoint_type *type; - /*!< Last MGCP transmission (in case re-transmission is required) */ + /*! Last MGCP transmission (in case re-transmission is required) */ char *last_trans; - /*!< Last MGCP response (in case re-transmission is required) */ + /*! Last MGCP response (in case re-transmission is required) */ char *last_response; - /*!< Memorize if this endpoint was choosen by the MGW (wildcarded, true) + /*! Memorize if this endpoint was choosen by the MGW (wildcarded, true) * or if the user has choosen the particular endpoint explicitly. */ bool wildcarded_req; }; diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index b564905..7712593 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -221,33 +221,33 @@ /*! MGCP connection (untyped) */ struct mgcp_conn { - /*!< list head */ + /*! list head */ struct llist_head entry; - /*!< Backpointer to the endpoint where the conn belongs to */ + /*! Backpointer to the endpoint where the conn belongs to */ struct mgcp_endpoint *endp; - /*!< type of the connection (union) */ + /*! type of the connection (union) */ enum mgcp_conn_type type; - /*!< mode of the connection */ + /*! mode of the connection */ enum mgcp_connection_mode mode; - /*!< copy of the mode to restore the original setting (VTY) */ + /*! copy of the mode to restore the original setting (VTY) */ enum mgcp_connection_mode mode_orig; - /*!< connection id to identify the connection */ + /*! connection id to identify the connection */ char id[MGCP_CONN_ID_LENGTH]; - /*!< human readable name (vty, logging) */ + /*! human readable name (vty, logging) */ char name[256]; - /*!< union with connection description */ + /*! union with connection description */ union { struct mgcp_conn_rtp rtp; } u; - /*!< pointer to optional private data */ + /*! pointer to optional private data */ void *priv; }; diff --git a/include/osmocom/mgcp_client/mgcp_client.h b/include/osmocom/mgcp_client/mgcp_client.h index 3cecb8f..19c684d 100644 --- a/include/osmocom/mgcp_client/mgcp_client.h +++ b/include/osmocom/mgcp_client/mgcp_client.h @@ -46,10 +46,10 @@ /*! Structure to build a payload type map to allow the defiition custom payload * types. */ struct ptmap { - /*!< codec for which a payload type number should be defined */ + /*! codec for which a payload type number should be defined */ enum mgcp_codecs codec; - /*!< payload type number (96-127) */ + /*! payload type number (96-127) */ unsigned int pt; }; diff --git a/include/osmocom/mgcp_client/mgcp_client_fsm.h b/include/osmocom/mgcp_client/mgcp_client_fsm.h index 47d9fab..353baff 100644 --- a/include/osmocom/mgcp_client/mgcp_client_fsm.h +++ b/include/osmocom/mgcp_client/mgcp_client_fsm.h @@ -14,25 +14,25 @@ * identifier is supplied it is checked against the internal state to make * sure it is correct. */ struct mgcp_conn_peer { - /*!< RTP connection IP-Address (optional, string e.g. "127.0.0.1") */ + /*! RTP connection IP-Address (optional, string e.g. "127.0.0.1") */ char addr[INET_ADDRSTRLEN]; - /*!< RTP connection IP-Port (optional) */ + /*! RTP connection IP-Port (optional) */ uint16_t port; - /*!< RTP endpoint */ + /*! RTP endpoint */ char endpoint[MGCP_ENDPOINT_MAXLEN]; - /*!< CALL ID (unique per connection) */ + /*! CALL ID (unique per connection) */ unsigned int call_id; - /*!< RTP packetization interval (optional) */ + /*! RTP packetization interval (optional) */ unsigned int ptime; - /*!< RTP codec list (optional) */ + /*! RTP codec list (optional) */ enum mgcp_codecs codecs[MGCP_MAX_CODECS]; - /*!< Number of codecs in RTP codec list (optional) */ + /*! Number of codecs in RTP codec list (optional) */ unsigned int codecs_len; }; -- To view, visit https://gerrit.osmocom.org/9741 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9e8ea0e3bd5ae5fcc0a6fae8e26e11baa8f35e27 Gerrit-Change-Number: 9741 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:00:50 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 26 Jun 2018 11:00:50 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: forward unhandled GSUP messages towards MSC In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9656 to look at the new patch set (#3). Change subject: libvlr/vlr.c: forward unhandled GSUP messages towards MSC ...................................................................... libvlr/vlr.c: forward unhandled GSUP messages towards MSC Some internal sub-systems, such as SS/USSD or SMS implementation, may also need to use GSUP connection with HLR. Previously, it was only available within the libvlr code, and nowhere else. Let's introduce the generic GSUP message router, which will receive messages unhandled by VLR itself, and route them to a handler depending on the message type. Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 --- M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libvlr/vlr.c 3 files changed, 22 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/56/9656/3 -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:00:50 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 26 Jun 2018 11:00:50 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions In-Reply-To: References: Message-ID: Hello Alexander Chemeris, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9711 to look at the new patch set (#2). Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions This change introduces some new rate counters for call-independent SS/USSD connections. As OsmoMSC doesn't handle the messages itself, and only responsible for dispatching messages between both A and GSUP interfaces, the following is taken into account: - MS-initiated and network-initiated requests to establish a NC SS/USSD session (transaction) - "nc_ss:m{o|t}_requests"; - successfully established MS-initiated and network-initiated SS/USSD sessions (transactions) - "nc_ss:m{o|t}_established". Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 --- M include/osmocom/msc/gsm_data.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c 3 files changed, 38 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/11/9711/2 -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:05:49 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 11:05:49 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: Assign IP addr in different range to nanobts Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9742 Change subject: ansible: gsm-tester: Assign IP addr in different range to nanobts ...................................................................... ansible: gsm-tester: Assign IP addr in different range to nanobts We currently use range around 10.42.42.1-10 for local dynamically assigned IP addresses (osmo-msc, osmo-bsc, etc.). The range 10.42.42.50-60 for local statically assigned IP addresses (to run osmo-bts-trx sysmocell-5k for instance, where the other end is cofigured with a static dst addr). For remote addresses, we use IPs in the range 10.42.42.110-120. Let's create a new range in 10.42.42.120-130 for remote addressess assigned by udhcpd server. nanobts assigned assdresses are moved to the latest group to differentiate them easily and show that they are not IP addr used locally. Change-Id: I9eadb0329a670ce6c2254520d9c86bfbdc898b3a --- M ansible/host_vars/osmo-gsm-tester-prod.yml M ansible/host_vars/osmo-gsm-tester-rnd.yml 2 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/42/9742/1 diff --git a/ansible/host_vars/osmo-gsm-tester-prod.yml b/ansible/host_vars/osmo-gsm-tester-prod.yml index 2f9068e..ee9edea 100644 --- a/ansible/host_vars/osmo-gsm-tester-prod.yml +++ b/ansible/host_vars/osmo-gsm-tester-prod.yml @@ -1,9 +1,9 @@ --- udhcpd_static_leases: - mac: 00:02:95:00:52:ae - ip: 10.42.42.53 + ip: 10.42.42.120 - mac: 00:02:95:00:5a:a4 - ip: 10.42.42.54 + ip: 10.42.42.121 # how many modems are connected via a quadmodem? gsm_modems: 3 diff --git a/ansible/host_vars/osmo-gsm-tester-rnd.yml b/ansible/host_vars/osmo-gsm-tester-rnd.yml index 2e9b0b7..a9c7a24 100644 --- a/ansible/host_vars/osmo-gsm-tester-rnd.yml +++ b/ansible/host_vars/osmo-gsm-tester-rnd.yml @@ -1,7 +1,7 @@ --- udhcpd_static_leases: - mac: 00:02:95:00:41:b3 - ip: 10.42.42.53 + ip: 10.42.42.120 # how many modems are connected via a quadmodem? gsm_modems: 4 -- To view, visit https://gerrit.osmocom.org/9742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9eadb0329a670ce6c2254520d9c86bfbdc898b3a Gerrit-Change-Number: 9742 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:05:49 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 11:05:49 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: Add IP addr for osmo-bts-octphy to bind to Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9743 Change subject: ansible: gsm-tester: Add IP addr for osmo-bts-octphy to bind to ...................................................................... ansible: gsm-tester: Add IP addr for osmo-bts-octphy to bind to Change-Id: I708960790e330a24c653f162b767d3b3ca4d145d --- M ansible/roles/gsm-tester-network/templates/interface.j2 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/43/9743/1 diff --git a/ansible/roles/gsm-tester-network/templates/interface.j2 b/ansible/roles/gsm-tester-network/templates/interface.j2 index 9803358..a4c86a4 100644 --- a/ansible/roles/gsm-tester-network/templates/interface.j2 +++ b/ansible/roles/gsm-tester-network/templates/interface.j2 @@ -54,3 +54,7 @@ address 10.42.42.51 netmask 255.255.255.0 +auto {{ bts_interface }}:10 +iface {{ bts_interface }}:10 inet static + address 10.42.42.52 + netmask 255.255.255.0 -- To view, visit https://gerrit.osmocom.org/9743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I708960790e330a24c653f162b767d3b3ca4d145d Gerrit-Change-Number: 9743 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:08:52 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 11:08:52 +0000 Subject: Change in osmo-gsm-tester[master]: resources.conf: Move nanobts address to differentiate them from local... Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9744 Change subject: resources.conf: Move nanobts address to differentiate them from local IPs ...................................................................... resources.conf: Move nanobts address to differentiate them from local IPs nanobts IP addresses are assigned through DHCP, and are not local to the main unit. Let's use another subset for this DHCP pool as we usually use .50ish for static local IP addresses. Change-Id: Ibdb0dd97a490aaa555a7bf53cf43cc5a5533a012 --- M example/resources.conf.prod M example/resources.conf.rnd 2 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/44/9744/1 diff --git a/example/resources.conf.prod b/example/resources.conf.prod index 230f95d..8a9a534 100644 --- a/example/resources.conf.prod +++ b/example/resources.conf.prod @@ -47,7 +47,7 @@ - label: NanoBTS-ONW-1900 type: nanobts ipa_unit_id: 9 - addr: 10.42.42.53 + addr: 10.42.42.120 band: GSM-1900 power_supply: type: 'sispm' @@ -57,7 +57,7 @@ - label: NanoBTS-ONW-900 type: nanobts ipa_unit_id: 10 - addr: 10.42.42.54 + addr: 10.42.42.121 band: GSM-900 power_supply: type: 'sispm' diff --git a/example/resources.conf.rnd b/example/resources.conf.rnd index c263bf3..7483260 100644 --- a/example/resources.conf.rnd +++ b/example/resources.conf.rnd @@ -30,7 +30,7 @@ - label: NanoBTS-ONW-1900 type: nanobts ipa_unit_id: 9 - addr: 10.42.42.53 + addr: 10.42.42.120 band: GSM-1900 power_supply: type: 'sispm' -- To view, visit https://gerrit.osmocom.org/9744 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibdb0dd97a490aaa555a7bf53cf43cc5a5533a012 Gerrit-Change-Number: 9744 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:27:52 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 11:27:52 +0000 Subject: Change in osmo-gsm-tester[master]: resources.conf: Move nanobts address to differentiate them from local... In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9744 ) Change subject: resources.conf: Move nanobts address to differentiate them from local IPs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9744 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibdb0dd97a490aaa555a7bf53cf43cc5a5533a012 Gerrit-Change-Number: 9744 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Jun 2018 11:27:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:27:54 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 11:27:54 +0000 Subject: Change in osmo-gsm-tester[master]: resources.conf: Move nanobts address to differentiate them from local... In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/9744 ) Change subject: resources.conf: Move nanobts address to differentiate them from local IPs ...................................................................... resources.conf: Move nanobts address to differentiate them from local IPs nanobts IP addresses are assigned through DHCP, and are not local to the main unit. Let's use another subset for this DHCP pool as we usually use .50ish for static local IP addresses. Change-Id: Ibdb0dd97a490aaa555a7bf53cf43cc5a5533a012 --- M example/resources.conf.prod M example/resources.conf.rnd 2 files changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, approved diff --git a/example/resources.conf.prod b/example/resources.conf.prod index 230f95d..8a9a534 100644 --- a/example/resources.conf.prod +++ b/example/resources.conf.prod @@ -47,7 +47,7 @@ - label: NanoBTS-ONW-1900 type: nanobts ipa_unit_id: 9 - addr: 10.42.42.53 + addr: 10.42.42.120 band: GSM-1900 power_supply: type: 'sispm' @@ -57,7 +57,7 @@ - label: NanoBTS-ONW-900 type: nanobts ipa_unit_id: 10 - addr: 10.42.42.54 + addr: 10.42.42.121 band: GSM-900 power_supply: type: 'sispm' diff --git a/example/resources.conf.rnd b/example/resources.conf.rnd index c263bf3..7483260 100644 --- a/example/resources.conf.rnd +++ b/example/resources.conf.rnd @@ -30,7 +30,7 @@ - label: NanoBTS-ONW-1900 type: nanobts ipa_unit_id: 9 - addr: 10.42.42.53 + addr: 10.42.42.120 band: GSM-1900 power_supply: type: 'sispm' -- To view, visit https://gerrit.osmocom.org/9744 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibdb0dd97a490aaa555a7bf53cf43cc5a5533a012 Gerrit-Change-Number: 9744 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 11:29:32 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 26 Jun 2018 11:29:32 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce counter for active sessions Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9745 Change subject: libmsc/gsm_09_11.c: introduce counter for active sessions ...................................................................... libmsc/gsm_09_11.c: introduce counter for active sessions Change-Id: Ia17e7c747fffb5267d3ca5bc4193c1be4a57ef3a --- M include/osmocom/msc/gsm_data.h M src/libmsc/gsm_09_11.c M src/libmsc/osmo_msc.c 3 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/45/9745/1 diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h index 3af619d..c79adde 100644 --- a/include/osmocom/msc/gsm_data.h +++ b/include/osmocom/msc/gsm_data.h @@ -276,6 +276,7 @@ struct rate_ctr_group *msc_ctrs; struct osmo_counter *active_calls; + struct osmo_counter *active_nc_ss; /* layer 4 */ struct mncc_sock_state *mncc_state; diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index 2c5afb3..9b0a9e4 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -107,6 +107,9 @@ return -ENOMEM; } + /* Count active NC SS/USSD sessions */ + osmo_counter_inc(conn->network->active_nc_ss); + trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_NC_SS); trans->dlci = OMSC_LINKID_CB(msg); cm_service_request_concludes(conn, msg); @@ -300,6 +303,9 @@ return NULL; } + /* Count active NC SS/USSD sessions */ + osmo_counter_inc(net->active_nc_ss); + /* Assign transaction ID */ tid = trans_assign_trans_id(trans->net, trans->vsub, GSM48_PDISC_NC_SS, 0); @@ -365,6 +371,9 @@ */ if (trans->ss.msg != NULL) msgb_free(trans->ss.msg); + + /* One session less */ + osmo_counter_dec(trans->net->active_nc_ss); } int gsm0911_gsup_handler(struct vlr_subscr *vsub, diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c index 62a449f..a6618c0 100644 --- a/src/libmsc/osmo_msc.c +++ b/src/libmsc/osmo_msc.c @@ -67,6 +67,7 @@ return NULL; } net->active_calls = osmo_counter_alloc("msc.active_calls"); + net->active_nc_ss = osmo_counter_alloc("msc.active_nc_ss"); net->mncc_recv = mncc_recv; -- To view, visit https://gerrit.osmocom.org/9745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia17e7c747fffb5267d3ca5bc4193c1be4a57ef3a Gerrit-Change-Number: 9745 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 12:24:44 2018 From: gerrit-no-reply at lists.osmocom.org (Alexander Chemeris) Date: Tue, 26 Jun 2018 12:24:44 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce counter for active sessions In-Reply-To: References: Message-ID: Alexander Chemeris has posted comments on this change. ( https://gerrit.osmocom.org/9745 ) Change subject: libmsc/gsm_09_11.c: introduce counter for active sessions ...................................................................... Patch Set 1: Code-Review+1 Looks great! I wonder if it's possible to split SS from USSD but that's a minor issue. -- To view, visit https://gerrit.osmocom.org/9745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia17e7c747fffb5267d3ca5bc4193c1be4a57ef3a Gerrit-Change-Number: 9745 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 12:24:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 12:36:20 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 26 Jun 2018 12:36:20 +0000 Subject: Change in osmo-ci[master]: jobs: gerrit: use debian-9 In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9545 ) Change subject: jobs: gerrit: use debian-9 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9545 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9204ca2f083c8a6a04c6c0fc7d51752a4f1a4830 Gerrit-Change-Number: 9545 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 26 Jun 2018 12:36:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 12:36:47 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 26 Jun 2018 12:36:47 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: Add IP addr for osmo-bts-octphy to bind to In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9743 ) Change subject: ansible: gsm-tester: Add IP addr for osmo-bts-octphy to bind to ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I708960790e330a24c653f162b767d3b3ca4d145d Gerrit-Change-Number: 9743 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 26 Jun 2018 12:36:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 12:37:15 2018 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Tue, 26 Jun 2018 12:37:15 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: Assign IP addr in different range to nanobts In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/9742 ) Change subject: ansible: gsm-tester: Assign IP addr in different range to nanobts ...................................................................... Patch Set 1: Code-Review+1 Can you document this? -- To view, visit https://gerrit.osmocom.org/9742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9eadb0329a670ce6c2254520d9c86bfbdc898b3a Gerrit-Change-Number: 9742 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 26 Jun 2018 12:37:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 12:50:28 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 12:50:28 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: Add IP addr for osmo-bts-octphy to bind to In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9743 ) Change subject: ansible: gsm-tester: Add IP addr for osmo-bts-octphy to bind to ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9743 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I708960790e330a24c653f162b767d3b3ca4d145d Gerrit-Change-Number: 9743 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 26 Jun 2018 12:50:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 12:50:38 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 12:50:38 +0000 Subject: Change in osmo-ci[master]: ansible: gsm-tester: Assign IP addr in different range to nanobts In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9742 ) Change subject: ansible: gsm-tester: Assign IP addr in different range to nanobts ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9742 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9eadb0329a670ce6c2254520d9c86bfbdc898b3a Gerrit-Change-Number: 9742 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Tue, 26 Jun 2018 12:50:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 12:59:46 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 26 Jun 2018 12:59:46 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce counter for active sessions In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9745 ) Change subject: libmsc/gsm_09_11.c: introduce counter for active sessions ...................................................................... Patch Set 1: > I wonder if it's possible to split SS from USSD but that's a minor issue. Unfortunately, this is impossible because we don't parse the GSM 04.80 payload of Facility IE in OsmoMSC. Should be possible in OsmoHLR meanwhile ;) -- To view, visit https://gerrit.osmocom.org/9745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia17e7c747fffb5267d3ca5bc4193c1be4a57ef3a Gerrit-Change-Number: 9745 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 12:59:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 13:00:51 2018 From: gerrit-no-reply at lists.osmocom.org (Alexander Chemeris) Date: Tue, 26 Jun 2018 13:00:51 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce counter for active sessions In-Reply-To: References: Message-ID: Alexander Chemeris has posted comments on this change. ( https://gerrit.osmocom.org/9745 ) Change subject: libmsc/gsm_09_11.c: introduce counter for active sessions ...................................................................... Patch Set 1: > > I wonder if it's possible to split SS from USSD but that's a > minor issue. > > Unfortunately, this is impossible because we don't parse the > GSM 04.80 payload of Facility IE in OsmoMSC. Should be possible > in OsmoHLR meanwhile ;) I see. Please add it to OsmoHLR when you get to that point! -- To view, visit https://gerrit.osmocom.org/9745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia17e7c747fffb5267d3ca5bc4193c1be4a57ef3a Gerrit-Change-Number: 9745 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 13:00:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:07:39 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 14:07:39 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Pau Espin Pedrol has uploaded a new patch set (#3) to the change originally created by Harald Welte. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Add debian packaging rules This allows us to package osmopy as debian package. The package currently includes both the library as well as the executables/scripts. It might make sense to separate that into a pure library package and an "utils" package Related: SYS#3028 Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 --- A debian/changelog A debian/compat A debian/control A debian/copyright A debian/rules A debian/source/format 6 files changed, 85 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/python/osmo-python-tests refs/changes/96/9396/3 -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Thorsten Alteholz -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:08:25 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 14:08:25 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 3: Debian packages builtsuccessfully in my own OBS: https://build.opensuse.org/package/binaries/home:pespin:branches:network:osmocom:nightly/osmo-python-tests/Debian_9.0 -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Tue, 26 Jun 2018 14:08:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:13:52 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 14:13:52 +0000 Subject: Change in osmo-ci[master]: obs-nightly: build debian pkgs from osmo-python-tests Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9746 Change subject: obs-nightly: build debian pkgs from osmo-python-tests ...................................................................... obs-nightly: build debian pkgs from osmo-python-tests Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/46/9746/1 diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 3659d70..b616a8f 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -161,6 +161,7 @@ checkout osmo-mgw checkout osmo-msc checkout osmo-bsc + checkout python/osmo-python-tests checkout rtl-sdr checkout osmo-fl2k @@ -186,6 +187,7 @@ build osmo-mgw build osmo-msc build osmo-bsc + build osmo-python-tests build rtl-sdr build osmo-fl2k -- To view, visit https://gerrit.osmocom.org/9746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 Gerrit-Change-Number: 9746 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:14:09 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 14:14:09 +0000 Subject: Change in osmo-ci[master]: obs-nightly: build debian pkgs from osmo-python-tests In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9746 ) Change subject: obs-nightly: build debian pkgs from osmo-python-tests ...................................................................... Patch Set 1: Requires: https://gerrit.osmocom.org/#/c/python/osmo-python-tests/+/9396/ -- To view, visit https://gerrit.osmocom.org/9746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 Gerrit-Change-Number: 9746 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Jun 2018 14:14:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:16:37 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 26 Jun 2018 14:16:37 +0000 Subject: Change in osmo-ci[master]: obs-nightly: build debian pkgs from osmo-python-tests In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9746 ) Change subject: obs-nightly: build debian pkgs from osmo-python-tests ...................................................................... Patch Set 1: I created the repo in osmocom nightly repo: https://build.opensuse.org/repositories/network:osmocom:nightly/osmo-python-tests -- To view, visit https://gerrit.osmocom.org/9746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 Gerrit-Change-Number: 9746 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Jun 2018 14:16:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:46:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:46:48 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce counter for active sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9745 ) Change subject: libmsc/gsm_09_11.c: introduce counter for active sessions ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9745 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia17e7c747fffb5267d3ca5bc4193c1be4a57ef3a Gerrit-Change-Number: 9745 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 14:46:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:48:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:48:27 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: forward unhandled GSUP messages towards MSC In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9656 ) Change subject: libvlr/vlr.c: forward unhandled GSUP messages towards MSC ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/9656/3/src/libvlr/vlr.c File src/libvlr/vlr.c: https://gerrit.osmocom.org/#/c/9656/3/src/libvlr/vlr.c at 1045 PS3, Line 1045: LOGVSUBP(LOGL_NOTICE, vsub, "Rx GSUP msg_type=%s " now we get a NOTICE log message every time this happens, which is probably not what you want. I would remove any logging here and simpply log from the call-back function. -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 14:48:27 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:51:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:51:55 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9711 ) Change subject: libmsc/gsm_09_11.c: introduce rate counters for NC_SS sessions ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9711 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c9475abc9951d82f3342fdc5aaa367836f7741 Gerrit-Change-Number: 9711 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 14:51:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:52:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:52:08 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: forward unhandled GSUP messages towards MSC In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9656 ) Change subject: libvlr/vlr.c: forward unhandled GSUP messages towards MSC ...................................................................... Patch Set 3: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 14:52:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:52:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:52:20 +0000 Subject: Change in osmo-ci[master]: obs-nightly: build debian pkgs from osmo-python-tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9746 ) Change subject: obs-nightly: build debian pkgs from osmo-python-tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 Gerrit-Change-Number: 9746 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Jun 2018 14:52:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:52:55 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:52:55 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Thorsten Alteholz Gerrit-Comment-Date: Tue, 26 Jun 2018 14:52:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:52:56 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:52:56 +0000 Subject: Change in python/osmo-python-tests[master]: Add debian packaging rules In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9396 ) Change subject: Add debian packaging rules ...................................................................... Add debian packaging rules This allows us to package osmopy as debian package. The package currently includes both the library as well as the executables/scripts. It might make sense to separate that into a pure library package and an "utils" package Related: SYS#3028 Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 --- A debian/changelog A debian/compat A debian/control A debian/copyright A debian/rules A debian/source/format 6 files changed, 85 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..3bee65a --- /dev/null +++ b/debian/changelog @@ -0,0 +1,5 @@ +osmo-python-tests (0.0.9) unstable; urgency=medium + + * Initial package + + -- Harald Welte Thu, 31 May 2019 10:33:31 +0100 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..f0df4c0 --- /dev/null +++ b/debian/control @@ -0,0 +1,37 @@ +Source: osmo-python-tests +Section: python +Priority: optional +Maintainer: Harald Welte +Build-Depends: debhelper (>= 9), python, dh-python, python-setuptools, python3, python3-setuptools +Standards-Version: 3.9.8 +Homepage: http://git.osmocom.org/python/osmo-python-tests/ +Vcs-Git: git://git.osmocom.org/python/osmo-python-tests +Vcs-Browser: http://git.osmocom.org/python/osmo-python-tests/ + +Package: python2-osmopy-libs +Architecture: all +Depends: ${python:Depends}, ${misc:Depends} +Description: Python code (not only) for testing of Osmocom programs + . + This package contains the Python 2 version of osmopy libraries. + +Package: python2-osmopy-utils +Architecture: all +Depends: ${python:Depends}, ${misc:Depends}, python2-osmopy-libs +Description: Python code (not only) for testing of Osmocom programs + . + This package contains the Python 2 version of osmopy utils. + +Package: python3-osmopy-libs +Architecture: all +Depends: ${python3:Depends}, ${misc:Depends} +Description: Python code (not only) for testing of Osmocom programs + . + This package contains the Python 3 version of osmopy libraries. + +Package: python3-osmopy-utils +Architecture: all +Depends: ${python3:Depends}, ${misc:Depends}, python3-osmopy-libs +Description: Python code (not only) for testing of Osmocom programs + . + This package contains the Python 3 version of osmopy utils. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..22d0b8b --- /dev/null +++ b/debian/copyright @@ -0,0 +1,27 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: osmo-python-tests +Source: http://git.osmocom.org/python/osmo-python-tests/ + +Files: osmopy/obscvty.py +Copyright: Copyright (C) 2012, 2013 Holger Hans Peter Freyther +License: GPL-2+ + +Files: osmopy/osmo_ipa.py +Copyright: Copyright (C) 2016 sysmocom s.f.m.c. GmbH +License: GPL-3+ + +Files: osmopy/osmoutil.py +Copyright: (C) 2013 by Katerina Barone-Adesi +License: GPL-3+ + +Files: osmopy/osmo_interact/* +Copyright: (C) 2017 by sysmocom s.f.m.c. GmbH +License: GPL-3+ + +Files: debian/* +Copyright: 2018 Harald Welte +License: GPL-2+ + +Files: setup.py +Copyright: (C) 2013 by Katerina Barone-Adesi +License: AGPL-3.0+ diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..d9e98af --- /dev/null +++ b/debian/rules @@ -0,0 +1,14 @@ +#!/usr/bin/make -f + +%: + dh $@ --with python2,python3 + +override_dh_auto_install: + python2 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python2-osmopy-libs + rm -rf $(CURDIR)/debian/python2-osmopy-libs/usr/bin + python2 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python2-osmopy-utils + rm -rf $(CURDIR)/debian/python2-osmopy-utils/usr/lib + python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-libs + rm -rf $(CURDIR)/debian/python3-osmopy-libs/usr/bin + python3 setup.py install --install-layout=deb --root=$(CURDIR)/debian/python3-osmopy-utils + rm -rf $(CURDIR)/debian/python3-osmopy-utils/usr/lib diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) -- To view, visit https://gerrit.osmocom.org/9396 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I332fb82d0e8dd09c5cf53caafa6a63297a8e3881 Gerrit-Change-Number: 9396 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Thorsten Alteholz -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:53:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:53:01 +0000 Subject: Change in osmo-ci[master]: obs-nightly: build debian pkgs from osmo-python-tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9746 ) Change subject: obs-nightly: build debian pkgs from osmo-python-tests ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 Gerrit-Change-Number: 9746 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Jun 2018 14:53:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 14:53:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 14:53:02 +0000 Subject: Change in osmo-ci[master]: obs-nightly: build debian pkgs from osmo-python-tests In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9746 ) Change subject: obs-nightly: build debian pkgs from osmo-python-tests ...................................................................... obs-nightly: build debian pkgs from osmo-python-tests Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 --- M scripts/osmocom-nightly-packages.sh 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/scripts/osmocom-nightly-packages.sh b/scripts/osmocom-nightly-packages.sh index 3659d70..b616a8f 100755 --- a/scripts/osmocom-nightly-packages.sh +++ b/scripts/osmocom-nightly-packages.sh @@ -161,6 +161,7 @@ checkout osmo-mgw checkout osmo-msc checkout osmo-bsc + checkout python/osmo-python-tests checkout rtl-sdr checkout osmo-fl2k @@ -186,6 +187,7 @@ build osmo-mgw build osmo-msc build osmo-bsc + build osmo-python-tests build rtl-sdr build osmo-fl2k -- To view, visit https://gerrit.osmocom.org/9746 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id8b4b4d7a1e4328565b06faff2eaccea7efa74e2 Gerrit-Change-Number: 9746 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Jun 26 15:13:26 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Jun 2018 15:13:26 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-asn1c_=C2=BB_a1=3Dde?= =?UTF-8?Q?fault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#166?= In-Reply-To: <736578046.320.1529939407080.JavaMail.jenkins@jenkins.osmocom.org> References: <736578046.320.1529939407080.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1295046237.338.1530026006849.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Jun 26 15:24:41 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 26 Jun 2018 15:24:41 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: forward unhandled GSUP messages towards MSC In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9656 to look at the new patch set (#4). Change subject: libvlr/vlr.c: forward unhandled GSUP messages towards MSC ...................................................................... libvlr/vlr.c: forward unhandled GSUP messages towards MSC Some internal sub-systems, such as SS/USSD or SMS implementation, may also need to use GSUP connection with HLR. Previously, it was only available within the libvlr code, and nowhere else. Let's introduce the generic GSUP message router, which will receive messages unhandled by VLR itself, and route them to a handler depending on the message type. Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 --- M include/osmocom/msc/vlr.h M src/libmsc/gsm_04_08.c M src/libvlr/vlr.c 3 files changed, 20 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/56/9656/4 -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 15:25:19 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 26 Jun 2018 15:25:19 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: forward unhandled GSUP messages towards MSC In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9656 ) Change subject: libvlr/vlr.c: forward unhandled GSUP messages towards MSC ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/9656/3/src/libvlr/vlr.c File src/libvlr/vlr.c: https://gerrit.osmocom.org/#/c/9656/3/src/libvlr/vlr.c at 1045 PS3, Line 1045: LOGVSUBP(LOGL_NOTICE, vsub, "Rx GSUP msg_type=%s " > now we get a NOTICE log message every time this happens, which is probably not what you want. [?] Done -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 15:25:19 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 17:14:41 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Jun 2018 17:14:41 +0000 Subject: Change in osmo-bsc[master]: lcls: set codec info when performing MGW operation Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9747 Change subject: lcls: set codec info when performing MGW operation ...................................................................... lcls: set codec info when performing MGW operation While GSCON is setting the codec info when operating on the MGW, LCLS is not doing that yet. This means that the MDCX messages that are sent by LCLS do not contain any payload type and also no ptime or rtpmap fields. This also causes the following TTCN3 tests to fail: TC_lcls_connect_break TC_lcls_connect_clear TC_lcls_gcr_bway_connect TC_lcls_gcr_bway_dont_connect_csc - Make mgcp_pick_codec() public as bsc_subscr_pick_codec() - use bsc_subscr_pick_codec() to set codec info in osmo_bsc_lcls.c Change-Id: I383d55fa602cda0926dd701ee517a299db578260 Closes: OS#3358 --- M include/osmocom/bsc/bsc_subscr_conn_fsm.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/osmo_bsc_lcls.c 3 files changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/47/9747/1 diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h index e8226f4..9e56f6b 100644 --- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h +++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h @@ -66,6 +66,9 @@ struct gsm_subscriber_connection; struct gsm_network; +struct mgcp_conn_peer; /* Allocate a subscriber connection and its associated FSM */ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net); + +void bsc_subscr_pick_codec(struct mgcp_conn_peer *conn_peer, struct gsm_subscriber_connection *conn); diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 0f3d9d2..66cdbba 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -122,8 +122,7 @@ /* Depending on the channel mode and rate, set the codec type that is signalled * towards the MGW. */ -static void mgcp_pick_codec(struct gsm_subscriber_connection *conn, - struct mgcp_conn_peer *conn_peer) +void bsc_subscr_pick_codec(struct mgcp_conn_peer *conn_peer, struct gsm_subscriber_connection *conn) { switch (conn->user_plane.chan_mode) { case GSM48_CMODE_SPEECH_V1: @@ -440,7 +439,7 @@ /* A voice channel is requested, so we run down the * mgcp-ass-mgcp state-chain (see FIXME above) */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); conn_peer.call_id = conn->sccp.conn_id; conn_peer.ptime = 20; osmo_strlcpy(conn_peer.endpoint, get_mgw_ep_name(conn), sizeof(conn_peer.endpoint)); @@ -600,7 +599,7 @@ /* Prepare parameters with the information we got during the assignment */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; @@ -667,7 +666,7 @@ /* Prepare parameters with the connection information we got * with the assignment command */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); conn_peer.call_id = conn->sccp.conn_id; sin = (struct sockaddr_in *)&conn->user_plane.aoip_rtp_addr_remote; conn_peer.port = osmo_ntohs(sin->sin_port); @@ -792,7 +791,7 @@ /* Prepare parameters with the information we got during the * handover procedure (via IPACC) */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; diff --git a/src/osmo-bsc/osmo_bsc_lcls.c b/src/osmo-bsc/osmo_bsc_lcls.c index c2b0760..b197e66 100644 --- a/src/osmo-bsc/osmo_bsc_lcls.c +++ b/src/osmo-bsc/osmo_bsc_lcls.c @@ -244,6 +244,7 @@ memset(&peer, 0, sizeof(peer)); peer.port = htons(sin->sin_port); osmo_strlcpy(peer.addr, inet_ntoa(sin->sin_addr), sizeof(peer.addr)); + bsc_subscr_pick_codec(&peer, conn); mgcp_conn_modify(conn->user_plane.fi_msc, 0, &peer); } @@ -563,6 +564,7 @@ memset(&peer, 0, sizeof(peer)); peer.port = htons(sin->sin_port); osmo_strlcpy(peer.addr, inet_ntoa(sin->sin_addr), sizeof(peer.addr)); + bsc_subscr_pick_codec(&peer, conn); mgcp_conn_modify(conn->user_plane.fi_msc, 0, &peer); } -- To view, visit https://gerrit.osmocom.org/9747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I383d55fa602cda0926dd701ee517a299db578260 Gerrit-Change-Number: 9747 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 17:59:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 17:59:29 +0000 Subject: Change in osmo-bsc[master]: lcls: set codec info when performing MGW operation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9747 ) Change subject: lcls: set codec info when performing MGW operation ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I383d55fa602cda0926dd701ee517a299db578260 Gerrit-Change-Number: 9747 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 17:59:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 17:59:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 17:59:32 +0000 Subject: Change in osmo-bsc[master]: lcls: set codec info when performing MGW operation In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9747 ) Change subject: lcls: set codec info when performing MGW operation ...................................................................... lcls: set codec info when performing MGW operation While GSCON is setting the codec info when operating on the MGW, LCLS is not doing that yet. This means that the MDCX messages that are sent by LCLS do not contain any payload type and also no ptime or rtpmap fields. This also causes the following TTCN3 tests to fail: TC_lcls_connect_break TC_lcls_connect_clear TC_lcls_gcr_bway_connect TC_lcls_gcr_bway_dont_connect_csc - Make mgcp_pick_codec() public as bsc_subscr_pick_codec() - use bsc_subscr_pick_codec() to set codec info in osmo_bsc_lcls.c Change-Id: I383d55fa602cda0926dd701ee517a299db578260 Closes: OS#3358 --- M include/osmocom/bsc/bsc_subscr_conn_fsm.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/osmo_bsc_lcls.c 3 files changed, 10 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h index e8226f4..9e56f6b 100644 --- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h +++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h @@ -66,6 +66,9 @@ struct gsm_subscriber_connection; struct gsm_network; +struct mgcp_conn_peer; /* Allocate a subscriber connection and its associated FSM */ struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net); + +void bsc_subscr_pick_codec(struct mgcp_conn_peer *conn_peer, struct gsm_subscriber_connection *conn); diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index 0f3d9d2..66cdbba 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -122,8 +122,7 @@ /* Depending on the channel mode and rate, set the codec type that is signalled * towards the MGW. */ -static void mgcp_pick_codec(struct gsm_subscriber_connection *conn, - struct mgcp_conn_peer *conn_peer) +void bsc_subscr_pick_codec(struct mgcp_conn_peer *conn_peer, struct gsm_subscriber_connection *conn) { switch (conn->user_plane.chan_mode) { case GSM48_CMODE_SPEECH_V1: @@ -440,7 +439,7 @@ /* A voice channel is requested, so we run down the * mgcp-ass-mgcp state-chain (see FIXME above) */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); conn_peer.call_id = conn->sccp.conn_id; conn_peer.ptime = 20; osmo_strlcpy(conn_peer.endpoint, get_mgw_ep_name(conn), sizeof(conn_peer.endpoint)); @@ -600,7 +599,7 @@ /* Prepare parameters with the information we got during the assignment */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; @@ -667,7 +666,7 @@ /* Prepare parameters with the connection information we got * with the assignment command */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); conn_peer.call_id = conn->sccp.conn_id; sin = (struct sockaddr_in *)&conn->user_plane.aoip_rtp_addr_remote; conn_peer.port = osmo_ntohs(sin->sin_port); @@ -792,7 +791,7 @@ /* Prepare parameters with the information we got during the * handover procedure (via IPACC) */ memset(&conn_peer, 0, sizeof(conn_peer)); - mgcp_pick_codec(conn, &conn_peer); + bsc_subscr_pick_codec(&conn_peer, conn); addr.s_addr = osmo_ntohl(lchan->abis_ip.bound_ip); osmo_strlcpy(conn_peer.addr, inet_ntoa(addr), sizeof(conn_peer.addr)); conn_peer.port = lchan->abis_ip.bound_port; diff --git a/src/osmo-bsc/osmo_bsc_lcls.c b/src/osmo-bsc/osmo_bsc_lcls.c index c2b0760..b197e66 100644 --- a/src/osmo-bsc/osmo_bsc_lcls.c +++ b/src/osmo-bsc/osmo_bsc_lcls.c @@ -244,6 +244,7 @@ memset(&peer, 0, sizeof(peer)); peer.port = htons(sin->sin_port); osmo_strlcpy(peer.addr, inet_ntoa(sin->sin_addr), sizeof(peer.addr)); + bsc_subscr_pick_codec(&peer, conn); mgcp_conn_modify(conn->user_plane.fi_msc, 0, &peer); } @@ -563,6 +564,7 @@ memset(&peer, 0, sizeof(peer)); peer.port = htons(sin->sin_port); osmo_strlcpy(peer.addr, inet_ntoa(sin->sin_addr), sizeof(peer.addr)); + bsc_subscr_pick_codec(&peer, conn); mgcp_conn_modify(conn->user_plane.fi_msc, 0, &peer); } -- To view, visit https://gerrit.osmocom.org/9747 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I383d55fa602cda0926dd701ee517a299db578260 Gerrit-Change-Number: 9747 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 18:00:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 18:00:13 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement network-initiated sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9661 ) Change subject: libmsc/gsm_09_11.c: implement network-initiated sessions ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ief14f8914ef013bd6efd7be842f81fbf053f02e2 Gerrit-Change-Number: 9661 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 18:00:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 18:00:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 18:00:18 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement network-initiated sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9661 ) Change subject: libmsc/gsm_09_11.c: implement network-initiated sessions ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9661 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ief14f8914ef013bd6efd7be842f81fbf053f02e2 Gerrit-Change-Number: 9661 Gerrit-PatchSet: 6 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 18:00:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 18:01:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 18:01:15 +0000 Subject: Change in osmo-msc[master]: libvlr/vlr.c: forward unhandled GSUP messages towards MSC In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9656 ) Change subject: libvlr/vlr.c: forward unhandled GSUP messages towards MSC ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9656 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib8146ce5788c8f249dcaa39d61bd0388574bf892 Gerrit-Change-Number: 9656 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Jun 2018 18:01:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 18:01:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 18:01:23 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: forward SS/USSD messages to HLR over GSUP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9658 ) Change subject: libmsc/gsm_09_11.c: forward SS/USSD messages to HLR over GSUP ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ide5f7e350b537db80cd8326fc59c8bf2e01cb68c Gerrit-Change-Number: 9658 Gerrit-PatchSet: 8 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 18:01:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 18:01:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Jun 2018 18:01:27 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: forward SS/USSD messages to HLR over GSUP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9658 ) Change subject: libmsc/gsm_09_11.c: forward SS/USSD messages to HLR over GSUP ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9658 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ide5f7e350b537db80cd8326fc59c8bf2e01cb68c Gerrit-Change-Number: 9658 Gerrit-PatchSet: 8 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Alexander Chemeris Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Tue, 26 Jun 2018 18:01:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Jun 26 23:05:29 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Jun 2018 23:05:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_{early, late}_conn_fail: dyn PDCH: clean up cfg Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/9748 Change subject: bsc: fix TC_{early,late}_conn_fail: dyn PDCH: clean up cfg ...................................................................... bsc: fix TC_{early,late}_conn_fail: dyn PDCH: clean up cfg When leaving TS 6 in Osmocom style dyn TS mode, the initialization of the BTS will cause a RSL Chan Activ, which the tests BSC_Tests.TC_early_conn_fail and BSC_Tests.TC_late_conn_fail will interpret as the channel activation that they expect to come from the Channel Request. They will hence issue the Conn Fail message before the lchan is established, and are getting confused on what they expect to happen. Change-Id: I2bde987eefe7129c9f7c3b81b624d55cb66a75d0 --- M bsc/BSC_Tests.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/48/9748/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 0107091..328fc59 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2346,6 +2346,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, TCHF_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } @@ -2380,6 +2383,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, TCHF_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } @@ -2444,6 +2450,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, PDCH_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } @@ -2470,6 +2479,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, NONE_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/9748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2bde987eefe7129c9f7c3b81b624d55cb66a75d0 Gerrit-Change-Number: 9748 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Jun 27 00:58:32 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 27 Jun 2018 00:58:32 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_maste?= =?UTF-8?Q?r-openbsc_=C2=BB_--disable-iu,--enab?= =?UTF-8?Q?le-mgcp-transcoding,--enable-smpp,osmocom-master-debian9_#2173?= Message-ID: <393570247.343.1530061112278.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 881.33 KB...] Decoded replies: {1008: {'mtype': 'GET_REPLY', 'var': 'timezone', 'id': 1008, 'value': 'off'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-bsc/osmo-bsc-sccplite' '-r' 'tmp_dummy_sock' '-c' '/build/openbsc/tests/../doc/examples/osmo-bsc-sccplite/osmo-bsc-sccplite.cfg' Connecting to host 127.0.0.1:4249 Sending "GET 1000 bts.0.trx.0.arfcn" Got message: GET_REPLY 1000 bts.0.trx.0.arfcn 871 Decoded replies: {1000: {'mtype': 'GET_REPLY', 'var': 'bts.0.trx.0.arfcn', 'id': 1000, 'value': '871'}} Sending "SET 1001 bts.0.trx.0.arfcn 873" Got message: SET_REPLY 1001 bts.0.trx.0.arfcn 873 Decoded replies: {1001: {'mtype': 'SET_REPLY', 'var': 'bts.0.trx.0.arfcn', 'id': 1001, 'value': '873'}} Sending "GET 1002 bts.0.trx.0.arfcn" Got message: GET_REPLY 1002 bts.0.trx.0.arfcn 873 Decoded replies: {1002: {'mtype': 'GET_REPLY', 'var': 'bts.0.trx.0.arfcn', 'id': 1002, 'value': '873'}} Sending "SET 1003 bts.0.trx.0.arfcn 2000" Got message: ERROR 1003 Input not within the range Decoded replies: {1003: {'mtype': 'ERROR', 'id': 1003, 'error': 'Input not within the range'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-bsc/osmo-bsc-sccplite' '-r' 'tmp_dummy_sock' '-c' '/build/openbsc/tests/../doc/examples/osmo-bsc-sccplite/osmo-bsc-sccplite.cfg' Connecting to host 127.0.0.1:4249 Sending "GET 1000 bts.0.trx.0.max-power-reduction" Got message: GET_REPLY 1000 bts.0.trx.0.max-power-reduction 20 Decoded replies: {1000: {'mtype': 'GET_REPLY', 'var': 'bts.0.trx.0.max-power-reduction', 'id': 1000, 'value': '20'}} Sending "SET 1001 bts.0.trx.0.max-power-reduction 22" Got message: SET_REPLY 1001 bts.0.trx.0.max-power-reduction 22 Decoded replies: {1001: {'mtype': 'SET_REPLY', 'var': 'bts.0.trx.0.max-power-reduction', 'id': 1001, 'value': '22'}} Sending "GET 1002 bts.0.trx.0.max-power-reduction" Got message: GET_REPLY 1002 bts.0.trx.0.max-power-reduction 22 Decoded replies: {1002: {'mtype': 'GET_REPLY', 'var': 'bts.0.trx.0.max-power-reduction', 'id': 1002, 'value': '22'}} Sending "SET 1003 bts.0.trx.0.max-power-reduction 1" Got message: ERROR 1003 Value must be even Decoded replies: {1003: {'mtype': 'ERROR', 'id': 1003, 'error': 'Value must be even'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-nitb/osmo-nitb' '-c' '/build/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg' '-l' 'test_hlr.sqlite3' Connecting to host 127.0.0.1:4249 Sending "GET 1000 bts.0.apply-configuration" Got message: ERROR 1000 Write Only attribute Decoded replies: {1000: {'mtype': 'ERROR', 'id': 1000, 'error': 'Write Only attribute'}} Sending "SET 1001 bts.0.apply-configuration 1" Got message: SET_REPLY 1001 bts.0.apply-configuration Tried to drop the BTS Decoded replies: {1001: {'mtype': 'SET_REPLY', 'var': 'bts.0.apply-configuration', 'id': 1001, 'value': 'Tried to drop the BTS'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-nitb/osmo-nitb' '-c' '/build/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg' '-l' 'test_hlr.sqlite3' Connecting to host 127.0.0.1:4249 Sending "GET 1000 bts.0ok testNumberOfBTS (__main__.TestCtrlNITB) ... ok testSubscriberAddRemove (__main__.TestCtrlNITB) ... ok testSubscriberAddWithKi (__main__.TestCtrlNITB) Test that we can set the algorithm to none, xor, comp128v1 ... ok testSubscriberList (__main__.TestCtrlNITB) ... .gprs-mode" Got message: GET_REPLY 1000 bts.0.gprs-mode none Decoded replies: {1000: {'mtype': 'GET_REPLY', 'var': 'bts.0.gprs-mode', 'id': 1000, 'value': 'none'}} Sending "SET 1001 bts.0.gprs-mode bla" Got message: ERROR 1001 Mode is not known Decoded replies: {1001: {'mtype': 'ERROR', 'id': 1001, 'error': 'Mode is not known'}} Sending "SET 1002 bts.0.gprs-mode egprs" Got message: SET_REPLY 1002 bts.0.gprs-mode egprs Decoded replies: {1002: {'mtype': 'SET_REPLY', 'var': 'bts.0.gprs-mode', 'id': 1002, 'value': 'egprs'}} Sending "GET 1003 bts.0.gprs-mode" Got message: GET_REPLY 1003 bts.0.gprs-mode egprs Decoded replies: {1003: {'mtype': 'GET_REPLY', 'var': 'bts.0.gprs-mode', 'id': 1003, 'value': 'egprs'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-nitb/osmo-nitb' '-c' '/build/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg' '-l' 'test_hlr.sqlite3' Connecting to host 127.0.0.1:4249 Sending "GET 1000 number-of-bts" Got message: GET_REPLY 1000 number-of-bts 1 Decoded replies: {1000: {'mtype': 'GET_REPLY', 'var': 'number-of-bts', 'id': 1000, 'value': '1'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-nitb/osmo-nitb' '-c' '/build/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg' '-l' 'test_hlr.sqlite3' Connecting to host 127.0.0.1:4249 Sending "SET 1000 subscriber-modify-v1 2620345,445566" Got message: SET_REPLY 1000 subscriber-modify-v1 OK Decoded replies: {1000: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1000, 'value': 'OK'}} Sending "SET 1001 subscriber-modify-v1 2620345,445567" Got message: SET_REPLY 1001 subscriber-modify-v1 OK Decoded replies: {1001: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1001, 'value': 'OK'}} Sending "SET 1002 subscriber-delete-v1 2620345" Got message: SET_REPLY 1002 subscriber-delete-v1 Removed Decoded replies: {1002: {'mtype': 'SET_REPLY', 'var': 'subscriber-delete-v1', 'id': 1002, 'value': 'Removed'}} Sending "SET 1003 subscriber-delete-v1 2620345" Got message: ERROR 1003 Failed to find subscriber Decoded replies: {1003: {'mtype': 'ERROR', 'id': 1003, 'error': 'Failed to find subscriber'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-nitb/osmo-nitb' '-c' '/build/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg' '-l' 'test_hlr.sqlite3' Connecting to host 127.0.0.1:4249 Sending "SET 1000 subscriber-modify-v1 2620345,445566" Got message: SET_REPLY 1000 subscriber-modify-v1 OK Decoded replies: {1000: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1000, 'value': 'OK'}} Sending "SET 1001 subscriber-modify-v1 2620345,445566,none" Got message: SET_REPLY 1001 subscriber-modify-v1 OK Decoded replies: {1001: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1001, 'value': 'OK'}} Sending "SET 1002 subscriber-modify-v1 2620345,445566,xor" Got message: ERROR 1002 Value failed verification. Decoded replies: {1002: {'mtype': 'ERROR', 'id': 1002, 'error': 'Value failed verification.'}} Sending "SET 1003 subscriber-modify-v1 2620345,445566,comp128v1,00112233445566778899AABBCCDDEEFF" Got message: SET_REPLY 1003 subscriber-modify-v1 OK Decoded replies: {1003: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1003, 'value': 'OK'}} Sending "SET 1004 subscriber-modify-v1 2620345,445566,comp128v2,00112233445566778899AABBCCDDEEFF" Got message: SET_REPLY 1004 subscriber-modify-v1 OK Decoded replies: {1004: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1004, 'value': 'OK'}} Sending "SET 1005 subscriber-modify-v1 2620345,445566,comp128v3,00112233445566778899AABBCCDDEEFF" Got message: SET_REPLY 1005 subscriber-modify-v1 OK Decoded replies: {1005: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1005, 'value': 'OK'}} Sending "SET 1006 subscriber-modify-v1 2620345,445566,none" Got message: SET_REPLY 1006 subscriber-modify-v1 OK Decoded replies: {1006: {'mtype': 'SET_REPLY', 'var': 'subscriber-modify-v1', 'id': 1006, 'value': 'OK'}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-nitb/osmo-nitb' '-c' '/buiok testAccessList (__main__.TestCtrlNAT) ... ok testAccessListManagement (__main__.TestCtrlNAT) ... ok ---------------------------------------------------------------------- Ran 21 tests in 111.066s OK ld/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg' '-l' 'test_hlr.sqlite3' Connecting to host 127.0.0.1:4249 Sending "GET 1000 subscriber-list-active-v1" Got message: GET_REPLY 1000 subscriber-list-active-v1 Decoded replies: {1000: {'mtype': 'GET_REPLY', 'var': 'subscriber-list-active-v1', 'id': 1000, 'value': None}} Terminating took 2.679s Launching: PWD=/build/openbsc './src/osmo-bsc_nat/osmo-bsc_nat' '-c' '/build/openbsc/tests/../doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg' Connecting to host 127.0.0.1:4250 Sending "GET 1000 net.0.bsc_cfg.0.access-list-name" Got message: GET_REPLY 1000 net Decoded replies: {1000: {'mtype': 'GET_REPLY', 'var': 'net', 'id': 1000, 'value': None}} Sending "SET 1001 net.0.bsc_cfg.0.access-list-name bla" Got message: SET_REPLY 1001 net bla Decoded replies: {1001: {'mtype': 'SET_REPLY', 'var': 'net', 'id': 1001, 'value': 'bla'}} Sending "GET 1002 net.0.bsc_cfg.0.access-list-name" Got message: GET_REPLY 1002 net bla Decoded replies: {1002: {'mtype': 'GET_REPLY', 'var': 'net', 'id': 1002, 'value': 'bla'}} Sending "SET 1003 net.0.bsc_cfg.0.no-access-list-name 1" Got message: SET_REPLY 1003 net Decoded replies: {1003: {'mtype': 'SET_REPLY', 'var': 'net', 'id': 1003, 'value': None}} Sending "GET 1004 net.0.bsc_cfg.0.access-list-name" Got message: GET_REPLY 1004 net Decoded replies: {1004: {'mtype': 'GET_REPLY', 'var': 'net', 'id': 1004, 'value': None}} Launching: PWD=/build/openbsc './src/osmo-bsc_nat/osmo-bsc_nat' '-c' '/build/openbsc/tests/../doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg' Connecting to host 127.0.0.1:4250 Sending "SET 1000 net.0.add.allow.access-list.404 abc" Got message: ERROR 1000 Access list not known Decoded replies: {1000: {'mtype': 'ERROR', 'id': 1000, 'error': 'Access list not known'}} Sending "SET 1001 net.0.add.allow.access-list.bla ^234$" Got message: SET_REPLY 1001 net.0.add.allow.access-list.bla IMSI allow added to access list Decoded replies: {1001: {'mtype': 'SET_REPLY', 'var': 'net.0.add.allow.access-list.bla', 'id': 1001, 'value': 'IMSI allow added to access list'}} /usr/bin/python ./smpp_test_runner.py -w /build/openbsc -v testSMPPCrashes (__main__.TestSMPPNITB) ... confpath /build/openbsc/tests/.., workdir /build/openbsc Running tests for specific SMPP Opening /dev/null Launching: PWD=/build/openbsc './src/osmo-nitb/osmo-nitb' '-c' '/build/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg' > ls -l /proc/5547/fd total 0 lr-x------ 1 build build 64 Jun 27 00:58 0 -> pipe:[997857041] l-wx------ 1 build build 64 Jun 27 00:58 1 -> pipe:[997857042] l-wx------ 1 build build 64 Jun 27 00:58 2 -> pipe:[997857043] l-wx------ 1 build build 64 Jun 27 00:58 3 -> /dev/null > ss -tn State Recv-Q Send-Q Local Address:Port Peer Address:Port > ss -tln State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 10 127.0.0.1:4242 *:* LISTEN 0 10 *:2775 *:* LISTEN 0 10 127.0.0.1:4249 *:* LISTEN 0 10 *:3002 *:* LISTEN 0 10 *:3003 *:* > ps xua | grep osmo build 5548 0.0 0.0 57616 7100 ? D 00:58 0:00 ./src/osmo-nitb/osmo-nitb -c /build/openbsc/tests/../doc/examples/osmo-nitb/nanobts/openbsc.cfg build 5555 0.0 0.0 4336 772 ? S 00:58 0:00 /bin/sh -c ps xua | grep osmo build 5557 0.0 0.0 11128 944 ? R 00:58 0:00 grep osmo ok Socket: in 1 tries, connected to 127.0.0.1:4242 (1 sockets open) Socket: closing 127.0.0.1:4242 (0 sockets open) Terminating took 2.679s ---------------------------------------------------------------------- Ran 1 test in 3.445s OK rm -f ../hlr.sqlite3 make[5]: Leaving directory '/build/openbsc/tests' make[4]: Leaving directory '/build/openbsc/tests' make[3]: Leaving directory '/build/openbsc/tests' make[2]: Leaving directory '/build/openbsc/tests' make[2]: Entering directory '/build/openbsc' make[2]: Leaving directory '/build/openbsc' make[1]: Leaving directory '/build/openbsc' + make distcheck make dist-bzip2 dist-gzip am__post_remove_distdir='@:' make[1]: Entering directory '/build/openbsc' if test -d "openbsc-1.1.0.18-fc08"; then find "openbsc-1.1.0.18-fc08" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "openbsc-1.1.0.18-fc08" || { sleep 5 && rm -rf "openbsc-1.1.0.18-fc08"; }; else :; fi test -d "openbsc-1.1.0.18-fc08" || mkdir "openbsc-1.1.0.18-fc08" (cd doc && make top_distdir=../openbsc-1.1.0.18-fc08 distdir=../openbsc-1.1.0.18-fc08/doc \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/build/openbsc/doc' (cd examples && make top_distdir=../../openbsc-1.1.0.18-fc08 distdir=../../openbsc-1.1.0.18-fc08/doc/examples \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/openbsc/doc/examples' make \ top_distdir="../../openbsc-1.1.0.18-fc08" distdir="../../openbsc-1.1.0.18-fc08/doc/examples" \ dist-hook make[4]: Entering directory '/build/openbsc/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="../../openbsc-1.1.0.18-fc08/doc/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[4]: Leaving directory '/build/openbsc/doc/examples' make[3]: Leaving directory '/build/openbsc/doc/examples' make[2]: Leaving directory '/build/openbsc/doc' (cd include && make top_distdir=../openbsc-1.1.0.18-fc08 distdir=../openbsc-1.1.0.18-fc08/include \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/build/openbsc/include' (cd openbsc && make top_distdir=../../openbsc-1.1.0.18-fc08 distdir=../../openbsc-1.1.0.18-fc08/include/openbsc \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/openbsc/include/openbsc' make[3]: Leaving directory '/build/openbsc/include/openbsc' make[2]: Leaving directory '/build/openbsc/include' (cd src && make top_distdir=../openbsc-1.1.0.18-fc08 distdir=../openbsc-1.1.0.18-fc08/src \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory '/build/openbsc/src' (cd libcommon && make top_distdir=../../openbsc-1.1.0.18-fc08 distdir=../../openbsc-1.1.0.18-fc08/src/libcommon \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/openbsc/src/libcommon' make[3]: Leaving directory '/build/openbsc/src/libcommon' (cd libmgcp && make top_distdir=../../openbsc-1.1.0.18-fc08 distdir=../../openbsc-1.1.0.18-fc08/src/libmgcp \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory '/build/openbsc/src/libmgcp' Makefile:518: recipe for target 'distdir' failed make[3]: *** [distdir] Segmentation fault (core dumped) make[3]: Leaving directory '/build/openbsc/src/libmgcp' Makefile:528: recipe for target 'distdir' failed make[2]: *** [distdir] Error 1 make[2]: Leaving directory '/build/openbsc/src' Makefile:607: recipe for target 'distdir' failed make[1]: *** [distdir] Error 1 make[1]: Leaving directory '/build/openbsc' Makefile:708: recipe for target 'dist' failed make: *** [dist] Error 2 + cat-testlogs.sh Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Jun 27 01:46:09 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 27 Jun 2018 01:46:09 +0000 Subject: Change in osmo-bsc[master]: fix / clarify rsl dtap cache In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9668 to look at the new patch set (#5). Change subject: fix / clarify rsl dtap cache ...................................................................... fix / clarify rsl dtap cache In certain situations like handover or assignment, DTAP must not go out via RSL directly but is cached to be submitted later. Make sure that all RSL DTAP sending adheres to this: gscon_submit_rsl_dtap() is the new "public" API to request an RSL DTAP to be sent. Depending on the gscon's state, this ends up in the cache or is sent directly. When caching, there is no way to tell whether sending will succeed or not, so semantically it does not make sense to even return a result code. Just return void. Change all "public" callers to gscon_submit_rsl_dtap(). Merge gsm0808_submit_dtap() and submit_dtap() guts to gsm0808_send_rsl_dtap(), static in bsc_subscr_conn_fsm.c: directly send DTAP, assume a conn->lchan to be present, or otherwise trigger a BSSMAP Clear Request. The static submit_dtap() becomes a thin convenience wrapper. Move ho_dtap_cache* functions to bsc_subscr_conn_fsm.c and rename to gscon_dtap_cache_* -- they are not only for handover, also for assignment. Function gsm0808_submit_dtap() m Introduce function gscon_submit_rsl_dtap() Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 --- M include/osmocom/bsc/bsc_subscr_conn_fsm.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_api.c M src/osmo-bsc/bsc_init.c M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_utils.c M src/osmo-bsc/gsm_04_80_utils.c M src/osmo-bsc/osmo_bsc_api.c M tests/bsc/bsc_test.c 9 files changed, 185 insertions(+), 160 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/68/9668/5 -- To view, visit https://gerrit.osmocom.org/9668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 Gerrit-Change-Number: 9668 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 02:05:05 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 27 Jun 2018 02:05:05 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 12 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 27 Jun 2018 02:05:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 02:54:59 2018 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 27 Jun 2018 02:54:59 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 12: All AoIP and SCCPlite ttcn3-bsc-tests are passing now. Still pending are all of the cosmetic issues. And of course an osmo-gsm-tester run. -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 12 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 27 Jun 2018 02:54:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Jun 27 06:24:01 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 27 Jun 2018 06:24:01 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:?= =?UTF-8?Q?_master-openbsc_=C2=BB_--disable-iu,--?= =?UTF-8?Q?enable-mgcp-transcoding,--enable-?= =?UTF-8?Q?smpp,osmocom-master-debian9_#2174?= In-Reply-To: <393570247.343.1530061112278.JavaMail.jenkins@jenkins.osmocom.org> References: <393570247.343.1530061112278.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1483991963.350.1530080641865.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Jun 27 08:52:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 08:52:01 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 12: Code-Review+1 looks fine to me, thanks for the quick follow-up and resolution of all ttcn3-testcase failures. -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 12 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 27 Jun 2018 08:52:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 08:54:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 08:54:32 +0000 Subject: Change in osmo-bsc[master]: fix / clarify rsl dtap cache In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9668 ) Change subject: fix / clarify rsl dtap cache ...................................................................... Patch Set 5: Code-Review-1 comments from June 22nd not yet adressed -- To view, visit https://gerrit.osmocom.org/9668 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6ffd7aa641c8905292c769400048c96aa0949585 Gerrit-Change-Number: 9668 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 27 Jun 2018 08:54:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 08:55:37 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 08:55:37 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 12: we of course still have the "cosmetic issues", hence only +1 at the moment. I'll ask pespin to run this through osmo-gsm-tester -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 12 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 27 Jun 2018 08:55:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 10:22:16 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 10:22:16 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: add --enable-werror to configure flags In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/7298 ) Change subject: jenkins.sh: add --enable-werror to configure flags ...................................................................... Patch Set 1: This one can be abandonned, Werror was already enabled when building without IU support (since iuh headers generate compilation warnings). -- To view, visit https://gerrit.osmocom.org/7298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I76eb9ff1b2c334d70838a9d4f0aa0a77f199368d Gerrit-Change-Number: 7298 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 27 Jun 2018 10:22:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:18:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 11:18:01 +0000 Subject: Change in osmo-sgsn[master]: jenkins.sh: add --enable-werror to configure flags In-Reply-To: References: Message-ID: Harald Welte has abandoned this change. ( https://gerrit.osmocom.org/7298 ) Change subject: jenkins.sh: add --enable-werror to configure flags ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/7298 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I76eb9ff1b2c334d70838a9d4f0aa0a77f199368d Gerrit-Change-Number: 7298 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:18:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 11:18:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: log / comment tweaks In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9627 ) Change subject: log / comment tweaks ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/9627/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/9627/1//COMMIT_MSG at 9 PS1, Line 9: The IPACC CRCX isn't : easily readable in wireshark > can you elaborate on that? Why is it not readable? I tihnk the > decoder for that is merged some 6+ years? ping? -- To view, visit https://gerrit.osmocom.org/9627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I93c2914e766e200d89308cc81dd803e939b9b28c Gerrit-Change-Number: 9627 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 27 Jun 2018 11:18:30 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:19:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 11:19:01 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_{early, late}_conn_fail: dyn PDCH: clean up cfg In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9748 ) Change subject: bsc: fix TC_{early,late}_conn_fail: dyn PDCH: clean up cfg ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2bde987eefe7129c9f7c3b81b624d55cb66a75d0 Gerrit-Change-Number: 9748 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 27 Jun 2018 11:19:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:19:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 11:19:03 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: fix TC_{early, late}_conn_fail: dyn PDCH: clean up cfg In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9748 ) Change subject: bsc: fix TC_{early,late}_conn_fail: dyn PDCH: clean up cfg ...................................................................... bsc: fix TC_{early,late}_conn_fail: dyn PDCH: clean up cfg When leaving TS 6 in Osmocom style dyn TS mode, the initialization of the BTS will cause a RSL Chan Activ, which the tests BSC_Tests.TC_early_conn_fail and BSC_Tests.TC_late_conn_fail will interpret as the channel activation that they expect to come from the Channel Request. They will hence issue the Conn Fail message before the lchan is established, and are getting confused on what they expect to happen. Change-Id: I2bde987eefe7129c9f7c3b81b624d55cb66a75d0 --- M bsc/BSC_Tests.ttcn 1 file changed, 12 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 0107091..328fc59 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -2346,6 +2346,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, TCHF_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } @@ -2380,6 +2383,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, TCHF_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } @@ -2444,6 +2450,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, PDCH_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } @@ -2470,6 +2479,9 @@ f_sleep(1.0); f_ts_dyn_mode_assert(0, 0, chan_nr.tn, NONE_MODE); + /* clean up config */ + f_ts_set_chcomb(0, 0, 6, "PDCH"); + setverdict(pass); } -- To view, visit https://gerrit.osmocom.org/9748 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2bde987eefe7129c9f7c3b81b624d55cb66a75d0 Gerrit-Change-Number: 9748 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:44:58 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 11:44:58 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid heap-use-after-free on USSD conn lost Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9749 Change subject: bsc-nat: Avoid heap-use-after-free on USSD conn lost ...................................................................... bsc-nat: Avoid heap-use-after-free on USSD conn lost When ussd_read_cb calls bsc_nat_ussd_destroy the osmo_fd struct is freed, so we need to indicate to osmo_wqueue_bfd_cb that it should not continue using the fd pointer after we return. Fixes following AddressSanitizer report: <0015> osmo-bsc_nat/bsc_ussd.c:273 USSD Connection on 13 with IP: 1.2.3.4 <0015> osmo-bsc_nat/bsc_ussd.c:132 USSD Connection was lost. ================================================================= ==18118==ERROR: AddressSanitizer: heap-use-after-free on address 0x61200047c4b4 at pc 0x7ffff6067540 bp 0x7fffffffe170 sp 0x7fffffffe168 READ of size 4 at 0x61200047c4b4 thread T0 #0 0x7ffff606753f in osmo_wqueue_bfd_cb libosmocore/src/write_queue.c:65 #1 0x7ffff605206b in osmo_fd_disp_fds libosmocore/src/select.c:217 #2 0x7ffff6052305 in osmo_select_main libosmocore/src/select.c:257 #3 0x421dfa in main osmo-bsc_nat/bsc_nat.c:1718 #4 0x7ffff47ffb44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b44) #5 0x406438 (/bin/osmo-bsc_nat+0x406438) Change-Id: I35854c43524714d07f31d71c775ac1cd0a57d22e --- M openbsc/src/osmo-bsc_nat/bsc_ussd.c 1 file changed, 7 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/49/9749/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_ussd.c b/openbsc/src/osmo-bsc_nat/bsc_ussd.c index 0ba6327..ee0b085 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_ussd.c +++ b/openbsc/src/osmo-bsc_nat/bsc_ussd.c @@ -126,12 +126,11 @@ int ret; ret = ipa_msg_recv_buffered(bfd->fd, &msg, &conn->pending_msg); + if (ret == -EAGAIN) + return 0; if (ret <= 0) { - if (ret == -EAGAIN) - return 0; LOGP(DNAT, LOGL_ERROR, "USSD Connection was lost.\n"); - bsc_nat_ussd_destroy(conn); - return -1; + goto close_fd; } LOGP(DNAT, LOGL_NOTICE, "MSG from USSD: %s proto: %d\n", @@ -168,6 +167,10 @@ } return 0; + +close_fd: + bsc_nat_ussd_destroy(conn); + return -EBADF; } static void ussd_auth_cb(void *_data) -- To view, visit https://gerrit.osmocom.org/9749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I35854c43524714d07f31d71c775ac1cd0a57d22e Gerrit-Change-Number: 9749 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:44:59 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 11:44:59 +0000 Subject: Change in openbsc[master]: configure.ac: Add --enable-sanitize flag Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9750 Change subject: configure.ac: Add --enable-sanitize flag ...................................................................... configure.ac: Add --enable-sanitize flag Change-Id: I83988d90a1dd0a65d84ef990f83e34ac2f588252 --- M openbsc/configure.ac 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/50/9750/1 diff --git a/openbsc/configure.ac b/openbsc/configure.ac index 2c3045a..f1f6038 100644 --- a/openbsc/configure.ac +++ b/openbsc/configure.ac @@ -124,6 +124,18 @@ dnl Checks for typedefs, structures and compiler characteristics +AC_ARG_ENABLE(sanitize, + [AS_HELP_STRING( + [--enable-sanitize], + [Compile with address sanitizer enabled], + )], + [sanitize=$enableval], [sanitize="no"]) +if test x"$sanitize" = x"yes" +then + CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined" + CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined" +fi + # The following test is taken from WebKit's webkit.m4 saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden " @@ -201,6 +213,9 @@ AC_MSG_RESULT([$enable_ext_tests]) AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes") +AC_MSG_RESULT([CFLAGS="$CFLAGS"]) +AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"]) + dnl Generate the output AM_CONFIG_HEADER(bscconfig.h) -- To view, visit https://gerrit.osmocom.org/9750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I83988d90a1dd0a65d84ef990f83e34ac2f588252 Gerrit-Change-Number: 9750 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:55:46 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 27 Jun 2018 11:55:46 +0000 Subject: Change in osmo-msc[master]: configure.ac: drop unused dependencies Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9751 Change subject: configure.ac: drop unused dependencies ...................................................................... configure.ac: drop unused dependencies Change-Id: I82083c33b0448113c74b21ed6c51cda121bc9f79 --- M configure.ac 1 file changed, 0 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/51/9751/1 diff --git a/configure.ac b/configure.ac index c02b74d..be66d51 100644 --- a/configure.ac +++ b/configure.ac @@ -34,10 +34,6 @@ AC_MSG_ERROR([Please install autoconf-archive; re-run 'autoreconf -fi' for it to take effect.]) ]) -dnl checks for libraries -AC_SEARCH_LIBS([dlopen], [dl dld], [LIBRARY_DL="$LIBS";LIBS=""]) -AC_SUBST(LIBRARY_DL) - PKG_CHECK_MODULES(LIBOSMOCORE, libosmocore >= 0.11.0) PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.11.0) @@ -104,14 +100,6 @@ AC_HEADER_STDC AC_CHECK_HEADERS(dbi/dbd.h,,AC_MSG_ERROR(DBI library is not installed)) -found_pcap=yes -AC_CHECK_HEADERS(pcap/pcap.h,,found_pcap=no) -AM_CONDITIONAL(HAVE_PCAP, test "$found_pcap" = yes) - -found_cdk=yes -AC_CHECK_HEADERS(cdk/cdk.h,,found_cdk=no) -AM_CONDITIONAL(HAVE_LIBCDK, test "$found_cdk" = yes) - found_sqlite3=yes PKG_CHECK_MODULES(SQLITE3, sqlite3, ,found_sqlite3=no) AM_CONDITIONAL(HAVE_SQLITE3, test "$found_sqlite3" = yes) -- To view, visit https://gerrit.osmocom.org/9751 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I82083c33b0448113c74b21ed6c51cda121bc9f79 Gerrit-Change-Number: 9751 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:57:51 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 27 Jun 2018 11:57:51 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid heap-use-after-free on USSD conn lost In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9749 ) Change subject: bsc-nat: Avoid heap-use-after-free on USSD conn lost ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I35854c43524714d07f31d71c775ac1cd0a57d22e Gerrit-Change-Number: 9749 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 27 Jun 2018 11:57:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 11:58:09 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 27 Jun 2018 11:58:09 +0000 Subject: Change in openbsc[master]: configure.ac: Add --enable-sanitize flag In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9750 ) Change subject: configure.ac: Add --enable-sanitize flag ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I83988d90a1dd0a65d84ef990f83e34ac2f588252 Gerrit-Change-Number: 9750 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 27 Jun 2018 11:58:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 13:37:55 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 13:37:55 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9666 ) Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... Patch Set 5: Code-Review-1 -1 to the whole branch since osmo-gsm-tester found an assertion failure: 20180627143850497 DRLL <0000> mgcp_client_fsm.c:430 MGCP_CONN(to-BTS)[0x612000007120]{ST_DLCX_RESP}: Received Event EV_DLCX_RESP 20180627143850497 DRLL <0000> mgcp_client_fsm.c:446 MGCP_CONN(to-BTS)[0x612000007120]{ST_DLCX_RESP}: Terminating (cause = OSMO_FSM_TERM_REGULAR) 20180627143850497 DRLL <0000> mgcp_client_fsm.c:446 MGCP_CONN(to-BTS)[0x612000007120]{ST_DLCX_RESP}: Freeing instance 20180627143850497 DRLL <0000> fsm.c:381 MGCP_CONN(to-BTS)[0x612000007120]{ST_DLCX_RESP}: Deallocated 20180627143850498 DRSL <0003> abis_rsl.c:1123 lchan(0-0-2-TCH_F-0)[0x612000008aa0]{BORKEN}: (type=NONE) Rx RF_CHAN_REL_ACK 20180627143850499 DRSL <0003> abis_rsl.c:1155 lchan(0-0-2-TCH_F-0)[0x612000008aa0]{BORKEN}: Received Event LCHAN_EV_RSL_RF_CHAN_REL_ACK Assert failed false lchan_fsm.c:1119 -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 27 Jun 2018 13:37:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 13:38:25 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 13:38:25 +0000 Subject: Change in osmo-bsc[master]: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9666 ) Change subject: inter-BSC HO: add neighbor_ident API to manage neighbor-BSS-cells ...................................................................... Patch Set 5: whole run can be found at https://jenkins.osmocom.org/jenkins/job/osmo-gsm-tester_manual-run-all/687 -- To view, visit https://gerrit.osmocom.org/9666 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0153d7069817fba9146ddc11214de2757d7d37bf Gerrit-Change-Number: 9666 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 27 Jun 2018 13:38:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 13:58:56 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 13:58:56 +0000 Subject: Change in openbsc[master]: bsc-nat: Replace '.' in counter names with ':' Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9752 Change subject: bsc-nat: Replace '.' in counter names with ':' ...................................................................... bsc-nat: Replace '.' in counter names with ':' The '.' is illegal character in counter names, as they are exported via CTRL interface, where '.' has a special meaning that cannot be used by strings comprising the variable name. Change-Id: I55470ae74d350e4020209921fd8a09b51b120a41 --- M openbsc/src/libfilter/bsc_msg_acc.c M openbsc/src/osmo-bsc_nat/bsc_nat_utils.c 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/52/9752/1 diff --git a/openbsc/src/libfilter/bsc_msg_acc.c b/openbsc/src/libfilter/bsc_msg_acc.c index bfc5bdd..3df2ce2 100644 --- a/openbsc/src/libfilter/bsc_msg_acc.c +++ b/openbsc/src/libfilter/bsc_msg_acc.c @@ -32,7 +32,7 @@ }; static const struct rate_ctr_group_desc bsc_cfg_acc_list_desc = { - .group_name_prefix = "nat.filter", + .group_name_prefix = "nat:filter", .group_description = "NAT Access-List Statistics", .num_ctr = ARRAY_SIZE(acc_list_ctr_description), .ctr_desc = acc_list_ctr_description, diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c index c12b29f..20ce8d0 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c @@ -62,7 +62,7 @@ }; static const struct rate_ctr_group_desc bsc_cfg_ctrg_desc = { - .group_name_prefix = "nat.bsc", + .group_name_prefix = "nat:bsc", .group_description = "NAT BSC Statistics", .num_ctr = ARRAY_SIZE(bsc_cfg_ctr_description), .ctr_desc = bsc_cfg_ctr_description, -- To view, visit https://gerrit.osmocom.org/9752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I55470ae74d350e4020209921fd8a09b51b120a41 Gerrit-Change-Number: 9752 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 14:54:21 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 14:54:21 +0000 Subject: Change in libosmocore[master]: rate_ctr: Improve logging Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9753 Change subject: rate_ctr: Improve logging ...................................................................... rate_ctr: Improve logging Previous logic regarding logging of verification and mangling of rate_ctr groups made it difficult to debug when an issue occurrs. Change-Id: I992d165cab5ee6ca9b5b7e4a2210a0951954bd34 --- M src/rate_ctr.c 1 file changed, 20 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/53/9753/1 diff --git a/src/rate_ctr.c b/src/rate_ctr.c index 777a42a..75302da 100644 --- a/src/rate_ctr.c +++ b/src/rate_ctr.c @@ -73,7 +73,7 @@ static void *tall_rate_ctr_ctx; -static bool rate_ctrl_group_desc_validate(const struct rate_ctr_group_desc *desc, bool quiet) +static bool rate_ctrl_group_desc_validate(const struct rate_ctr_group_desc *desc) { unsigned int i; const struct rate_ctr_desc *ctr_desc; @@ -88,17 +88,15 @@ desc->group_name_prefix, desc->num_ctr); if (!osmo_identifier_valid(desc->group_name_prefix)) { - if (!quiet) - LOGP(DLGLOBAL, LOGL_ERROR, "'%s' is not a valid counter group identifier\n", - desc->group_name_prefix); + LOGP(DLGLOBAL, LOGL_ERROR, "'%s' is not a valid counter group identifier\n", + desc->group_name_prefix); return false; } for (i = 0; i < desc->num_ctr; i++) { if (!osmo_identifier_valid(ctr_desc[i].name)) { - if (!quiet) - LOGP(DLGLOBAL, LOGL_ERROR, "'%s' is not a valid counter identifier\n", - ctr_desc[i].name); + LOGP(DLGLOBAL, LOGL_ERROR, "'%s' is not a valid counter identifier\n", + ctr_desc[i].name); return false; } } @@ -106,12 +104,13 @@ return true; } -/* return 'in' if it doesn't contaon any '.'; otherwise allocate a copy and +/* return 'in' if it doesn't contain any '.'; otherwise allocate a copy and * replace all '.' with ':' */ static char *mangle_identifier_ifneeded(const void *ctx, const char *in) { char *out; unsigned int i; + bool modified = false; if (!in) return NULL; @@ -123,10 +122,16 @@ OSMO_ASSERT(out); for (i = 0; i < strlen(out); i++) { - if (out[i] == '.') + if (out[i] == '.') { out[i] = ':'; + modified = true; + } } + if (modified) + LOGP(DLGLOBAL, LOGL_NOTICE, "counter group name mangled: '%s' -> '%s'\n", + in, out); + return out; } @@ -139,6 +144,10 @@ OSMO_ASSERT(desc_new); + LOGP(DLGLOBAL, LOGL_INFO, "Needed to mangle counter group '%s' names: it is still using '.' as " + "separator, which is not allowed. please consider updating the application\n", + desc->group_name_prefix); + /* mangle the name_prefix but copy/keep the rest */ desc_new->group_name_prefix = mangle_identifier_ifneeded(desc_new, desc->group_name_prefix); desc_new->group_description = desc->group_description; @@ -161,7 +170,7 @@ ctrd_new[i].description = ctrd[i].description; } - if (!rate_ctrl_group_desc_validate(desc_new, false)) { + if (!rate_ctrl_group_desc_validate(desc_new)) { /* simple mangling of identifiers ('.' -> ':') was not sufficient to render a valid * descriptor, we have to bail out */ LOGP(DLGLOBAL, LOGL_ERROR, "counter group '%s' still invalid after mangling\n", @@ -169,10 +178,6 @@ goto err_free; } - LOGP(DLGLOBAL, LOGL_INFO, "Needed to mangle counter group '%s' names: it is still using '.' as " - "separator, which is not allowed. please consider updating the application\n", - desc->group_name_prefix); - return desc_new; err_free: talloc_free(desc_new); @@ -231,7 +236,7 @@ return NULL; /* attempt to mangle all '.' in identifiers to ':' for backwards compat */ - if (!rate_ctrl_group_desc_validate(desc, true)) { + if (!rate_ctrl_group_desc_validate(desc)) { desc = rate_ctr_group_desc_mangle(group, desc); if (!desc) { talloc_free(group); -- To view, visit https://gerrit.osmocom.org/9753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I992d165cab5ee6ca9b5b7e4a2210a0951954bd34 Gerrit-Change-Number: 9753 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Jun 27 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 27 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#167?= Message-ID: <788630979.356.1530112206733.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.74 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Jun 27 15:10:12 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 15:10:12 +0000 Subject: Change in openbsc[master]: bsc-nat: Allocate each ctr group with a different idx Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9754 Change subject: bsc-nat: Allocate each ctr group with a different idx ...................................................................... bsc-nat: Allocate each ctr group with a different idx Fixes following runtime warning: libosmocore/src/rate_ctr.c:219 counter group 'nat:filter' already exists for index 0, instead using index 1. This is a software bug that needs fixing. Change-Id: Ibe615379dc44a3a68cf9037630891ebf9b03a06d --- M openbsc/src/libfilter/bsc_msg_acc.c 1 file changed, 18 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/54/9754/1 diff --git a/openbsc/src/libfilter/bsc_msg_acc.c b/openbsc/src/libfilter/bsc_msg_acc.c index 7b658e4..0789fb6 100644 --- a/openbsc/src/libfilter/bsc_msg_acc.c +++ b/openbsc/src/libfilter/bsc_msg_acc.c @@ -39,6 +39,21 @@ .class_id = OSMO_STATS_CLASS_GLOBAL, }; +/*! Find an unused index for this rate counter group. + * \param[in] head List of allocated ctr groups of the same type + * \returns the largest used index number + 1, or 0 if none exist yet. */ +static unsigned int rate_ctr_get_unused_idx(struct llist_head *head) +{ + unsigned int idx = 0; + struct bsc_msg_acc_lst *lst; + + llist_for_each_entry(lst, head, list) { + if (idx <= lst->stats->idx) + idx = lst->stats->idx + 1; + } + return idx; +} + int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *mi_string) { @@ -71,6 +86,7 @@ struct bsc_msg_acc_lst *bsc_msg_acc_lst_get(void *ctx, struct llist_head *head, const char *name) { struct bsc_msg_acc_lst *lst; + unsigned int new_idx; lst = bsc_msg_acc_lst_find(head, name); if (lst) @@ -82,8 +98,8 @@ return NULL; } - /* TODO: get the index right */ - lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, 0); + new_idx = rate_ctr_get_unused_idx(head); + lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, new_idx); if (!lst->stats) { talloc_free(lst); return NULL; @@ -115,4 +131,3 @@ llist_add_tail(&entry->list, &lst->fltr_list); return entry; } - -- To view, visit https://gerrit.osmocom.org/9754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibe615379dc44a3a68cf9037630891ebf9b03a06d Gerrit-Change-Number: 9754 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 15:10:28 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 15:10:28 +0000 Subject: Change in openbsc[master]: bsc-nat: Replace '.' in counter names with ':' In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9752 ) Change subject: bsc-nat: Replace '.' in counter names with ':' ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/9752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I55470ae74d350e4020209921fd8a09b51b120a41 Gerrit-Change-Number: 9752 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 27 Jun 2018 15:10:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 17:30:54 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 17:30:54 +0000 Subject: Change in openbsc[master]: bsc-nat: Add more complete VTY command to show BSC related info Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9755 Change subject: bsc-nat: Add more complete VTY command to show BSC related info ...................................................................... bsc-nat: Add more complete VTY command to show BSC related info Other VTY commands already exist which provides each a subset of these features, but while operating bsc-nat it became interesting to have all this info easily reachable for a specific BSC. Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 --- M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 1 file changed, 76 insertions(+), 71 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/55/9755/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 057d9ab..9eeabd0 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -287,28 +287,6 @@ return CMD_SUCCESS; } -DEFUN(show_bsc_cfg, show_bsc_cfg_cmd, "show bsc config", - SHOW_STR BSC_STR "Configuration of BSCs\n") -{ - struct bsc_config *conf; - llist_for_each_entry(conf, &_nat->bsc_configs, entry) { - vty_out(vty, "BSC token: '%s' nr: %u%s", - conf->token, conf->nr, VTY_NEWLINE); - if (conf->acc_lst_name) - vty_out(vty, " access-list: %s%s", - conf->acc_lst_name, VTY_NEWLINE); - vty_out(vty, " paging forbidden: %d%s", - conf->forbid_paging, VTY_NEWLINE); - if (conf->description) - vty_out(vty, " description: %s%s", conf->description, VTY_NEWLINE); - else - vty_out(vty, " No description.%s", VTY_NEWLINE); - - } - - return CMD_SUCCESS; -} - static void dump_stat_total(struct vty *vty, struct bsc_nat *nat) { vty_out(vty, "NAT statistics%s", VTY_NEWLINE); @@ -324,66 +302,95 @@ osmo_counter_get(nat->stats.bsc.auth_fail), VTY_NEWLINE); } -static void dump_stat_bsc(struct vty *vty, struct bsc_config *conf) +static void dump_bsc_status(struct vty *vty, struct bsc_config *conf) { - int connected = 0; - struct bsc_connection *con; - vty_out(vty, " BSC nr: %d%s", - conf->nr, VTY_NEWLINE); + struct sockaddr_in sock; + socklen_t len = sizeof(sock); + struct bsc_connection *con_iter, *con = NULL; + struct bsc_lac_entry *lac; + + vty_out(vty, "BSC token: '%s' nr: %u%s", + conf->token, conf->nr, VTY_NEWLINE); + if (conf->acc_lst_name) + vty_out(vty, " access-list: %s%s", + conf->acc_lst_name, VTY_NEWLINE); + vty_out(vty, " paging forbidden: %d%s", + conf->forbid_paging, VTY_NEWLINE); + if (conf->description) + vty_out(vty, " description: %s%s", conf->description, VTY_NEWLINE); + else + vty_out(vty, " No description.%s", VTY_NEWLINE); + + llist_for_each_entry(lac, &conf->lac_list, entry) { + vty_out(vty, " LAC: %d%s", lac->lac, VTY_NEWLINE); + } + + llist_for_each_entry(con_iter, &_nat->bsc_connections, list_entry) { + if (con_iter->cfg == conf) { + con = con_iter; + break; + } + } + if (con) { + getpeername(con->write_queue.bfd.fd, (struct sockaddr *) &sock, &len); + vty_out(vty, " Conn-status: Connected, auth: %d, fd: %d, peername: %s, pending-stats: %u%s", + con->authenticated, con->write_queue.bfd.fd, + inet_ntoa(sock.sin_addr), con->pending_dlcx_count, + VTY_NEWLINE); + } else { + vty_out(vty, " Conn-status: Disconnected%s", VTY_NEWLINE); + } + vty_out_rate_ctr_group(vty, " ", conf->stats.ctrg); - - llist_for_each_entry(con, &conf->nat->bsc_connections, list_entry) { - if (con->cfg != conf) - continue; - connected = 1; - break; - } - - vty_out(vty, " Connected: %d%s", connected, VTY_NEWLINE); } -DEFUN(show_stats, - show_stats_cmd, - "show statistics [NR]", - SHOW_STR "Display network statistics\n" - "Number of the BSC\n") +#define BSC_ID_HELP \ + "Identify BSC by nr\n" \ + "Identify BSC by token\n" \ + "Show all BSC\n" \ + "NR/token of the BSC\n" +DEFUN(show_bsc_status, show_bsc_status_cmd, "show bsc status (nr|token|lac|all) [IDENT]", + SHOW_STR BSC_STR "Status of BSC\n" BSC_ID_HELP) { + const char *id_type = argv[0]; + const char *id = argv[1]; struct bsc_config *conf; + bool by_token = false, by_nr = false, by_lac = false, all = false; + bool found_one = false; - int nr = -1; - - if (argc == 1) - nr = atoi(argv[0]); - - dump_stat_total(vty, _nat); - llist_for_each_entry(conf, &_nat->bsc_configs, entry) { - if (argc == 1 && nr != conf->nr) - continue; - dump_stat_bsc(vty, conf); + if (strcmp(id_type, "all") == 0) { + all = true; + dump_stat_total(vty, _nat); + } else { + if (argc != 2) { + vty_out(vty, "%% Error: type %s requires an argument%s", id_type, VTY_NEWLINE); + return CMD_WARNING; + } + if (strcmp(id_type, "nr") == 0) + by_nr = true; + else if (strcmp(id_type, "token") == 0) + by_token = true; + else if (strcmp(id_type, "lac") == 0) + by_lac = true; } - return CMD_SUCCESS; -} - -DEFUN(show_stats_lac, - show_stats_lac_cmd, - "show statistics-by-lac <0-65535>", - SHOW_STR "Display network statistics by lac\n" - "The lac of the BSC\n") -{ - int lac; - struct bsc_config *conf; - - lac = atoi(argv[0]); - - dump_stat_total(vty, _nat); llist_for_each_entry(conf, &_nat->bsc_configs, entry) { - if (!bsc_config_handles_lac(conf, lac)) + if (by_nr && conf->nr != atoi(id)) continue; - dump_stat_bsc(vty, conf); + else if (by_token && strcmp(conf->token, id)) + continue; + else if (by_lac && !bsc_config_handles_lac(conf, atoi(id))) + continue; + + found_one = true; + dump_bsc_status(vty, conf); } + if (!all && !found_one) { + vty_out(vty, "%% Error: BSC with %s %s not found%s", id_type, id, VTY_NEWLINE); + return CMD_WARNING; + } return CMD_SUCCESS; } @@ -1313,9 +1320,7 @@ install_element_ve(&show_sccp_cmd); install_element_ve(&show_bsc_cmd); install_element_ve(&show_nat_bsc_cmd); - install_element_ve(&show_bsc_cfg_cmd); - install_element_ve(&show_stats_cmd); - install_element_ve(&show_stats_lac_cmd); + install_element_ve(&show_bsc_status_cmd); install_element_ve(&close_bsc_cmd); install_element_ve(&show_msc_cmd); install_element_ve(&test_regex_cmd); -- To view, visit https://gerrit.osmocom.org/9755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 Gerrit-Change-Number: 9755 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:03:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:03:43 +0000 Subject: Change in libosmocore[master]: rate_ctr: Improve logging In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9753 ) Change subject: rate_ctr: Improve logging ...................................................................... Patch Set 1: I guess it's up to whoever invented the "quiet" logic to comment on it. -- To view, visit https://gerrit.osmocom.org/9753 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I992d165cab5ee6ca9b5b7e4a2210a0951954bd34 Gerrit-Change-Number: 9753 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 27 Jun 2018 19:03:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:04:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:04:03 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid heap-use-after-free on USSD conn lost In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9749 ) Change subject: bsc-nat: Avoid heap-use-after-free on USSD conn lost ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I35854c43524714d07f31d71c775ac1cd0a57d22e Gerrit-Change-Number: 9749 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 27 Jun 2018 19:04:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:04:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:04:11 +0000 Subject: Change in openbsc[master]: configure.ac: Add --enable-sanitize flag In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9750 ) Change subject: configure.ac: Add --enable-sanitize flag ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I83988d90a1dd0a65d84ef990f83e34ac2f588252 Gerrit-Change-Number: 9750 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 27 Jun 2018 19:04:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:04:22 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:04:22 +0000 Subject: Change in openbsc[master]: bsc-nat: Replace '.' in counter names with ':' In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9752 ) Change subject: bsc-nat: Replace '.' in counter names with ':' ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I55470ae74d350e4020209921fd8a09b51b120a41 Gerrit-Change-Number: 9752 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 27 Jun 2018 19:04:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:04:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:04:41 +0000 Subject: Change in openbsc[master]: bsc-nat: Allocate each ctr group with a different idx In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9754 ) Change subject: bsc-nat: Allocate each ctr group with a different idx ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibe615379dc44a3a68cf9037630891ebf9b03a06d Gerrit-Change-Number: 9754 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Wed, 27 Jun 2018 19:04:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:05:00 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:05:00 +0000 Subject: Change in openbsc[master]: bsc-nat: Avoid heap-use-after-free on USSD conn lost In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9749 ) Change subject: bsc-nat: Avoid heap-use-after-free on USSD conn lost ...................................................................... bsc-nat: Avoid heap-use-after-free on USSD conn lost When ussd_read_cb calls bsc_nat_ussd_destroy the osmo_fd struct is freed, so we need to indicate to osmo_wqueue_bfd_cb that it should not continue using the fd pointer after we return. Fixes following AddressSanitizer report: <0015> osmo-bsc_nat/bsc_ussd.c:273 USSD Connection on 13 with IP: 1.2.3.4 <0015> osmo-bsc_nat/bsc_ussd.c:132 USSD Connection was lost. ================================================================= ==18118==ERROR: AddressSanitizer: heap-use-after-free on address 0x61200047c4b4 at pc 0x7ffff6067540 bp 0x7fffffffe170 sp 0x7fffffffe168 READ of size 4 at 0x61200047c4b4 thread T0 #0 0x7ffff606753f in osmo_wqueue_bfd_cb libosmocore/src/write_queue.c:65 #1 0x7ffff605206b in osmo_fd_disp_fds libosmocore/src/select.c:217 #2 0x7ffff6052305 in osmo_select_main libosmocore/src/select.c:257 #3 0x421dfa in main osmo-bsc_nat/bsc_nat.c:1718 #4 0x7ffff47ffb44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b44) #5 0x406438 (/bin/osmo-bsc_nat+0x406438) Change-Id: I35854c43524714d07f31d71c775ac1cd0a57d22e --- M openbsc/src/osmo-bsc_nat/bsc_ussd.c 1 file changed, 7 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_ussd.c b/openbsc/src/osmo-bsc_nat/bsc_ussd.c index 0ba6327..ee0b085 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_ussd.c +++ b/openbsc/src/osmo-bsc_nat/bsc_ussd.c @@ -126,12 +126,11 @@ int ret; ret = ipa_msg_recv_buffered(bfd->fd, &msg, &conn->pending_msg); + if (ret == -EAGAIN) + return 0; if (ret <= 0) { - if (ret == -EAGAIN) - return 0; LOGP(DNAT, LOGL_ERROR, "USSD Connection was lost.\n"); - bsc_nat_ussd_destroy(conn); - return -1; + goto close_fd; } LOGP(DNAT, LOGL_NOTICE, "MSG from USSD: %s proto: %d\n", @@ -168,6 +167,10 @@ } return 0; + +close_fd: + bsc_nat_ussd_destroy(conn); + return -EBADF; } static void ussd_auth_cb(void *_data) -- To view, visit https://gerrit.osmocom.org/9749 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I35854c43524714d07f31d71c775ac1cd0a57d22e Gerrit-Change-Number: 9749 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:05:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:05:01 +0000 Subject: Change in openbsc[master]: configure.ac: Add --enable-sanitize flag In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9750 ) Change subject: configure.ac: Add --enable-sanitize flag ...................................................................... configure.ac: Add --enable-sanitize flag Change-Id: I83988d90a1dd0a65d84ef990f83e34ac2f588252 --- M openbsc/configure.ac 1 file changed, 15 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/openbsc/configure.ac b/openbsc/configure.ac index 2c3045a..f1f6038 100644 --- a/openbsc/configure.ac +++ b/openbsc/configure.ac @@ -124,6 +124,18 @@ dnl Checks for typedefs, structures and compiler characteristics +AC_ARG_ENABLE(sanitize, + [AS_HELP_STRING( + [--enable-sanitize], + [Compile with address sanitizer enabled], + )], + [sanitize=$enableval], [sanitize="no"]) +if test x"$sanitize" = x"yes" +then + CFLAGS="$CFLAGS -fsanitize=address -fsanitize=undefined" + CPPFLAGS="$CPPFLAGS -fsanitize=address -fsanitize=undefined" +fi + # The following test is taken from WebKit's webkit.m4 saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden " @@ -201,6 +213,9 @@ AC_MSG_RESULT([$enable_ext_tests]) AM_CONDITIONAL(ENABLE_EXT_TESTS, test "x$enable_ext_tests" = "xyes") +AC_MSG_RESULT([CFLAGS="$CFLAGS"]) +AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"]) + dnl Generate the output AM_CONFIG_HEADER(bscconfig.h) -- To view, visit https://gerrit.osmocom.org/9750 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I83988d90a1dd0a65d84ef990f83e34ac2f588252 Gerrit-Change-Number: 9750 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:05:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:05:01 +0000 Subject: Change in openbsc[master]: bsc-nat: Replace '.' in counter names with ':' In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9752 ) Change subject: bsc-nat: Replace '.' in counter names with ':' ...................................................................... bsc-nat: Replace '.' in counter names with ':' The '.' is illegal character in counter names, as they are exported via CTRL interface, where '.' has a special meaning that cannot be used by strings comprising the variable name. Change-Id: I55470ae74d350e4020209921fd8a09b51b120a41 --- M openbsc/src/libfilter/bsc_msg_acc.c M openbsc/src/osmo-bsc_nat/bsc_nat_utils.c 2 files changed, 17 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/libfilter/bsc_msg_acc.c b/openbsc/src/libfilter/bsc_msg_acc.c index bfc5bdd..7b658e4 100644 --- a/openbsc/src/libfilter/bsc_msg_acc.c +++ b/openbsc/src/libfilter/bsc_msg_acc.c @@ -27,12 +27,12 @@ #include static const struct rate_ctr_desc acc_list_ctr_description[] = { - [ACC_LIST_LOCAL_FILTER] = { "access-list.local-filter", "Rejected by rule for local"}, - [ACC_LIST_GLOBAL_FILTER]= { "access-list.global-filter", "Rejected by rule for global"}, + [ACC_LIST_LOCAL_FILTER] = { "access-list:local-filter", "Rejected by rule for local"}, + [ACC_LIST_GLOBAL_FILTER]= { "access-list:global-filter", "Rejected by rule for global"}, }; static const struct rate_ctr_group_desc bsc_cfg_acc_list_desc = { - .group_name_prefix = "nat.filter", + .group_name_prefix = "nat:filter", .group_description = "NAT Access-List Statistics", .num_ctr = ARRAY_SIZE(acc_list_ctr_description), .ctr_desc = acc_list_ctr_description, diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c index c12b29f..5a06d3f 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c @@ -46,23 +46,23 @@ #include static const struct rate_ctr_desc bsc_cfg_ctr_description[] = { - [BCFG_CTR_SCCP_CONN] = { "sccp.conn", "SCCP Connections "}, - [BCFG_CTR_SCCP_CALLS] = { "sccp.calls", "SCCP Assignment Commands "}, - [BCFG_CTR_NET_RECONN] = { "net.reconnects", "Network reconnects "}, - [BCFG_CTR_DROPPED_SCCP] = { "dropped.sccp", "Dropped SCCP connections."}, - [BCFG_CTR_DROPPED_CALLS] = { "dropped.calls", "Dropped active calls. "}, - [BCFG_CTR_REJECTED_CR] = { "rejected.cr", "Rejected CR due filter "}, - [BCFG_CTR_REJECTED_MSG] = { "rejected.msg", "Rejected MSG due filter "}, - [BCFG_CTR_ILL_PACKET] = { "rejected.ill", "Rejected due parse error "}, - [BCFG_CTR_CON_TYPE_LU] = { "conn.lu", "Conn Location Update "}, - [BCFG_CTR_CON_CMSERV_RQ] = { "conn.rq", "Conn CM Service Req "}, - [BCFG_CTR_CON_PAG_RESP] = { "conn.pag", "Conn Paging Response "}, - [BCFG_CTR_CON_SSA] = { "conn.ssa", "Conn USSD "}, - [BCFG_CTR_CON_OTHER] = { "conn.other", "Conn Other "}, + [BCFG_CTR_SCCP_CONN] = { "sccp:conn", "SCCP Connections "}, + [BCFG_CTR_SCCP_CALLS] = { "sccp:calls", "SCCP Assignment Commands "}, + [BCFG_CTR_NET_RECONN] = { "net:reconnects", "Network reconnects "}, + [BCFG_CTR_DROPPED_SCCP] = { "dropped:sccp", "Dropped SCCP connections."}, + [BCFG_CTR_DROPPED_CALLS] = { "dropped:calls", "Dropped active calls. "}, + [BCFG_CTR_REJECTED_CR] = { "rejected:cr", "Rejected CR due filter "}, + [BCFG_CTR_REJECTED_MSG] = { "rejected:msg", "Rejected MSG due filter "}, + [BCFG_CTR_ILL_PACKET] = { "rejected:ill", "Rejected due parse error "}, + [BCFG_CTR_CON_TYPE_LU] = { "conn:lu", "Conn Location Update "}, + [BCFG_CTR_CON_CMSERV_RQ] = { "conn:rq", "Conn CM Service Req "}, + [BCFG_CTR_CON_PAG_RESP] = { "conn:pag", "Conn Paging Response "}, + [BCFG_CTR_CON_SSA] = { "conn:ssa", "Conn USSD "}, + [BCFG_CTR_CON_OTHER] = { "conn:other", "Conn Other "}, }; static const struct rate_ctr_group_desc bsc_cfg_ctrg_desc = { - .group_name_prefix = "nat.bsc", + .group_name_prefix = "nat:bsc", .group_description = "NAT BSC Statistics", .num_ctr = ARRAY_SIZE(bsc_cfg_ctr_description), .ctr_desc = bsc_cfg_ctr_description, -- To view, visit https://gerrit.osmocom.org/9752 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I55470ae74d350e4020209921fd8a09b51b120a41 Gerrit-Change-Number: 9752 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:05:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:05:01 +0000 Subject: Change in openbsc[master]: bsc-nat: Allocate each ctr group with a different idx In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9754 ) Change subject: bsc-nat: Allocate each ctr group with a different idx ...................................................................... bsc-nat: Allocate each ctr group with a different idx Fixes following runtime warning: libosmocore/src/rate_ctr.c:219 counter group 'nat:filter' already exists for index 0, instead using index 1. This is a software bug that needs fixing. Change-Id: Ibe615379dc44a3a68cf9037630891ebf9b03a06d --- M openbsc/src/libfilter/bsc_msg_acc.c 1 file changed, 18 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/libfilter/bsc_msg_acc.c b/openbsc/src/libfilter/bsc_msg_acc.c index 7b658e4..0789fb6 100644 --- a/openbsc/src/libfilter/bsc_msg_acc.c +++ b/openbsc/src/libfilter/bsc_msg_acc.c @@ -39,6 +39,21 @@ .class_id = OSMO_STATS_CLASS_GLOBAL, }; +/*! Find an unused index for this rate counter group. + * \param[in] head List of allocated ctr groups of the same type + * \returns the largest used index number + 1, or 0 if none exist yet. */ +static unsigned int rate_ctr_get_unused_idx(struct llist_head *head) +{ + unsigned int idx = 0; + struct bsc_msg_acc_lst *lst; + + llist_for_each_entry(lst, head, list) { + if (idx <= lst->stats->idx) + idx = lst->stats->idx + 1; + } + return idx; +} + int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *mi_string) { @@ -71,6 +86,7 @@ struct bsc_msg_acc_lst *bsc_msg_acc_lst_get(void *ctx, struct llist_head *head, const char *name) { struct bsc_msg_acc_lst *lst; + unsigned int new_idx; lst = bsc_msg_acc_lst_find(head, name); if (lst) @@ -82,8 +98,8 @@ return NULL; } - /* TODO: get the index right */ - lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, 0); + new_idx = rate_ctr_get_unused_idx(head); + lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, new_idx); if (!lst->stats) { talloc_free(lst); return NULL; @@ -115,4 +131,3 @@ llist_add_tail(&entry->list, &lst->fltr_list); return entry; } - -- To view, visit https://gerrit.osmocom.org/9754 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibe615379dc44a3a68cf9037630891ebf9b03a06d Gerrit-Change-Number: 9754 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:06:43 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Jun 2018 19:06:43 +0000 Subject: Change in osmo-bsc[master]: large refactoring: use FSMs for lchans; add inter-BSC HO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9671 ) Change subject: large refactoring: use FSMs for lchans; add inter-BSC HO ...................................................................... Patch Set 12: Using today's branches I'm getting ttcn3 failures on BSC_Tests.TC_late_conn_fail for both AoUP and SCCPlite, while master passes it. -- To view, visit https://gerrit.osmocom.org/9671 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82e3f918295daa83274a4cf803f046979f284366 Gerrit-Change-Number: 9671 Gerrit-PatchSet: 12 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 27 Jun 2018 19:06:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Jun 27 19:12:11 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 27 Jun 2018 19:12:11 +0000 Subject: Change in openbsc[master]: bsc-nat: Add more complete VTY command to show BSC related info In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9755 ) Change subject: bsc-nat: Add more complete VTY command to show BSC related info ...................................................................... Patch Set 1: Probably broke the VTY tests, I'll look at it tomorrow. I testd it for a while using the VTY interface on a BSCNAT with several configured BSC and one of them connected. -- To view, visit https://gerrit.osmocom.org/9755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 Gerrit-Change-Number: 9755 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 27 Jun 2018 19:12:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 06:29:15 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 06:29:15 +0000 Subject: Change in libosmocore[master]: jenkins_arch.sh: Exit with error on unknown architecture Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9756 Change subject: jenkins_arch.sh: Exit with error on unknown architecture ...................................................................... jenkins_arch.sh: Exit with error on unknown architecture Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033 --- M contrib/jenkins_arch.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/9756/1 diff --git a/contrib/jenkins_arch.sh b/contrib/jenkins_arch.sh index 360fd1c..b5a19af 100755 --- a/contrib/jenkins_arch.sh +++ b/contrib/jenkins_arch.sh @@ -29,5 +29,6 @@ *) set +x echo "Unexpected architecture '$arch'" + exit 1 ;; esac -- To view, visit https://gerrit.osmocom.org/9756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033 Gerrit-Change-Number: 9756 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 06:39:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 06:39:23 +0000 Subject: Change in libosmocore[master]: jenkins_arch.sh: Exit with error on unknown architecture In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9756 to look at the new patch set (#2). Change subject: jenkins_arch.sh: Exit with error on unknown architecture ...................................................................... jenkins_arch.sh: Exit with error on unknown architecture The jenkins build job used to call this script using an "arch" it doesn't understand. This should have resulted in an error, but it didn't as there was a missing "exit 1" statement :( Related: OS#3360 Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033 --- M contrib/jenkins_arch.sh 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/56/9756/2 -- To view, visit https://gerrit.osmocom.org/9756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033 Gerrit-Change-Number: 9756 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 06:39:24 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 06:39:24 +0000 Subject: Change in libosmocore[master]: jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9757 Change subject: jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" ...................................................................... jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" The jenkins build job is calling the script using "amd64" and "arm-none-eabi", while the script expects "amd64" and "arm". Let's add "arm-none-eabi" as an alias for "arm". Closes: OS#3360 Change-Id: Idedd4778a63d67cdbf4f4d538bf4a225abb7547a --- M contrib/jenkins_arch.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/9757/1 diff --git a/contrib/jenkins_arch.sh b/contrib/jenkins_arch.sh index 360fd1c..cf9546e 100755 --- a/contrib/jenkins_arch.sh +++ b/contrib/jenkins_arch.sh @@ -22,7 +22,7 @@ ./contrib/jenkins_amd64.sh ;; - arm) + arm|arm-none-eabi) ./contrib/jenkins_arm.sh ;; -- To view, visit https://gerrit.osmocom.org/9757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idedd4778a63d67cdbf4f4d538bf4a225abb7547a Gerrit-Change-Number: 9757 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:01:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:01:40 +0000 Subject: Change in libosmocore[master]: Fix embedded (arm-none-eabi) builds Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9758 Change subject: Fix embedded (arm-none-eabi) builds ...................................................................... Fix embedded (arm-none-eabi) builds Due to OS#3360, build testing for arm-none-eabi was unfortunately skipped for a long time. This is a number of fixes that make the compile test pass again. Related: OS#3360 Change-Id: I88e3c8e1a8786ca2a6a023b0d27c74be200a8588 --- M configure.ac M src/logging.c M src/pseudotalloc/pseudotalloc.c M src/pseudotalloc/talloc.h M src/timer_clockgettime.c 5 files changed, 28 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/58/9758/1 diff --git a/configure.ac b/configure.ac index cb580a3..dd5f15b 100644 --- a/configure.ac +++ b/configure.ac @@ -91,6 +91,8 @@ CFLAGS="$saved_CFLAGS" AC_SUBST(SYMBOL_VISIBILITY) +AC_CHECK_FUNCS(clock_gettime localtime_r) + AC_DEFUN([CHECK_TM_INCLUDES_TM_GMTOFF], [ AC_CACHE_CHECK( [whether struct tm has tm_gmtoff member], diff --git a/src/logging.c b/src/logging.c index 147b1fb..1dfd484 100644 --- a/src/logging.c +++ b/src/logging.c @@ -356,6 +356,7 @@ } if (!cont) { if (target->print_ext_timestamp) { +#ifdef HAVE_LOCALTIME_R struct tm tm; struct timeval tv; osmo_gettimeofday(&tv, NULL); @@ -367,6 +368,7 @@ if (ret < 0) goto err; OSMO_SNPRINTF_RET(ret, rem, offset, len); +#endif } else if (target->print_timestamp) { char *timestr; time_t tm; diff --git a/src/pseudotalloc/pseudotalloc.c b/src/pseudotalloc/pseudotalloc.c index 2a99066..89e6269 100644 --- a/src/pseudotalloc/pseudotalloc.c +++ b/src/pseudotalloc/pseudotalloc.c @@ -96,3 +96,19 @@ va_end(args); return buf; } + +void *talloc_steal(const void *new_ctx, const void *obj) +{ + /* as we don't do hierarchical allocations, this is simply a NOP */ + return (void *)obj; +} + +char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) +{ + /* we have a hard-coded maximum string length of 128 bytes in this pseudo implementation */ + char *buf = pseudotalloc_malloc(128); + if (!buf) + return NULL; + vsnprintf(buf, 128, fmt, ap); + return buf; +} diff --git a/src/pseudotalloc/talloc.h b/src/pseudotalloc/talloc.h index ae2e1fc..34088af 100644 --- a/src/pseudotalloc/talloc.h +++ b/src/pseudotalloc/talloc.h @@ -59,3 +59,6 @@ unsigned count, const char *name); char *talloc_asprintf(const void *ctx, const char *fmt, ...); + +void *talloc_steal(const void *new_ctx, const void *obj); +char *talloc_vasprintf(const void *t, const char *fmt, va_list ap); diff --git a/src/timer_clockgettime.c b/src/timer_clockgettime.c index 8d9760c..7b17fd1 100644 --- a/src/timer_clockgettime.c +++ b/src/timer_clockgettime.c @@ -44,6 +44,9 @@ /*! \file timer_clockgettime.c */ +#include "config.h" +#ifdef HAVE_CLOCK_GETTIME + #include #include #include @@ -135,4 +138,6 @@ timespecadd(&c->time, &val, &c->time); } +#endif /* HAVE_CLOCK_GETTIME */ + /*! @} */ -- To view, visit https://gerrit.osmocom.org/9758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I88e3c8e1a8786ca2a6a023b0d27c74be200a8588 Gerrit-Change-Number: 9758 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:01:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:01:41 +0000 Subject: Change in libosmocore[master]: jenkins_arm.sh: Don't run 'make check' on embedded builds Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9759 Change subject: jenkins_arm.sh: Don't run 'make check' on embedded builds ...................................................................... jenkins_arm.sh: Don't run 'make check' on embedded builds If we're cross-compiling for arm-none-eabi, we cannot execute test programs. Change-Id: I64e88a31091b67c37c308c44013c42d4574d2312 --- M contrib/jenkins_arm.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/59/9759/1 diff --git a/contrib/jenkins_arm.sh b/contrib/jenkins_arm.sh index 4579596..8229fc8 100755 --- a/contrib/jenkins_arm.sh +++ b/contrib/jenkins_arm.sh @@ -16,7 +16,7 @@ --disable-shared \ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror" - run_make + $MAKE $PARALLEL_MAKE } # verify build in dir other than source tree -- To view, visit https://gerrit.osmocom.org/9759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I64e88a31091b67c37c308c44013c42d4574d2312 Gerrit-Change-Number: 9759 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:01:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:01:41 +0000 Subject: Change in libosmocore[master]: Don't call abort() directly, always use osmo_panic() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9760 Change subject: Don't call abort() directly, always use osmo_panic() ...................................................................... Don't call abort() directly, always use osmo_panic() A loooong time ago, we introduced osmo_panic() as a wrapper around abort(). The advantage is, that this wrapper can be overridden, and that it will also work in embedded (bare iron) targets, where the abort simply translates to an infinite loop. Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433 --- M include/osmocom/core/utils.h M src/bitvec.c M src/gsm/gsm0808_utils.c 3 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/60/9760/1 diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index cd22dfb..dd4461c 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -4,6 +4,7 @@ #include #include +#include /*! \defgroup utils General-purpose utility functions * @{ @@ -77,9 +78,7 @@ */ #define OSMO_ASSERT(exp) \ if (!(exp)) { \ - fprintf(stderr, "Assert failed %s %s:%d\n", #exp, __BASE_FILE__, __LINE__); \ - osmo_generate_backtrace(); \ - abort(); \ + osmo_panic("Assert failed %s %s:%d\n", #exp, __BASE_FILE__, __LINE__); \ } /*! duplicate a string using talloc and release its prior content (if any) diff --git a/src/bitvec.c b/src/bitvec.c index 884eb02..0f56e3e 100644 --- a/src/bitvec.c +++ b/src/bitvec.c @@ -44,6 +44,7 @@ #include #include +#include #define BITNUM_FROM_COMP(byte, bit) ((byte*8)+bit) @@ -530,7 +531,7 @@ case ONE: return '1'; case L: return 'L'; case H: return 'H'; - default: abort(); + default: osmo_panic("unexpected input in bit_value_to_char"); return 'X'; } } diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index 080fc95..73f0234 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -155,7 +155,7 @@ /* See also 3GPP TS 48.008 3.2.2.103 Speech Codec List */ uint8_t header = 0; uint8_t *old_tail; - bool type_extended; + bool type_extended = false; /* Note: Extended codec types are codec types that require 8 instead * of 4 bit to fully specify the selected codec. In the following, -- To view, visit https://gerrit.osmocom.org/9760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433 Gerrit-Change-Number: 9760 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:05:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:05:31 +0000 Subject: Change in libosmocore[master]: Fix embedded (arm-none-eabi) builds In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9758 ) Change subject: Fix embedded (arm-none-eabi) builds ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I88e3c8e1a8786ca2a6a023b0d27c74be200a8588 Gerrit-Change-Number: 9758 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 28 Jun 2018 09:05:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:05:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:05:34 +0000 Subject: Change in libosmocore[master]: jenkins_arm.sh: Don't run 'make check' on embedded builds In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9759 ) Change subject: jenkins_arm.sh: Don't run 'make check' on embedded builds ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I64e88a31091b67c37c308c44013c42d4574d2312 Gerrit-Change-Number: 9759 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 28 Jun 2018 09:05:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:05:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:05:38 +0000 Subject: Change in libosmocore[master]: jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9757 ) Change subject: jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idedd4778a63d67cdbf4f4d538bf4a225abb7547a Gerrit-Change-Number: 9757 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 09:05:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:05:48 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:05:48 +0000 Subject: Change in libosmocore[master]: jenkins_arch.sh: Exit with error on unknown architecture In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9756 ) Change subject: jenkins_arch.sh: Exit with error on unknown architecture ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033 Gerrit-Change-Number: 9756 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 09:05:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:06:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:06:06 +0000 Subject: Change in libosmocore[master]: Don't call abort() directly, always use osmo_panic() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9760 ) Change subject: Don't call abort() directly, always use osmo_panic() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433 Gerrit-Change-Number: 9760 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 28 Jun 2018 09:06:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:25:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:25:35 +0000 Subject: Change in libosmocore[master]: Fix embedded (arm-none-eabi) builds In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9758 ) Change subject: Fix embedded (arm-none-eabi) builds ...................................................................... Fix embedded (arm-none-eabi) builds Due to OS#3360, build testing for arm-none-eabi was unfortunately skipped for a long time. This is a number of fixes that make the compile test pass again. Related: OS#3360 Change-Id: I88e3c8e1a8786ca2a6a023b0d27c74be200a8588 --- M configure.ac M src/logging.c M src/pseudotalloc/pseudotalloc.c M src/pseudotalloc/talloc.h M src/timer_clockgettime.c 5 files changed, 28 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index cb580a3..dd5f15b 100644 --- a/configure.ac +++ b/configure.ac @@ -91,6 +91,8 @@ CFLAGS="$saved_CFLAGS" AC_SUBST(SYMBOL_VISIBILITY) +AC_CHECK_FUNCS(clock_gettime localtime_r) + AC_DEFUN([CHECK_TM_INCLUDES_TM_GMTOFF], [ AC_CACHE_CHECK( [whether struct tm has tm_gmtoff member], diff --git a/src/logging.c b/src/logging.c index 147b1fb..1dfd484 100644 --- a/src/logging.c +++ b/src/logging.c @@ -356,6 +356,7 @@ } if (!cont) { if (target->print_ext_timestamp) { +#ifdef HAVE_LOCALTIME_R struct tm tm; struct timeval tv; osmo_gettimeofday(&tv, NULL); @@ -367,6 +368,7 @@ if (ret < 0) goto err; OSMO_SNPRINTF_RET(ret, rem, offset, len); +#endif } else if (target->print_timestamp) { char *timestr; time_t tm; diff --git a/src/pseudotalloc/pseudotalloc.c b/src/pseudotalloc/pseudotalloc.c index 2a99066..89e6269 100644 --- a/src/pseudotalloc/pseudotalloc.c +++ b/src/pseudotalloc/pseudotalloc.c @@ -96,3 +96,19 @@ va_end(args); return buf; } + +void *talloc_steal(const void *new_ctx, const void *obj) +{ + /* as we don't do hierarchical allocations, this is simply a NOP */ + return (void *)obj; +} + +char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) +{ + /* we have a hard-coded maximum string length of 128 bytes in this pseudo implementation */ + char *buf = pseudotalloc_malloc(128); + if (!buf) + return NULL; + vsnprintf(buf, 128, fmt, ap); + return buf; +} diff --git a/src/pseudotalloc/talloc.h b/src/pseudotalloc/talloc.h index ae2e1fc..34088af 100644 --- a/src/pseudotalloc/talloc.h +++ b/src/pseudotalloc/talloc.h @@ -59,3 +59,6 @@ unsigned count, const char *name); char *talloc_asprintf(const void *ctx, const char *fmt, ...); + +void *talloc_steal(const void *new_ctx, const void *obj); +char *talloc_vasprintf(const void *t, const char *fmt, va_list ap); diff --git a/src/timer_clockgettime.c b/src/timer_clockgettime.c index 8d9760c..7b17fd1 100644 --- a/src/timer_clockgettime.c +++ b/src/timer_clockgettime.c @@ -44,6 +44,9 @@ /*! \file timer_clockgettime.c */ +#include "config.h" +#ifdef HAVE_CLOCK_GETTIME + #include #include #include @@ -135,4 +138,6 @@ timespecadd(&c->time, &val, &c->time); } +#endif /* HAVE_CLOCK_GETTIME */ + /*! @} */ -- To view, visit https://gerrit.osmocom.org/9758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I88e3c8e1a8786ca2a6a023b0d27c74be200a8588 Gerrit-Change-Number: 9758 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:25:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:25:35 +0000 Subject: Change in libosmocore[master]: jenkins_arm.sh: Don't run 'make check' on embedded builds In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9759 ) Change subject: jenkins_arm.sh: Don't run 'make check' on embedded builds ...................................................................... jenkins_arm.sh: Don't run 'make check' on embedded builds If we're cross-compiling for arm-none-eabi, we cannot execute test programs. Change-Id: I64e88a31091b67c37c308c44013c42d4574d2312 --- M contrib/jenkins_arm.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins_arm.sh b/contrib/jenkins_arm.sh index 4579596..8229fc8 100755 --- a/contrib/jenkins_arm.sh +++ b/contrib/jenkins_arm.sh @@ -16,7 +16,7 @@ --disable-shared \ CFLAGS="-Os -ffunction-sections -fdata-sections -nostartfiles -nodefaultlibs -Werror" - run_make + $MAKE $PARALLEL_MAKE } # verify build in dir other than source tree -- To view, visit https://gerrit.osmocom.org/9759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I64e88a31091b67c37c308c44013c42d4574d2312 Gerrit-Change-Number: 9759 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:25:35 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:25:35 +0000 Subject: Change in libosmocore[master]: jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9757 ) Change subject: jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" ...................................................................... jenkins_arch.sh: Accept "arm-none-eabi" as alias for "arm" The jenkins build job is calling the script using "amd64" and "arm-none-eabi", while the script expects "amd64" and "arm". Let's add "arm-none-eabi" as an alias for "arm". Closes: OS#3360 Change-Id: Idedd4778a63d67cdbf4f4d538bf4a225abb7547a --- M contrib/jenkins_arch.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/contrib/jenkins_arch.sh b/contrib/jenkins_arch.sh index 360fd1c..cf9546e 100755 --- a/contrib/jenkins_arch.sh +++ b/contrib/jenkins_arch.sh @@ -22,7 +22,7 @@ ./contrib/jenkins_amd64.sh ;; - arm) + arm|arm-none-eabi) ./contrib/jenkins_arm.sh ;; -- To view, visit https://gerrit.osmocom.org/9757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idedd4778a63d67cdbf4f4d538bf4a225abb7547a Gerrit-Change-Number: 9757 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:25:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 09:25:36 +0000 Subject: Change in libosmocore[master]: jenkins_arch.sh: Exit with error on unknown architecture In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9756 ) Change subject: jenkins_arch.sh: Exit with error on unknown architecture ...................................................................... jenkins_arch.sh: Exit with error on unknown architecture The jenkins build job used to call this script using an "arch" it doesn't understand. This should have resulted in an error, but it didn't as there was a missing "exit 1" statement :( Related: OS#3360 Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033 --- M contrib/jenkins_arch.sh 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins_arch.sh b/contrib/jenkins_arch.sh index cf9546e..99ce5c1 100755 --- a/contrib/jenkins_arch.sh +++ b/contrib/jenkins_arch.sh @@ -29,5 +29,6 @@ *) set +x echo "Unexpected architecture '$arch'" + exit 1 ;; esac -- To view, visit https://gerrit.osmocom.org/9756 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib27c9ebaf2630c432b1923f8e14b36e7772a6033 Gerrit-Change-Number: 9756 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 09:29:00 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 09:29:00 +0000 Subject: Change in openbsc[master]: bsc-nat: Add more complete VTY command to show BSC related info In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9755 to look at the new patch set (#2). Change subject: bsc-nat: Add more complete VTY command to show BSC related info ...................................................................... bsc-nat: Add more complete VTY command to show BSC related info Other VTY commands already exist which provides each a subset of these features, but while operating bsc-nat it became interesting to have all this info easily reachable for a specific BSC. Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 --- M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 1 file changed, 77 insertions(+), 71 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/55/9755/2 -- To view, visit https://gerrit.osmocom.org/9755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 Gerrit-Change-Number: 9755 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 10:59:04 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 10:59:04 +0000 Subject: Change in osmo-bsc[master]: bsc-filter: Remove unused func barr_adapt and set barr_find static Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9761 Change subject: bsc-filter: Remove unused func barr_adapt and set barr_find static ...................................................................... bsc-filter: Remove unused func barr_adapt and set barr_find static bar_find is set as static because it's still being used internally by other functions. Change-Id: I2db8f0ba60cf01929ce2c63edd9859612724de48 --- M include/osmocom/bsc/bsc_msg_filter.h M src/libfilter/bsc_msg_filter.c 2 files changed, 1 insertion(+), 68 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/9761/1 diff --git a/include/osmocom/bsc/bsc_msg_filter.h b/include/osmocom/bsc/bsc_msg_filter.h index a9dedf4..c9d86f4 100644 --- a/include/osmocom/bsc/bsc_msg_filter.h +++ b/include/osmocom/bsc/bsc_msg_filter.h @@ -79,10 +79,6 @@ int bsc_nr; }; - -int bsc_filter_barr_adapt(void *ctx, struct rb_root *rbtree, const struct osmo_config_list *); -int bsc_filter_barr_find(struct rb_root *root, const char *imsi, int *cm, int *lu); - /** * Content filtering. */ diff --git a/src/libfilter/bsc_msg_filter.c b/src/libfilter/bsc_msg_filter.c index 852067e..bcabc24 100644 --- a/src/libfilter/bsc_msg_filter.c +++ b/src/libfilter/bsc_msg_filter.c @@ -35,7 +35,7 @@ #include #include -int bsc_filter_barr_find(struct rb_root *root, const char *imsi, int *cm, int *lu) +static int bsc_filter_barr_find(struct rb_root *root, const char *imsi, int *cm, int *lu) { struct bsc_filter_barr_entry *n; n = rb_entry(root->rb_node, struct bsc_filter_barr_entry, node); @@ -56,69 +56,6 @@ return 0; } -static int insert_barr_node(struct bsc_filter_barr_entry *entry, struct rb_root *root) -{ - struct rb_node **new = &root->rb_node, *parent = NULL; - - while (*new) { - int rc; - struct bsc_filter_barr_entry *this; - this = rb_entry(*new, struct bsc_filter_barr_entry, node); - parent = *new; - - rc = strcmp(entry->imsi, this->imsi); - if (rc < 0) - new = &((*new)->rb_left); - else if (rc > 0) - new = &((*new)->rb_right); - else { - LOGP(DFILTER, LOGL_ERROR, - "Duplicate entry for IMSI(%s)\n", entry->imsi); - talloc_free(entry); - return -1; - } - } - - rb_link_node(&entry->node, parent, new); - rb_insert_color(&entry->node, root); - return 0; -} - -int bsc_filter_barr_adapt(void *ctx, struct rb_root *root, - const struct osmo_config_list *list) -{ - struct osmo_config_entry *cfg_entry; - int err = 0; - - /* free the old data */ - while (!RB_EMPTY_ROOT(root)) { - struct rb_node *node = rb_first(root); - rb_erase(node, root); - talloc_free(node); - } - - if (!list) - return 0; - - /* now adapt the new list */ - llist_for_each_entry(cfg_entry, &list->entry, list) { - struct bsc_filter_barr_entry *entry; - entry = talloc_zero(ctx, struct bsc_filter_barr_entry); - if (!entry) { - LOGP(DFILTER, LOGL_ERROR, - "Allocation of the barr entry failed.\n"); - continue; - } - - entry->imsi = talloc_strdup(entry, cfg_entry->mcc); - entry->cm_reject_cause = atoi(cfg_entry->mnc); - entry->lu_reject_cause = atoi(cfg_entry->option); - err |= insert_barr_node(entry, root); - } - - return err; -} - static int lst_check_deny(struct bsc_msg_acc_lst *lst, const char *mi_string, int *cm_cause, int *lu_cause) -- To view, visit https://gerrit.osmocom.org/9761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2db8f0ba60cf01929ce2c63edd9859612724de48 Gerrit-Change-Number: 9761 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 10:59:05 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 10:59:05 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: Write access list entries when storing bsc config Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9762 Change subject: bsc_vty: Write access list entries when storing bsc config ...................................................................... bsc_vty: Write access list entries when storing bsc config Change-Id: Ice8ce203a52b918e1eddb56ea437d082efd634bc --- M include/osmocom/bsc/bsc_msg_filter.h M src/libfilter/bsc_msg_vty.c M src/osmo-bsc/osmo_bsc_vty.c 3 files changed, 12 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/62/9762/1 diff --git a/include/osmocom/bsc/bsc_msg_filter.h b/include/osmocom/bsc/bsc_msg_filter.h index c9d86f4..2740905 100644 --- a/include/osmocom/bsc/bsc_msg_filter.h +++ b/include/osmocom/bsc/bsc_msg_filter.h @@ -100,4 +100,4 @@ int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node); -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst); +void bsc_msg_acc_lst_write(struct vty *vty); diff --git a/src/libfilter/bsc_msg_vty.c b/src/libfilter/bsc_msg_vty.c index 52e0da5..bcee37e 100644 --- a/src/libfilter/bsc_msg_vty.c +++ b/src/libfilter/bsc_msg_vty.c @@ -111,7 +111,7 @@ return CMD_SUCCESS; } -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst) +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) { struct bsc_msg_acc_lst_entry *entry; @@ -127,6 +127,14 @@ } } +void bsc_msg_acc_lst_write(struct vty *vty) +{ + struct bsc_msg_acc_lst *lst; + llist_for_each_entry(lst, _acc_lst, list) { + bsc_msg_acc_lst_write_one(vty, lst); + } +} + void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 3ed2238..f6f1b8a 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -222,6 +222,8 @@ if (bsc->acc_lst_name) vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); + bsc_msg_acc_lst_write(vty); + return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/9762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ice8ce203a52b918e1eddb56ea437d082efd634bc Gerrit-Change-Number: 9762 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 10:59:05 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 10:59:05 +0000 Subject: Change in osmo-bsc[master]: Init access_lists before passing it as a parameter Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9763 Change subject: Init access_lists before passing it as a parameter ...................................................................... Init access_lists before passing it as a parameter Previous state is harmless because the pointer is stored but not used in that function. However, it's more clear this way. Change-Id: I048ebc120306ea30ea973d6ee16ed84c9f341183 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/63/9763/1 diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 69db32e..1f951b1 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -72,7 +72,7 @@ static const char *config_file = "osmo-bsc.cfg"; static const char *rf_ctrl = NULL; static int daemonize = 0; -static struct llist_head access_lists; +static LLIST_HEAD(access_lists); struct llist_head *bsc_access_lists(void) { @@ -812,8 +812,6 @@ osmo_ss7_init(); osmo_ss7_vty_init_asp(tall_bsc_ctx); - INIT_LLIST_HEAD(&access_lists); - /* parse options */ handle_options(argc, argv); -- To view, visit https://gerrit.osmocom.org/9763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I048ebc120306ea30ea973d6ee16ed84c9f341183 Gerrit-Change-Number: 9763 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 10:59:05 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 10:59:05 +0000 Subject: Change in osmo-bsc[master]: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9764 Change subject: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix ...................................................................... Rename bsc_msg_acc_lst_vty_init to have more uniform prefix Change-Id: I6f125d040a8f511590ef67ba8babbd2e01c6bf21 --- M include/osmocom/bsc/bsc_msg_filter.h M src/libfilter/bsc_msg_vty.c M src/osmo-bsc/osmo_bsc_main.c 3 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/64/9764/1 diff --git a/include/osmocom/bsc/bsc_msg_filter.h b/include/osmocom/bsc/bsc_msg_filter.h index 2740905..fe87485 100644 --- a/include/osmocom/bsc/bsc_msg_filter.h +++ b/include/osmocom/bsc/bsc_msg_filter.h @@ -99,5 +99,5 @@ struct bsc_msg_acc_lst_entry *bsc_msg_acc_lst_entry_create(struct bsc_msg_acc_lst *); int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node); +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node); void bsc_msg_acc_lst_write(struct vty *vty); diff --git a/src/libfilter/bsc_msg_vty.c b/src/libfilter/bsc_msg_vty.c index bcee37e..9905365 100644 --- a/src/libfilter/bsc_msg_vty.c +++ b/src/libfilter/bsc_msg_vty.c @@ -135,7 +135,7 @@ } } -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node) +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; _acc_lst = lst; diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 1f951b1..9ee5147 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -803,7 +803,7 @@ /* This needs to precede handle_options() */ vty_init(&vty_info); bsc_vty_init(bsc_gsmnet); - bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); + bsc_msg_acc_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); ctrl_vty_init(tall_bsc_ctx); logging_vty_add_deprecated_subsys(tall_bsc_ctx, "cc"); logging_vty_add_deprecated_subsys(tall_bsc_ctx, "mgcp"); -- To view, visit https://gerrit.osmocom.org/9764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6f125d040a8f511590ef67ba8babbd2e01c6bf21 Gerrit-Change-Number: 9764 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 11:25:50 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 11:25:50 +0000 Subject: Change in osmo-bsc[master]: filter: vty: Print policy list in cmd show access-list Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9765 Change subject: filter: vty: Print policy list in cmd show access-list ...................................................................... filter: vty: Print policy list in cmd show access-list Change-Id: I3761819fb29f6fe49995ce4c1ae0e9bf92f993cd --- M src/libfilter/bsc_msg_vty.c 1 file changed, 17 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/65/9765/1 diff --git a/src/libfilter/bsc_msg_vty.c b/src/libfilter/bsc_msg_vty.c index 9905365..b26f4f1 100644 --- a/src/libfilter/bsc_msg_vty.c +++ b/src/libfilter/bsc_msg_vty.c @@ -26,6 +26,22 @@ static struct llist_head *_acc_lst; static void *_ctx; +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) +{ + struct bsc_msg_acc_lst_entry *entry; + + llist_for_each_entry(entry, &lst->fltr_list, list) { + if (entry->imsi_allow) + vty_out(vty, " access-list %s imsi-allow %s%s", + lst->name, entry->imsi_allow, VTY_NEWLINE); + if (entry->imsi_deny) + vty_out(vty, " access-list %s imsi-deny %s %d %d%s", + lst->name, entry->imsi_deny, + entry->cm_reject_cause, entry->lu_reject_cause, + VTY_NEWLINE); + } +} + DEFUN(cfg_lst_no, cfg_lst_no_cmd, "no access-list NAME", @@ -52,6 +68,7 @@ return CMD_WARNING; vty_out(vty, "access-list %s%s", acc->name, VTY_NEWLINE); + bsc_msg_acc_lst_write_one(vty, acc); vty_out_rate_ctr_group(vty, " ", acc->stats); return CMD_SUCCESS; @@ -111,22 +128,6 @@ return CMD_SUCCESS; } -static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) -{ - struct bsc_msg_acc_lst_entry *entry; - - llist_for_each_entry(entry, &lst->fltr_list, list) { - if (entry->imsi_allow) - vty_out(vty, " access-list %s imsi-allow %s%s", - lst->name, entry->imsi_allow, VTY_NEWLINE); - if (entry->imsi_deny) - vty_out(vty, " access-list %s imsi-deny %s %d %d%s", - lst->name, entry->imsi_deny, - entry->cm_reject_cause, entry->lu_reject_cause, - VTY_NEWLINE); - } -} - void bsc_msg_acc_lst_write(struct vty *vty) { struct bsc_msg_acc_lst *lst; -- To view, visit https://gerrit.osmocom.org/9765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3761819fb29f6fe49995ce4c1ae0e9bf92f993cd Gerrit-Change-Number: 9765 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 11:25:52 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 11:25:52 +0000 Subject: Change in osmo-bsc[master]: filter: Replace '.' in counter names with ':' Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9766 Change subject: filter: Replace '.' in counter names with ':' ...................................................................... filter: Replace '.' in counter names with ':' The '.' is illegal character in counter names, as they are exported via CTRL interface, where '.' has a special meaning that cannot be used by strings comprising the variable name. Forward-port from openbsc.git 360284d4d797519faed33559b0ae746b6c17e68a. Change-Id: I57b78162701a6a101b5cbaf68aaea89d17a0f819 --- M src/libfilter/bsc_msg_acc.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/66/9766/1 diff --git a/src/libfilter/bsc_msg_acc.c b/src/libfilter/bsc_msg_acc.c index 6b04887..f0232ee 100644 --- a/src/libfilter/bsc_msg_acc.c +++ b/src/libfilter/bsc_msg_acc.c @@ -29,12 +29,12 @@ #include static const struct rate_ctr_desc acc_list_ctr_description[] = { - [ACC_LIST_LOCAL_FILTER] = { "access-list.local-filter", "Rejected by rule for local"}, - [ACC_LIST_GLOBAL_FILTER]= { "access-list.global-filter", "Rejected by rule for global"}, + [ACC_LIST_LOCAL_FILTER] = { "access-list:local-filter", "Rejected by rule for local"}, + [ACC_LIST_GLOBAL_FILTER]= { "access-list:global-filter", "Rejected by rule for global"}, }; static const struct rate_ctr_group_desc bsc_cfg_acc_list_desc = { - .group_name_prefix = "nat.filter", + .group_name_prefix = "nat:filter", .group_description = "NAT Access-List Statistics", .num_ctr = ARRAY_SIZE(acc_list_ctr_description), .ctr_desc = acc_list_ctr_description, -- To view, visit https://gerrit.osmocom.org/9766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I57b78162701a6a101b5cbaf68aaea89d17a0f819 Gerrit-Change-Number: 9766 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 11:25:53 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 11:25:53 +0000 Subject: Change in osmo-bsc[master]: filter: Allocate each ctr group with a different idx Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9767 Change subject: filter: Allocate each ctr group with a different idx ...................................................................... filter: Allocate each ctr group with a different idx Fixes following runtime warning: libosmocore/src/rate_ctr.c:219 counter group 'nat:filter' already exists for index 0, instead using index 1. This is a software bug that needs fixing. Forward-port from openbsc.git c08d58802e03a45f95b8f7d28b29dc7026f664ba. Change-Id: I7c5054c374281bb1d4bd1ecd76ddcca7a010d50a --- M src/libfilter/bsc_msg_acc.c 1 file changed, 18 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/67/9767/1 diff --git a/src/libfilter/bsc_msg_acc.c b/src/libfilter/bsc_msg_acc.c index f0232ee..46077b3 100644 --- a/src/libfilter/bsc_msg_acc.c +++ b/src/libfilter/bsc_msg_acc.c @@ -41,6 +41,21 @@ .class_id = OSMO_STATS_CLASS_GLOBAL, }; +/*! Find an unused index for this rate counter group. + * \param[in] head List of allocated ctr groups of the same type + * \returns the largest used index number + 1, or 0 if none exist yet. */ +static unsigned int rate_ctr_get_unused_idx(struct llist_head *head) +{ + unsigned int idx = 0; + struct bsc_msg_acc_lst *lst; + + llist_for_each_entry(lst, head, list) { + if (idx <= lst->stats->idx) + idx = lst->stats->idx + 1; + } + return idx; +} + int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *mi_string) { @@ -73,6 +88,7 @@ struct bsc_msg_acc_lst *bsc_msg_acc_lst_get(void *ctx, struct llist_head *head, const char *name) { struct bsc_msg_acc_lst *lst; + unsigned int new_idx; lst = bsc_msg_acc_lst_find(head, name); if (lst) @@ -84,8 +100,8 @@ return NULL; } - /* TODO: get the index right */ - lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, 0); + new_idx = rate_ctr_get_unused_idx(head); + lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, new_idx); if (!lst->stats) { talloc_free(lst); return NULL; -- To view, visit https://gerrit.osmocom.org/9767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7c5054c374281bb1d4bd1ecd76ddcca7a010d50a Gerrit-Change-Number: 9767 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 11:28:43 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 11:28:43 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: Write access list entries when storing bsc config In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9762 ) Change subject: bsc_vty: Write access list entries when storing bsc config ...................................................................... Patch Set 1: Once reviewed, this one probably required back-port to openbsc.git. -- To view, visit https://gerrit.osmocom.org/9762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ice8ce203a52b918e1eddb56ea437d082efd634bc Gerrit-Change-Number: 9762 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 11:28:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 11:29:17 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 11:29:17 +0000 Subject: Change in osmo-bsc[master]: filter: vty: Print policy list in cmd show access-list In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9765 ) Change subject: filter: vty: Print policy list in cmd show access-list ...................................................................... Patch Set 1: Once reviewed, this one probably required back-port to openbsc.git. -- To view, visit https://gerrit.osmocom.org/9765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3761819fb29f6fe49995ce4c1ae0e9bf92f993cd Gerrit-Change-Number: 9765 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 11:29:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 11:29:36 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 11:29:36 +0000 Subject: Change in osmo-bsc[master]: Init access_lists before passing it as a parameter In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9763 ) Change subject: Init access_lists before passing it as a parameter ...................................................................... Patch Set 1: Once reviewed, this one probably required back-port to openbsc.git. -- To view, visit https://gerrit.osmocom.org/9763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I048ebc120306ea30ea973d6ee16ed84c9f341183 Gerrit-Change-Number: 9763 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 11:29:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 11:29:44 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 11:29:44 +0000 Subject: Change in osmo-bsc[master]: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/9764 ) Change subject: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix ...................................................................... Patch Set 1: Once reviewed, this one probably required back-port to openbsc.git. -- To view, visit https://gerrit.osmocom.org/9764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6f125d040a8f511590ef67ba8babbd2e01c6bf21 Gerrit-Change-Number: 9764 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 11:29:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 12:15:21 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jun 2018 12:15:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: add tests to verify actual RTP flows Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9768 Change subject: MGCP_Test: add tests to verify actual RTP flows ...................................................................... MGCP_Test: add tests to verify actual RTP flows The test coverage of the RTP aspects of the MGW is currently very minima. Lets add a few more testcase to verify RTP behaves as expected in various situations. - Add testcase TC_one_crcx_receive_only_rtp: Test recvonly mode of the MGW. All packets must be absorbed by the MGW, no packets must come back. - Add testcase TC_one_crcx_loopback_rtp: Test loopback mode of the MGW. All packet sent to the MGW must come back. - Add testcase TC_two_crcx_and_rtp_bidir: We already test unidirectional transmissions. This test does the same as TC_two_crcx_and_rtp but for both directions. - Add testcase TC_two_crcx_mdcx_and_rtp: Simulate a typical behaviour of a normal call. First create two half open connections and complete the connections later using MDCX. - Add testcase TC_two_crcx_and_unsolicited_rtp: Test what happens when a RTP packets from rogue source are mixed into the RTP stream. - Add testcase TC_two_crcx_and_one_mdcx_rtp_ho: Test a typical handover situation. An existing connection is handovered to another source on one end but the old source will keep transmitting for a while. Change-Id: I556a6efff0e74aab897bd8165200eec36e46629f Closes: OS#2703 --- M library/RTP_Emulation.ttcn M mgw/MGCP_Test.ttcn M mgw/expected-results.xml 3 files changed, 423 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/68/9768/1 diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn index 20e4299..475b478 100644 --- a/library/RTP_Emulation.ttcn +++ b/library/RTP_Emulation.ttcn @@ -188,19 +188,56 @@ return stats; } -function f_rtpem_stats_compare(RtpemStats a, RtpemStats b) return boolean { - log("stats A: ", a); - log("stats B: ", b); +function f_rtpem_stats_compare_value(integer a, integer b, integer tolerance := 0) return boolean { + var integer temp; - if (a.num_pkts_tx != b.num_pkts_rx or - a.num_pkts_rx != b.num_pkts_tx or - a.bytes_payload_tx != b.bytes_payload_rx or - a.bytes_payload_rx != b.bytes_payload_tx) { + temp := (a - b) + if (temp < 0) { + temp := -temp; + } + + if (temp > tolerance) { return false; } + return true; } +/* Cross-compare two rtpem-statistics. The transmission statistics on the a side + * must match the reception statistics on the other side and vice versa. The + * user may also supply a tolerance value (number of packets) when deviations + * are acceptable */ +function f_rtpem_stats_compare(RtpemStats a, RtpemStats b, integer tolerance := 0) return boolean { + var integer plen; + + log("stats A: ", a); + log("stats B: ", b); + log("tolerance: ", tolerance, " packets"); + + if (f_rtpem_stats_compare_value(a.num_pkts_tx, b.num_pkts_rx, tolerance) == false) { + return false; + } + + if (f_rtpem_stats_compare_value(a.num_pkts_rx, b.num_pkts_tx, tolerance) == false) { + return false; + } + + if(a.num_pkts_tx > 0) { + plen := a.bytes_payload_tx / a.num_pkts_tx; + } else { + plen := 0; + } + + if (f_rtpem_stats_compare_value(a.bytes_payload_tx, b.bytes_payload_rx, tolerance * plen) == false) { + return false; + } + + if (f_rtpem_stats_compare_value(a.bytes_payload_rx, b.bytes_payload_tx, tolerance * plen) == false) { + return false; + } + + return true; +} template PDU_RTP ts_RTP(BIT32_BO_LAST ssrc, INT7b pt, LIN2_BO_LAST seq, uint32_t ts, octetstring payload, BIT1 marker := '0'B) := { diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 6868405..8746c38 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -22,8 +22,8 @@ var ConnectionId g_mgcp_conn_id := -1; var integer g_trans_id; - var RTP_Emulation_CT vc_RTPEM[2]; - port RTPEM_CTRL_PT RTPEM[2]; + var RTP_Emulation_CT vc_RTPEM[3]; + port RTPEM_CTRL_PT RTPEM[3]; }; function get_next_trans_id() runs on dummy_CT return MgcpTransId { @@ -246,10 +246,10 @@ MgcpConnectionId mgcp_conn_id optional } - function f_flow_create(RTPEM_CTRL_PT pt, MgcpEndpoint ep, inout RtpFlowData flow, + /* Create an RTP flow (bidirectional, or receive-only) */ + function f_flow_create(RTPEM_CTRL_PT pt, MgcpEndpoint ep, MgcpCallId call_id, charstring mode, inout RtpFlowData flow, boolean one_phase := true) runs on dummy_CT { - var MgcpCallId call_id := '1226'H; var template MgcpCommand cmd; var MgcpResponse resp; @@ -257,8 +257,12 @@ f_rtpem_bind(pt, flow.em.hostname, flow.em.portnr); if (one_phase) { - /* Connect flow to MGW */ - cmd := ts_CRCX(get_next_trans_id(), ep, "sendrecv", call_id); + /* Connect flow to MGW using a CRCX that also contains an SDP + * part that tells the MGW where we are listening for RTP streams + * that come from the MGW. We get a fully working connection in + * one go. */ + + cmd := ts_CRCX(get_next_trans_id(), ep, mode, call_id); cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42", flow.em.portnr, { int2str(flow.pt) }, { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), @@ -269,27 +273,65 @@ flow.mgw.portnr := resp.sdp.media_list[0].media_field.ports.port_number; } else { - /* first create the MGW side RTP socket */ - cmd := ts_CRCX(get_next_trans_id(), ep, "recvonly", call_id); + /* Create a half-open connection only. We do not tell the MGW + * where it can send RTP streams to us. This means this + * connection will only be able to receive but can not send + * data back to us. In order to turn the connection in a fully + * bi-directional one, a separate MDCX is needed. */ + + cmd := ts_CRCX(get_next_trans_id(), ep, mode, call_id); resp := mgcp_transceive_mgw(cmd, tr_CRCX_ACK); flow.mgcp_conn_id := extract_conn_id(resp); /* extract MGW-side port number from response */ flow.mgw.portnr := resp.sdp.media_list[0].media_field.ports.port_number; - - /* then connect it to the emulation-side RTP socket using SDP */ - cmd := ts_MDCX(get_next_trans_id(), ep, "sendrecv", call_id, flow.mgcp_conn_id); - cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42", - flow.em.portnr, { int2str(flow.pt) }, - { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), - valueof(ts_SDP_ptime(20)) }); - resp := mgcp_transceive_mgw(cmd, tr_MDCX_ACK); - } /* finally, connect the emulation-side RTP socket to the MGW */ f_rtpem_connect(pt, flow.mgw.hostname, flow.mgw.portnr); } + /* Modify an existing RTP flow */ + function f_flow_modify(RTPEM_CTRL_PT pt, MgcpEndpoint ep, MgcpCallId call_id, charstring mode, inout RtpFlowData flow) + runs on dummy_CT { + var template MgcpCommand cmd; + var MgcpResponse resp; + + /* rebind local RTP emulation socket to the new address */ + f_rtpem_bind(pt, flow.em.hostname, flow.em.portnr); + + /* connect MGW side RTP socket to the emulation-side RTP socket using SDP */ + cmd := ts_MDCX(get_next_trans_id(), ep, mode, call_id, flow.mgcp_conn_id); + cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42", + flow.em.portnr, { int2str(flow.pt) }, + { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), + valueof(ts_SDP_ptime(20)) }); + resp := mgcp_transceive_mgw(cmd, tr_MDCX_ACK); + + /* extract MGW-side port number from response. (usually this + * will not change, but thats is up to the MGW) */ + flow.mgw.portnr := + resp.sdp.media_list[0].media_field.ports.port_number; + + /* reconnect the emulation-side RTP socket to the MGW */ + f_rtpem_connect(pt, flow.mgw.hostname, flow.mgw.portnr); + } + + /* Delete an existing RTP flow */ + function f_flow_delete(RTPEM_CTRL_PT pt, template MgcpEndpoint ep := omit, template MgcpCallId call_id := omit) + runs on dummy_CT { + var template MgcpCommand cmd; + var MgcpResponse resp; + + /* Switch off RTP flow */ + f_rtpem_mode(pt, RTPEM_MODE_NONE); + + /* Delete connection on MGW (if needed) */ + if (isvalue(call_id) and isvalue(ep)) { + f_sleep(0.1); + f_dlcx_ok(valueof(ep), call_id); + } + } + function f_crcx(charstring ep_prefix) runs on dummy_CT { var MgcpEndpoint ep := ep_prefix & "2@" & c_mgw_domain; var template MgcpCommand cmd; @@ -862,14 +904,92 @@ setverdict(pass); } - /* create two local RTP emulations; create two connections on MGW EP, exchange some data */ - testcase TC_two_crcx_and_rtp() runs on dummy_CT { + /* Create one half open connection in receive-only mode. The MGW must accept + * the packets but must not send any. */ + testcase TC_one_crcx_receive_only_rtp() runs on dummy_CT { + var RtpFlowData flow; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "1@" & c_mgw_domain; + var MgcpCallId call_id := '1225'H; + var RtpemStats stats; + + f_init(ep); + flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000/1")); + flow.em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "recvonly", flow, false); + + f_rtpem_mode(RTPEM[0], RTPEM_MODE_TXONLY); + f_sleep(1.0); + f_flow_delete(RTPEM[0], ep, call_id); + + stats := f_rtpem_stats_get(RTPEM[0]); + + if (stats.num_pkts_tx < 40) { + setverdict(fail); + } + if (stats.bytes_payload_tx < 190) { + setverdict(fail); + } + if (stats.num_pkts_rx != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_seq != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_ts != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_disabled != 0) { + setverdict(fail); + } + + setverdict(pass); + } + + /* Create one connection in loopback mode, test if the RTP packets are + * actually reflected */ + testcase TC_one_crcx_loopback_rtp() runs on dummy_CT { + var RtpFlowData flow; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "1@" & c_mgw_domain; + var MgcpCallId call_id := '1225'H; + var RtpemStats stats; + + f_init(ep); + flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000/1")); + flow.em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "loopback", flow); + + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_sleep(1.0); + f_flow_delete(RTPEM[0], ep, call_id); + + stats := f_rtpem_stats_get(RTPEM[0]); + + if (stats.num_pkts_tx != stats.num_pkts_rx) { + setverdict(fail); + } + if (stats.bytes_payload_tx != stats.bytes_payload_rx) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_seq != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_ts != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_disabled != 0) { + setverdict(fail); + } + + setverdict(pass); + } + + function f_TC_two_crcx_and_rtp(boolean bidir) runs on dummy_CT { var RtpFlowData flow[2]; var RtpemStats stats[2]; - var template MgcpCommand cmd; var MgcpResponse resp; var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; var MgcpCallId call_id := '1226'H; + var integer tolerance := 0; f_init(ep); @@ -877,20 +997,181 @@ flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); /* bind local RTP emulation sockets */ flow[0].em.portnr := 10000; - f_flow_create(RTPEM[0], ep, flow[0]); + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); /* from MGW back to us */ flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); flow[1].em.portnr := 20000; - f_flow_create(RTPEM[1], ep, flow[1]); + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + + if (bidir) { + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + + /* Note: When we test bidirectional we may + * loose packets during switch off because + * both ends are transmitting and we only + * can switch them off one by one. */ + tolerance := 3; + } else { + f_rtpem_mode(RTPEM[0], RTPEM_MODE_RXONLY); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_TXONLY); + } + + f_sleep(1.0); + + f_flow_delete(RTPEM[1]); + f_flow_delete(RTPEM[0], ep, call_id); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (not f_rtpem_stats_compare(stats[0], stats[1], tolerance)) { + setverdict(fail, "RTP endpoint statistics don't match"); + } + + setverdict(pass); + } + + /* create two local RTP emulations; create two connections on MGW EP, exchange some data */ + testcase TC_two_crcx_and_rtp() runs on dummy_CT { + f_TC_two_crcx_and_rtp(false); + } + + /* create two local RTP emulations; create two connections on MGW EP, + * exchange some data in both directions */ + testcase TC_two_crcx_and_rtp_bidir() runs on dummy_CT { + f_TC_two_crcx_and_rtp(true); + } + + /* create two local RTP emulations and pass data in both directions */ + testcase TC_two_crcx_mdcx_and_rtp() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[2]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; + var MgcpCallId call_id := '1227'H; + var integer num_pkts_tx[2]; + var integer temp; + + f_init(ep); + + /* Create the first connection in receive only mode */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 3, "GSM/8000/1")); + flow[0].em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "recvonly", flow[0], false); + + /* Create the second connection. This connection will be also + * in receive only mode */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 3, "GSM/8000/1")); + flow[1].em.portnr := 20000; + f_flow_create(RTPEM[1], ep, call_id, "recvonly", flow[1], false); + + /* The first leg starts transmitting */ + f_rtpem_mode(RTPEM[0], RTPEM_MODE_TXONLY); + f_sleep(0.5); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + if (stats[0].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + + /* The second leg starts transmitting a little later */ + f_rtpem_mode(RTPEM[1], RTPEM_MODE_TXONLY); + f_sleep(1.0); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + if (stats[0].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + + /* The first leg will now be switched into bidirectional + * mode, but we do not expect any data comming back yet. */ + f_flow_modify(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + f_sleep(0.5); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + + /* When the second leg is switched into bidirectional mode + * as well, then the MGW will connect the two together and + * we should see RTP streams passing through from both ends. */ + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + num_pkts_tx[0] := stats[0].num_pkts_tx + stats[1] := f_rtpem_stats_get(RTPEM[1]); + num_pkts_tx[1] := stats[1].num_pkts_tx + + f_flow_modify(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + f_sleep(2.0); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + + temp := stats[0].num_pkts_tx - num_pkts_tx[0] - stats[1].num_pkts_rx; + if (temp > 3 or temp < -3) { + setverdict(fail, "number of packets not within normal parameters"); + } + + temp := stats[1].num_pkts_tx - num_pkts_tx[1] - stats[0].num_pkts_rx; + if (temp > 3 or temp < -3) { + setverdict(fail, "number of packets not within normal parameters"); + } + + /* Tear down */ + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); + setverdict(pass); + } + + /* Test what happens when two RTP streams from different sources target + * a single connection. Is the unsolicited stream properly ignored? */ + testcase TC_two_crcx_and_unsolicited_rtp() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[2]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; + var MgcpCallId call_id := '1234321326'H; + var integer unsolicited_port := 10002; + + f_init(ep); + + /* from us to MGW */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); + /* bind local RTP emulation sockets */ + flow[0].em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* from MGW back to us */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); + flow[1].em.portnr := 20000; + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); f_rtpem_mode(RTPEM[1], RTPEM_MODE_RXONLY); f_rtpem_mode(RTPEM[0], RTPEM_MODE_TXONLY); - f_sleep(1.0); + f_sleep(0.5); - f_rtpem_mode(RTPEM[0], RTPEM_MODE_NONE); - f_sleep(0.1); + /* Start inserting unsolicited RTP packets */ + f_rtpem_bind(RTPEM[2], "127.0.0.1", unsolicited_port); + f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); + + f_sleep(0.5); + + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); stats[0] := f_rtpem_stats_get(RTPEM[0]); stats[1] := f_rtpem_stats_get(RTPEM[1]); @@ -898,9 +1179,68 @@ setverdict(fail, "RTP endpoint statistics don't match"); } - f_dlcx_ok(ep, call_id); setverdict(pass); + } + /* Test a handover situation. We first create two connections transmit + * some data bidirectionally. Then we will simulate a handover situation. */ + testcase TC_two_crcx_and_one_mdcx_rtp_ho() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[3]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "4@" & c_mgw_domain; + var MgcpCallId call_id := '76338'H; + var integer port_old; + + f_init(ep); + + /* First connection (BTS) */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "GSM-EFR/8000")); + /* bind local RTP emulation sockets */ + flow[0].em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* Second connection (PBX) */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "GSM-EFR/8000")); + flow[1].em.portnr := 20000; + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + + /* Normal rtp flow for one second */ + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + f_sleep(1.0); + + /* Now switch the flow over to a new port (BTS) */ + port_old := flow[0].em.portnr; + flow[0].em.portnr := 10002; + f_flow_modify(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* When handing over a call, the old source may still keep + * transmitting for a while. We simulate this by injecting + * some unsolicited packets on the behalf of the old source, + * (old remote port) */ + f_rtpem_bind(RTPEM[2], "127.0.0.1", port_old); + f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); + f_sleep(1.0); + f_rtpem_mode(RTPEM[2], RTPEM_MODE_NONE); + f_sleep(1.0); + + /* Terminate call */ + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (not f_rtpem_stats_compare(stats[0], stats[1], 5)) { + setverdict(fail, "RTP endpoint statistics don't match"); + } + stats[2] := f_rtpem_stats_get(RTPEM[2]); + if (stats[2].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets on old leg after handover"); + } + + setverdict(pass); } /* TODO: Double-DLCX (no retransmission) */ @@ -943,6 +1283,13 @@ execute(TC_crcx_dlcx_30ep()); execute(TC_rtpem_selftest()); + + execute(TC_one_crcx_receive_only_rtp()); + execute(TC_one_crcx_loopback_rtp()); execute(TC_two_crcx_and_rtp()); + execute(TC_two_crcx_and_rtp_bidir()); + execute(TC_two_crcx_mdcx_and_rtp()); + execute(TC_two_crcx_and_unsolicited_rtp()); + execute(TC_two_crcx_and_one_mdcx_rtp_ho()); } } diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index 03c8fd2..f201099 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -31,4 +31,10 @@ + + + + + + -- To view, visit https://gerrit.osmocom.org/9768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I556a6efff0e74aab897bd8165200eec36e46629f Gerrit-Change-Number: 9768 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:05:11 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jun 2018 13:05:11 +0000 Subject: Change in libosmocore[master]: gprs_bssgp: extend log output In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/9702 ) Change subject: gprs_bssgp: extend log output ...................................................................... Abandoned Yes thats what I think too. Lets abandon this. -- To view, visit https://gerrit.osmocom.org/9702 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I2980174c899b63717efe218ff5ec8d314c0d6da4 Gerrit-Change-Number: 9702 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:41:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:41:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: add tests to verify actual RTP flows In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9768 ) Change subject: MGCP_Test: add tests to verify actual RTP flows ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I556a6efff0e74aab897bd8165200eec36e46629f Gerrit-Change-Number: 9768 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 13:41:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:41:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:41:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: add tests to verify actual RTP flows In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9768 ) Change subject: MGCP_Test: add tests to verify actual RTP flows ...................................................................... MGCP_Test: add tests to verify actual RTP flows The test coverage of the RTP aspects of the MGW is currently very minima. Lets add a few more testcase to verify RTP behaves as expected in various situations. - Add testcase TC_one_crcx_receive_only_rtp: Test recvonly mode of the MGW. All packets must be absorbed by the MGW, no packets must come back. - Add testcase TC_one_crcx_loopback_rtp: Test loopback mode of the MGW. All packet sent to the MGW must come back. - Add testcase TC_two_crcx_and_rtp_bidir: We already test unidirectional transmissions. This test does the same as TC_two_crcx_and_rtp but for both directions. - Add testcase TC_two_crcx_mdcx_and_rtp: Simulate a typical behaviour of a normal call. First create two half open connections and complete the connections later using MDCX. - Add testcase TC_two_crcx_and_unsolicited_rtp: Test what happens when a RTP packets from rogue source are mixed into the RTP stream. - Add testcase TC_two_crcx_and_one_mdcx_rtp_ho: Test a typical handover situation. An existing connection is handovered to another source on one end but the old source will keep transmitting for a while. Change-Id: I556a6efff0e74aab897bd8165200eec36e46629f Closes: OS#2703 --- M library/RTP_Emulation.ttcn M mgw/MGCP_Test.ttcn M mgw/expected-results.xml 3 files changed, 423 insertions(+), 33 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn index 20e4299..475b478 100644 --- a/library/RTP_Emulation.ttcn +++ b/library/RTP_Emulation.ttcn @@ -188,19 +188,56 @@ return stats; } -function f_rtpem_stats_compare(RtpemStats a, RtpemStats b) return boolean { - log("stats A: ", a); - log("stats B: ", b); +function f_rtpem_stats_compare_value(integer a, integer b, integer tolerance := 0) return boolean { + var integer temp; - if (a.num_pkts_tx != b.num_pkts_rx or - a.num_pkts_rx != b.num_pkts_tx or - a.bytes_payload_tx != b.bytes_payload_rx or - a.bytes_payload_rx != b.bytes_payload_tx) { + temp := (a - b) + if (temp < 0) { + temp := -temp; + } + + if (temp > tolerance) { return false; } + return true; } +/* Cross-compare two rtpem-statistics. The transmission statistics on the a side + * must match the reception statistics on the other side and vice versa. The + * user may also supply a tolerance value (number of packets) when deviations + * are acceptable */ +function f_rtpem_stats_compare(RtpemStats a, RtpemStats b, integer tolerance := 0) return boolean { + var integer plen; + + log("stats A: ", a); + log("stats B: ", b); + log("tolerance: ", tolerance, " packets"); + + if (f_rtpem_stats_compare_value(a.num_pkts_tx, b.num_pkts_rx, tolerance) == false) { + return false; + } + + if (f_rtpem_stats_compare_value(a.num_pkts_rx, b.num_pkts_tx, tolerance) == false) { + return false; + } + + if(a.num_pkts_tx > 0) { + plen := a.bytes_payload_tx / a.num_pkts_tx; + } else { + plen := 0; + } + + if (f_rtpem_stats_compare_value(a.bytes_payload_tx, b.bytes_payload_rx, tolerance * plen) == false) { + return false; + } + + if (f_rtpem_stats_compare_value(a.bytes_payload_rx, b.bytes_payload_tx, tolerance * plen) == false) { + return false; + } + + return true; +} template PDU_RTP ts_RTP(BIT32_BO_LAST ssrc, INT7b pt, LIN2_BO_LAST seq, uint32_t ts, octetstring payload, BIT1 marker := '0'B) := { diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 6868405..8746c38 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -22,8 +22,8 @@ var ConnectionId g_mgcp_conn_id := -1; var integer g_trans_id; - var RTP_Emulation_CT vc_RTPEM[2]; - port RTPEM_CTRL_PT RTPEM[2]; + var RTP_Emulation_CT vc_RTPEM[3]; + port RTPEM_CTRL_PT RTPEM[3]; }; function get_next_trans_id() runs on dummy_CT return MgcpTransId { @@ -246,10 +246,10 @@ MgcpConnectionId mgcp_conn_id optional } - function f_flow_create(RTPEM_CTRL_PT pt, MgcpEndpoint ep, inout RtpFlowData flow, + /* Create an RTP flow (bidirectional, or receive-only) */ + function f_flow_create(RTPEM_CTRL_PT pt, MgcpEndpoint ep, MgcpCallId call_id, charstring mode, inout RtpFlowData flow, boolean one_phase := true) runs on dummy_CT { - var MgcpCallId call_id := '1226'H; var template MgcpCommand cmd; var MgcpResponse resp; @@ -257,8 +257,12 @@ f_rtpem_bind(pt, flow.em.hostname, flow.em.portnr); if (one_phase) { - /* Connect flow to MGW */ - cmd := ts_CRCX(get_next_trans_id(), ep, "sendrecv", call_id); + /* Connect flow to MGW using a CRCX that also contains an SDP + * part that tells the MGW where we are listening for RTP streams + * that come from the MGW. We get a fully working connection in + * one go. */ + + cmd := ts_CRCX(get_next_trans_id(), ep, mode, call_id); cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42", flow.em.portnr, { int2str(flow.pt) }, { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), @@ -269,27 +273,65 @@ flow.mgw.portnr := resp.sdp.media_list[0].media_field.ports.port_number; } else { - /* first create the MGW side RTP socket */ - cmd := ts_CRCX(get_next_trans_id(), ep, "recvonly", call_id); + /* Create a half-open connection only. We do not tell the MGW + * where it can send RTP streams to us. This means this + * connection will only be able to receive but can not send + * data back to us. In order to turn the connection in a fully + * bi-directional one, a separate MDCX is needed. */ + + cmd := ts_CRCX(get_next_trans_id(), ep, mode, call_id); resp := mgcp_transceive_mgw(cmd, tr_CRCX_ACK); flow.mgcp_conn_id := extract_conn_id(resp); /* extract MGW-side port number from response */ flow.mgw.portnr := resp.sdp.media_list[0].media_field.ports.port_number; - - /* then connect it to the emulation-side RTP socket using SDP */ - cmd := ts_MDCX(get_next_trans_id(), ep, "sendrecv", call_id, flow.mgcp_conn_id); - cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42", - flow.em.portnr, { int2str(flow.pt) }, - { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), - valueof(ts_SDP_ptime(20)) }); - resp := mgcp_transceive_mgw(cmd, tr_MDCX_ACK); - } /* finally, connect the emulation-side RTP socket to the MGW */ f_rtpem_connect(pt, flow.mgw.hostname, flow.mgw.portnr); } + /* Modify an existing RTP flow */ + function f_flow_modify(RTPEM_CTRL_PT pt, MgcpEndpoint ep, MgcpCallId call_id, charstring mode, inout RtpFlowData flow) + runs on dummy_CT { + var template MgcpCommand cmd; + var MgcpResponse resp; + + /* rebind local RTP emulation socket to the new address */ + f_rtpem_bind(pt, flow.em.hostname, flow.em.portnr); + + /* connect MGW side RTP socket to the emulation-side RTP socket using SDP */ + cmd := ts_MDCX(get_next_trans_id(), ep, mode, call_id, flow.mgcp_conn_id); + cmd.sdp := ts_SDP(flow.em.hostname, flow.em.hostname, "23", "42", + flow.em.portnr, { int2str(flow.pt) }, + { valueof(ts_SDP_rtpmap(flow.pt, flow.codec)), + valueof(ts_SDP_ptime(20)) }); + resp := mgcp_transceive_mgw(cmd, tr_MDCX_ACK); + + /* extract MGW-side port number from response. (usually this + * will not change, but thats is up to the MGW) */ + flow.mgw.portnr := + resp.sdp.media_list[0].media_field.ports.port_number; + + /* reconnect the emulation-side RTP socket to the MGW */ + f_rtpem_connect(pt, flow.mgw.hostname, flow.mgw.portnr); + } + + /* Delete an existing RTP flow */ + function f_flow_delete(RTPEM_CTRL_PT pt, template MgcpEndpoint ep := omit, template MgcpCallId call_id := omit) + runs on dummy_CT { + var template MgcpCommand cmd; + var MgcpResponse resp; + + /* Switch off RTP flow */ + f_rtpem_mode(pt, RTPEM_MODE_NONE); + + /* Delete connection on MGW (if needed) */ + if (isvalue(call_id) and isvalue(ep)) { + f_sleep(0.1); + f_dlcx_ok(valueof(ep), call_id); + } + } + function f_crcx(charstring ep_prefix) runs on dummy_CT { var MgcpEndpoint ep := ep_prefix & "2@" & c_mgw_domain; var template MgcpCommand cmd; @@ -862,14 +904,92 @@ setverdict(pass); } - /* create two local RTP emulations; create two connections on MGW EP, exchange some data */ - testcase TC_two_crcx_and_rtp() runs on dummy_CT { + /* Create one half open connection in receive-only mode. The MGW must accept + * the packets but must not send any. */ + testcase TC_one_crcx_receive_only_rtp() runs on dummy_CT { + var RtpFlowData flow; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "1@" & c_mgw_domain; + var MgcpCallId call_id := '1225'H; + var RtpemStats stats; + + f_init(ep); + flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 112, "AMR/8000/1")); + flow.em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "recvonly", flow, false); + + f_rtpem_mode(RTPEM[0], RTPEM_MODE_TXONLY); + f_sleep(1.0); + f_flow_delete(RTPEM[0], ep, call_id); + + stats := f_rtpem_stats_get(RTPEM[0]); + + if (stats.num_pkts_tx < 40) { + setverdict(fail); + } + if (stats.bytes_payload_tx < 190) { + setverdict(fail); + } + if (stats.num_pkts_rx != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_seq != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_ts != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_disabled != 0) { + setverdict(fail); + } + + setverdict(pass); + } + + /* Create one connection in loopback mode, test if the RTP packets are + * actually reflected */ + testcase TC_one_crcx_loopback_rtp() runs on dummy_CT { + var RtpFlowData flow; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "1@" & c_mgw_domain; + var MgcpCallId call_id := '1225'H; + var RtpemStats stats; + + f_init(ep); + flow := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000/1")); + flow.em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "loopback", flow); + + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_sleep(1.0); + f_flow_delete(RTPEM[0], ep, call_id); + + stats := f_rtpem_stats_get(RTPEM[0]); + + if (stats.num_pkts_tx != stats.num_pkts_rx) { + setverdict(fail); + } + if (stats.bytes_payload_tx != stats.bytes_payload_rx) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_seq != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_ts != 0) { + setverdict(fail); + } + if (stats.num_pkts_rx_err_disabled != 0) { + setverdict(fail); + } + + setverdict(pass); + } + + function f_TC_two_crcx_and_rtp(boolean bidir) runs on dummy_CT { var RtpFlowData flow[2]; var RtpemStats stats[2]; - var template MgcpCommand cmd; var MgcpResponse resp; var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; var MgcpCallId call_id := '1226'H; + var integer tolerance := 0; f_init(ep); @@ -877,20 +997,181 @@ flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); /* bind local RTP emulation sockets */ flow[0].em.portnr := 10000; - f_flow_create(RTPEM[0], ep, flow[0]); + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); /* from MGW back to us */ flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); flow[1].em.portnr := 20000; - f_flow_create(RTPEM[1], ep, flow[1]); + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + + if (bidir) { + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + + /* Note: When we test bidirectional we may + * loose packets during switch off because + * both ends are transmitting and we only + * can switch them off one by one. */ + tolerance := 3; + } else { + f_rtpem_mode(RTPEM[0], RTPEM_MODE_RXONLY); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_TXONLY); + } + + f_sleep(1.0); + + f_flow_delete(RTPEM[1]); + f_flow_delete(RTPEM[0], ep, call_id); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (not f_rtpem_stats_compare(stats[0], stats[1], tolerance)) { + setverdict(fail, "RTP endpoint statistics don't match"); + } + + setverdict(pass); + } + + /* create two local RTP emulations; create two connections on MGW EP, exchange some data */ + testcase TC_two_crcx_and_rtp() runs on dummy_CT { + f_TC_two_crcx_and_rtp(false); + } + + /* create two local RTP emulations; create two connections on MGW EP, + * exchange some data in both directions */ + testcase TC_two_crcx_and_rtp_bidir() runs on dummy_CT { + f_TC_two_crcx_and_rtp(true); + } + + /* create two local RTP emulations and pass data in both directions */ + testcase TC_two_crcx_mdcx_and_rtp() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[2]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; + var MgcpCallId call_id := '1227'H; + var integer num_pkts_tx[2]; + var integer temp; + + f_init(ep); + + /* Create the first connection in receive only mode */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 3, "GSM/8000/1")); + flow[0].em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "recvonly", flow[0], false); + + /* Create the second connection. This connection will be also + * in receive only mode */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 3, "GSM/8000/1")); + flow[1].em.portnr := 20000; + f_flow_create(RTPEM[1], ep, call_id, "recvonly", flow[1], false); + + /* The first leg starts transmitting */ + f_rtpem_mode(RTPEM[0], RTPEM_MODE_TXONLY); + f_sleep(0.5); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + if (stats[0].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + + /* The second leg starts transmitting a little later */ + f_rtpem_mode(RTPEM[1], RTPEM_MODE_TXONLY); + f_sleep(1.0); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + if (stats[0].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + + /* The first leg will now be switched into bidirectional + * mode, but we do not expect any data comming back yet. */ + f_flow_modify(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + f_sleep(0.5); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (stats[1].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets from MGW on recvonly connection"); + } + + /* When the second leg is switched into bidirectional mode + * as well, then the MGW will connect the two together and + * we should see RTP streams passing through from both ends. */ + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + stats[0] := f_rtpem_stats_get(RTPEM[0]); + num_pkts_tx[0] := stats[0].num_pkts_tx + stats[1] := f_rtpem_stats_get(RTPEM[1]); + num_pkts_tx[1] := stats[1].num_pkts_tx + + f_flow_modify(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + f_sleep(2.0); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + + temp := stats[0].num_pkts_tx - num_pkts_tx[0] - stats[1].num_pkts_rx; + if (temp > 3 or temp < -3) { + setverdict(fail, "number of packets not within normal parameters"); + } + + temp := stats[1].num_pkts_tx - num_pkts_tx[1] - stats[0].num_pkts_rx; + if (temp > 3 or temp < -3) { + setverdict(fail, "number of packets not within normal parameters"); + } + + /* Tear down */ + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); + setverdict(pass); + } + + /* Test what happens when two RTP streams from different sources target + * a single connection. Is the unsolicited stream properly ignored? */ + testcase TC_two_crcx_and_unsolicited_rtp() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[2]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; + var MgcpCallId call_id := '1234321326'H; + var integer unsolicited_port := 10002; + + f_init(ep); + + /* from us to MGW */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); + /* bind local RTP emulation sockets */ + flow[0].em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* from MGW back to us */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 98, "AMR/8000")); + flow[1].em.portnr := 20000; + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); f_rtpem_mode(RTPEM[1], RTPEM_MODE_RXONLY); f_rtpem_mode(RTPEM[0], RTPEM_MODE_TXONLY); - f_sleep(1.0); + f_sleep(0.5); - f_rtpem_mode(RTPEM[0], RTPEM_MODE_NONE); - f_sleep(0.1); + /* Start inserting unsolicited RTP packets */ + f_rtpem_bind(RTPEM[2], "127.0.0.1", unsolicited_port); + f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); + + f_sleep(0.5); + + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); stats[0] := f_rtpem_stats_get(RTPEM[0]); stats[1] := f_rtpem_stats_get(RTPEM[1]); @@ -898,9 +1179,68 @@ setverdict(fail, "RTP endpoint statistics don't match"); } - f_dlcx_ok(ep, call_id); setverdict(pass); + } + /* Test a handover situation. We first create two connections transmit + * some data bidirectionally. Then we will simulate a handover situation. */ + testcase TC_two_crcx_and_one_mdcx_rtp_ho() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[3]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "4@" & c_mgw_domain; + var MgcpCallId call_id := '76338'H; + var integer port_old; + + f_init(ep); + + /* First connection (BTS) */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "GSM-EFR/8000")); + /* bind local RTP emulation sockets */ + flow[0].em.portnr := 10000; + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* Second connection (PBX) */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 110, "GSM-EFR/8000")); + flow[1].em.portnr := 20000; + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + + /* Normal rtp flow for one second */ + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + f_sleep(1.0); + + /* Now switch the flow over to a new port (BTS) */ + port_old := flow[0].em.portnr; + flow[0].em.portnr := 10002; + f_flow_modify(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* When handing over a call, the old source may still keep + * transmitting for a while. We simulate this by injecting + * some unsolicited packets on the behalf of the old source, + * (old remote port) */ + f_rtpem_bind(RTPEM[2], "127.0.0.1", port_old); + f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); + f_sleep(1.0); + f_rtpem_mode(RTPEM[2], RTPEM_MODE_NONE); + f_sleep(1.0); + + /* Terminate call */ + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + if (not f_rtpem_stats_compare(stats[0], stats[1], 5)) { + setverdict(fail, "RTP endpoint statistics don't match"); + } + stats[2] := f_rtpem_stats_get(RTPEM[2]); + if (stats[2].num_pkts_rx_err_disabled != 0) { + setverdict(fail, "received packets on old leg after handover"); + } + + setverdict(pass); } /* TODO: Double-DLCX (no retransmission) */ @@ -943,6 +1283,13 @@ execute(TC_crcx_dlcx_30ep()); execute(TC_rtpem_selftest()); + + execute(TC_one_crcx_receive_only_rtp()); + execute(TC_one_crcx_loopback_rtp()); execute(TC_two_crcx_and_rtp()); + execute(TC_two_crcx_and_rtp_bidir()); + execute(TC_two_crcx_mdcx_and_rtp()); + execute(TC_two_crcx_and_unsolicited_rtp()); + execute(TC_two_crcx_and_one_mdcx_rtp_ho()); } } diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index 03c8fd2..f201099 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -31,4 +31,10 @@ + + + + + + -- To view, visit https://gerrit.osmocom.org/9768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I556a6efff0e74aab897bd8165200eec36e46629f Gerrit-Change-Number: 9768 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:42:13 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:42:13 +0000 Subject: Change in osmo-bsc[master]: bsc-filter: Remove unused func barr_adapt and set barr_find static In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9761 ) Change subject: bsc-filter: Remove unused func barr_adapt and set barr_find static ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2db8f0ba60cf01929ce2c63edd9859612724de48 Gerrit-Change-Number: 9761 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 13:42:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:42:27 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:42:27 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: Write access list entries when storing bsc config In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9762 ) Change subject: bsc_vty: Write access list entries when storing bsc config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ice8ce203a52b918e1eddb56ea437d082efd634bc Gerrit-Change-Number: 9762 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 13:42:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:42:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:42:41 +0000 Subject: Change in osmo-bsc[master]: Init access_lists before passing it as a parameter In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9763 ) Change subject: Init access_lists before passing it as a parameter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I048ebc120306ea30ea973d6ee16ed84c9f341183 Gerrit-Change-Number: 9763 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 13:42:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:05 +0000 Subject: Change in osmo-bsc[master]: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9764 ) Change subject: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6f125d040a8f511590ef67ba8babbd2e01c6bf21 Gerrit-Change-Number: 9764 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 13:43:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:14 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:14 +0000 Subject: Change in osmo-bsc[master]: filter: vty: Print policy list in cmd show access-list In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9765 ) Change subject: filter: vty: Print policy list in cmd show access-list ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3761819fb29f6fe49995ce4c1ae0e9bf92f993cd Gerrit-Change-Number: 9765 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 13:43:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:26 +0000 Subject: Change in osmo-bsc[master]: filter: Replace '.' in counter names with ':' In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9766 ) Change subject: filter: Replace '.' in counter names with ':' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I57b78162701a6a101b5cbaf68aaea89d17a0f819 Gerrit-Change-Number: 9766 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 13:43:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:29 +0000 Subject: Change in osmo-bsc[master]: filter: Allocate each ctr group with a different idx In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9767 ) Change subject: filter: Allocate each ctr group with a different idx ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7c5054c374281bb1d4bd1ecd76ddcca7a010d50a Gerrit-Change-Number: 9767 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 13:43:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:30 +0000 Subject: Change in osmo-bsc[master]: bsc-filter: Remove unused func barr_adapt and set barr_find static In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9761 ) Change subject: bsc-filter: Remove unused func barr_adapt and set barr_find static ...................................................................... bsc-filter: Remove unused func barr_adapt and set barr_find static bar_find is set as static because it's still being used internally by other functions. Change-Id: I2db8f0ba60cf01929ce2c63edd9859612724de48 --- M include/osmocom/bsc/bsc_msg_filter.h M src/libfilter/bsc_msg_filter.c 2 files changed, 1 insertion(+), 68 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_msg_filter.h b/include/osmocom/bsc/bsc_msg_filter.h index a9dedf4..c9d86f4 100644 --- a/include/osmocom/bsc/bsc_msg_filter.h +++ b/include/osmocom/bsc/bsc_msg_filter.h @@ -79,10 +79,6 @@ int bsc_nr; }; - -int bsc_filter_barr_adapt(void *ctx, struct rb_root *rbtree, const struct osmo_config_list *); -int bsc_filter_barr_find(struct rb_root *root, const char *imsi, int *cm, int *lu); - /** * Content filtering. */ diff --git a/src/libfilter/bsc_msg_filter.c b/src/libfilter/bsc_msg_filter.c index 852067e..bcabc24 100644 --- a/src/libfilter/bsc_msg_filter.c +++ b/src/libfilter/bsc_msg_filter.c @@ -35,7 +35,7 @@ #include #include -int bsc_filter_barr_find(struct rb_root *root, const char *imsi, int *cm, int *lu) +static int bsc_filter_barr_find(struct rb_root *root, const char *imsi, int *cm, int *lu) { struct bsc_filter_barr_entry *n; n = rb_entry(root->rb_node, struct bsc_filter_barr_entry, node); @@ -56,69 +56,6 @@ return 0; } -static int insert_barr_node(struct bsc_filter_barr_entry *entry, struct rb_root *root) -{ - struct rb_node **new = &root->rb_node, *parent = NULL; - - while (*new) { - int rc; - struct bsc_filter_barr_entry *this; - this = rb_entry(*new, struct bsc_filter_barr_entry, node); - parent = *new; - - rc = strcmp(entry->imsi, this->imsi); - if (rc < 0) - new = &((*new)->rb_left); - else if (rc > 0) - new = &((*new)->rb_right); - else { - LOGP(DFILTER, LOGL_ERROR, - "Duplicate entry for IMSI(%s)\n", entry->imsi); - talloc_free(entry); - return -1; - } - } - - rb_link_node(&entry->node, parent, new); - rb_insert_color(&entry->node, root); - return 0; -} - -int bsc_filter_barr_adapt(void *ctx, struct rb_root *root, - const struct osmo_config_list *list) -{ - struct osmo_config_entry *cfg_entry; - int err = 0; - - /* free the old data */ - while (!RB_EMPTY_ROOT(root)) { - struct rb_node *node = rb_first(root); - rb_erase(node, root); - talloc_free(node); - } - - if (!list) - return 0; - - /* now adapt the new list */ - llist_for_each_entry(cfg_entry, &list->entry, list) { - struct bsc_filter_barr_entry *entry; - entry = talloc_zero(ctx, struct bsc_filter_barr_entry); - if (!entry) { - LOGP(DFILTER, LOGL_ERROR, - "Allocation of the barr entry failed.\n"); - continue; - } - - entry->imsi = talloc_strdup(entry, cfg_entry->mcc); - entry->cm_reject_cause = atoi(cfg_entry->mnc); - entry->lu_reject_cause = atoi(cfg_entry->option); - err |= insert_barr_node(entry, root); - } - - return err; -} - static int lst_check_deny(struct bsc_msg_acc_lst *lst, const char *mi_string, int *cm_cause, int *lu_cause) -- To view, visit https://gerrit.osmocom.org/9761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2db8f0ba60cf01929ce2c63edd9859612724de48 Gerrit-Change-Number: 9761 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:30 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: Write access list entries when storing bsc config In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9762 ) Change subject: bsc_vty: Write access list entries when storing bsc config ...................................................................... bsc_vty: Write access list entries when storing bsc config Change-Id: Ice8ce203a52b918e1eddb56ea437d082efd634bc --- M include/osmocom/bsc/bsc_msg_filter.h M src/libfilter/bsc_msg_vty.c M src/osmo-bsc/osmo_bsc_vty.c 3 files changed, 12 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_msg_filter.h b/include/osmocom/bsc/bsc_msg_filter.h index c9d86f4..2740905 100644 --- a/include/osmocom/bsc/bsc_msg_filter.h +++ b/include/osmocom/bsc/bsc_msg_filter.h @@ -100,4 +100,4 @@ int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node); -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst); +void bsc_msg_acc_lst_write(struct vty *vty); diff --git a/src/libfilter/bsc_msg_vty.c b/src/libfilter/bsc_msg_vty.c index 52e0da5..bcee37e 100644 --- a/src/libfilter/bsc_msg_vty.c +++ b/src/libfilter/bsc_msg_vty.c @@ -111,7 +111,7 @@ return CMD_SUCCESS; } -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst) +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) { struct bsc_msg_acc_lst_entry *entry; @@ -127,6 +127,14 @@ } } +void bsc_msg_acc_lst_write(struct vty *vty) +{ + struct bsc_msg_acc_lst *lst; + llist_for_each_entry(lst, _acc_lst, list) { + bsc_msg_acc_lst_write_one(vty, lst); + } +} + void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; diff --git a/src/osmo-bsc/osmo_bsc_vty.c b/src/osmo-bsc/osmo_bsc_vty.c index 3ed2238..f6f1b8a 100644 --- a/src/osmo-bsc/osmo_bsc_vty.c +++ b/src/osmo-bsc/osmo_bsc_vty.c @@ -222,6 +222,8 @@ if (bsc->acc_lst_name) vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); + bsc_msg_acc_lst_write(vty); + return CMD_SUCCESS; } -- To view, visit https://gerrit.osmocom.org/9762 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ice8ce203a52b918e1eddb56ea437d082efd634bc Gerrit-Change-Number: 9762 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:31 +0000 Subject: Change in osmo-bsc[master]: Init access_lists before passing it as a parameter In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9763 ) Change subject: Init access_lists before passing it as a parameter ...................................................................... Init access_lists before passing it as a parameter Previous state is harmless because the pointer is stored but not used in that function. However, it's more clear this way. Change-Id: I048ebc120306ea30ea973d6ee16ed84c9f341183 --- M src/osmo-bsc/osmo_bsc_main.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 69db32e..1f951b1 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -72,7 +72,7 @@ static const char *config_file = "osmo-bsc.cfg"; static const char *rf_ctrl = NULL; static int daemonize = 0; -static struct llist_head access_lists; +static LLIST_HEAD(access_lists); struct llist_head *bsc_access_lists(void) { @@ -812,8 +812,6 @@ osmo_ss7_init(); osmo_ss7_vty_init_asp(tall_bsc_ctx); - INIT_LLIST_HEAD(&access_lists); - /* parse options */ handle_options(argc, argv); -- To view, visit https://gerrit.osmocom.org/9763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I048ebc120306ea30ea973d6ee16ed84c9f341183 Gerrit-Change-Number: 9763 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:31 +0000 Subject: Change in osmo-bsc[master]: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9764 ) Change subject: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix ...................................................................... Rename bsc_msg_acc_lst_vty_init to have more uniform prefix Change-Id: I6f125d040a8f511590ef67ba8babbd2e01c6bf21 --- M include/osmocom/bsc/bsc_msg_filter.h M src/libfilter/bsc_msg_vty.c M src/osmo-bsc/osmo_bsc_main.c 3 files changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/bsc_msg_filter.h b/include/osmocom/bsc/bsc_msg_filter.h index 2740905..fe87485 100644 --- a/include/osmocom/bsc/bsc_msg_filter.h +++ b/include/osmocom/bsc/bsc_msg_filter.h @@ -99,5 +99,5 @@ struct bsc_msg_acc_lst_entry *bsc_msg_acc_lst_entry_create(struct bsc_msg_acc_lst *); int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node); +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node); void bsc_msg_acc_lst_write(struct vty *vty); diff --git a/src/libfilter/bsc_msg_vty.c b/src/libfilter/bsc_msg_vty.c index bcee37e..9905365 100644 --- a/src/libfilter/bsc_msg_vty.c +++ b/src/libfilter/bsc_msg_vty.c @@ -135,7 +135,7 @@ } } -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node) +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; _acc_lst = lst; diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c index 1f951b1..9ee5147 100644 --- a/src/osmo-bsc/osmo_bsc_main.c +++ b/src/osmo-bsc/osmo_bsc_main.c @@ -803,7 +803,7 @@ /* This needs to precede handle_options() */ vty_init(&vty_info); bsc_vty_init(bsc_gsmnet); - bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); + bsc_msg_acc_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); ctrl_vty_init(tall_bsc_ctx); logging_vty_add_deprecated_subsys(tall_bsc_ctx, "cc"); logging_vty_add_deprecated_subsys(tall_bsc_ctx, "mgcp"); -- To view, visit https://gerrit.osmocom.org/9764 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6f125d040a8f511590ef67ba8babbd2e01c6bf21 Gerrit-Change-Number: 9764 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:32 +0000 Subject: Change in osmo-bsc[master]: filter: vty: Print policy list in cmd show access-list In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9765 ) Change subject: filter: vty: Print policy list in cmd show access-list ...................................................................... filter: vty: Print policy list in cmd show access-list Change-Id: I3761819fb29f6fe49995ce4c1ae0e9bf92f993cd --- M src/libfilter/bsc_msg_vty.c 1 file changed, 17 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libfilter/bsc_msg_vty.c b/src/libfilter/bsc_msg_vty.c index 9905365..b26f4f1 100644 --- a/src/libfilter/bsc_msg_vty.c +++ b/src/libfilter/bsc_msg_vty.c @@ -26,6 +26,22 @@ static struct llist_head *_acc_lst; static void *_ctx; +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) +{ + struct bsc_msg_acc_lst_entry *entry; + + llist_for_each_entry(entry, &lst->fltr_list, list) { + if (entry->imsi_allow) + vty_out(vty, " access-list %s imsi-allow %s%s", + lst->name, entry->imsi_allow, VTY_NEWLINE); + if (entry->imsi_deny) + vty_out(vty, " access-list %s imsi-deny %s %d %d%s", + lst->name, entry->imsi_deny, + entry->cm_reject_cause, entry->lu_reject_cause, + VTY_NEWLINE); + } +} + DEFUN(cfg_lst_no, cfg_lst_no_cmd, "no access-list NAME", @@ -52,6 +68,7 @@ return CMD_WARNING; vty_out(vty, "access-list %s%s", acc->name, VTY_NEWLINE); + bsc_msg_acc_lst_write_one(vty, acc); vty_out_rate_ctr_group(vty, " ", acc->stats); return CMD_SUCCESS; @@ -111,22 +128,6 @@ return CMD_SUCCESS; } -static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) -{ - struct bsc_msg_acc_lst_entry *entry; - - llist_for_each_entry(entry, &lst->fltr_list, list) { - if (entry->imsi_allow) - vty_out(vty, " access-list %s imsi-allow %s%s", - lst->name, entry->imsi_allow, VTY_NEWLINE); - if (entry->imsi_deny) - vty_out(vty, " access-list %s imsi-deny %s %d %d%s", - lst->name, entry->imsi_deny, - entry->cm_reject_cause, entry->lu_reject_cause, - VTY_NEWLINE); - } -} - void bsc_msg_acc_lst_write(struct vty *vty) { struct bsc_msg_acc_lst *lst; -- To view, visit https://gerrit.osmocom.org/9765 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3761819fb29f6fe49995ce4c1ae0e9bf92f993cd Gerrit-Change-Number: 9765 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:32 +0000 Subject: Change in osmo-bsc[master]: filter: Replace '.' in counter names with ':' In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9766 ) Change subject: filter: Replace '.' in counter names with ':' ...................................................................... filter: Replace '.' in counter names with ':' The '.' is illegal character in counter names, as they are exported via CTRL interface, where '.' has a special meaning that cannot be used by strings comprising the variable name. Forward-port from openbsc.git 360284d4d797519faed33559b0ae746b6c17e68a. Change-Id: I57b78162701a6a101b5cbaf68aaea89d17a0f819 --- M src/libfilter/bsc_msg_acc.c 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libfilter/bsc_msg_acc.c b/src/libfilter/bsc_msg_acc.c index 6b04887..f0232ee 100644 --- a/src/libfilter/bsc_msg_acc.c +++ b/src/libfilter/bsc_msg_acc.c @@ -29,12 +29,12 @@ #include static const struct rate_ctr_desc acc_list_ctr_description[] = { - [ACC_LIST_LOCAL_FILTER] = { "access-list.local-filter", "Rejected by rule for local"}, - [ACC_LIST_GLOBAL_FILTER]= { "access-list.global-filter", "Rejected by rule for global"}, + [ACC_LIST_LOCAL_FILTER] = { "access-list:local-filter", "Rejected by rule for local"}, + [ACC_LIST_GLOBAL_FILTER]= { "access-list:global-filter", "Rejected by rule for global"}, }; static const struct rate_ctr_group_desc bsc_cfg_acc_list_desc = { - .group_name_prefix = "nat.filter", + .group_name_prefix = "nat:filter", .group_description = "NAT Access-List Statistics", .num_ctr = ARRAY_SIZE(acc_list_ctr_description), .ctr_desc = acc_list_ctr_description, -- To view, visit https://gerrit.osmocom.org/9766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I57b78162701a6a101b5cbaf68aaea89d17a0f819 Gerrit-Change-Number: 9766 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:32 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:32 +0000 Subject: Change in osmo-bsc[master]: filter: Allocate each ctr group with a different idx In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9767 ) Change subject: filter: Allocate each ctr group with a different idx ...................................................................... filter: Allocate each ctr group with a different idx Fixes following runtime warning: libosmocore/src/rate_ctr.c:219 counter group 'nat:filter' already exists for index 0, instead using index 1. This is a software bug that needs fixing. Forward-port from openbsc.git c08d58802e03a45f95b8f7d28b29dc7026f664ba. Change-Id: I7c5054c374281bb1d4bd1ecd76ddcca7a010d50a --- M src/libfilter/bsc_msg_acc.c 1 file changed, 18 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libfilter/bsc_msg_acc.c b/src/libfilter/bsc_msg_acc.c index f0232ee..46077b3 100644 --- a/src/libfilter/bsc_msg_acc.c +++ b/src/libfilter/bsc_msg_acc.c @@ -41,6 +41,21 @@ .class_id = OSMO_STATS_CLASS_GLOBAL, }; +/*! Find an unused index for this rate counter group. + * \param[in] head List of allocated ctr groups of the same type + * \returns the largest used index number + 1, or 0 if none exist yet. */ +static unsigned int rate_ctr_get_unused_idx(struct llist_head *head) +{ + unsigned int idx = 0; + struct bsc_msg_acc_lst *lst; + + llist_for_each_entry(lst, head, list) { + if (idx <= lst->stats->idx) + idx = lst->stats->idx + 1; + } + return idx; +} + int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *mi_string) { @@ -73,6 +88,7 @@ struct bsc_msg_acc_lst *bsc_msg_acc_lst_get(void *ctx, struct llist_head *head, const char *name) { struct bsc_msg_acc_lst *lst; + unsigned int new_idx; lst = bsc_msg_acc_lst_find(head, name); if (lst) @@ -84,8 +100,8 @@ return NULL; } - /* TODO: get the index right */ - lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, 0); + new_idx = rate_ctr_get_unused_idx(head); + lst->stats = rate_ctr_group_alloc(lst, &bsc_cfg_acc_list_desc, new_idx); if (!lst->stats) { talloc_free(lst); return NULL; -- To view, visit https://gerrit.osmocom.org/9767 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7c5054c374281bb1d4bd1ecd76ddcca7a010d50a Gerrit-Change-Number: 9767 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:44 +0000 Subject: Change in openbsc[master]: bsc-nat: Add more complete VTY command to show BSC related info In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9755 ) Change subject: bsc-nat: Add more complete VTY command to show BSC related info ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 Gerrit-Change-Number: 9755 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 13:43:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:43:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 13:43:46 +0000 Subject: Change in openbsc[master]: bsc-nat: Add more complete VTY command to show BSC related info In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9755 ) Change subject: bsc-nat: Add more complete VTY command to show BSC related info ...................................................................... bsc-nat: Add more complete VTY command to show BSC related info Other VTY commands already exist which provides each a subset of these features, but while operating bsc-nat it became interesting to have all this info easily reachable for a specific BSC. Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 --- M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 1 file changed, 77 insertions(+), 71 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 057d9ab..920c8d7 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -287,28 +287,6 @@ return CMD_SUCCESS; } -DEFUN(show_bsc_cfg, show_bsc_cfg_cmd, "show bsc config", - SHOW_STR BSC_STR "Configuration of BSCs\n") -{ - struct bsc_config *conf; - llist_for_each_entry(conf, &_nat->bsc_configs, entry) { - vty_out(vty, "BSC token: '%s' nr: %u%s", - conf->token, conf->nr, VTY_NEWLINE); - if (conf->acc_lst_name) - vty_out(vty, " access-list: %s%s", - conf->acc_lst_name, VTY_NEWLINE); - vty_out(vty, " paging forbidden: %d%s", - conf->forbid_paging, VTY_NEWLINE); - if (conf->description) - vty_out(vty, " description: %s%s", conf->description, VTY_NEWLINE); - else - vty_out(vty, " No description.%s", VTY_NEWLINE); - - } - - return CMD_SUCCESS; -} - static void dump_stat_total(struct vty *vty, struct bsc_nat *nat) { vty_out(vty, "NAT statistics%s", VTY_NEWLINE); @@ -324,66 +302,96 @@ osmo_counter_get(nat->stats.bsc.auth_fail), VTY_NEWLINE); } -static void dump_stat_bsc(struct vty *vty, struct bsc_config *conf) +static void dump_bsc_status(struct vty *vty, struct bsc_config *conf) { - int connected = 0; - struct bsc_connection *con; - vty_out(vty, " BSC nr: %d%s", - conf->nr, VTY_NEWLINE); + struct sockaddr_in sock; + socklen_t len = sizeof(sock); + struct bsc_connection *con_iter, *con = NULL; + struct bsc_lac_entry *lac; + + vty_out(vty, "BSC token: '%s' nr: %u%s", + conf->token, conf->nr, VTY_NEWLINE); + if (conf->acc_lst_name) + vty_out(vty, " access-list: %s%s", + conf->acc_lst_name, VTY_NEWLINE); + vty_out(vty, " paging forbidden: %d%s", + conf->forbid_paging, VTY_NEWLINE); + if (conf->description) + vty_out(vty, " description: %s%s", conf->description, VTY_NEWLINE); + else + vty_out(vty, " No description.%s", VTY_NEWLINE); + + llist_for_each_entry(lac, &conf->lac_list, entry) { + vty_out(vty, " LAC: %d%s", lac->lac, VTY_NEWLINE); + } + + llist_for_each_entry(con_iter, &_nat->bsc_connections, list_entry) { + if (con_iter->cfg == conf) { + con = con_iter; + break; + } + } + if (con) { + getpeername(con->write_queue.bfd.fd, (struct sockaddr *) &sock, &len); + vty_out(vty, " Conn-status: Connected, auth: %d, fd: %d, peername: %s, pending-stats: %u%s", + con->authenticated, con->write_queue.bfd.fd, + inet_ntoa(sock.sin_addr), con->pending_dlcx_count, + VTY_NEWLINE); + } else { + vty_out(vty, " Conn-status: Disconnected%s", VTY_NEWLINE); + } + vty_out_rate_ctr_group(vty, " ", conf->stats.ctrg); - - llist_for_each_entry(con, &conf->nat->bsc_connections, list_entry) { - if (con->cfg != conf) - continue; - connected = 1; - break; - } - - vty_out(vty, " Connected: %d%s", connected, VTY_NEWLINE); } -DEFUN(show_stats, - show_stats_cmd, - "show statistics [NR]", - SHOW_STR "Display network statistics\n" - "Number of the BSC\n") +#define BSC_ID_HELP \ + "Identify BSC by nr\n" \ + "Identify BSC by token\n" \ + "Identify BSC by lac\n" \ + "Show all BSC\n" \ + "NR/token/lac of the BSC\n" +DEFUN(show_bsc_status, show_bsc_status_cmd, "show bsc status (nr|token|lac|all) [IDENT]", + SHOW_STR BSC_STR "Status of BSC\n" BSC_ID_HELP) { + const char *id_type = argv[0]; + const char *id = argv[1]; struct bsc_config *conf; + bool by_token = false, by_nr = false, by_lac = false, all = false; + bool found_one = false; - int nr = -1; - - if (argc == 1) - nr = atoi(argv[0]); - - dump_stat_total(vty, _nat); - llist_for_each_entry(conf, &_nat->bsc_configs, entry) { - if (argc == 1 && nr != conf->nr) - continue; - dump_stat_bsc(vty, conf); + if (strcmp(id_type, "all") == 0) { + all = true; + dump_stat_total(vty, _nat); + } else { + if (argc != 2) { + vty_out(vty, "%% Error: type %s requires an argument%s", id_type, VTY_NEWLINE); + return CMD_WARNING; + } + if (strcmp(id_type, "nr") == 0) + by_nr = true; + else if (strcmp(id_type, "token") == 0) + by_token = true; + else if (strcmp(id_type, "lac") == 0) + by_lac = true; } - return CMD_SUCCESS; -} - -DEFUN(show_stats_lac, - show_stats_lac_cmd, - "show statistics-by-lac <0-65535>", - SHOW_STR "Display network statistics by lac\n" - "The lac of the BSC\n") -{ - int lac; - struct bsc_config *conf; - - lac = atoi(argv[0]); - - dump_stat_total(vty, _nat); llist_for_each_entry(conf, &_nat->bsc_configs, entry) { - if (!bsc_config_handles_lac(conf, lac)) + if (by_nr && conf->nr != atoi(id)) continue; - dump_stat_bsc(vty, conf); + else if (by_token && strcmp(conf->token, id)) + continue; + else if (by_lac && !bsc_config_handles_lac(conf, atoi(id))) + continue; + + found_one = true; + dump_bsc_status(vty, conf); } + if (!all && !found_one) { + vty_out(vty, "%% Error: BSC with %s %s not found%s", id_type, id, VTY_NEWLINE); + return CMD_WARNING; + } return CMD_SUCCESS; } @@ -1313,9 +1321,7 @@ install_element_ve(&show_sccp_cmd); install_element_ve(&show_bsc_cmd); install_element_ve(&show_nat_bsc_cmd); - install_element_ve(&show_bsc_cfg_cmd); - install_element_ve(&show_stats_cmd); - install_element_ve(&show_stats_lac_cmd); + install_element_ve(&show_bsc_status_cmd); install_element_ve(&close_bsc_cmd); install_element_ve(&show_msc_cmd); install_element_ve(&test_regex_cmd); -- To view, visit https://gerrit.osmocom.org/9755 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I47bfd4fb800390505bdeb0f1d0bd1306fb888a59 Gerrit-Change-Number: 9755 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Jun 28 13:51:55 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 28 Jun 2018 13:51:55 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-gsm-manuals_=C2=BB_a1=3Dde?= =?UTF-8?Q?fault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#2167?= Message-ID: <333247110.368.1530193915282.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 103.95 KB...] warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " warning: failed to load external entity " + [ -n ] xsltproc ../vty_reference.xsl generated/combined.xml \ > generated/docbook_vty.xml dblatex -P draft.mode=no osmostp-vty-reference.xml Build the book set list... Build the listings... XSLT stylesheets DocBook - LaTeX 2e (0.3.9-3) =================================================== Stripping NS from DocBook 5/NG document. Processing stripped document. Build osmostp-vty-reference.pdf 'osmostp-vty-reference.pdf' successfully built make[1]: Leaving directory ' cd OsmocomBB; make make[1]: Entering directory ' a2x -L --asciidoc-opts="-f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf" --dblatex-opts="-s ../build/custom-dblatex.sty -P draft.mode=yes -P draft.watermark=0" -a docinfo -a revnumber="DRAFT v1-289-g5434" -a revdate="2018-Jun-16" osmocombb-usermanual.adoc || asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmocombb-usermanual.adoc make[1]: Leaving directory ' cd OsmoMGW; make make[1]: Entering directory ' ../build/vty_reference_combine.sh " \ ../common/vty_additions.xml \ vty/*additions*.xml xmllint --xinclude --postvalid --noout osmomgw-vty-reference.xml + mkdir -p generated + cp vty/mgw_vty_reference.xml generated/combined.xml + [ -n ../common/vty_additions.xml ] + realpath ../common/vty_additions.xml + addition= + shift + mv generated/combined.xml generated/combine_src.xml + xsltproc -o generated/combined.xml --stringparam with generated/combine_src.xml + [ -n vty/mgw_vty_additions.xml ] + realpath vty/mgw_vty_additions.xml + addition= + shift + mv generated/combined.xml generated/combine_src.xml + xsltproc -o generated/combined.xml --stringparam with generated/combine_src.xml + [ -n ] xsltproc ../vty_reference.xsl generated/combined.xml \ > generated/docbook_vty.xml dblatex -P draft.mode=no osmomgw-vty-reference.xml Build the book set list... Build the listings... XSLT stylesheets DocBook - LaTeX 2e (0.3.9-3) =================================================== Stripping NS from DocBook 5/NG document. Processing stripped document. Build osmomgw-vty-reference.pdf 'osmomgw-vty-reference.pdf' successfully built make[1]: Leaving directory ' cd OsmoTRX; make make[1]: Entering directory ' a2x -L --asciidoc-opts="-f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf" --dblatex-opts="-s ../build/custom-dblatex.sty -P draft.mode=yes -P draft.watermark=0" -a docinfo -a revnumber="DRAFT v1-289-g5434" -a revdate="2018-Jun-16" osmotrx-usermanual.adoc || asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmotrx-usermanual.adoc ../build/vty_reference_combine.sh " \ ../common/vty_additions.xml \ vty/*additions*.xml xmllint --xinclude --postvalid --noout osmotrx-vty-reference.xml + mkdir -p generated + cp vty/trx_vty_reference.xml generated/combined.xml + [ -n ../common/vty_additions.xml ] + realpath ../common/vty_additions.xml + addition= + shift + mv generated/combined.xml generated/combine_src.xml + xsltproc -o generated/combined.xml --stringparam with generated/combine_src.xml + [ -n vty/trx_vty_additions.xml ] + realpath vty/trx_vty_additions.xml + addition= + shift + mv generated/combined.xml generated/combine_src.xml + xsltproc -o generated/combined.xml --stringparam with generated/combine_src.xml + [ -n ] xsltproc ../vty_reference.xsl generated/combined.xml \ > generated/docbook_vty.xml dblatex -P draft.mode=no osmotrx-vty-reference.xml Build the book set list... Build the listings... XSLT stylesheets DocBook - LaTeX 2e (0.3.9-3) =================================================== Stripping NS from DocBook 5/NG document. Processing stripped document. Build osmotrx-vty-reference.pdf 'osmotrx-vty-reference.pdf' successfully built make[1]: Leaving directory ' + make -j 8 LIBOSMO_DIR= check cd OsmoBTS; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmobts-usermanual.adoc > osmobts-usermanual.check 2>&1 asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmobts-abis.adoc > osmobts-abis.check 2>&1 asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf rtp-amr.adoc > rtp-amr.check 2>&1 # Make absolutely sure that the %.check target is updated. touch rtp-amr.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). # Make absolutely sure that the %.check target is updated. touch osmobts-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). # Make absolutely sure that the %.check target is updated. touch osmobts-abis.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoNITB; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmonitb-usermanual.adoc > osmonitb-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmonitb-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoBSC; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmobsc-usermanual.adoc > osmobsc-usermanual.check 2>&1 asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmux-reference.adoc > osmux-reference.check 2>&1 asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf aoip-mgw-options.adoc > aoip-mgw-options.check 2>&1 # Make absolutely sure that the %.check target is updated. touch aoip-mgw-options.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). # Make absolutely sure that the %.check target is updated. touch osmux-reference.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). # Make absolutely sure that the %.check target is updated. touch osmobsc-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoSGSN; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmosgsn-usermanual.adoc > osmosgsn-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmosgsn-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoGGSN; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmoggsn-usermanual.adoc > osmoggsn-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmoggsn-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoPCU; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmopcu-usermanual.adoc > osmopcu-usermanual.check 2>&1 asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmopcu-gb.adoc > osmopcu-gb.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmopcu-gb.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). # Make absolutely sure that the %.check target is updated. touch osmopcu-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoSTP; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmostp-usermanual.adoc > osmostp-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmostp-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' # These don't use asciidoc, so they have no 'make check' target: #cd OsmoMGCP; make check #cd OsmoNAT; make check #cd OsmoMGW; make check cd OsmoGSMTester; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmo-gsm-tester-manual.adoc > osmo-gsm-tester-manual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmo-gsm-tester-manual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoMSC; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmomsc-usermanual.adoc > osmomsc-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmomsc-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoHLR; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmohlr-usermanual.adoc > osmohlr-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmohlr-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoSTP; make check make[1]: Entering directory ' make[1]: Nothing to be done for 'check'. make[1]: Leaving directory ' cd OsmocomBB; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmocombb-usermanual.adoc > osmocombb-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmocombb-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' cd OsmoTRX; make check make[1]: Entering directory ' asciidoc -v -f ../build/mscgen-filter.conf -f ../build/diag-filter.conf -f ../build/docinfo-releaseinfo.conf -f ../build/python2-filter.conf osmotrx-usermanual.adoc > osmotrx-usermanual.check 2>&1 # Make absolutely sure that the %.check target is updated. touch osmotrx-usermanual.check # Do print the WARNING output but return error if any was found # (grep -v would omit the WARNING output from the log). make[1]: Leaving directory ' + [ x--publish = x--publish ] + mkdir out/ + cp OsmoBSC/aoip-mgw-options.pdf OsmoBSC/osmobsc-usermanual.pdf OsmoBSC/osmobsc-vty-reference.pdf OsmoBSC/osmux-reference.pdf OsmoBTS/osmobts-abis.pdf OsmoBTS/osmobts-usermanual.pdf OsmoBTS/osmobts-vty-reference.pdf OsmoBTS/rtp-amr.pdf OsmoGGSN/osmoggsn-usermanual.pdf OsmoGGSN/osmoggsn-vty-reference.pdf OsmoGSMTester/osmo-gsm-tester-manual.pdf OsmoHLR/osmohlr-usermanual.pdf OsmoHLR/osmohlr-vty-reference.pdf OsmoMGCP/osmomgcp-vty-reference.pdf OsmoMGW/osmomgw-vty-reference.pdf OsmoMSC/osmomsc-usermanual.pdf OsmoMSC/osmomsc-vty-reference.pdf OsmoNAT/osmonat-vty-reference.pdf OsmoNITB/osmonitb-usermanual.pdf OsmoNITB/osmonitb-vty-reference.pdf OsmoPCU/osmopcu-gb.pdf OsmoPCU/osmopcu-usermanual.pdf OsmoPCU/osmopcu-vty-reference.pdf OsmoSGSN/osmosgsn-usermanual.pdf OsmoSGSN/osmosgsn-vty-reference.pdf OsmoSTP/osmostp-usermanual.pdf OsmoSTP/osmostp-vty-reference.pdf OsmoTRX/osmotrx-usermanual.pdf OsmoTRX/osmotrx-vty-reference.pdf OsmocomBB/osmocombb-usermanual.pdf out/ + cat + SSH_COMMAND=ssh -o 'UserKnownHostsFile= -p 48 + rsync -avz --delete -e ssh -o 'UserKnownHostsFile= -p 48 ./out/ docs at osmocom.org:web-files/latest/ ssh: connect to host osmocom.org port 48: Connection refused rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.2] Build step 'Execute shell' marked build as failure $ ssh-agent -k unset SSH_AUTH_SOCK; unset SSH_AGENT_PID; echo Agent pid 17627 killed; [ssh-agent] Stopped. [WARNINGS] Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:56:20 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jun 2018 13:56:20 +0000 Subject: Change in osmo-gsm-manuals[master]: Upload to rita.osmocom.org to point to the old host Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9769 Change subject: Upload to rita.osmocom.org to point to the old host ...................................................................... Upload to rita.osmocom.org to point to the old host osmocom.org has been migrated to a new host, but the docs upload hasn't moved yet. So explicitly upload to rita.osmocom.org. Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d --- M contrib/jenkins.sh 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/69/9769/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5cd1c1f..573e042 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -24,12 +24,12 @@ cp */*.pdf out/ cat > "$WORKSPACE/known_hosts" < -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:57:04 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jun 2018 13:57:04 +0000 Subject: Change in osmo-gsm-manuals[master]: Upload to rita.osmocom.org to point to the old host In-Reply-To: References: Message-ID: daniel has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9769 ) Change subject: Upload to rita.osmocom.org to point to the old host ...................................................................... Upload to rita.osmocom.org to point to the old host osmocom.org has been migrated to a new host, but the docs upload hasn't moved yet. So explicitly upload to rita.osmocom.org. Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d --- M contrib/jenkins.sh 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/69/9769/2 -- To view, visit https://gerrit.osmocom.org/9769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d Gerrit-Change-Number: 9769 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 13:58:57 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jun 2018 13:58:57 +0000 Subject: Change in osmo-gsm-manuals[master]: Upload to rita.osmocom.org to point to the old host In-Reply-To: References: Message-ID: daniel has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/9769 ) Change subject: Upload to rita.osmocom.org to point to the old host ...................................................................... Upload to rita.osmocom.org to point to the old host osmocom.org has been migrated to a new host, but the docs upload hasn't moved yet. So explicitly upload to rita.osmocom.org. Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d --- M contrib/jenkins.sh 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/69/9769/3 -- To view, visit https://gerrit.osmocom.org/9769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d Gerrit-Change-Number: 9769 Gerrit-PatchSet: 3 Gerrit-Owner: daniel Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 14:01:38 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 14:01:38 +0000 Subject: Change in osmo-gsm-manuals[master]: Upload to rita.osmocom.org to point to the old host In-Reply-To: References: Message-ID: Harald Welte has uploaded a new patch set (#4) to the change originally created by daniel. ( https://gerrit.osmocom.org/9769 ) Change subject: Upload to rita.osmocom.org to point to the old host ...................................................................... Upload to rita.osmocom.org to point to the old host osmocom.org has been migrated to a new host, but the docs upload hasn't moved yet. So explicitly upload to rita.osmocom.org. Related: OS#3338 Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d --- M contrib/jenkins.sh 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/69/9769/4 -- To view, visit https://gerrit.osmocom.org/9769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d Gerrit-Change-Number: 9769 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 14:01:44 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 14:01:44 +0000 Subject: Change in osmo-gsm-manuals[master]: Upload to rita.osmocom.org to point to the old host In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9769 ) Change subject: Upload to rita.osmocom.org to point to the old host ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d Gerrit-Change-Number: 9769 Gerrit-PatchSet: 4 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Jun 2018 14:01:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 14:01:47 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 14:01:47 +0000 Subject: Change in osmo-gsm-manuals[master]: Upload to rita.osmocom.org to point to the old host In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9769 ) Change subject: Upload to rita.osmocom.org to point to the old host ...................................................................... Upload to rita.osmocom.org to point to the old host osmocom.org has been migrated to a new host, but the docs upload hasn't moved yet. So explicitly upload to rita.osmocom.org. Related: OS#3338 Change-Id: Ia1518313af007a5a665b3e06619d929e15ff277d --- M contrib/jenkins.sh 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index 5cd1c1f..573e042 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -24,12 +24,12 @@ cp */*.pdf out/ cat > "$WORKSPACE/known_hosts" < Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 14:07:22 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jun 2018 14:07:22 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/9704 ) Change subject: octphy: add support for 16x oversampling mode ...................................................................... Patch Set 1: (1 comment) I have now checked back with octasic. They highly recommend to have it always enabled. For single TRX it can be turned off, but for multi TRX it must be enabled. I have now changed the default accordingly. https://gerrit.osmocom.org/#/c/9704/1/include/osmo-bts/phy_link.h File include/osmo-bts/phy_link.h: https://gerrit.osmocom.org/#/c/9704/1/include/osmo-bts/phy_link.h at 77 PS1, Line 77: uint32_t over_sample_16x; > It seems this variable is going to be used as a flag (0 or 1), [?] Yes its indeed a flag. I have changed it to bool now. -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: Harald Welte Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 28 Jun 2018 14:07:22 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Jun 28 14:07:32 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 28 Jun 2018 14:07:32 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_norma?= =?UTF-8?Q?l_:_master-osmo-gsm-manuals_=C2=BB_?= =?UTF-8?Q?a1=3Ddefault,a2=3Ddefault,a3=3Ddefau?= =?UTF-8?Q?lt,osmocom-master-debian9_#2168?= In-Reply-To: <333247110.368.1530193915282.JavaMail.jenkins@jenkins.osmocom.org> References: <333247110.368.1530193915282.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <853584948.370.1530194852905.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Thu Jun 28 14:13:03 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Jun 2018 14:13:03 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9704 to look at the new patch set (#2). Change subject: octphy: add support for 16x oversampling mode ...................................................................... octphy: add support for 16x oversampling mode The latest octphy firmware release (octsdr-2g-02.11.00-B1927-alpha), introduces a 16X oversampling option which is not yet supported in osmo-bts. - Add oversampling flag in phy_link.h - Add VTY commands to enable/disable oversampling - Add phy messages to enable/disable oversampling - Add conditional compilation to preserve support for legacy header files and firmware Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Related: SYS#4257 Patch-by: Octasic inc. --- M configure.ac M include/osmo-bts/phy_link.h M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-octphy/octphy_vty.c 5 files changed, 94 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/04/9704/2 -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: Harald Welte Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Jun 28 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 28 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#168?= In-Reply-To: <788630979.356.1530112206733.JavaMail.jenkins@jenkins.osmocom.org> References: <788630979.356.1530112206733.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <192763622.371.1530198606689.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.74 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:22:03 2018 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 28 Jun 2018 15:22:03 +0000 Subject: Change in osmo-ci[master]: Restrict where the parent build runs for osmo-gsm-manuals Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/9770 Change subject: Restrict where the parent build runs for osmo-gsm-manuals ...................................................................... Restrict where the parent build runs for osmo-gsm-manuals This seems to resolve the issue where the jenkins job fails due to missing ssh credentials. Other jobs can also use this by setting the node property Change-Id: I23cf2c98f02278a5deb9c4ae8d13438b76538287 Ticket: OS#3338 --- M jobs/master-builds.yml 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/70/9770/1 diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index e03434d..aebe0df 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -5,6 +5,7 @@ # following default values can be overridden by each repo disabled: false concurrent: false + node: '' # axes related defaults slave_axis: !!python/tuple [osmocom-master-debian9] a1_name: a1 @@ -209,6 +210,7 @@ email: gerrit-log at lists.osmocom.org 246tnt at gmail.com - osmo-gsm-manuals: + node: 'osmocom-master-debian9' # publishing once is plenty cmd: > # keep first line with less indent to preserve newlines @@ -353,6 +355,7 @@ sequential: '{obj:sequential}' combination-filter: | {obj:combination_filter} + node: '{obj:node}' axes: - axis: type: slave -- To view, visit https://gerrit.osmocom.org/9770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I23cf2c98f02278a5deb9c4ae8d13438b76538287 Gerrit-Change-Number: 9770 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:24:09 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 15:24:09 +0000 Subject: Change in openbsc[master]: Init access_lists before passing it as a parameter Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9771 Change subject: Init access_lists before passing it as a parameter ...................................................................... Init access_lists before passing it as a parameter Previous state is harmless because the pointer is stored but not used in that function. However, it's more clear this way. Back-port from osmo-bsc.git 9ab47eb52da73d25c4f94869385a4f836032362a. Change-Id: Ic17c38578587a774da29266302e7b201ecacd3a3 --- M openbsc/src/osmo-bsc/osmo_bsc_main.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/71/9771/1 diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c index be24cbd..e081fe9 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_main.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c @@ -61,7 +61,7 @@ static const char *rf_ctrl = NULL; extern const char *openbsc_copyright; static int daemonize = 0; -static struct llist_head access_lists; +static LLIST_HEAD(access_lists); struct llist_head *bsc_access_lists(void) { @@ -223,8 +223,6 @@ bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); ctrl_vty_init(tall_bsc_ctx); - INIT_LLIST_HEAD(&access_lists); - /* parse options */ handle_options(argc, argv); -- To view, visit https://gerrit.osmocom.org/9771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic17c38578587a774da29266302e7b201ecacd3a3 Gerrit-Change-Number: 9771 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:24:09 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 15:24:09 +0000 Subject: Change in openbsc[master]: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9772 Change subject: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix ...................................................................... Rename bsc_msg_acc_lst_vty_init to have more uniform prefix Back-port from osmo-bsc.git a0f1196eda79de0e838b29eb91d9f31839f2f447. Change-Id: I519fb945a99206dff6c4aeb476d527e632b7e751 --- M openbsc/include/openbsc/bsc_msg_filter.h M openbsc/src/libfilter/bsc_msg_vty.c M openbsc/src/osmo-bsc/osmo_bsc_main.c M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 4 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/72/9772/1 diff --git a/openbsc/include/openbsc/bsc_msg_filter.h b/openbsc/include/openbsc/bsc_msg_filter.h index a9dedf4..dc971a4 100644 --- a/openbsc/include/openbsc/bsc_msg_filter.h +++ b/openbsc/include/openbsc/bsc_msg_filter.h @@ -103,5 +103,5 @@ struct bsc_msg_acc_lst_entry *bsc_msg_acc_lst_entry_create(struct bsc_msg_acc_lst *); int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node); +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node); void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst); diff --git a/openbsc/src/libfilter/bsc_msg_vty.c b/openbsc/src/libfilter/bsc_msg_vty.c index c342fdc..06f3876 100644 --- a/openbsc/src/libfilter/bsc_msg_vty.c +++ b/openbsc/src/libfilter/bsc_msg_vty.c @@ -127,7 +127,7 @@ } } -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node) +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; _acc_lst = lst; diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c index e081fe9..cc18c14 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_main.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c @@ -220,7 +220,7 @@ vty_info.copyright = openbsc_copyright; vty_init(&vty_info); bsc_vty_init(bsc_gsmnet); - bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); + bsc_msg_acc_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); ctrl_vty_init(tall_bsc_ctx); /* parse options */ diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 920c8d7..7ddcb57 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -1356,7 +1356,7 @@ install_element(NAT_NODE, &cfg_nat_ussd_local_cmd); install_element(NAT_NODE, &cfg_nat_use_ipa_for_mgcp_cmd); - bsc_msg_lst_vty_init(nat, &nat->access_lists, NAT_NODE); + bsc_msg_acc_lst_vty_init(nat, &nat->access_lists, NAT_NODE); /* number rewriting */ install_element(NAT_NODE, &cfg_nat_number_rewrite_cmd); -- To view, visit https://gerrit.osmocom.org/9772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I519fb945a99206dff6c4aeb476d527e632b7e751 Gerrit-Change-Number: 9772 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:24:09 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 15:24:09 +0000 Subject: Change in openbsc[master]: bsc_vty: Write access list entries when storing bsc config Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9773 Change subject: bsc_vty: Write access list entries when storing bsc config ...................................................................... bsc_vty: Write access list entries when storing bsc config Back-port from osmo-bsc.git d99182c01037f4dd14fb72b2b06497e0c1bebb49. Change-Id: I0b951a9c3dbe245c3813fc91ceb9118a0de779b8 --- M openbsc/include/openbsc/bsc_msg_filter.h M openbsc/src/libfilter/bsc_msg_vty.c M openbsc/src/osmo-bsc/osmo_bsc_vty.c M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 4 files changed, 14 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/73/9773/1 diff --git a/openbsc/include/openbsc/bsc_msg_filter.h b/openbsc/include/openbsc/bsc_msg_filter.h index dc971a4..22b8447 100644 --- a/openbsc/include/openbsc/bsc_msg_filter.h +++ b/openbsc/include/openbsc/bsc_msg_filter.h @@ -104,4 +104,4 @@ int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node); -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst); +void bsc_msg_acc_lst_write(struct vty *vty); diff --git a/openbsc/src/libfilter/bsc_msg_vty.c b/openbsc/src/libfilter/bsc_msg_vty.c index 06f3876..668e399 100644 --- a/openbsc/src/libfilter/bsc_msg_vty.c +++ b/openbsc/src/libfilter/bsc_msg_vty.c @@ -111,7 +111,7 @@ return CMD_SUCCESS; } -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst) +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) { struct bsc_msg_acc_lst_entry *entry; @@ -127,6 +127,14 @@ } } +void bsc_msg_acc_lst_write(struct vty *vty) +{ + struct bsc_msg_acc_lst *lst; + llist_for_each_entry(lst, _acc_lst, list) { + bsc_msg_acc_lst_write_one(vty, lst); + } +} + void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; diff --git a/openbsc/src/osmo-bsc/osmo_bsc_vty.c b/openbsc/src/osmo-bsc/osmo_bsc_vty.c index e124b31..66e59bd 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_vty.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_vty.c @@ -221,6 +221,8 @@ if (bsc->acc_lst_name) vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); + bsc_msg_acc_lst_write(vty); + return CMD_SUCCESS; } diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 7ddcb57..eba968a 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -129,7 +129,6 @@ static int config_write_nat(struct vty *vty) { - struct bsc_msg_acc_lst *lst; struct bsc_nat_paging_group *pgroup; vty_out(vty, "nat%s", VTY_NEWLINE); @@ -179,8 +178,8 @@ vty_out(vty, " prefix-tree %s%s", _nat->num_rewr_trie_name, VTY_NEWLINE); - llist_for_each_entry(lst, &_nat->access_lists, list) - bsc_msg_acc_lst_write(vty, lst); + bsc_msg_acc_lst_write(vty); + llist_for_each_entry(pgroup, &_nat->paging_groups, entry) write_pgroup_lst(vty, pgroup); if (_nat->mgcp_ipa) -- To view, visit https://gerrit.osmocom.org/9773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0b951a9c3dbe245c3813fc91ceb9118a0de779b8 Gerrit-Change-Number: 9773 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:24:10 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 15:24:10 +0000 Subject: Change in openbsc[master]: filter: vty: Print policy list in cmd show access-list Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9774 Change subject: filter: vty: Print policy list in cmd show access-list ...................................................................... filter: vty: Print policy list in cmd show access-list Back-port from osmo-bsc.git 653bee7d02a1a1c827b54d235b644fec6a6f4683. Change-Id: Id89febbd84beba8a0c083cbf83649bb4672684c4 --- M openbsc/src/libfilter/bsc_msg_vty.c 1 file changed, 17 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/74/9774/1 diff --git a/openbsc/src/libfilter/bsc_msg_vty.c b/openbsc/src/libfilter/bsc_msg_vty.c index 668e399..7106dea 100644 --- a/openbsc/src/libfilter/bsc_msg_vty.c +++ b/openbsc/src/libfilter/bsc_msg_vty.c @@ -26,6 +26,22 @@ static struct llist_head *_acc_lst; static void *_ctx; +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) +{ + struct bsc_msg_acc_lst_entry *entry; + + llist_for_each_entry(entry, &lst->fltr_list, list) { + if (entry->imsi_allow) + vty_out(vty, " access-list %s imsi-allow %s%s", + lst->name, entry->imsi_allow, VTY_NEWLINE); + if (entry->imsi_deny) + vty_out(vty, " access-list %s imsi-deny %s %d %d%s", + lst->name, entry->imsi_deny, + entry->cm_reject_cause, entry->lu_reject_cause, + VTY_NEWLINE); + } +} + DEFUN(cfg_lst_no, cfg_lst_no_cmd, "no access-list NAME", @@ -52,6 +68,7 @@ return CMD_WARNING; vty_out(vty, "access-list %s%s", acc->name, VTY_NEWLINE); + bsc_msg_acc_lst_write_one(vty, acc); vty_out_rate_ctr_group(vty, " ", acc->stats); return CMD_SUCCESS; @@ -111,22 +128,6 @@ return CMD_SUCCESS; } -static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) -{ - struct bsc_msg_acc_lst_entry *entry; - - llist_for_each_entry(entry, &lst->fltr_list, list) { - if (entry->imsi_allow) - vty_out(vty, " access-list %s imsi-allow %s%s", - lst->name, entry->imsi_allow, VTY_NEWLINE); - if (entry->imsi_deny) - vty_out(vty, " access-list %s imsi-deny %s %d %d%s", - lst->name, entry->imsi_deny, - entry->cm_reject_cause, entry->lu_reject_cause, - VTY_NEWLINE); - } -} - void bsc_msg_acc_lst_write(struct vty *vty) { struct bsc_msg_acc_lst *lst; -- To view, visit https://gerrit.osmocom.org/9774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id89febbd84beba8a0c083cbf83649bb4672684c4 Gerrit-Change-Number: 9774 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:24:10 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 15:24:10 +0000 Subject: Change in openbsc[master]: bsc-nat: find_paging: Check return code of tlv_parse Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9775 Change subject: bsc-nat: find_paging: Check return code of tlv_parse ...................................................................... bsc-nat: find_paging: Check return code of tlv_parse Change-Id: Ib03681cf91550846af0d487c11cc90b6f700b340 --- M openbsc/src/osmo-bsc_nat/bsc_nat_utils.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/75/9775/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c index 5a06d3f..85fc7ed 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c @@ -331,13 +331,19 @@ int data_length; const uint8_t *data; struct tlv_parsed tp; + int rc; if (!msg->l3h || msgb_l3len(msg) < 3) { LOGP(DNAT, LOGL_ERROR, "Paging message is too short.\n"); return -1; } - tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l3h + 3, msgb_l3len(msg) - 3, 0, 0); + rc = tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l3h + 3, msgb_l3len(msg) - 3, 0, 0); + if (rc < 0) { + LOGP(DNAT, LOGL_ERROR, "Failed parsing PAGING TLV -- discarding message! %s\n", + osmo_hexdump(msg->l3h, msgb_l3len(msg))); + return -1; + } if (!TLVP_PRESENT(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST)) { LOGP(DNAT, LOGL_ERROR, "No CellIdentifier List inside paging msg.\n"); return -2; -- To view, visit https://gerrit.osmocom.org/9775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib03681cf91550846af0d487c11cc90b6f700b340 Gerrit-Change-Number: 9775 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:24:10 2018 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Jun 2018 15:24:10 +0000 Subject: Change in openbsc[master]: bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/9776 Change subject: bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received ...................................................................... bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received Previous to this commit, an error message was printed and the paging message was dropped: openbsc/openbsc/src/osmo-bsc_nat/bsc_nat.c:618 Could not parse paging message: -3 Related: OS#3325 Change-Id: I3125ba0e67d2965c0be3089748dd113b1bf615af --- M openbsc/src/osmo-bsc_nat/bsc_nat.c M openbsc/src/osmo-bsc_nat/bsc_nat_utils.c 2 files changed, 34 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/76/9776/1 diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index ba7f542..2c6c644 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -611,11 +611,21 @@ { struct bsc_connection *bsc; const uint8_t *paging_start; - int paging_length, i, ret; + int paging_length, i, discrim; - ret = bsc_nat_find_paging(msg, &paging_start, &paging_length); - if (ret != 0) { - LOGP(DNAT, LOGL_ERROR, "Could not parse paging message: %d\n", ret); + discrim = bsc_nat_find_paging(msg, &paging_start, &paging_length); + if (discrim < 0) { + LOGP(DNAT, LOGL_ERROR, "Could not parse paging message: %d\n", discrim); + return; + } + + if (discrim == CELL_IDENT_BSS) { + /* All cells on the BSS are identified. */ + llist_for_each_entry(bsc, &nat->bsc_connections, list_entry) { + if (!bsc->authenticated) + continue; + bsc_nat_send_paging(bsc, msg); + } return; } diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c index 85fc7ed..223ef34 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c @@ -324,7 +324,16 @@ talloc_free(conn); } - +/*! Parse paging message and provide pointer to first Cell identification item + * in Cell Identifier List IE. + * See e.g. GSM 08.08 Section 3.2.2.27 for Cell Identifier List. + * For multiple occurences, use tlv_parse2(). + * \param[in] msg msgbcontaining the paging cmd message to be decoded + * \param[out] out_data pointer to first Cell identification item in Cell Identifier List IE. + * \param[out] out_leng length of \ref out_data in bytes (the size of the array of items) + * \returns Field "Cell identification discriminator" of the "Cell Identifier + * List" IE (>=0) on success. Negative value on error. + */ int bsc_nat_find_paging(struct msgb *msg, const uint8_t **out_data, int *out_leng) { @@ -352,17 +361,18 @@ data_length = TLVP_LEN(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); data = TLVP_VAL(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); - /* No need to try a different BSS */ - if (data[0] == CELL_IDENT_BSS) { - return -3; - } else if (data[0] != CELL_IDENT_LAC) { - LOGP(DNAT, LOGL_ERROR, "Unhandled cell ident discrminator: %d\n", data[0]); + switch (data[0]) { + case CELL_IDENT_LAC: + *out_data = &data[1]; + *out_leng = data_length - 1; + /* fall through */ + case CELL_IDENT_BSS: + return data[0]; + default: + LOGP(DNAT, LOGL_ERROR, "Unhandled cell ident discrminator: %s\n", + gsm0808_cell_id_discr_name(data[0])); return -4; } - - *out_data = &data[1]; - *out_leng = data_length - 1; - return 0; } int bsc_write_mgcp(struct bsc_connection *bsc, const uint8_t *data, unsigned int length) -- To view, visit https://gerrit.osmocom.org/9776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3125ba0e67d2965c0be3089748dd113b1bf615af Gerrit-Change-Number: 9776 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:41:30 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 15:41:30 +0000 Subject: Change in osmo-ci[master]: Restrict where the parent build runs for osmo-gsm-manuals In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9770 ) Change subject: Restrict where the parent build runs for osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/9770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23cf2c98f02278a5deb9c4ae8d13438b76538287 Gerrit-Change-Number: 9770 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 28 Jun 2018 15:41:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:41:46 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 15:41:46 +0000 Subject: Change in openbsc[master]: Init access_lists before passing it as a parameter In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9771 ) Change subject: Init access_lists before passing it as a parameter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic17c38578587a774da29266302e7b201ecacd3a3 Gerrit-Change-Number: 9771 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 15:41:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:41:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 15:41:52 +0000 Subject: Change in openbsc[master]: bsc_vty: Write access list entries when storing bsc config In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9773 ) Change subject: bsc_vty: Write access list entries when storing bsc config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0b951a9c3dbe245c3813fc91ceb9118a0de779b8 Gerrit-Change-Number: 9773 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 15:41:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:41:54 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 15:41:54 +0000 Subject: Change in openbsc[master]: filter: vty: Print policy list in cmd show access-list In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9774 ) Change subject: filter: vty: Print policy list in cmd show access-list ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id89febbd84beba8a0c083cbf83649bb4672684c4 Gerrit-Change-Number: 9774 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 15:41:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:42:03 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 15:42:03 +0000 Subject: Change in openbsc[master]: bsc-nat: find_paging: Check return code of tlv_parse In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9775 ) Change subject: bsc-nat: find_paging: Check return code of tlv_parse ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib03681cf91550846af0d487c11cc90b6f700b340 Gerrit-Change-Number: 9775 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 15:42:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:42:28 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 15:42:28 +0000 Subject: Change in openbsc[master]: bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9776 ) Change subject: bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3125ba0e67d2965c0be3089748dd113b1bf615af Gerrit-Change-Number: 9776 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 15:42:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 15:42:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 15:42:31 +0000 Subject: Change in openbsc[master]: Init access_lists before passing it as a parameter In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9771 ) Change subject: Init access_lists before passing it as a parameter ...................................................................... Init access_lists before passing it as a parameter Previous state is harmless because the pointer is stored but not used in that function. However, it's more clear this way. Back-port from osmo-bsc.git 9ab47eb52da73d25c4f94869385a4f836032362a. Change-Id: Ic17c38578587a774da29266302e7b201ecacd3a3 --- M openbsc/src/osmo-bsc/osmo_bsc_main.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c index be24cbd..e081fe9 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_main.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c @@ -61,7 +61,7 @@ static const char *rf_ctrl = NULL; extern const char *openbsc_copyright; static int daemonize = 0; -static struct llist_head access_lists; +static LLIST_HEAD(access_lists); struct llist_head *bsc_access_lists(void) { @@ -223,8 +223,6 @@ bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); ctrl_vty_init(tall_bsc_ctx); - INIT_LLIST_HEAD(&access_lists); - /* parse options */ handle_options(argc, argv); -- To view, visit https://gerrit.osmocom.org/9771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic17c38578587a774da29266302e7b201ecacd3a3 Gerrit-Change-Number: 9771 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:00:49 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:00:49 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9704 ) Change subject: octphy: add support for 16x oversampling mode ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 28 Jun 2018 16:00:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:00:51 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:00:51 +0000 Subject: Change in osmo-bts[master]: octphy: add support for 16x oversampling mode In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9704 ) Change subject: octphy: add support for 16x oversampling mode ...................................................................... octphy: add support for 16x oversampling mode The latest octphy firmware release (octsdr-2g-02.11.00-B1927-alpha), introduces a 16X oversampling option which is not yet supported in osmo-bts. - Add oversampling flag in phy_link.h - Add VTY commands to enable/disable oversampling - Add phy messages to enable/disable oversampling - Add conditional compilation to preserve support for legacy header files and firmware Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Related: SYS#4257 Patch-by: Octasic inc. --- M configure.ac M include/osmo-bts/phy_link.h M src/osmo-bts-octphy/l1_if.c M src/osmo-bts-octphy/l1_oml.c M src/osmo-bts-octphy/octphy_vty.c 5 files changed, 94 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/configure.ac b/configure.ac index 6456f8a..b364e4d 100644 --- a/configure.ac +++ b/configure.ac @@ -250,6 +250,13 @@ [], [#include ]) + AC_CHECK_MEMBER([tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD.ulOversample16xEnableFlag], + AC_DEFINE([OCTPHY_USE_16X_OVERSAMPLING], + [1], + [Define to 1 if your octphy header files support 16x oversampling]), + [], + [#include ]) + CPPFLAGS=$oldCPPFLAGS fi diff --git a/include/osmo-bts/phy_link.h b/include/osmo-bts/phy_link.h index 0ffc58e..36e34e1 100644 --- a/include/osmo-bts/phy_link.h +++ b/include/osmo-bts/phy_link.h @@ -74,6 +74,7 @@ uint32_t rx_gain_db; bool tx_atten_flag; uint32_t tx_atten_db; + bool over_sample_16x; #if OCTPHY_MULTI_TRX == 1 /* arfcn used by TRX with id 0 */ uint16_t center_arfcn; diff --git a/src/osmo-bts-octphy/l1_if.c b/src/osmo-bts-octphy/l1_if.c index f178029..91ef07b 100644 --- a/src/osmo-bts-octphy/l1_if.c +++ b/src/osmo-bts-octphy/l1_if.c @@ -1659,6 +1659,7 @@ plink->u.octphy.rf_port_index = 0; plink->u.octphy.rx_gain_db = 70; plink->u.octphy.tx_atten_db = 0; + plink->u.octphy.over_sample_16x = true; } void bts_model_phy_instance_set_defaults(struct phy_instance *pinst) diff --git a/src/osmo-bts-octphy/l1_oml.c b/src/osmo-bts-octphy/l1_oml.c index 018a4f9..7f4c0cd 100644 --- a/src/osmo-bts-octphy/l1_oml.c +++ b/src/osmo-bts-octphy/l1_oml.c @@ -1375,6 +1375,57 @@ return l1if_req_compl(fl1h, msg, trx_open_compl_cb, NULL); } +#if OCTPHY_USE_16X_OVERSAMPLING == 1 +static int over_sample_16x_modif_compl_cb(struct octphy_hdl *fl1, + struct msgb *resp, void *data) +{ + tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_RSP *mcr = + (tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_RSP*) resp->l2h; + + /* in a completion call-back, we take msgb ownership and must + * release it before returning */ + + mOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_RSP_SWAP(mcr); + + LOGP(DL1C, LOGL_INFO, "Rx OVER-SAMPLE-16x-MODIFY.conf\n"); + + msgb_free(resp); + + return 0; +} + +static int l1if_over_sample_16x_modif(struct gsm_bts_trx *trx) +{ + /* NOTE: The 16x oversampling mode should always be enabled. Single- + * TRX operation will work with standard 4x oversampling, but multi- + * TRX requires 16x oversampling */ + + struct phy_instance *pinst = trx_phy_instance(trx); + struct phy_link *plink = pinst->phy_link; + struct octphy_hdl *fl1h = pinst->phy_link->u.octphy.hdl; + struct msgb *msg = l1p_msgb_alloc(); + tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD *mc; + + mc = (tOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD*) msgb_put(msg, + sizeof + (*mc)); + mOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD_DEF(mc); + l1if_fill_msg_hdr(&mc->Header, msg, fl1h, cOCTVC1_MSG_TYPE_COMMAND, + cOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CID); + + if (plink->u.octphy.over_sample_16x == true) + mc->ulOversample16xEnableFlag = 1; + else + mc->ulOversample16xEnableFlag = 0; + + mOCTVC1_GSM_MSG_OVERSAMPLE_SELECT_16X_MODIFY_CMD_SWAP(mc); + + LOGP(DL1C, LOGL_INFO, "Tx OVER-SAMPLE-16x-MODIF.req\n"); + + return l1if_req_compl(fl1h, msg, over_sample_16x_modif_compl_cb, 0); +} +#endif + uint32_t trx_get_hlayer1(struct gsm_bts_trx * trx) { return 0; @@ -1393,6 +1444,10 @@ l1if_check_app_version(trx); l1if_check_app_sys_version(trx); +#if OCTPHY_USE_16X_OVERSAMPLING == 1 + l1if_over_sample_16x_modif(trx); +#endif + return l1if_trx_open(trx); } diff --git a/src/osmo-bts-octphy/octphy_vty.c b/src/osmo-bts-octphy/octphy_vty.c index e5e8eba..d250a95 100644 --- a/src/osmo-bts-octphy/octphy_vty.c +++ b/src/osmo-bts-octphy/octphy_vty.c @@ -195,6 +195,29 @@ return CMD_SUCCESS; } +#if OCTPHY_USE_16X_OVERSAMPLING == 1 +DEFUN(cfg_phy_over_sample_16x, cfg_phy_over_sample_16x_cmd, + "octphy over-sample-16x <0-1>", + OCT_STR "Configure 16x over sampling rate for this TRX (restart required)\n" + "Over Sampling Rate\n") +{ + struct phy_link *plink = vty->index; + + if (plink->state != PHY_LINK_SHUTDOWN) { + vty_out(vty, "Can only reconfigure a PHY link that is down%s", + VTY_NEWLINE); + return CMD_WARNING; + } + + if(atoi(argv[0])) + plink->u.octphy.over_sample_16x = true; + else + plink->u.octphy.over_sample_16x = false; + + return CMD_SUCCESS; +} +#endif + void show_rf_port_stats_cb(struct msgb *resp, void *data) { struct vty *vty = (struct vty*) data; @@ -370,6 +393,10 @@ vty_out(vty, " octphy rx-ant-id %u%s", plink->u.octphy.rx_ant_id, VTY_NEWLINE); #endif +#if OCTPHY_USE_16X_OVERSAMPLING == 1 + vty_out(vty, " octphy over-sample-16x %u%s", plink->u.octphy.over_sample_16x, + VTY_NEWLINE); +#endif } void bts_model_config_write_phy_inst(struct vty *vty, struct phy_instance *pinst) @@ -423,7 +450,9 @@ #endif install_element(PHY_NODE, &cfg_phy_rx_gain_db_cmd); install_element(PHY_NODE, &cfg_phy_tx_atten_db_cmd); - +#if OCTPHY_USE_16X_OVERSAMPLING == 1 + install_element(PHY_NODE, &cfg_phy_over_sample_16x_cmd); +#endif install_element_ve(&show_rf_port_stats_cmd); install_element_ve(&show_clk_sync_stats_cmd); install_element_ve(&show_sys_info_cmd); -- To view, visit https://gerrit.osmocom.org/9704 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib78f92bfe03ff20aa0a257763c90844fb7b87cf0 Gerrit-Change-Number: 9704 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:01:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:01:06 +0000 Subject: Change in openbsc[master]: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9772 ) Change subject: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I519fb945a99206dff6c4aeb476d527e632b7e751 Gerrit-Change-Number: 9772 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Thu, 28 Jun 2018 16:01:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:01:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:01:10 +0000 Subject: Change in openbsc[master]: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9772 ) Change subject: Rename bsc_msg_acc_lst_vty_init to have more uniform prefix ...................................................................... Rename bsc_msg_acc_lst_vty_init to have more uniform prefix Back-port from osmo-bsc.git a0f1196eda79de0e838b29eb91d9f31839f2f447. Change-Id: I519fb945a99206dff6c4aeb476d527e632b7e751 --- M openbsc/include/openbsc/bsc_msg_filter.h M openbsc/src/libfilter/bsc_msg_vty.c M openbsc/src/osmo-bsc/osmo_bsc_main.c M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 4 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/include/openbsc/bsc_msg_filter.h b/openbsc/include/openbsc/bsc_msg_filter.h index a9dedf4..dc971a4 100644 --- a/openbsc/include/openbsc/bsc_msg_filter.h +++ b/openbsc/include/openbsc/bsc_msg_filter.h @@ -103,5 +103,5 @@ struct bsc_msg_acc_lst_entry *bsc_msg_acc_lst_entry_create(struct bsc_msg_acc_lst *); int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node); +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node); void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst); diff --git a/openbsc/src/libfilter/bsc_msg_vty.c b/openbsc/src/libfilter/bsc_msg_vty.c index c342fdc..06f3876 100644 --- a/openbsc/src/libfilter/bsc_msg_vty.c +++ b/openbsc/src/libfilter/bsc_msg_vty.c @@ -127,7 +127,7 @@ } } -void bsc_msg_lst_vty_init(void *ctx, struct llist_head *lst, int node) +void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; _acc_lst = lst; diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c index e081fe9..cc18c14 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_main.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c @@ -220,7 +220,7 @@ vty_info.copyright = openbsc_copyright; vty_init(&vty_info); bsc_vty_init(bsc_gsmnet); - bsc_msg_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); + bsc_msg_acc_lst_vty_init(tall_bsc_ctx, &access_lists, BSC_NODE); ctrl_vty_init(tall_bsc_ctx); /* parse options */ diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 920c8d7..7ddcb57 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -1356,7 +1356,7 @@ install_element(NAT_NODE, &cfg_nat_ussd_local_cmd); install_element(NAT_NODE, &cfg_nat_use_ipa_for_mgcp_cmd); - bsc_msg_lst_vty_init(nat, &nat->access_lists, NAT_NODE); + bsc_msg_acc_lst_vty_init(nat, &nat->access_lists, NAT_NODE); /* number rewriting */ install_element(NAT_NODE, &cfg_nat_number_rewrite_cmd); -- To view, visit https://gerrit.osmocom.org/9772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I519fb945a99206dff6c4aeb476d527e632b7e751 Gerrit-Change-Number: 9772 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:01:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:01:10 +0000 Subject: Change in openbsc[master]: bsc_vty: Write access list entries when storing bsc config In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9773 ) Change subject: bsc_vty: Write access list entries when storing bsc config ...................................................................... bsc_vty: Write access list entries when storing bsc config Back-port from osmo-bsc.git d99182c01037f4dd14fb72b2b06497e0c1bebb49. Change-Id: I0b951a9c3dbe245c3813fc91ceb9118a0de779b8 --- M openbsc/include/openbsc/bsc_msg_filter.h M openbsc/src/libfilter/bsc_msg_vty.c M openbsc/src/osmo-bsc/osmo_bsc_vty.c M openbsc/src/osmo-bsc_nat/bsc_nat_vty.c 4 files changed, 14 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/include/openbsc/bsc_msg_filter.h b/openbsc/include/openbsc/bsc_msg_filter.h index dc971a4..22b8447 100644 --- a/openbsc/include/openbsc/bsc_msg_filter.h +++ b/openbsc/include/openbsc/bsc_msg_filter.h @@ -104,4 +104,4 @@ int bsc_msg_acc_lst_check_allow(struct bsc_msg_acc_lst *lst, const char *imsi); void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node); -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst); +void bsc_msg_acc_lst_write(struct vty *vty); diff --git a/openbsc/src/libfilter/bsc_msg_vty.c b/openbsc/src/libfilter/bsc_msg_vty.c index 06f3876..668e399 100644 --- a/openbsc/src/libfilter/bsc_msg_vty.c +++ b/openbsc/src/libfilter/bsc_msg_vty.c @@ -111,7 +111,7 @@ return CMD_SUCCESS; } -void bsc_msg_acc_lst_write(struct vty *vty, struct bsc_msg_acc_lst *lst) +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) { struct bsc_msg_acc_lst_entry *entry; @@ -127,6 +127,14 @@ } } +void bsc_msg_acc_lst_write(struct vty *vty) +{ + struct bsc_msg_acc_lst *lst; + llist_for_each_entry(lst, _acc_lst, list) { + bsc_msg_acc_lst_write_one(vty, lst); + } +} + void bsc_msg_acc_lst_vty_init(void *ctx, struct llist_head *lst, int node) { _ctx = ctx; diff --git a/openbsc/src/osmo-bsc/osmo_bsc_vty.c b/openbsc/src/osmo-bsc/osmo_bsc_vty.c index e124b31..66e59bd 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_vty.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_vty.c @@ -221,6 +221,8 @@ if (bsc->acc_lst_name) vty_out(vty, " access-list-name %s%s", bsc->acc_lst_name, VTY_NEWLINE); + bsc_msg_acc_lst_write(vty); + return CMD_SUCCESS; } diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 7ddcb57..eba968a 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -129,7 +129,6 @@ static int config_write_nat(struct vty *vty) { - struct bsc_msg_acc_lst *lst; struct bsc_nat_paging_group *pgroup; vty_out(vty, "nat%s", VTY_NEWLINE); @@ -179,8 +178,8 @@ vty_out(vty, " prefix-tree %s%s", _nat->num_rewr_trie_name, VTY_NEWLINE); - llist_for_each_entry(lst, &_nat->access_lists, list) - bsc_msg_acc_lst_write(vty, lst); + bsc_msg_acc_lst_write(vty); + llist_for_each_entry(pgroup, &_nat->paging_groups, entry) write_pgroup_lst(vty, pgroup); if (_nat->mgcp_ipa) -- To view, visit https://gerrit.osmocom.org/9773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0b951a9c3dbe245c3813fc91ceb9118a0de779b8 Gerrit-Change-Number: 9773 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:01:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:01:11 +0000 Subject: Change in openbsc[master]: filter: vty: Print policy list in cmd show access-list In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9774 ) Change subject: filter: vty: Print policy list in cmd show access-list ...................................................................... filter: vty: Print policy list in cmd show access-list Back-port from osmo-bsc.git 653bee7d02a1a1c827b54d235b644fec6a6f4683. Change-Id: Id89febbd84beba8a0c083cbf83649bb4672684c4 --- M openbsc/src/libfilter/bsc_msg_vty.c 1 file changed, 17 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/libfilter/bsc_msg_vty.c b/openbsc/src/libfilter/bsc_msg_vty.c index 668e399..7106dea 100644 --- a/openbsc/src/libfilter/bsc_msg_vty.c +++ b/openbsc/src/libfilter/bsc_msg_vty.c @@ -26,6 +26,22 @@ static struct llist_head *_acc_lst; static void *_ctx; +static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) +{ + struct bsc_msg_acc_lst_entry *entry; + + llist_for_each_entry(entry, &lst->fltr_list, list) { + if (entry->imsi_allow) + vty_out(vty, " access-list %s imsi-allow %s%s", + lst->name, entry->imsi_allow, VTY_NEWLINE); + if (entry->imsi_deny) + vty_out(vty, " access-list %s imsi-deny %s %d %d%s", + lst->name, entry->imsi_deny, + entry->cm_reject_cause, entry->lu_reject_cause, + VTY_NEWLINE); + } +} + DEFUN(cfg_lst_no, cfg_lst_no_cmd, "no access-list NAME", @@ -52,6 +68,7 @@ return CMD_WARNING; vty_out(vty, "access-list %s%s", acc->name, VTY_NEWLINE); + bsc_msg_acc_lst_write_one(vty, acc); vty_out_rate_ctr_group(vty, " ", acc->stats); return CMD_SUCCESS; @@ -111,22 +128,6 @@ return CMD_SUCCESS; } -static void bsc_msg_acc_lst_write_one(struct vty *vty, struct bsc_msg_acc_lst *lst) -{ - struct bsc_msg_acc_lst_entry *entry; - - llist_for_each_entry(entry, &lst->fltr_list, list) { - if (entry->imsi_allow) - vty_out(vty, " access-list %s imsi-allow %s%s", - lst->name, entry->imsi_allow, VTY_NEWLINE); - if (entry->imsi_deny) - vty_out(vty, " access-list %s imsi-deny %s %d %d%s", - lst->name, entry->imsi_deny, - entry->cm_reject_cause, entry->lu_reject_cause, - VTY_NEWLINE); - } -} - void bsc_msg_acc_lst_write(struct vty *vty) { struct bsc_msg_acc_lst *lst; -- To view, visit https://gerrit.osmocom.org/9774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id89febbd84beba8a0c083cbf83649bb4672684c4 Gerrit-Change-Number: 9774 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:01:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:01:11 +0000 Subject: Change in openbsc[master]: bsc-nat: find_paging: Check return code of tlv_parse In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9775 ) Change subject: bsc-nat: find_paging: Check return code of tlv_parse ...................................................................... bsc-nat: find_paging: Check return code of tlv_parse Change-Id: Ib03681cf91550846af0d487c11cc90b6f700b340 --- M openbsc/src/osmo-bsc_nat/bsc_nat_utils.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c index 5a06d3f..85fc7ed 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c @@ -331,13 +331,19 @@ int data_length; const uint8_t *data; struct tlv_parsed tp; + int rc; if (!msg->l3h || msgb_l3len(msg) < 3) { LOGP(DNAT, LOGL_ERROR, "Paging message is too short.\n"); return -1; } - tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l3h + 3, msgb_l3len(msg) - 3, 0, 0); + rc = tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l3h + 3, msgb_l3len(msg) - 3, 0, 0); + if (rc < 0) { + LOGP(DNAT, LOGL_ERROR, "Failed parsing PAGING TLV -- discarding message! %s\n", + osmo_hexdump(msg->l3h, msgb_l3len(msg))); + return -1; + } if (!TLVP_PRESENT(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST)) { LOGP(DNAT, LOGL_ERROR, "No CellIdentifier List inside paging msg.\n"); return -2; -- To view, visit https://gerrit.osmocom.org/9775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib03681cf91550846af0d487c11cc90b6f700b340 Gerrit-Change-Number: 9775 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Jun 28 16:01:12 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Jun 2018 16:01:12 +0000 Subject: Change in openbsc[master]: bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9776 ) Change subject: bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received ...................................................................... bsc-nat: forward paging to all BSC when CELL_IDENT_BSS is received Previous to this commit, an error message was printed and the paging message was dropped: openbsc/openbsc/src/osmo-bsc_nat/bsc_nat.c:618 Could not parse paging message: -3 Related: OS#3325 Change-Id: I3125ba0e67d2965c0be3089748dd113b1bf615af --- M openbsc/src/osmo-bsc_nat/bsc_nat.c M openbsc/src/osmo-bsc_nat/bsc_nat_utils.c 2 files changed, 34 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c index ba7f542..2c6c644 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c @@ -611,11 +611,21 @@ { struct bsc_connection *bsc; const uint8_t *paging_start; - int paging_length, i, ret; + int paging_length, i, discrim; - ret = bsc_nat_find_paging(msg, &paging_start, &paging_length); - if (ret != 0) { - LOGP(DNAT, LOGL_ERROR, "Could not parse paging message: %d\n", ret); + discrim = bsc_nat_find_paging(msg, &paging_start, &paging_length); + if (discrim < 0) { + LOGP(DNAT, LOGL_ERROR, "Could not parse paging message: %d\n", discrim); + return; + } + + if (discrim == CELL_IDENT_BSS) { + /* All cells on the BSS are identified. */ + llist_for_each_entry(bsc, &nat->bsc_connections, list_entry) { + if (!bsc->authenticated) + continue; + bsc_nat_send_paging(bsc, msg); + } return; } diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c index 85fc7ed..223ef34 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_utils.c @@ -324,7 +324,16 @@ talloc_free(conn); } - +/*! Parse paging message and provide pointer to first Cell identification item + * in Cell Identifier List IE. + * See e.g. GSM 08.08 Section 3.2.2.27 for Cell Identifier List. + * For multiple occurences, use tlv_parse2(). + * \param[in] msg msgbcontaining the paging cmd message to be decoded + * \param[out] out_data pointer to first Cell identification item in Cell Identifier List IE. + * \param[out] out_leng length of \ref out_data in bytes (the size of the array of items) + * \returns Field "Cell identification discriminator" of the "Cell Identifier + * List" IE (>=0) on success. Negative value on error. + */ int bsc_nat_find_paging(struct msgb *msg, const uint8_t **out_data, int *out_leng) { @@ -352,17 +361,18 @@ data_length = TLVP_LEN(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); data = TLVP_VAL(&tp, GSM0808_IE_CELL_IDENTIFIER_LIST); - /* No need to try a different BSS */ - if (data[0] == CELL_IDENT_BSS) { - return -3; - } else if (data[0] != CELL_IDENT_LAC) { - LOGP(DNAT, LOGL_ERROR, "Unhandled cell ident discrminator: %d\n", data[0]); + switch (data[0]) { + case CELL_IDENT_LAC: + *out_data = &data[1]; + *out_leng = data_length - 1; + /* fall through */ + case CELL_IDENT_BSS: + return data[0]; + default: + LOGP(DNAT, LOGL_ERROR, "Unhandled cell ident discrminator: %s\n", + gsm0808_cell_id_discr_name(data[0])); return -4; } - - *out_data = &data[1]; - *out_leng = data_length - 1; - return 0; } int bsc_write_mgcp(struct bsc_connection *bsc, const uint8_t *data, unsigned int length) -- To view, visit https://gerrit.osmocom.org/9776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3125ba0e67d2965c0be3089748dd113b1bf615af Gerrit-Change-Number: 9776 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Jun 28 16:11:26 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 28 Jun 2018 16:11:26 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-iuh_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1466?= Message-ID: <90918026.372.1530202286970.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 296.87 KB...] + git checkout -f origin/master Note: checking out 'origin/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b HEAD is now at 97db03a... rename m3ua_example to sccp_demo_user + git rev-parse HEAD 97db03a68246b7821de144b0ef41ad6ad7486610 + cd libosmo-sccp + mkdir -p + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'. libtoolize: copying file './ltmain.sh' libtoolize: Consider adding 'AC_CONFIG_MACRO_DIRS([m4])' to configure.ac, libtoolize: and rerunning libtoolize and aclocal. libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' examples/Makefile.am: installing './depcomp' tests/sccp/Makefile.am:8: warning: source file '$(top_srcdir)/src/sccp.c' is in a subdirectory, tests/sccp/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --prefix= checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOGSM... yes checking for LIBOSMONETIF... yes checking for library containing sctp_send... -lsctp checking if gcc supports -fvisibility=hidden... yes checking for doxygen... /usr/bin/doxygen CFLAGS="-g -O2 -Wall" CPPFLAGS=" -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-sigtran.pc config.status: creating libosmo-sccp.pc config.status: creating libosmo-mtp.pc config.status: creating libosmo-xua.pc config.status: creating include/sccp/Makefile config.status: creating include/mtp/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sigtran/Makefile config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating tests/Makefile config.status: creating tests/sccp/Makefile config.status: creating tests/mtp/Makefile config.status: creating tests/m2ua/Makefile config.status: creating tests/xua/Makefile config.status: creating tests/ss7/Makefile config.status: creating examples/Makefile config.status: creating stp/Makefile config.status: creating Doxyfile config.status: creating Makefile config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 0.9.0.10-97db > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' Making install in sccp make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 sccp_types.h sccp.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in mtp make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 mtp_level3.h mtp_pcap.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in osmocom make[3]: Entering directory ' Making install in sigtran make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 protocol/sua.h protocol/m3ua.h protocol/mtp.h ' /usr/bin/install -c -m 644 xua_types.h xua_msg.h m2ua_types.h sccp_sap.h sigtran_sap.h sccp_helpers.h mtp_sap.h osmo_ss7.h ' make[5]: Leaving directory ' make[4]: Leaving directory ' make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' CC sccp.o CC mtp_pcap.o CC sua.lo CC sccp_sap.lo CC xua_msg.lo CC libxua_a-xua_msg.o CC m3ua.lo CC sccp_helpers.lo CC sccp2sua.lo CC sccp_scrc.lo CC sccp_sclc.lo CC sccp_scoc.lo CC sccp_user.lo CC xua_rkm.lo CC xua_default_lm_fsm.lo CC osmo_ss7.lo CC osmo_ss7_hmrt.lo CC xua_asp_fsm.lo CC xua_as_fsm.lo sccp_scoc.c: In function ?scoc_fsm_active?: sccp_scoc.c:943:9: note: #pragma message: TODO: internal disco: send N-DISCONNECT.ind to user #pragma message ("TODO: internal disco: send N-DISCONNECT.ind to user") ^~~~~~~ CC osmo_ss7_vty.lo CC sccp_vty.lo CC ipa.lo AR libsccp.a ar: `u' modifier ignored since `D' is the default (see `U') AR libmtp.a ar: `u' modifier ignored since `D' is the default (see `U') AR libxua.a ar: `u' modifier ignored since `D' is the default (see `U') /bin/bash: line 1: 15063 Segmentation fault /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"libosmo-sccp\" -DPACKAGE_TARNAME=\"libosmo-sccp\" -DPACKAGE_VERSION=\"0.9.0.10-97db\" -DPACKAGE_STRING=\"libosmo-sccp\ 0.9.0.10-97db\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libosmo-sccp\" -DVERSION=\"0.9.0.10-97db\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBSCTP=1 -I. -I../include -I.. -Wall -Wall -I -I -I -I -g -O2 -Wall -MT ipa.lo -MD -MP -MF .deps/ipa.Tpo -c -o ipa.lo ipa.c Makefile:562: recipe for target 'ipa.lo' failed make[2]: *** [ipa.lo] Error 139 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:485: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:784: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 00:16:59 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 00:16:59 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-iuh_=C2=BB_a1=3Dd?= =?UTF-8?Q?efault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1467?= In-Reply-To: <90918026.372.1530202286970.JavaMail.jenkins@jenkins.osmocom.org> References: <90918026.372.1530202286970.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <292313814.375.1530231419198.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Jun 29 07:56:31 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 07:56:31 +0000 Subject: Change in osmo-bts[master]: WIP: Add min/max/std-dev measurement reporting for TOA256 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9777 Change subject: WIP: Add min/max/std-dev measurement reporting for TOA256 ...................................................................... WIP: Add min/max/std-dev measurement reporting for TOA256 This patch adds extended processing of the high-resolution TOA256 measurement values. It adds reporting of the following values for each RSL MEAS REP for uplink measurements: * minimum TOA256 value during reporting period * maximum TOA256 value during reporting period * standard deviation of TOA256 value during reporting period Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2 --- M include/osmo-bts/gsm_data_shared.h M src/common/measurement.c M src/common/rsl.c M tests/meas/meas_test.c M tests/meas/meas_test.ok 5 files changed, 348 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/77/9777/1 diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index f4fb766..e15abfe 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -127,6 +127,7 @@ #define MAX_NUM_UL_MEAS 104 #define LC_UL_M_F_L1_VALID (1 << 0) #define LC_UL_M_F_RES_VALID (1 << 1) +#define LC_UL_M_F_OSMO_EXT_VALID (1 << 2) struct bts_ul_meas { /* BER in units of 0.01%: 10.000 == 100% ber, 0 == 0% ber */ @@ -257,6 +258,15 @@ uint8_t l1_info[2]; struct gsm_meas_rep_unidir ul_res; int16_t ms_toa256; + /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ + struct { + /* minimum value of toa256 during measurement period */ + int16_t toa256_min; + /* maximum value of toa256 during measurement period */ + int16_t toa256_max; + /* standard deviation of toa256 value during measurement period */ + uint16_t toa256_std_dev; + } ext; } meas; struct { struct amr_multirate_conf amr_mr; @@ -317,6 +327,11 @@ } ecu_state; }; +static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) +{ + return lchan->meas.l1_info[1]; +} + extern const struct value_string lchan_ciph_state_names[]; static inline const char *lchan_ciph_state_name(uint8_t state) { return get_value_string(lchan_ciph_state_names, state); diff --git a/src/common/measurement.c b/src/common/measurement.c index ba7494a..01f1e5d 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -3,6 +3,7 @@ #include #include +#include #include #include @@ -335,6 +336,64 @@ return 7; } +/* if we clip the TOA value to 12 bits, i.e. toa256=3200, + * -> the maximum deviation can be 2*3200 = 6400 + * -> the maximum squared deviation can be 6400^2 = 40960000 + * -> the maximum sum of squared deviations can be 104*40960000 = 4259840000 + * and hence fit into uint32_t + * -> once the value is divided by 104, it's again below 40960000 + * leaving 6 MSBs of freedom, i.e. we could extend by 64, resulting in 2621440000 + * -> as a result, the standard deviation could be communicated with up to six bits + * of fractional fixed-point number. + */ + +/* compute Osmocom extended measurements for the given lchan */ +static void lchan_meas_compute_extended(struct gsm_lchan *lchan) +{ + /* we assume that lchan_meas_check_compute() has already computed the mean value + * and we can compute the min/max/variance/stddev from this */ + int i; + + /* each measurement is an int32_t, so the squared difference value must fit in 32bits */ + /* the sum of the squared values (each up to 32bit) can very easily exceed 32 bits */ + u_int64_t sq_diff_sum = 0; + /* initialize min/max values with their counterpart */ + lchan->meas.ext.toa256_min = INT16_MAX; + lchan->meas.ext.toa256_max = INT16_MIN; + + OSMO_ASSERT(lchan->meas.num_ul_meas); + + /* all computations are done on the relative arrival time of the burst, relative to the + * beginning of its slot. This is of course excluding the TA value that the MS has already + * compensated/pre-empted its transmission */ + + /* step 1: compute the sum of the squared difference of each value to mean */ + for (i = 0; i < lchan->meas.num_ul_meas; i++) { + struct bts_ul_meas *m = &lchan->meas.uplink[i]; + int32_t diff = (int32_t)m->ta_offs_256bits - (int32_t)lchan->meas.ms_toa256; + /* diff can now be any value of +65535 to -65535, so we can safely square it, + * but only in unsigned math. As squaring looses the sign, we can simply drop + * it before squaring, too. */ + uint32_t diff_abs = labs(diff); + uint32_t diff_squared = diff_abs * diff_abs; + sq_diff_sum += diff_squared; + + /* also use this loop iteration to compute min/max values */ + if (m->ta_offs_256bits > lchan->meas.ext.toa256_max) + lchan->meas.ext.toa256_max = m->ta_offs_256bits; + if (m->ta_offs_256bits < lchan->meas.ext.toa256_min) + lchan->meas.ext.toa256_min = m->ta_offs_256bits; + } + /* step 2: compute the variance (mean of sum of squared differences) */ + sq_diff_sum = sq_diff_sum / lchan->meas.num_ul_meas; + /* as the individual summed values can each not exceed 2^32, and we're + * dividing by the number of summands, the resulting value can also not exceed 2^32 */ + OSMO_ASSERT(sq_diff_sum <= UINT32_MAX); + /* step 3: compute the standard deviation from the variance */ + lchan->meas.ext.toa256_std_dev = osmo_isqrt32(sq_diff_sum); + lchan->meas.flags |= LC_UL_M_F_OSMO_EXT_VALID; +} + int lchan_meas_check_compute(struct gsm_lchan *lchan, uint32_t fn) { struct gsm_meas_rep_unidir *mru; @@ -410,8 +469,10 @@ mru->sub.rx_qual, num_meas_sub, lchan->meas.num_ul_meas); lchan->meas.flags |= LC_UL_M_F_RES_VALID; - lchan->meas.num_ul_meas = 0; + lchan_meas_compute_extended(lchan); + + lchan->meas.num_ul_meas = 0; /* send a signal indicating computation is complete */ return 1; diff --git a/src/common/rsl.c b/src/common/rsl.c index 5d30ca7..8bbf73c 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -2536,6 +2536,13 @@ return (lchan->ms_t_offs >= 0) || (lchan->p_offs >= 0); } +struct osmo_bts_supp_meas_info { + int16_t toa256_mean; + int16_t toa256_min; + int16_t toa256_max; + uint16_t toa256_std_dev; +} __attribute__((packed)); + /* 8.4.8 MEASUREMENT RESult */ static int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, const struct lapdm_entity *le) { @@ -2573,16 +2580,23 @@ meas_res); lchan->tch.dtx.dl_active = false; if (ie_len >= 3) { - if (bts->supp_meas_toa256) { + if (bts->supp_meas_toa256 && lchan->meas.flags & LC_UL_M_F_OSMO_EXT_VALID) { + struct osmo_bts_supp_meas_info *smi; + smi = (struct osmo_bts_supp_meas_info *) &meas_res[ie_len]; + ie_len += sizeof(struct osmo_bts_supp_meas_info); /* append signed 16bit value containing MS timing offset in 1/256th symbols * in the vendor-specific "Supplementary Measurement Information" part of - * the uplink measurements IE. This is the current offset *relative* to the - * TA which the MS has already applied. So if you want to know the total - * propagation time between MS and BTS, you need to add the actual TA value - * used (from L1_INFO below, in full symbols) plus the ms_toa256 value - * in 1/256 symbol periods. */ - meas_res[ie_len++] = lchan->meas.ms_toa256 >> 8; - meas_res[ie_len++] = lchan->meas.ms_toa256 & 0xff; + * the uplink measurements IE. The lchan->meas.ext members are the current + * offset *relative* to the TA which the MS has already applied. As we want + * to know the total propagation time between MS and BTS, we need to add + * the actual TA value applied by the MS plus the respective toa256 value in + * 1/256 symbol periods. */ + int16_t ta256 = lchan_get_ta(lchan) * 256; + smi->toa256_mean = htons(ta256 + lchan->meas.ms_toa256); + smi->toa256_min = htons(ta256 + lchan->meas.ext.toa256_min); + smi->toa256_max = htons(ta256 + lchan->meas.ext.toa256_max); + smi->toa256_std_dev = htons(lchan->meas.ext.toa256_std_dev); + lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; } msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; diff --git a/tests/meas/meas_test.c b/tests/meas/meas_test.c index cbc673f..e889345 100644 --- a/tests/meas/meas_test.c +++ b/tests/meas/meas_test.c @@ -3,6 +3,7 @@ #include #include +#include #include #include @@ -62,6 +63,214 @@ OSMO_ASSERT(tsmap_result == tsmap); } +#define ULM(ber, ta, neg_rssi) \ + { .ber10k = (ber), .ta_offs_256bits = (ta), .c_i = 1.0, .is_sub = 0, .inv_rssi = (neg_rssi) } + +struct meas_testcase { + const char *name; + /* input data */ + const struct bts_ul_meas *ulm; + unsigned int ulm_count; + uint32_t final_fn; + /* results */ + struct { + int success; + uint8_t rx_lev_full; + uint8_t rx_qual_full; + int16_t toa256_mean; + int16_t toa256_min; + int16_t toa256_max; + uint16_t toa256_std_dev; + } res; +}; + +static struct bts_ul_meas ulm1[] = { + ULM(0, 0, 90), + ULM(0, 256, 90), + ULM(0, -256, 90), +}; +static const struct meas_testcase mtc1 = { + .name = "TOA256 Min-Max negative/positive", + .ulm = ulm1, + .ulm_count = ARRAY_SIZE(ulm1), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 0, + .toa256_max = 256, + .toa256_min = -256, + .toa256_std_dev = 209, + }, +}; + + +static struct bts_ul_meas ulm2[] = { + ULM(0, 256, 90), + ULM(0, 258, 90), + ULM(0, 254, 90), + ULM(0, 258, 90), + ULM(0, 254, 90), + ULM(0, 256, 90), +}; +static const struct meas_testcase mtc2 = { + .name = "TOA256 small jitter around 256", + .ulm = ulm2, + .ulm_count = ARRAY_SIZE(ulm2), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 256, + .toa256_max = 258, + .toa256_min = 254, + .toa256_std_dev = 1, + }, +}; + +static struct bts_ul_meas ulm3[] = { + ULM(0, 0, 90), + ULM(0, 0, 80), + ULM(0, 0, 80), + ULM(0, 0, 100), + ULM(0, 0, 100), +}; +static const struct meas_testcase mtc3 = { + .name = "RxLEv averaging", + .ulm = ulm3, + .ulm_count = ARRAY_SIZE(ulm3), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 0, + .toa256_max = 0, + .toa256_min = 0, + .toa256_std_dev = 0, + }, +}; + +static struct bts_ul_meas ulm4[] = { +}; +static const struct meas_testcase mtc4 = { + .name = "Empty measurements", + .ulm = ulm4, + .ulm_count = ARRAY_SIZE(ulm4), + .final_fn = 25, + .res = { + .success = 0, + .rx_lev_full = 0, + .rx_qual_full = 0, + .toa256_mean = 0, + .toa256_max = 0, + .toa256_min = 0, + .toa256_std_dev = 0, + }, +}; + +static struct bts_ul_meas ulm5[] = { + /* one 104 multiframe can at max contain 26 blocks (TCH/F), + * each of which can at maximum be 64 bits in advance (TA range) */ + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), +}; +static const struct meas_testcase mtc5 = { + .name = "TOA256 26 blocks with max TOA256", + .ulm = ulm5, + .ulm_count = ARRAY_SIZE(ulm5), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 64*256, + .toa256_max = 64*256, + .toa256_min = 64*256, + .toa256_std_dev = 0, + }, +}; + + +static void reset_lchan_meas(struct gsm_lchan *lchan) +{ + lchan->state = LCHAN_S_ACTIVE; + memset(&lchan->meas, 0, sizeof(lchan->meas)); +} + +static void test_meas_compute(const struct meas_testcase *mtc) +{ + struct gsm_lchan *lchan = &trx->ts[1].lchan[0]; + unsigned int i; + unsigned int fn = 0; + + printf("\nMeasurement Compute Test %s\n", mtc->name); + + lchan->ts->pchan = GSM_PCHAN_TCH_F; + reset_lchan_meas(lchan); + + /* feed uplink measurements into the code */ + for (i = 0; i < mtc->ulm_count; i++) { + lchan_new_ul_meas(lchan, (struct bts_ul_meas *) &mtc->ulm[i], fn); + fn += 1; + } + + /* compute the results */ + OSMO_ASSERT(lchan_meas_check_compute(lchan, mtc->final_fn) == mtc->res.success); + if (!mtc->res.success) { + OSMO_ASSERT(!(lchan->meas.flags & LC_UL_M_F_RES_VALID)); + } else { + OSMO_ASSERT(lchan->meas.flags & (LC_UL_M_F_RES_VALID|LC_UL_M_F_OSMO_EXT_VALID)); + printf("meas.ext.toa256_min | %6d | %6d\n", + lchan->meas.ext.toa256_min, mtc->res.toa256_min); + printf("meas.ext.toa256_max | %6d | %6d\n", + lchan->meas.ext.toa256_max, mtc->res.toa256_max); + printf("meas.ms_toa256 | %6d | %6d\n", + lchan->meas.ms_toa256, mtc->res.toa256_mean); + printf("meas.ext.toa256_std_dev | %6u | %6u\n", + lchan->meas.ext.toa256_std_dev, mtc->res.toa256_std_dev); + printf("meas.ul_res.full.rx_lev | %6u | %6u\n", + lchan->meas.ul_res.full.rx_lev, mtc->res.rx_lev_full); + printf("meas.ul_res.full.rx_qual | %6u | %6u\n", + lchan->meas.ul_res.full.rx_qual, mtc->res.rx_qual_full); + + if ((lchan->meas.ext.toa256_min != mtc->res.toa256_min) || + (lchan->meas.ext.toa256_max != mtc->res.toa256_max) || + (lchan->meas.ms_toa256 != mtc->res.toa256_mean) || + (lchan->meas.ext.toa256_std_dev != mtc->res.toa256_std_dev) || + (lchan->meas.ul_res.full.rx_lev != mtc->res.rx_lev_full)) { + fprintf(stderr, "%s: Unexpected measurement result!\n", mtc->name); + } + } + +} + int main(int argc, char **argv) { void *tall_bts_ctx; @@ -111,6 +320,12 @@ test_fn_sample(test_fn_tch_h_ts_6_ss0_ss1, ARRAY_SIZE(test_fn_tch_h_ts_6_ss0_ss1), GSM_PCHAN_TCH_H, (1 << 6)); test_fn_sample(test_fn_tch_h_ts_7_ss0_ss1, ARRAY_SIZE(test_fn_tch_h_ts_7_ss0_ss1), GSM_PCHAN_TCH_H, (1 << 7)); + test_meas_compute(&mtc1); + test_meas_compute(&mtc2); + test_meas_compute(&mtc3); + test_meas_compute(&mtc4); + test_meas_compute(&mtc5); + printf("Success\n"); return 0; diff --git a/tests/meas/meas_test.ok b/tests/meas/meas_test.ok index 6dbda54..026899d 100644 --- a/tests/meas/meas_test.ok +++ b/tests/meas/meas_test.ok @@ -539,4 +539,38 @@ Testing: ts[7]->lchan[1], fn=15079=>015079/11/25/34/23, fn%104=103, rc=1, delta=13 Testing: ts[7]->lchan[0], fn=15170=>015170/11/12/23/14, fn%104=90, rc=1, delta=91 Testing: ts[7]->lchan[1], fn=15183=>015183/11/25/36/27, fn%104=103, rc=1, delta=13 + +Measurement Compute Test TOA256 Min-Max negative/positive +meas.ext.toa256_min | -256 | -256 +meas.ext.toa256_max | 256 | 256 +meas.ms_toa256 | 0 | 0 +meas.ext.toa256_std_dev | 209 | 209 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 + +Measurement Compute Test TOA256 small jitter around 256 +meas.ext.toa256_min | 254 | 254 +meas.ext.toa256_max | 258 | 258 +meas.ms_toa256 | 256 | 256 +meas.ext.toa256_std_dev | 1 | 1 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 + +Measurement Compute Test RxLEv averaging +meas.ext.toa256_min | 0 | 0 +meas.ext.toa256_max | 0 | 0 +meas.ms_toa256 | 0 | 0 +meas.ext.toa256_std_dev | 0 | 0 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 + +Measurement Compute Test Empty measurements + +Measurement Compute Test TOA256 26 blocks with max TOA256 +meas.ext.toa256_min | 16384 | 16384 +meas.ext.toa256_max | 16384 | 16384 +meas.ms_toa256 | 16384 | 16384 +meas.ext.toa256_std_dev | 0 | 0 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 Success -- To view, visit https://gerrit.osmocom.org/9777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2 Gerrit-Change-Number: 9777 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 07:57:05 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 07:57:05 +0000 Subject: Change in osmo-bts[master]: Add min/max/std-dev measurement reporting for TOA256 In-Reply-To: References: Message-ID: Harald Welte has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/9777 ) Change subject: Add min/max/std-dev measurement reporting for TOA256 ...................................................................... Add min/max/std-dev measurement reporting for TOA256 This patch adds extended processing of the high-resolution TOA256 measurement values. It adds reporting of the following values for each RSL MEAS REP for uplink measurements: * minimum TOA256 value during reporting period * maximum TOA256 value during reporting period * standard deviation of TOA256 value during reporting period Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2 --- M include/osmo-bts/gsm_data_shared.h M src/common/measurement.c M src/common/rsl.c M tests/meas/meas_test.c M tests/meas/meas_test.ok 5 files changed, 348 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/77/9777/2 -- To view, visit https://gerrit.osmocom.org/9777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2 Gerrit-Change-Number: 9777 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-CC: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 08:02:11 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 08:02:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Extend Osmocom-specific RSL "supplementary meas info IE" Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9778 Change subject: bts: Extend Osmocom-specific RSL "supplementary meas info IE" ...................................................................... bts: Extend Osmocom-specific RSL "supplementary meas info IE" In osmo-bts Change-Id Iea4a4781481f77c6163d82dcd71a844a5be87bf2 we introduce an Osmocom specific "supplementary measurement info IE" into the RSL MEAS REP message. This commit adds the related type definitions and extends the related matching in BTS_Tests.ttcn. Change-Id: I5d1114c73508c67ad7cd9864d7370367612b1241 --- M bts/BTS_Tests.ttcn M library/RSL_Types.ttcn 2 files changed, 16 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/78/9778/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 1044747..b77a70a 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1240,8 +1240,13 @@ supp_meas_info := omit }; if (l1p.toa256_enabled) { - ul_meas.len := 5; - ul_meas.supp_meas_info := int2oct(l1p.timing_offset_256syms, 2); + ul_meas.len := (3+8); + ul_meas.supp_meas_info := { + toa256_mean := l1p.timing_offset_256syms, + toa256_min := ?, + toa256_max := ?, + toa256_std_dev := ? + } } /* HACK HACK HACK FIXME HACK HACK HACK see https://osmocom.org/issues/2988 */ ul_meas.rxlev_f_u := ?; diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index e1f6af0..d4d0c4d 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -473,6 +473,14 @@ frame_nr := tr_RSL_IE_FrameNumber(frame_nr) } + /* Osmocom Extension */ + type record RSL_IE_UplinkMeasSuppMeasInfo { + int16_t toa256_mean, + int16_t toa256_min, + int16_t toa256_max, + uint16_t toa256_std_dev + }; + /* 9.3.25 */ type record RSL_IE_UplinkMeas { uint8_t len, @@ -484,7 +492,7 @@ BIT2 reserved2, uint3_t rxq_f_u, uint3_t rxq_s_u, - octetstring supp_meas_info optional + RSL_IE_UplinkMeasSuppMeasInfo supp_meas_info optional } with { variant (len) "LENGTHTO(rfu,dtx_d,rxlev_f_u,reserved1,rxlev_s_u,reserved2,rxq_f_u,rxq_s_u,supp_meas_info)" }; /* 9.3.26 */ -- To view, visit https://gerrit.osmocom.org/9778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5d1114c73508c67ad7cd9864d7370367612b1241 Gerrit-Change-Number: 9778 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 08:59:55 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jun 2018 08:59:55 +0000 Subject: Change in libosmo-abis[master]: ortp: use 3GPP assigned payload type numbers Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9779 Change subject: ortp: use 3GPP assigned payload type numbers ...................................................................... ortp: use 3GPP assigned payload type numbers The payload types for AMR, EFR, and GSM-HR are dynamic payload types. In theory those can have any number from the IANA reserved dynamic payload type rante. However 3GPP TS 48.103 assignes AMR, EFR and GSM-HR a fixed payload type number from the dynamic payload type range. Lets make sure our payload types use the 3GPP payload type numbers instead of arbitrary choosen ones. - change payload type define constants to match 3GPP TS 48.103 Change-Id: If5bfa4aac37ce95741322f6a7481cf612425d77b Related: OS#2728 --- M include/osmocom/trau/osmo_ortp.h 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/79/9779/1 diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h index 5fb2960..9cd21c1 100644 --- a/include/osmocom/trau/osmo_ortp.h +++ b/include/osmocom/trau/osmo_ortp.h @@ -15,12 +15,12 @@ /*! \brief standard payload type for GSM Full Rate (FR) */ #define RTP_PT_GSM_FULL 3 -/*! \brief Osmocom pseudo-static paylaod type for Half Rate (HR) */ -#define RTP_PT_GSM_HALF 96 -/*! \brief Osmocom pseudo-static paylaod type for Enhanced Full Rate (EFR) */ -#define RTP_PT_GSM_EFR 97 -/*! \brief Osmocom pseudo-static paylaod type for Adaptive Multi Rate (AMR) */ -#define RTP_PT_AMR 98 +/*! \brief 3gpp (TS 48.103) pseudo-static paylaod type for Half Rate (HR) */ +#define RTP_PT_GSM_HALF 111 +/*! \brief 3gpp (TS 48.103) pseudo-static paylaod type for Enhanced Full Rate (EFR) */ +#define RTP_PT_GSM_EFR 110 +/*! \brief 3gpp (TS 48.103) pseudo-static paylaod type for Adaptive Multi Rate (AMR) */ +#define RTP_PT_AMR 112 #define GSM_VOICE_SAMPLE_RATE_HZ 8000 #define GSM_VOICE_SAMPLES_PER_MS (GSM_VOICE_SAMPLE_RATE_HZ / 1000) -- To view, visit https://gerrit.osmocom.org/9779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If5bfa4aac37ce95741322f6a7481cf612425d77b Gerrit-Change-Number: 9779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 09:00:03 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jun 2018 09:00:03 +0000 Subject: Change in libosmo-netif[master]: rtp: use 3GPP assigned payload type numbers Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9780 Change subject: rtp: use 3GPP assigned payload type numbers ...................................................................... rtp: use 3GPP assigned payload type numbers The payload types for AMR, EFR, and GSM-HR are dynamic payload types. In theory those can have any number from the IANA reserved dynamic payload type rante. However 3GPP TS 48.103 assignes AMR, EFR and GSM-HR a fixed payload type number from the dynamic payload type range. Lets make sure our payload types use the 3GPP payload type numbers instead of arbitrary choosen ones. - change payload type define constants to match 3GPP TS 48.103 Change-Id: Ife9ea525a615685c4b2369e491db46452b63c6cb Related: OS#2728 --- M include/osmocom/netif/rtp.h 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/80/9780/1 diff --git a/include/osmocom/netif/rtp.h b/include/osmocom/netif/rtp.h index c01df41..8029803 100644 --- a/include/osmocom/netif/rtp.h +++ b/include/osmocom/netif/rtp.h @@ -77,12 +77,12 @@ #define RTP_PT_GSM_FULL_PAYLOAD_LEN 33 #define RTP_PT_GSM_FULL_DURATION 160 /* in samples. */ -#define RTP_PT_GSM_HALF 96 +#define RTP_PT_GSM_HALF 111 /* see also: 3GPP TS 48.103 chapter 5.4.2.2 RTP Payload */ -#define RTP_PT_GSM_EFR 97 +#define RTP_PT_GSM_EFR 110 /* see also: 3GPP TS 48.103 chapter 5.4.2.2 RTP Payload */ #define RTP_PT_GSM_EFR_PAYLOAD_LEN 31 #define RTP_PT_GSM_EFR_DURATION 160 /* in samples. */ -#define RTP_PT_AMR 98 +#define RTP_PT_AMR 112 /* see also: 3GPP TS 48.103 chapter 5.4.2.2 RTP Payload */ #endif -- To view, visit https://gerrit.osmocom.org/9780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ife9ea525a615685c4b2369e491db46452b63c6cb Gerrit-Change-Number: 9780 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 09:00:12 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jun 2018 09:00:12 +0000 Subject: Change in osmo-bsc[master]: rsl: use 3GPP assigned payload type numbers Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9781 Change subject: rsl: use 3GPP assigned payload type numbers ...................................................................... rsl: use 3GPP assigned payload type numbers The payload types for AMR, EFR, and GSM-HR are dynamic payload types. In theory those can have any number from the IANA reserved dynamic payload type rante. However 3GPP TS 48.103 assignes AMR, EFR and GSM-HR a fixed payload type number from the dynamic payload type range. Lets make sure our payload types use the 3GPP payload type numbers instead of arbitrary choosen ones. - change payload type define constants to match 3GPP TS 48.103 Change-Id: Ib6a866b29d863d6875c67748dbe6b6468941ab29 Related: OS#2728 --- M src/osmo-bsc/abis_rsl.c 1 file changed, 5 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/81/9781/1 diff --git a/src/osmo-bsc/abis_rsl.c b/src/osmo-bsc/abis_rsl.c index ab3658d..9926c84 100644 --- a/src/osmo-bsc/abis_rsl.c +++ b/src/osmo-bsc/abis_rsl.c @@ -51,9 +51,11 @@ #define RSL_ALLOC_HEADROOM 128 #define RTP_PT_GSM_FULL 3 -#define RTP_PT_GSM_HALF 96 -#define RTP_PT_GSM_EFR 97 -#define RTP_PT_AMR 98 + +/* see also: 3GPP TS 48.103 chapter 5.4.2.2 RTP Payload */ +#define RTP_PT_GSM_HALF 111 +#define RTP_PT_GSM_EFR 110 +#define RTP_PT_AMR 112 enum sacch_deact { SACCH_NONE, -- To view, visit https://gerrit.osmocom.org/9781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib6a866b29d863d6875c67748dbe6b6468941ab29 Gerrit-Change-Number: 9781 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 09:00:20 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jun 2018 09:00:20 +0000 Subject: Change in openbsc[master]: rtp_proxy: use 3GPP assigned payload type numbers Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9782 Change subject: rtp_proxy: use 3GPP assigned payload type numbers ...................................................................... rtp_proxy: use 3GPP assigned payload type numbers The payload types for AMR, EFR, and GSM-HR are dynamic payload types. In theory those can have any number from the IANA reserved dynamic payload type rante. However 3GPP TS 48.103 assignes AMR, EFR and GSM-HR a fixed payload type number from the dynamic payload type range. Lets make sure our payload types use the 3GPP payload type numbers instead of arbitrary choosen ones. - change payload type define constants to match 3GPP TS 48.103 Change-Id: I96784be13254b16744211ed3bd1c9e6ad9a792ba Related: OS#2728 --- M openbsc/include/openbsc/rtp_proxy.h 1 file changed, 6 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/82/9782/1 diff --git a/openbsc/include/openbsc/rtp_proxy.h b/openbsc/include/openbsc/rtp_proxy.h index 52ffefd..2969889 100644 --- a/openbsc/include/openbsc/rtp_proxy.h +++ b/openbsc/include/openbsc/rtp_proxy.h @@ -30,9 +30,12 @@ #include #define RTP_PT_GSM_FULL 3 -#define RTP_PT_GSM_HALF 96 -#define RTP_PT_GSM_EFR 97 -#define RTP_PT_AMR 98 + +/* see also: 3GPP TS 48.103 chapter 5.4.2.2 RTP Payload */ +#define RTP_PT_GSM_HALF 111 +#define RTP_PT_GSM_EFR 110 +#define RTP_PT_AMR 112 + #define RTP_LEN_GSM_FULL 33 #define RTP_LEN_GSM_HALF 15 #define RTP_LEN_GSM_EFR 31 -- To view, visit https://gerrit.osmocom.org/9782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I96784be13254b16744211ed3bd1c9e6ad9a792ba Gerrit-Change-Number: 9782 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 09:04:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 09:04:10 +0000 Subject: Change in libosmo-netif[master]: remove "channel" layer Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9783 Change subject: remove "channel" layer ...................................................................... remove "channel" layer The "channel" layer on top of IPA client + server was introduced in 2011 but never used in any osmocom program/project so far. Contrary to the several other IPA multiplex related implementations in libosmo*, it did not deal properly with segmented IPA messages, i.e. where a single TCP segment (and hence recv/read call) does not contain a full IPA message. So rather than fixing it up and having yet another IPA related API in our libraries, let's remove it. Change-Id: I97c378750acb1637ee032fa88a968edf68d8979f --- M .gitignore M configure.ac M examples/Makefile.am D examples/channel/Makefile.am D examples/channel/abis_ipa_stream_client.c D examples/channel/abis_ipa_stream_server.c M include/osmocom/netif/Makefile.am D include/osmocom/netif/channel.h D include/osmocom/netif/channel/Makefile.am D include/osmocom/netif/channel/abis_ipa_client.h D include/osmocom/netif/channel/abis_ipa_server.h M src/Makefile.am D src/channel.c D src/channel/Makefile.am D src/channel/abis/Makefile.am D src/channel/abis/ipa_stream_client.c D src/channel/abis/ipa_stream_server.c M src/ipa.c 18 files changed, 1 insertion(+), 1,141 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/83/9783/1 diff --git a/.gitignore b/.gitignore index 350e975..31b7a15 100644 --- a/.gitignore +++ b/.gitignore @@ -35,8 +35,6 @@ tests/osmux/osmux_test tests/testsuite.log -examples/channel/abis_ipa_stream_client -examples/channel/abis_ipa_stream_server examples/ipa-stream-client examples/ipa-stream-server examples/lapd-over-datagram-network diff --git a/configure.ac b/configure.ac index a04390c..f9346c0 100644 --- a/configure.ac +++ b/configure.ac @@ -118,12 +118,8 @@ include/Makefile include/osmocom/Makefile include/osmocom/netif/Makefile - include/osmocom/netif/channel/Makefile src/Makefile - src/channel/Makefile - src/channel/abis/Makefile examples/Makefile - examples/channel/Makefile tests/Makefile Doxyfile Makefile) diff --git a/examples/Makefile.am b/examples/Makefile.am index df13808..52f4c83 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -2,8 +2,6 @@ AM_CFLAGS=-Wall -g $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(COVERAGE_CFLAGS) AM_LDFLAGS = $(COVERAGE_LDFLAGS) -SUBDIRS = channel - noinst_PROGRAMS = ipa-stream-client \ ipa-stream-server \ lapd-over-datagram-user \ diff --git a/examples/channel/Makefile.am b/examples/channel/Makefile.am deleted file mode 100644 index c417909..0000000 --- a/examples/channel/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -AM_CPPFLAGS = -I$(top_srcdir)/include -AM_CFLAGS=-Wall -g $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(COVERAGE_CFLAGS) -AM_LDFLAGS = $(COVERAGE_LDFLAGS) - -noinst_PROGRAMS = abis_ipa_stream_server \ - abis_ipa_stream_client - -abis_ipa_stream_server_SOURCES = abis_ipa_stream_server.c -abis_ipa_stream_server_LDADD = $(top_builddir)/src/libosmonetif.la \ - $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) - -abis_ipa_stream_client_SOURCES = abis_ipa_stream_client.c -abis_ipa_stream_client_LDADD = $(top_builddir)/src/libosmonetif.la \ - $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) diff --git a/examples/channel/abis_ipa_stream_client.c b/examples/channel/abis_ipa_stream_client.c deleted file mode 100644 index 8795cc6..0000000 --- a/examples/channel/abis_ipa_stream_client.c +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -static void *tall_example; - -#define DEXAMPLE 0 - -struct log_info_cat example_cat[] = { - [DEXAMPLE] = { - .name = "DEXAMPLE", - .description = "example", - .color = "\033[1;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -const struct log_info example_log_info = { - .filter_fn = NULL, - .cat = example_cat, - .num_cat = ARRAY_SIZE(example_cat), -}; - -void sighandler(int foo) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "closing test.\n"); - exit(EXIT_SUCCESS); -} - -static void signal_msg_cb(struct msgb *msg, int type) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "received signal message\n"); -} - -static struct osmo_chan *chan; - -int main(void) -{ - struct osmo_ipa_unit *unit; - - tall_example = talloc_named_const(NULL, 1, "example"); - msgb_talloc_ctx_init(tall_example, 0); - osmo_init_logging2(tall_example, &example_log_info); - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - - /* initialize channel infrastructure. */ - osmo_chan_init(tall_example); - - /* create channel. */ - chan = osmo_chan_create(OSMO_CHAN_ABIS_IPA_CLI, OSMO_SUBCHAN_STREAM); - if (chan == NULL) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA client\n"); - exit(EXIT_FAILURE); - } - - /* set specific parameters (depends on channel type). */ - osmo_abis_ipa_cli_set_oml_addr(chan, "127.0.0.1"); - osmo_abis_ipa_cli_set_rsl_addr(chan, "127.0.0.1"); - - unit = osmo_ipa_unit_alloc(0); - if (unit == NULL) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create IPA unit\n"); - exit(EXIT_FAILURE); - } - osmo_ipa_unit_set_site_id(unit, 1801); - - osmo_abis_ipa_cli_set_unit(chan, unit); - osmo_abis_ipa_cli_set_cb_signalmsg(chan, signal_msg_cb); - - /* open channel. */ - if (osmo_chan_open(chan) < 0) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA client\n"); - exit(EXIT_FAILURE); - } - - LOGP(DEXAMPLE, LOGL_NOTICE, "Entering main loop\n"); - - while(1) { - osmo_select_main(0); - } -} diff --git a/examples/channel/abis_ipa_stream_server.c b/examples/channel/abis_ipa_stream_server.c deleted file mode 100644 index 58a4e15..0000000 --- a/examples/channel/abis_ipa_stream_server.c +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include - -static void *tall_example; - -#define DEXAMPLE 0 - -struct log_info_cat example_cat[] = { - [DEXAMPLE] = { - .name = "DEXAMPLE", - .description = "example", - .color = "\033[1;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -const struct log_info example_log_info = { - .filter_fn = NULL, - .cat = example_cat, - .num_cat = ARRAY_SIZE(example_cat), -}; - -void sighandler(int foo) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "closing test.\n"); - exit(EXIT_SUCCESS); -} - -static void signal_msg_cb(struct msgb *msg, int type) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "received signal message\n"); -} - -static struct osmo_chan *chan; - -int main(void) -{ - tall_example = talloc_named_const(NULL, 1, "example"); - msgb_talloc_ctx_init(tall_example, 0); - osmo_init_logging2(tall_example, &example_log_info); - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - - /* initialize channel infrastructure. */ - osmo_chan_init(tall_example); - - /* create channel. */ - chan = osmo_chan_create(OSMO_CHAN_ABIS_IPA_SRV, OSMO_SUBCHAN_STREAM); - if (chan == NULL) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA server\n"); - exit(EXIT_FAILURE); - } - - /* set specific parameters (depends on channel type). */ - osmo_abis_ipa_srv_set_cb_signalmsg(chan, signal_msg_cb); - osmo_abis_ipa_unit_add(chan, 1801, 0); - - /* open channel. */ - if (osmo_chan_open(chan) < 0) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA server\n"); - exit(EXIT_FAILURE); - } - - LOGP(DEXAMPLE, LOGL_NOTICE, "Entering main loop\n"); - - while(1) { - osmo_select_main(0); - } -} diff --git a/include/osmocom/netif/Makefile.am b/include/osmocom/netif/Makefile.am index 0db78fb..39df08a 100644 --- a/include/osmocom/netif/Makefile.am +++ b/include/osmocom/netif/Makefile.am @@ -1,7 +1,4 @@ -SUBDIRS = channel - osmonetif_HEADERS = amr.h \ - channel.h \ datagram.h \ jibuf.h \ osmux.h \ diff --git a/include/osmocom/netif/channel.h b/include/osmocom/netif/channel.h deleted file mode 100644 index 1abc828..0000000 --- a/include/osmocom/netif/channel.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _CHANNEL_H_ -#define _CHANNEL_H_ - -#include - -/* channel types */ -enum { - OSMO_CHAN_NONE, - OSMO_CHAN_ABIS_IPA_SRV, - OSMO_CHAN_ABIS_IPA_CLI, - OSMO_CHAN_MAX, -}; - -/* channel subtypes */ -enum { - OSMO_SUBCHAN_STREAM, - OSMO_SUBCHAN_MAX, -}; - -struct osmo_chan; -struct msgb; - -struct osmo_chan_type { - struct llist_head head; - - char *name; - int type; - int subtype; - int datasiz; - - int (*create)(struct osmo_chan *chan); - void (*destroy)(struct osmo_chan *chan); - int (*open)(struct osmo_chan *chan); - void (*close)(struct osmo_chan *chan); - int (*enqueue)(struct osmo_chan *chan, struct msgb *msg); -}; - -struct osmo_chan { - void *ctx; - struct osmo_chan_type *ops; - char data[0]; -}; - -void osmo_chan_init(void *ctx); - -struct osmo_chan *osmo_chan_create(int type, int subtype); -void osmo_chan_destroy(struct osmo_chan *c); - -int osmo_chan_open(struct osmo_chan *c); -void osmo_chan_close(struct osmo_chan *c); - -int osmo_chan_enqueue(struct osmo_chan *c, struct msgb *msg); - -#endif /* _CHANNEL_H_ */ diff --git a/include/osmocom/netif/channel/Makefile.am b/include/osmocom/netif/channel/Makefile.am deleted file mode 100644 index dec19b2..0000000 --- a/include/osmocom/netif/channel/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -osmonetif_channel_HEADERS = abis_ipa_server.h abis_ipa_client.h - -osmonetif_channeldir = $(includedir)/osmocom/netif/channel diff --git a/include/osmocom/netif/channel/abis_ipa_client.h b/include/osmocom/netif/channel/abis_ipa_client.h deleted file mode 100644 index cd35852..0000000 --- a/include/osmocom/netif/channel/abis_ipa_client.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _OSMO_ABIS_IPA_CLIENT_H_ -#define _OSMO_ABIS_IPA_CLIENT_H_ - -struct osmo_ipa_unit; - -void osmo_abis_ipa_cli_set_oml_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_cli_set_oml_port(struct osmo_chan *c, uint16_t port); -void osmo_abis_ipa_cli_set_rsl_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_cli_set_rsl_port(struct osmo_chan *c, uint16_t port); -void osmo_abis_ipa_cli_set_unit(struct osmo_chan *c, struct osmo_ipa_unit *unit); -void osmo_abis_ipa_cli_set_cb_signalmsg(struct osmo_chan *c, void (*signal_msg)(struct msgb *msg, int type)); - -#endif /* _OSMO_ABIS_IPA_CLIENT_H_ */ diff --git a/include/osmocom/netif/channel/abis_ipa_server.h b/include/osmocom/netif/channel/abis_ipa_server.h deleted file mode 100644 index 6518f99..0000000 --- a/include/osmocom/netif/channel/abis_ipa_server.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _ABIS_IPA_SERVER_H_ -#define _ABIS_IPA_SERVER_H_ - -void osmo_abis_ipa_srv_set_oml_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_srv_set_oml_port(struct osmo_chan *c, uint16_t port); - -void osmo_abis_ipa_srv_set_rsl_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_srv_set_rsl_port(struct osmo_chan *c, uint16_t port); - -void osmo_abis_ipa_srv_set_cb_signalmsg(struct osmo_chan *c, void (*signal_msg)(struct msgb *msg, int type)); - -int osmo_abis_ipa_unit_add(struct osmo_chan *c, uint16_t site_id, uint16_t bts_id); - -#endif diff --git a/src/Makefile.am b/src/Makefile.am index 9dc5e46..9951ca4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,15 +6,12 @@ AM_CFLAGS= -fPIC -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(COVERAGE_CFLAGS) $(LIBSCTP_CFLAGS) AM_LDFLAGS = $(COVERAGE_LDFLAGS) -SUBDIRS = channel - lib_LTLIBRARIES = libosmonetif.la -libosmonetif_la_LIBADD = channel/abis/libosmonetif-abis.la $(LIBOSMOCORE_LIBS) $(LIBSCTP_LIBS) +libosmonetif_la_LIBADD = $(LIBOSMOCORE_LIBS) $(LIBSCTP_LIBS) libosmonetif_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined libosmonetif_la_SOURCES = amr.c \ - channel.c \ datagram.c \ ipa.c \ ipa_unit.c \ diff --git a/src/channel.c b/src/channel.c deleted file mode 100644 index 2784f22..0000000 --- a/src/channel.c +++ /dev/null @@ -1,116 +0,0 @@ -/* (C) 2011-2012 by Pablo Neira Ayuso - * 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 . - * - */ -#include -#include -#include -#include - -#include - -static LLIST_HEAD(channel_list); - -extern struct osmo_chan_type chan_abis_ipa_srv; -extern struct osmo_chan_type chan_abis_ipa_cli; - -static void *osmo_chan_ctx; - -void osmo_chan_init(void *ctx) -{ - osmo_chan_ctx = ctx; - llist_add(&chan_abis_ipa_srv.head, &channel_list); - llist_add(&chan_abis_ipa_cli.head, &channel_list); - /* add your new channel type here */ -} - -struct osmo_chan *osmo_chan_create(int type_id, int subtype_id) -{ - struct osmo_chan_type *cur = NULL; - int found = 0, found_partial = 0; - struct osmo_chan *c; - - if (type_id > OSMO_CHAN_MAX) { - LOGP(DLINP, LOGL_ERROR, "unsupported channel type " - "number `%u'\n", type_id); - return NULL; - } - if (subtype_id > OSMO_SUBCHAN_MAX) { - LOGP(DLINP, LOGL_ERROR, "unsupported subchannel type " - "number `%u'\n", type_id); - return NULL; - } - - llist_for_each_entry(cur, &channel_list, head) { - if (type_id == cur->type && subtype_id == cur->subtype) { - found = 1; - break; - } else if (type_id == cur->type) { - found_partial = 1; - break; - } - } - - if (!found) { - LOGP(DLINP, LOGL_ERROR, "unsupported channel type `%s'\n", - cur->name); - return NULL; - } - if (found_partial) { - LOGP(DLINP, LOGL_ERROR, "Sorry, channel type `%s' does not " - "support subtype `%u'\n", cur->name, subtype_id); - return NULL; - } - - c = talloc_zero_size(osmo_chan_ctx, - sizeof(struct osmo_chan) + cur->datasiz); - if (c == NULL) { - LOGP(DLINP, LOGL_ERROR, "cannot allocate channel data\n"); - return NULL; - } - - c->ops = cur; - - if (c->ops->create(c) < 0) { - LOGP(DLINP, LOGL_ERROR, "cannot create channel\n"); - talloc_free(c); - return NULL; - } - return c; -} - -void osmo_chan_destroy(struct osmo_chan *c) -{ - c->ops->destroy(c); - talloc_free(c); -} - -int osmo_chan_open(struct osmo_chan *c) -{ - return c->ops->open(c); -} - -void osmo_chan_close(struct osmo_chan *c) -{ - c->ops->close(c); -} - -int osmo_chan_enqueue(struct osmo_chan *c, struct msgb *msg) -{ - return c->ops->enqueue(c, msg); -} diff --git a/src/channel/Makefile.am b/src/channel/Makefile.am deleted file mode 100644 index 1c4b7a9..0000000 --- a/src/channel/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = abis diff --git a/src/channel/abis/Makefile.am b/src/channel/abis/Makefile.am deleted file mode 100644 index 615abff..0000000 --- a/src/channel/abis/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir) -AM_CFLAGS= -fPIC -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(COVERAGE_CFLAGS) -AM_LDFLAGS = $(COVERAGE_LDFLAGS) - -noinst_LTLIBRARIES = libosmonetif-abis.la - -libosmonetif_abis_la_SOURCES = ipa_stream_server.c \ - ipa_stream_client.c -libosmonetif_abis_la_LIBADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) diff --git a/src/channel/abis/ipa_stream_client.c b/src/channel/abis/ipa_stream_client.c deleted file mode 100644 index c610730..0000000 --- a/src/channel/abis/ipa_stream_client.c +++ /dev/null @@ -1,309 +0,0 @@ -/* (C) 2012 by Pablo Neira Ayuso - * 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 . - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -#define CHAN_SIGN_OML 0 -#define CHAN_SIGN_RSL 1 - -/* default IPA cli ports. */ -#define IPA_TCP_PORT_OML 3002 -#define IPA_TCP_PORT_RSL 3003 - -static void *abis_ipa_cli_tall; - -struct chan_abis_ipa_cli { - struct osmo_ipa_unit *unit; - - struct osmo_stream_cli *oml; - struct osmo_stream_cli *rsl; - - void (*signal_msg)(struct msgb *msg, int type); -}; - -static int oml_read_cb(struct osmo_stream_cli *conn); -static int rsl_read_cb(struct osmo_stream_cli *conn); - -static int chan_abis_ipa_cli_create(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - - c->unit = osmo_ipa_unit_alloc(0); - if (c->unit == NULL) - goto err; - - c->oml = osmo_stream_cli_create(abis_ipa_cli_tall); - if (c->oml == NULL) - goto err_oml; - - /* default address and port for OML. */ - osmo_stream_cli_set_addr(c->oml, "0.0.0.0"); - osmo_stream_cli_set_port(c->oml, IPA_TCP_PORT_OML); - osmo_stream_cli_set_read_cb(c->oml, oml_read_cb); - osmo_stream_cli_set_data(c->oml, chan); - - c->rsl = osmo_stream_cli_create(abis_ipa_cli_tall); - if (c->rsl == NULL) - goto err_rsl; - - /* default address and port for RSL. */ - osmo_stream_cli_set_addr(c->rsl, "0.0.0.0"); - osmo_stream_cli_set_port(c->rsl, IPA_TCP_PORT_RSL); - osmo_stream_cli_set_read_cb(c->rsl, rsl_read_cb); - osmo_stream_cli_set_data(c->rsl, chan); - - return 0; -err_rsl: - osmo_stream_cli_destroy(c->oml); -err_oml: - osmo_ipa_unit_free(c->unit); -err: - return -1; -} - -static void chan_abis_ipa_cli_destroy(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - - osmo_ipa_unit_free(c->unit); - talloc_free(c->rsl); - talloc_free(c->oml); -} - -static int chan_abis_ipa_cli_open(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - struct osmo_fd *ofd; - int ret, on = 1; - - if (osmo_stream_cli_open(c->oml) < 0) - goto err; - - ofd = osmo_stream_cli_get_ofd(c->oml); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_oml; - - if (osmo_stream_cli_open(c->rsl) < 0) - goto err_oml; - - ofd = osmo_stream_cli_get_ofd(c->rsl); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_rsl; - - return 0; - -err_rsl: - osmo_stream_cli_close(c->rsl); -err_oml: - osmo_stream_cli_close(c->oml); -err: - return -1; -} - -static void chan_abis_ipa_cli_close(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - - osmo_stream_cli_close(c->oml); - osmo_stream_cli_close(c->rsl); -} - -static int chan_abis_ipa_cli_enqueue(struct osmo_chan *c, struct msgb *msg) -{ - osmo_stream_cli_send(msg->dst, msg); - return 0; -} - -void osmo_abis_ipa_cli_set_oml_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_addr(s->oml, addr); -} - -void osmo_abis_ipa_cli_set_oml_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_port(s->oml, port); -} - -void osmo_abis_ipa_cli_set_rsl_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_addr(s->rsl, addr); -} - -void osmo_abis_ipa_cli_set_rsl_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_port(s->rsl, port); -} - -void osmo_abis_ipa_cli_set_unit(struct osmo_chan *c, struct osmo_ipa_unit *unit) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_ipa_unit_free(s->unit); - s->unit = unit; -} - -void osmo_abis_ipa_cli_set_cb_signalmsg(struct osmo_chan *c, - void (*signal_msg)(struct msgb *msg, int type)) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - s->signal_msg = signal_msg; -} - -static int -abis_ipa_cli_rcvmsg(struct osmo_chan *c, struct osmo_stream_cli *conn, - struct msgb *msg, int type) -{ - uint8_t msg_type = *(msg->l2h); - struct osmo_fd *ofd = osmo_stream_cli_get_ofd(conn); - struct chan_abis_ipa_cli *chan = (struct chan_abis_ipa_cli *)&c->data; - int ret; - - /* Handle IPA PING, PONG and ID_ACK messages. */ - if (osmo_ipa_rcvmsg_base(msg, ofd, 0)) /* XXX: 0 indicates client */ - return 0; - - if (msg_type == IPAC_MSGT_ID_GET) { - struct msgb *rmsg; - uint8_t *data = msgb_l2(msg); - int len = msgb_l2len(msg); - - LOGP(DLINP, LOGL_NOTICE, "received ID get\n"); - - rmsg = ipa_cli_id_resp(chan->unit, data + 1, len - 1); - osmo_stream_cli_send(conn, rmsg); - - /* send ID_ACK. */ - rmsg = ipa_cli_id_ack(); - osmo_stream_cli_send(conn, rmsg); - ret = 0; - } else { - LOGP(DLINP, LOGL_ERROR, "Unknown IPA message type\n"); - ret = -EINVAL; - } - return ret; -} - -static int read_cb(struct osmo_stream_cli *conn, int type) -{ - int ret; - struct msgb *msg; - struct osmo_chan *chan = osmo_stream_cli_get_data(conn); - struct chan_abis_ipa_cli *s; - struct ipa_head *hh; - - LOGP(DLINP, LOGL_DEBUG, "received message from stream\n"); - - msg = osmo_ipa_msg_alloc(0); - if (msg == NULL) { - LOGP(DLINP, LOGL_ERROR, "cannot allocate message\n"); - return 0; - } - ret = osmo_stream_cli_recv(conn, msg); - if (ret < 0) { - LOGP(DLINP, LOGL_ERROR, "cannot receive message\n"); - msgb_free(msg); - /* not the dummy connection, release it. */ - return 0; - } else if (ret == 0) { - /* link has vanished, dead socket. */ - LOGP(DLINP, LOGL_ERROR, "closed connection\n"); - msgb_free(msg); - return 0; - } - - if (osmo_ipa_process_msg(msg) < 0) { - LOGP(DLINP, LOGL_ERROR, "Bad IPA message\n"); - msgb_free(msg); - return -EIO; - } - - hh = (struct ipa_head *) msg->data; - if (hh->proto == IPAC_PROTO_IPACCESS) { - abis_ipa_cli_rcvmsg(chan, conn, msg, type); - msgb_free(msg); - return -EIO; - } - - chan = osmo_stream_cli_get_data(conn); - if (chan == NULL) { - LOGP(DLINP, LOGL_ERROR, "no matching signalling link\n"); - msgb_free(msg); - return -EIO; - } - if (hh->proto != IPAC_PROTO_OML && hh->proto != IPAC_PROTO_RSL) { - LOGP(DLINP, LOGL_ERROR, "wrong protocol\n"); - return -EIO; - } - msg->dst = chan; - - s = (struct chan_abis_ipa_cli *)chan->data; - s->signal_msg(msg, type); - - return 0; -} - -static int oml_read_cb(struct osmo_stream_cli *conn) -{ - return read_cb(conn, CHAN_SIGN_OML); -} - -static int rsl_read_cb(struct osmo_stream_cli *conn) -{ - return read_cb(conn, CHAN_SIGN_RSL); -} - -struct osmo_chan_type chan_abis_ipa_cli = { - .type = OSMO_CHAN_ABIS_IPA_CLI, - .subtype = OSMO_SUBCHAN_STREAM, - .name = "A-bis IPA client", - .datasiz = sizeof(struct chan_abis_ipa_cli), - .create = chan_abis_ipa_cli_create, - .destroy = chan_abis_ipa_cli_destroy, - .open = chan_abis_ipa_cli_open, - .close = chan_abis_ipa_cli_close, - .enqueue = chan_abis_ipa_cli_enqueue, -}; diff --git a/src/channel/abis/ipa_stream_server.c b/src/channel/abis/ipa_stream_server.c deleted file mode 100644 index 1cd889c..0000000 --- a/src/channel/abis/ipa_stream_server.c +++ /dev/null @@ -1,421 +0,0 @@ -/* (C) 2012 by Pablo Neira Ayuso - * 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 . - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -#define CHAN_SIGN_OML 0 -#define CHAN_SIGN_RSL 1 - -/* default IPA srv ports. */ -#define IPA_TCP_PORT_OML 3002 -#define IPA_TCP_PORT_RSL 3003 - -static void *abis_ipa_srv_tall; - -static int oml_accept_cb(struct osmo_stream_srv_link *srv, int fd); -static int rsl_accept_cb(struct osmo_stream_srv_link *srv, int fd); - -struct chan_abis_ipa_srv { - struct osmo_chan *chan; - struct osmo_stream_srv_link *oml; - struct osmo_stream_srv_link *rsl; - - struct llist_head bts_list; - - void (*signal_msg)(struct msgb *msg, int type); -}; - -struct chan_abis_ipa_srv_conn { - struct chan_abis_ipa_srv *master; - - struct osmo_stream_srv *oml; - struct osmo_stream_srv *rsl; -}; - -static int chan_abis_ipa_srv_create(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - - c->oml = osmo_stream_srv_link_create(abis_ipa_srv_tall); - if (c->oml == NULL) - goto err_oml; - - /* default address and port for OML. */ - osmo_stream_srv_link_set_addr(c->oml, "0.0.0.0"); - osmo_stream_srv_link_set_port(c->oml, IPA_TCP_PORT_OML); - osmo_stream_srv_link_set_accept_cb(c->oml, oml_accept_cb); - osmo_stream_srv_link_set_data(c->oml, c); - - c->rsl = osmo_stream_srv_link_create(abis_ipa_srv_tall); - if (c->rsl == NULL) - goto err_rsl; - - /* default address and port for RSL. */ - osmo_stream_srv_link_set_addr(c->rsl, "0.0.0.0"); - osmo_stream_srv_link_set_port(c->rsl, IPA_TCP_PORT_RSL); - osmo_stream_srv_link_set_accept_cb(c->rsl, rsl_accept_cb); - osmo_stream_srv_link_set_data(c->rsl, c); - - INIT_LLIST_HEAD(&c->bts_list); - - return 0; -err_rsl: - osmo_stream_srv_link_destroy(c->oml); -err_oml: - return -1; -} - -static void chan_abis_ipa_srv_destroy(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - - osmo_stream_srv_link_destroy(c->rsl); - osmo_stream_srv_link_destroy(c->oml); -} - -static int chan_abis_ipa_srv_open(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - struct osmo_fd *ofd; - int ret, on = 1; - - if (osmo_stream_srv_link_open(c->oml) < 0) - goto err; - - ofd = osmo_stream_srv_link_get_ofd(c->oml); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_oml; - - if (osmo_stream_srv_link_open(c->rsl) < 0) - goto err_oml; - - ofd = osmo_stream_srv_link_get_ofd(c->rsl); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_rsl; - - return 0; - -err_rsl: - osmo_stream_srv_link_close(c->rsl); -err_oml: - osmo_stream_srv_link_close(c->oml); -err: - return -1; -} - -static void chan_abis_ipa_srv_close(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - - osmo_stream_srv_link_close(c->oml); - osmo_stream_srv_link_close(c->rsl); -} - -static int chan_abis_ipa_srv_enqueue(struct osmo_chan *c, struct msgb *msg) -{ - osmo_stream_srv_send(msg->dst, msg); - return 0; -} - -void osmo_abis_ipa_srv_set_oml_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_addr(s->oml, addr); -} - -void osmo_abis_ipa_srv_set_oml_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_port(s->oml, port); -} - -void osmo_abis_ipa_srv_set_rsl_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_addr(s->rsl, addr); -} - -void osmo_abis_ipa_srv_set_rsl_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_port(s->rsl, port); -} - -void osmo_abis_ipa_srv_set_cb_signalmsg(struct osmo_chan *c, - void (*signal_msg)(struct msgb *msg, int type)) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - s->signal_msg = signal_msg; -} - -int -osmo_abis_ipa_unit_add(struct osmo_chan *c, uint16_t site_id, uint16_t bts_id) -{ - struct osmo_ipa_unit *unit; - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - struct chan_abis_ipa_srv_conn *inst; - - unit = osmo_ipa_unit_alloc(sizeof(struct chan_abis_ipa_srv_conn)); - if (unit == NULL) - return -1; - - osmo_ipa_unit_set_site_id(unit, site_id); - osmo_ipa_unit_set_bts_id(unit, bts_id); - osmo_ipa_unit_add(&s->bts_list, unit); - - inst = osmo_ipa_unit_get_data(unit); - inst->master = s; - - return 0; -} - -static int oml_read_cb(struct osmo_stream_srv *conn); - -static int oml_accept_cb(struct osmo_stream_srv_link *srv, int fd) -{ - struct osmo_stream_srv *conn; - struct osmo_fd *ofd; - - conn = osmo_stream_srv_create(abis_ipa_srv_tall, - srv, fd, oml_read_cb, NULL, NULL); - if (conn == NULL) { - LOGP(DLINP, LOGL_ERROR, "error while creating connection\n"); - return -1; - } - - ofd = osmo_stream_srv_get_ofd(conn); - - /* XXX: better use chan_abis_ipa_srv_enqueue. */ - ipaccess_send_id_req(ofd->fd); - - return 0; -} - -static int rsl_read_cb(struct osmo_stream_srv *conn); - -static int rsl_accept_cb(struct osmo_stream_srv_link *srv, int fd) -{ - struct osmo_stream_srv *conn; - struct osmo_fd *ofd; - - conn = osmo_stream_srv_create(abis_ipa_srv_tall, srv, fd, - rsl_read_cb, NULL, NULL); - if (conn == NULL) { - LOGP(DLINP, LOGL_ERROR, "error while creating connection\n"); - return -1; - } - - ofd = osmo_stream_srv_get_ofd(conn); - - /* XXX: better use chan_abis_ipa_srv_enqueue. */ - ipaccess_send_id_req(ofd->fd); - - return 0; -} - -static void abis_ipa_put(struct osmo_ipa_unit *unit) -{ - struct chan_abis_ipa_srv_conn *inst = osmo_ipa_unit_get_data(unit); - - osmo_stream_srv_destroy(inst->oml); - osmo_stream_srv_destroy(inst->rsl); - inst->oml = NULL; - inst->rsl = NULL; -} - -static int -abis_ipa_srv_rcvmsg(struct osmo_stream_srv *conn, struct msgb *msg, int type) -{ - uint8_t msg_type = *(msg->l2h); - struct osmo_fd *ofd = osmo_stream_srv_get_ofd(conn); - struct osmo_stream_srv_link *link = osmo_stream_srv_get_master(conn); - struct chan_abis_ipa_srv *s = osmo_stream_srv_link_get_data(link); - struct chan_abis_ipa_srv_conn *inst; - int ret; - - /* Handle IPA PING, PONG and ID_ACK messages */ - if (osmo_ipa_rcvmsg_base(msg, ofd, 1)) /* XXX: 1 indicates server */ - return 0; - - if (msg_type == IPAC_MSGT_ID_RESP) { - struct osmo_ipa_unit *unit; - struct ipaccess_unit unit_data; - - if (osmo_ipa_parse_msg_id_resp(msg, &unit_data) < 0) { - LOGP(DLINP, LOGL_ERROR, "bad ID RESP message\n"); - return -EIO; - } - - unit = osmo_ipa_unit_find(&s->bts_list, unit_data.site_id, - unit_data.bts_id); - - if (unit == NULL) { - LOGP(DLINP, LOGL_ERROR, "Unable to find BTS " - "configuration for %u/%u/%u, disconnecting\n", - unit_data.site_id, unit_data.bts_id, - unit_data.trx_id); - return 0; - } - DEBUGP(DLINP, "Identified BTS %u/%u/%u\n", - unit_data.site_id, unit_data.bts_id, - unit_data.trx_id); - - inst = osmo_ipa_unit_get_data(unit); - - if (type == CHAN_SIGN_OML) { - if (inst->oml) { - /* link already exists, kill it. */ - osmo_stream_srv_destroy(inst->oml); - return 0; - } - inst->oml = conn; - } else if (type == CHAN_SIGN_RSL) { - if (!inst->oml) { - /* no OML link? Restart from scratch. */ - abis_ipa_put(unit); - return 0; - } - if (inst->rsl) { - /* RSL link already exists, kill it. */ - osmo_stream_srv_destroy(inst->rsl); - return 0; - } - inst->rsl = conn; - } - osmo_stream_srv_set_data(conn, unit); - ret = 0; - } else { - LOGP(DLINP, LOGL_ERROR, "Unknown IPA message type\n"); - ret = -EINVAL; - } - return ret; -} - -static int read_cb(struct osmo_stream_srv *conn, int type) -{ - int ret; - struct msgb *msg; - struct osmo_ipa_unit *unit = osmo_stream_srv_get_data(conn); - struct chan_abis_ipa_srv_conn *inst; - struct ipa_head *hh; - - LOGP(DLINP, LOGL_DEBUG, "received message from stream\n"); - - msg = osmo_ipa_msg_alloc(0); - if (msg == NULL) { - LOGP(DLINP, LOGL_ERROR, "cannot allocate message\n"); - return 0; - } - ret = osmo_stream_srv_recv(conn, msg); - if (ret < 0) { - LOGP(DLINP, LOGL_ERROR, "cannot receive message\n"); - msgb_free(msg); - if (unit != NULL) - abis_ipa_put(unit); - else - osmo_stream_srv_destroy(conn); - - return 0; - } else if (ret == 0) { - /* link has vanished, dead socket. */ - LOGP(DLINP, LOGL_ERROR, "closed connection\n"); - msgb_free(msg); - if (unit != NULL) - abis_ipa_put(unit); - else - osmo_stream_srv_destroy(conn); - - return 0; - } - ret = osmo_ipa_process_msg(msg); - if (ret < 0) { - LOGP(DLINP, LOGL_ERROR, "invalid IPA message\n"); - msgb_free(msg); - } - - hh = (struct ipa_head *) msg->data; - if (hh->proto == IPAC_PROTO_IPACCESS) { - abis_ipa_srv_rcvmsg(conn, msg, type); - msgb_free(msg); - return -EIO; - } - - if (unit == NULL) { - LOGP(DLINP, LOGL_ERROR, "no IPA unit associated to this " - "connection\n"); - return -EIO; - } - inst = osmo_ipa_unit_get_data(unit); - - if (hh->proto != IPAC_PROTO_OML && hh->proto != IPAC_PROTO_RSL) { - LOGP(DLINP, LOGL_ERROR, "wrong protocol\n"); - return -EIO; - } - msg->dst = conn; - - inst->master->signal_msg(msg, type); - - return 0; -} - -static int oml_read_cb(struct osmo_stream_srv *conn) -{ - return read_cb(conn, CHAN_SIGN_OML); -} - -static int rsl_read_cb(struct osmo_stream_srv *conn) -{ - return read_cb(conn, CHAN_SIGN_RSL); -} - -struct osmo_chan_type chan_abis_ipa_srv = { - .type = OSMO_CHAN_ABIS_IPA_SRV, - .subtype = OSMO_SUBCHAN_STREAM, - .name = "A-bis IPA server", - .datasiz = sizeof(struct chan_abis_ipa_srv), - .create = chan_abis_ipa_srv_create, - .destroy = chan_abis_ipa_srv_destroy, - .open = chan_abis_ipa_srv_open, - .close = chan_abis_ipa_srv_close, - .enqueue = chan_abis_ipa_srv_enqueue, -}; diff --git a/src/ipa.c b/src/ipa.c index c924382..3888457 100644 --- a/src/ipa.c +++ b/src/ipa.c @@ -31,7 +31,6 @@ #include -#include #include #include -- To view, visit https://gerrit.osmocom.org/9783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I97c378750acb1637ee032fa88a968edf68d8979f Gerrit-Change-Number: 9783 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 13:54:17 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 13:54:17 +0000 Subject: Change in gapk[master]: app_osmo_gapk.c: use recommended osmo_init_logging2() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9784 Change subject: app_osmo_gapk.c: use recommended osmo_init_logging2() ...................................................................... app_osmo_gapk.c: use recommended osmo_init_logging2() The osmo_init_logging() was deprecated. Change-Id: Ic30a924571feb273274587998e87c86b688c3544 --- M src/app_osmo_gapk.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/84/9784/1 diff --git a/src/app_osmo_gapk.c b/src/app_osmo_gapk.c index 729ea25..a4b93ef 100644 --- a/src/app_osmo_gapk.c +++ b/src/app_osmo_gapk.c @@ -716,7 +716,7 @@ osmo_gapk_set_talloc_ctx(app_root_ctx); /* Init Osmocom logging framework */ - osmo_init_logging(&gapk_log_info); + osmo_init_logging2(app_root_ctx, &gapk_log_info); /* and GAPK logging wrapper */ osmo_gapk_log_init(DAPP); -- To view, visit https://gerrit.osmocom.org/9784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic30a924571feb273274587998e87c86b688c3544 Gerrit-Change-Number: 9784 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 13:54:17 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 13:54:17 +0000 Subject: Change in gapk[master]: procqueue.c: rely on item type instead of its position Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9785 Change subject: procqueue.c: rely on item type instead of its position ...................................................................... procqueue.c: rely on item type instead of its position In the osmo_gapk_pq_prepare() we do allocate an item's buffer conditionally, only when its type is not sink, because an output buffer is not required for sink. Let's use a bit more elegant way to check, whether item is sink. Change-Id: I770a1d02273d9d8301a9e4ec72426fb8f4060277 --- M src/procqueue.c 1 file changed, 15 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/85/9785/1 diff --git a/src/procqueue.c b/src/procqueue.c index 78dee4d..28ad1cf 100644 --- a/src/procqueue.c +++ b/src/procqueue.c @@ -159,25 +159,27 @@ osmo_gapk_pq_prepare(struct osmo_gapk_pq *pq) { struct osmo_gapk_pq_item *item; + unsigned int buf_size; /* Iterate over all items in queue */ llist_for_each_entry(item, &pq->items, list) { /* The sink item doesn't require an output buffer */ - if (item->list.next != &pq->items) { - unsigned int buf_size = item->len_out; + if (item->type == OSMO_GAPK_ITEM_TYPE_SINK) + continue; - /** - * Use maximum known buffer size - * for variable-length codec output - */ - if (!buf_size) - buf_size = VAR_BUF_SIZE; + buf_size = item->len_out; - /* Allocate memory for an output buffer */ - item->buf = talloc_named_const(item, buf_size, ".buffer"); - if (!item->buf) - return -ENOMEM; - } + /** + * Use maximum known buffer size + * for variable-length codec output + */ + if (!buf_size) + buf_size = VAR_BUF_SIZE; + + /* Allocate memory for an output buffer */ + item->buf = talloc_named_const(item, buf_size, ".buffer"); + if (!item->buf) + return -ENOMEM; } return 0; -- To view, visit https://gerrit.osmocom.org/9785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I770a1d02273d9d8301a9e4ec72426fb8f4060277 Gerrit-Change-Number: 9785 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 13:54:17 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 13:54:17 +0000 Subject: Change in gapk[master]: Implement ECU (Error Concealment Unit) block for FR Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9786 Change subject: Implement ECU (Error Concealment Unit) block for FR ...................................................................... Implement ECU (Error Concealment Unit) block for FR In I06a21f60db01bfe1c2b838f93866fad1d53fdcd1 the Error Concealment Unit API for FR codec was introduced. This change implements a corresponding block. Note: at the moment, only Full Rate is supported by the ECU API. Change-Id: Ia929ee04f6be3d842c6ef7bc40cce0fdab16e90a --- M include/osmocom/gapk/codecs.h M include/osmocom/gapk/procqueue.h M src/Makefile.am M src/codec_fr.c A src/ecu_fr.c A src/pq_ecu.c M tests/Makefile.am A tests/ecu/ecu_fr_test.c A tests/ecu/ecu_fr_test.ok M tests/testsuite.at 10 files changed, 440 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/86/9786/1 diff --git a/include/osmocom/gapk/codecs.h b/include/osmocom/gapk/codecs.h index 253fb14..33f6593 100644 --- a/include/osmocom/gapk/codecs.h +++ b/include/osmocom/gapk/codecs.h @@ -73,6 +73,9 @@ /* Encoding / decoding function pointers */ osmo_gapk_codec_conv_cb_t codec_encode; osmo_gapk_codec_conv_cb_t codec_decode; + + /* ECU (Error Concealment Unit) function */ + osmo_gapk_codec_conv_cb_t ecu_proc; }; const struct osmo_gapk_codec_desc * diff --git a/include/osmocom/gapk/procqueue.h b/include/osmocom/gapk/procqueue.h index 6b929d7..ac9253b 100644 --- a/include/osmocom/gapk/procqueue.h +++ b/include/osmocom/gapk/procqueue.h @@ -103,3 +103,6 @@ /* Codec */ struct osmo_gapk_codec_desc; int osmo_gapk_pq_queue_codec(struct osmo_gapk_pq *pq, const struct osmo_gapk_codec_desc *codec, int encode); + +/* ECU (Error Concealment Unit) */ +int osmo_gapk_pq_queue_ecu(struct osmo_gapk_pq *pq, const struct osmo_gapk_codec_desc *codec); diff --git a/src/Makefile.am b/src/Makefile.am index 50ffda4..8fdeff7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -43,6 +43,12 @@ pq_file.c \ pq_alsa.c \ pq_rtp.c \ + pq_ecu.c \ + $(NULL) + +# ECU (Error Concealment Unit) implementation +libosmogapk_la_SOURCES += \ + ecu_fr.c \ $(NULL) # Formats implementation diff --git a/src/codec_fr.c b/src/codec_fr.c index eddbee6..75efeb7 100644 --- a/src/codec_fr.c +++ b/src/codec_fr.c @@ -83,6 +83,8 @@ #endif /* HAVE_LIBGSM */ +/* Forward declaration of ECU (Error Concealment Unit) function */ +int ecu_proc_fr(void *state, uint8_t *out, const uint8_t *in, unsigned int in_len); const struct osmo_gapk_codec_desc codec_fr_desc = { .type = CODEC_FR, @@ -97,4 +99,5 @@ .codec_encode = codec_fr_encode, .codec_decode = codec_fr_decode, #endif + .ecu_proc = ecu_proc_fr, }; diff --git a/src/ecu_fr.c b/src/ecu_fr.c new file mode 100644 index 0000000..db55fec --- /dev/null +++ b/src/ecu_fr.c @@ -0,0 +1,78 @@ +/* ECU (Error Concealment Unit) for FR */ + +/* + * This file is part of GAPK (GSM Audio Pocket Knife). + * + * (C) 2018 by Vadim Yanitskiy + * + * All Rights Reserved + * + * GAPK 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 3 of the License, or + * (at your option) any later version. + * + * GAPK 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 GAPK. If not, see . + */ + +#include +#include +#include +#include + +#include +#include + +int +ecu_proc_fr(void *_state, uint8_t *out, const uint8_t *in, unsigned int in_len) +{ + struct osmo_ecu_fr_state *state = (struct osmo_ecu_fr_state *) _state; + bool backup = false; + bool bfi = true; + int i, rc; + + assert(in_len == FR_CANON_LEN); + + /* Check if a frame is BFI */ + for (i = 1; i < in_len; i++) { + if (in[i] != 0x00) { + bfi = false; + break; + } + } + + /* We have got a good frame, nothing to do */ + if (!bfi) { + osmo_ecu_fr_reset(state, (uint8_t *) in); + memcpy(out, in, in_len); + return in_len; + } + + /* Check if ECU state contains a backup frame */ + for (i = 0; i < in_len; i++) { + if (state->frame_backup[i] != 0x00) { + backup = true; + break; + } + } + + /* There is no back-up frame */ + if (!backup) { + /* Copy BFI 'as-is' */ + memcpy(out, in, in_len); + return in_len; + } + + /* Attempt to perform error concealment */ + rc = osmo_ecu_fr_conceal(state, out); + if (rc) + return rc; + + return in_len; +} diff --git a/src/pq_ecu.c b/src/pq_ecu.c new file mode 100644 index 0000000..fad853c --- /dev/null +++ b/src/pq_ecu.c @@ -0,0 +1,88 @@ +/* ECU (Error Concealment Unit) */ + +/* + * This file is part of GAPK (GSM Audio Pocket Knife). + * + * (C) 2018 by Vadim Yanitskiy + * + * All Rights Reserved + * + * GAPK 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 3 of the License, or + * (at your option) any later version. + * + * GAPK 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 GAPK. If not, see . + */ + +#include +#include +#include + +#include +#include +#include +#include + +#include + +static void +clean_up(void *state) +{ + talloc_free(state); +} + +/*! Add a ECU block to the processing queue + * (To be placed between frame source and decoder) + * \param pq Processing Queue to which the block is added + * \returns 0 on success; negative on error */ +int +osmo_gapk_pq_queue_ecu(struct osmo_gapk_pq *pq, + const struct osmo_gapk_codec_desc *codec) +{ + const struct osmo_gapk_format_desc *fmt; + struct osmo_gapk_pq_item *item; + + /* Make sure that a codec has corresponding ECU implementation */ + if (codec->ecu_proc == NULL) { + LOGPGAPK(LOGL_ERROR, "Codec '%s' has no ECU implementation\n", codec->name); + return -ENOTSUP; + } + + /* Allocate a new item to the processing queue */ + item = osmo_gapk_pq_add_item(pq); + if (!item) + return -ENOMEM; + + /* Allocate the ECU state */ + item->state = talloc_zero(item, struct osmo_ecu_fr_state); + if (!item->state) { + talloc_free(item); + return -ENOMEM; + } + + /* I/O signature shall match the input signature of a codec */ + fmt = osmo_gapk_fmt_get_from_type(codec->codec_dec_format_type); + item->len_in = fmt->frame_len; + item->len_out = fmt->frame_len; + + item->proc = codec->ecu_proc; + item->exit = &clean_up; + item->wait = NULL; + + /* Meta information */ + item->type = OSMO_GAPK_ITEM_TYPE_PROC; + item->cat_name = "ecu"; + item->sub_name = codec->name; + + LOGPGAPK(LOGL_DEBUG, "PQ '%s': Adding ECU for codec '%s', " + "format '%s'\n", pq->name, codec->name, fmt->name); + + return 0; +} diff --git a/tests/Makefile.am b/tests/Makefile.am index f838fa4..4f7c4be 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -14,6 +14,7 @@ procqueue/pq_test \ io/pq_file_test \ io/pq_rtp_test \ + ecu/ecu_fr_test \ $(NULL) procqueue_pq_test_SOURCES = procqueue/pq_test.c @@ -40,6 +41,14 @@ $(TALLOC_LIBS) \ $(NULL) +ecu_ecu_fr_test_SOURCES = ecu/ecu_fr_test.c +ecu_ecu_fr_test_LDADD = \ + $(top_builddir)/src/libosmogapk.la \ + $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCODEC_LIBS) \ + $(TALLOC_LIBS) \ + $(NULL) + # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac :;{ \ @@ -66,6 +75,7 @@ EXTRA_DIST += \ procqueue/pq_test.ok \ + ecu/ecu_fr_test.ok \ io/pq_file_test.ok \ io/pq_rtp_test.ok \ io/io_sample.txt \ diff --git a/tests/ecu/ecu_fr_test.c b/tests/ecu/ecu_fr_test.c new file mode 100644 index 0000000..372df25 --- /dev/null +++ b/tests/ecu/ecu_fr_test.c @@ -0,0 +1,147 @@ +/* + * This file is part of GAPK (GSM Audio Pocket Knife). + * + * (C) 2018 by Vadim Yanitskiy + * + * GAPK 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 3 of the License, or + * (at your option) any later version. + * + * GAPK 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 GAPK. If not, see . + */ + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +/* A good FR frame */ +static const char *sample_frame_hex = \ + "d9ec9be212901f802335598c501f805bad3d4ba01f809b69df5a501f809cd1b4da"; + +static void talloc_ctx_walk_cb(const void *chunk, int depth, + int max_depth, int is_ref, void *data) +{ + const char *chunk_name = talloc_get_name(chunk); + int spaces_cnt; + + /* Hierarchical spacing */ + for (spaces_cnt = 0; spaces_cnt < depth; spaces_cnt++) + printf(" "); + + /* Chunk info */ + printf("chunk %s: depth=%d\n", chunk_name, depth); +} + +void pq_execute(struct osmo_gapk_pq *pq, uint8_t *frame, size_t len) +{ + struct osmo_gapk_pq_item *pq_item; + unsigned int len_prev = len; + uint8_t *buf_prev = frame; + int rv; + + /* Iterate over all items in the chain */ + llist_for_each_entry(pq_item, &pq->items, list) { + printf("Block '%s/%s/%s' in (len=%d): %s\n", pq->name, + pq_item->cat_name, pq_item->sub_name, len_prev, + osmo_hexdump(buf_prev, len_prev)); + + /* Call item's processing handler */ + rv = pq_item->proc(pq_item->state, pq_item->buf, buf_prev, len_prev); + assert(rv > 0); + + printf("Block '%s/%s/%s' out (len=%d): %s\n", pq->name, + pq_item->cat_name, pq_item->sub_name, rv, + osmo_hexdump(pq_item->buf, rv)); + + buf_prev = pq_item->buf; + len_prev = rv; + } +} + +void test_fr_concealment(struct osmo_gapk_pq *pq) +{ + uint8_t fb[GSM_FR_BYTES]; + int i; + + /* Init frame buffer with BFI */ + memset(fb, 0x00, sizeof(fb)); + fb[0] = 0xd0; + + /* Process a BFI frame */ + printf("[i] Process a BFI frame: %s\n", osmo_hexdump(fb, sizeof(fb))); + pq_execute(pq, fb, sizeof(fb)); + printf("\n"); + + /* Parse frame from string to hex */ + osmo_hexparse(sample_frame_hex, fb, GSM_FR_BYTES); + + /* Process a good frame (reset ECU) */ + printf("[i] Process a good frame: %s\n", osmo_hexdump(fb, sizeof(fb))); + pq_execute(pq, fb, sizeof(fb)); + printf("\n"); + + /* Now pretend that we do not receive any good frames anymore */ + memset(fb, 0x00, sizeof(fb)); + fb[0] = 0xd0; + + printf("[i] Pretend that we do not receive any good frames anymore\n"); + for (i = 0; i < 20; i++) + pq_execute(pq, fb, sizeof(fb)); + + printf("\n"); +} + +int main(int argc, char **argv) +{ + const struct osmo_gapk_codec_desc *codec; + struct osmo_gapk_pq *pq; + int rc; + + /* Enable tracking the use of NULL memory contexts */ + talloc_enable_null_tracking(); + + /* Allocate a single processing chain */ + pq = osmo_gapk_pq_create("pq_ecu_test"); + assert(pq != NULL); + + /* Obtain FR codec description */ + codec = osmo_gapk_codec_get_from_type(CODEC_FR); + assert(codec->ecu_proc); + + /* Put a FR ECU */ + rc = osmo_gapk_pq_queue_ecu(pq, codec); + assert(rc == 0); + + /* Put a FR decoder */ + rc = osmo_gapk_pq_queue_codec(pq, codec, 0); + assert(rc == 0); + + /* Prepare the chain */ + rc = osmo_gapk_pq_prepare(pq); + assert(rc == 0); + + test_fr_concealment(pq); + + /* Release memory */ + osmo_gapk_pq_destroy(pq); + + /* Make sure we have no memleaks */ + talloc_report_depth_cb(NULL, 0, 10, &talloc_ctx_walk_cb, NULL); + + return 0; +} diff --git a/tests/ecu/ecu_fr_test.ok b/tests/ecu/ecu_fr_test.ok new file mode 100644 index 0000000..26c6466 --- /dev/null +++ b/tests/ecu/ecu_fr_test.ok @@ -0,0 +1,95 @@ +[i] Process a BFI frame: d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): c8 ff c8 ff c0 ff 88 ff 88 ff 80 ff 48 ff 48 ff 40 ff 08 ff 00 ff f8 fe c0 fe 98 fe 70 fe 20 fe 20 fe f8 fd b0 fd c0 fd 98 fd 58 fd 60 fd 48 fd 08 fd 18 fd 00 fd a8 fc e8 fc 88 fc 80 fc 80 fc 60 fc 28 fc 60 fc 18 fc f8 fb 28 fc e8 fb 08 fc 90 fb 48 fc 40 fb 10 fc 70 fb e0 fb 20 fb 20 fc e8 fa d8 fb 38 fb 98 fb f8 fa e0 fb c0 fa 90 fb 18 fb 50 fb d8 fa a0 fb a0 fa 50 fb f8 fa 18 fb b8 fa 60 fb 80 fa 18 fb d8 fa d8 fa 98 fa 28 fb 60 fa e8 fa b0 fa a8 fa 70 fa f8 fa 30 fa f8 fa 00 fa 28 fb d0 f9 00 fb f8 f9 e0 fa b8 f9 20 fb 88 f9 e0 fa c8 f9 b0 fa 88 f9 f8 fa 58 f9 b0 fa a8 f9 70 fa 70 f9 b8 fa 40 f9 68 fa 98 f9 28 fa 58 f9 70 fa 28 f9 20 fa 88 f9 e0 f9 48 f9 28 fa 10 f9 e0 f9 70 f9 a0 f9 30 f9 f0 f9 00 f9 e8 f9 d0 f8 18 fa a0 f8 f0 f9 c8 f8 d0 f9 88 f8 10 fa 58 f8 d0 f9 a0 f8 98 f9 68 f8 e0 f9 38 f8 98 f9 90 f8 58 f9 50 f8 98 f9 20 f8 50 f9 80 f8 08 f9 48 f8 50 f9 18 f8 08 f9 70 f8 c0 f8 38 f8 10 f9 08 f8 c0 f8 60 f8 88 f8 28 f8 d0 f8 f0 f7 c0 f8 + +[i] Process a good frame: d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/ecu/fr' in (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 10 f8 e8 1a 20 00 00 80 00 80 90 a5 f0 9c 60 bd 58 d2 90 d4 00 80 28 8a f8 24 00 80 f8 a2 60 21 00 80 e8 8d 08 0b 60 92 30 b3 28 ea 28 bd 00 b2 f8 e1 28 46 60 ee c8 d5 e0 0a 40 e0 b0 ea 28 9d 48 d6 f0 06 e8 af 28 f0 a0 fe 38 77 30 30 70 da f8 7f e0 2a 60 e0 90 a7 f0 d3 38 20 20 b1 28 03 70 18 98 c2 00 80 88 a1 08 18 00 80 e0 a9 10 24 00 80 68 99 90 0d 60 8f b0 b2 40 ee 78 be 20 b1 a0 e5 a0 c6 30 bb 38 ec 58 94 c0 b9 88 f7 20 a5 80 d1 98 f3 e0 3e 48 0b 00 da f8 7f 28 3f 88 c9 f8 7f 88 3d 30 e5 48 27 d0 1d a0 14 d8 9c 88 0b 58 27 20 bd 00 80 90 b0 50 08 00 80 e0 ac 10 23 00 80 40 9f c0 0d 78 84 70 af 78 f1 78 fa 38 c8 68 dd f8 7f f8 0d e8 ca f8 68 58 03 f8 e6 88 08 70 0b 88 04 60 d7 b8 11 18 09 b8 96 68 f3 28 0f 78 bd 28 f2 10 06 60 c1 d0 db 30 03 00 86 b8 bd c8 0c 78 cf + +[i] Pretend that we do not receive any good frames anymore +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 f0 a0 10 0f 00 80 20 a0 f8 1e 00 80 c8 83 60 0f b0 c9 e0 b7 48 e2 e8 d8 50 ad e0 de 00 80 f0 a1 20 01 d8 17 20 18 10 e6 08 9d 18 da 58 fa 40 44 28 1b 38 e8 60 35 f8 f7 e8 ed f8 7f 30 41 c0 cd 20 a1 10 de c8 f6 00 ed 78 28 20 f1 30 d7 00 80 90 96 b8 1e 00 80 90 ad e8 1b 00 80 f0 98 28 0a 38 8e e0 b4 78 eb c0 bb 98 b0 c8 e4 98 45 38 ed 30 d8 a8 0a c0 e1 58 ec 20 9d 30 d8 80 07 50 b0 a0 f0 98 fe f8 77 50 2f 50 da f8 7f 58 2a 10 de c8 a6 30 d4 a8 1c d8 af c0 03 a0 15 68 c1 00 80 18 a0 00 17 00 80 00 a9 28 23 00 80 d0 98 b8 0c e8 8e 88 b1 78 ed 58 be 20 b0 20 e5 80 c6 b0 bb 50 ec f0 93 48 bc 48 f8 90 a4 d8 d3 40 f4 98 3e d0 0b 60 da f8 7f 38 3e b8 c9 f8 7f c8 3c 00 e3 60 26 d8 1d 10 11 98 9b f0 0b 78 24 00 bc 00 80 58 af 70 07 00 80 78 ac 50 22 00 80 48 9f 20 0d 08 84 58 af 18 f1 40 fa 08 c8 48 dd f8 7f e0 0d f0 ca d8 68 80 03 08 e7 70 08 98 0b 90 04 50 d7 b8 11 18 09 b8 96 48 f3 28 0f 88 bd 10 f2 d0 05 50 c1 d8 db d8 02 e0 85 c8 bd 80 0c 60 cf +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1d 80 23 35 59 8c 50 1d 80 5b ad 3d 4b a0 1d 80 9b 69 df 5a 50 1d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1d 80 23 35 59 8c 50 1d 80 5b ad 3d 4b a0 1d 80 9b 69 df 5a 50 1d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 d0 b5 40 05 00 80 90 9e 08 1e 00 80 40 8f 50 0f 60 bc e0 b8 88 e3 70 dc 60 b1 30 df 28 8e b8 af 80 fb 60 13 48 12 60 ea 38 b4 b8 e7 68 fa b8 30 10 16 f0 ec b0 26 28 f8 a8 f1 f8 7f 40 2f 60 d4 18 b6 60 e6 38 f0 58 ee 08 1f d8 ed 68 de 00 80 f0 ad b8 14 00 80 e8 ab c8 1a 00 80 f0 a3 e8 08 40 8f e8 b9 30 ea b8 c6 78 b5 98 e4 80 36 10 e6 38 dd b0 09 48 e3 e8 ed 28 b5 e8 e0 d0 02 80 c2 08 f5 a8 fc 80 58 e0 23 58 e2 f8 7f a8 1f 80 e5 38 bc d0 de a8 14 20 c3 88 02 a8 0f 80 d0 00 80 c8 b7 e0 10 00 80 c0 a8 b8 22 00 80 98 a9 30 09 08 97 a8 b7 88 ec 20 cd 98 b7 68 e6 50 d7 28 c3 68 ed 40 b0 48 c9 78 f7 88 ba 90 de d0 f4 78 2d a0 09 f8 e1 f8 7f 78 37 38 d4 f8 7f 88 32 c8 e9 60 24 a8 1c 40 0e f8 b4 a8 0e 08 1d a8 cb 00 80 10 c5 d8 04 00 80 20 ac 48 22 00 80 40 b0 10 0a 10 90 10 b7 d0 ef 80 fa 90 ca 18 e1 f8 7f 30 01 a8 d4 08 50 68 fe a8 ea b0 05 f8 07 10 01 38 e0 f8 0d 00 05 f8 af f0 f6 68 0a 68 cd 88 f5 10 04 70 d0 98 e4 28 02 00 a4 08 ce 70 09 50 db +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1b 80 23 35 59 8c 50 1b 80 5b ad 3d 4b a0 1b 80 9b 69 df 5a 50 1b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1b 80 23 35 59 8c 50 1b 80 5b ad 3d 4b a0 1b 80 9b 69 df 5a 50 1b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 c8 cd 98 01 00 80 60 b9 48 14 00 80 98 a4 18 0c 30 be 38 c6 00 eb b8 e0 70 bf d0 e5 b0 b4 90 c2 88 f9 f8 0d 28 09 30 ef 38 cd 08 f0 78 fa 60 1f 18 0f c8 f1 d8 18 58 fa 88 f5 b0 60 10 1f a8 e0 80 cd d0 ee 80 f2 e0 f2 d0 14 98 f1 78 e8 28 87 58 c8 f8 0c 00 80 38 c2 78 11 00 80 f8 ba 50 05 70 aa 40 ca 88 ef 08 d7 38 c7 68 eb b0 24 c8 e9 d8 e6 c8 06 80 ea 48 f2 d8 cd c8 ea 78 00 68 d6 d0 f8 b8 fc 78 3a 08 18 a8 eb 38 55 10 15 f0 ed 68 d2 c0 e9 78 0d 10 d7 90 01 40 0a 20 e0 b0 82 c0 cf 20 0b 00 80 90 bf a0 17 00 80 00 c3 98 05 50 b6 e0 ca 78 f1 20 de f0 cb a0 ed 60 e5 18 d5 78 f2 e8 ca e0 da 68 f9 60 d1 e0 e9 d0 f7 e8 1d a0 06 88 eb f8 7f 00 25 a0 e2 58 74 98 21 00 f1 08 18 08 13 40 09 c8 cd c0 09 20 13 f8 dc 78 91 98 d8 20 03 00 80 08 c5 f8 16 00 80 18 c9 68 06 98 b3 f0 cc 70 f4 50 fc 88 da c0 ea 80 57 98 ff 80 e2 60 35 80 fe 48 f1 a0 03 48 05 50 00 98 ea 60 09 10 03 78 ca f8 f9 d0 06 28 de f8 f8 a8 02 30 e0 a8 ed 68 01 98 c2 a0 de 40 06 78 e7 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 19 80 23 35 59 8c 50 19 80 5b ad 3d 4b a0 19 80 9b 69 df 5a 50 19 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 19 80 23 35 59 8c 50 19 80 5b ad 3d 4b a0 19 80 9b 69 df 5a 50 19 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 68 9b e0 da 88 02 00 80 50 cc 28 0f 00 80 c8 bc 00 09 58 cf 00 d6 88 f0 b8 e8 80 d0 d0 ec 80 c7 c0 d1 50 fb 98 0a 58 05 20 f3 38 da 98 f2 88 fb b8 17 00 0b 28 f5 88 12 58 fc 10 f8 50 48 b0 17 e0 e9 a0 da 10 f3 18 f8 e8 f6 58 0f 00 f7 08 ef 48 a5 08 d7 48 0a 00 80 d8 d1 a8 0d 00 80 28 cc 60 04 08 c0 b0 d7 d8 f3 60 e1 78 d5 a0 f0 a0 1b 58 ef 18 ed 28 05 c0 ef 98 f5 70 da f0 ef 48 00 d0 e0 98 fa 88 fd d0 2b 18 12 c0 f0 e0 3f d0 0f 98 f2 e0 dd 50 ef 58 0a 68 e1 28 01 d8 07 28 e8 00 a2 e8 db 68 08 00 80 b0 cf c8 11 f0 8f 48 d2 40 04 c0 c8 38 d8 28 f5 98 e6 08 d9 40 f2 08 ec c8 df d8 f5 30 d8 f8 e3 00 fb 10 dd 40 ef d0 f9 70 16 e8 04 98 f0 98 60 d0 1b f8 e9 40 57 38 19 d8 f4 10 12 48 0e 28 07 68 da 48 07 88 0e c8 e5 18 ad 88 e2 68 02 00 80 c8 d3 48 11 b0 94 d0 d6 d8 04 b0 c6 b0 d9 58 f7 40 fd e0 e3 10 f0 a0 41 b0 ff e0 e9 08 28 e0 fe f0 f4 b8 02 f8 03 38 00 f0 ef 08 07 50 02 d8 d7 80 fb 20 05 a0 e6 c0 fa 08 02 28 e8 40 f2 10 01 f8 d1 f8 e6 b8 04 98 ed +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 17 80 23 35 59 8c 50 17 80 5b ad 3d 4b a0 17 80 9b 69 df 5a 50 17 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 17 80 23 35 59 8c 50 17 80 5b ad 3d 4b a0 17 80 9b 69 df 5a 50 17 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 90 bb e0 e6 c8 00 60 a4 b0 dc 20 0a d0 9b 48 d2 08 06 10 df 18 e3 80 f5 58 f0 b0 df e8 f2 58 da 48 e1 c0 fc f8 06 90 04 98 f7 98 e6 00 f8 38 fd b0 0f 90 07 e8 f8 70 0c 30 fd c0 fa 58 30 88 0f 50 f0 c0 e6 68 f7 38 f9 70 f9 68 0a d0 f8 38 f4 98 c3 30 e4 78 06 48 a7 18 e1 c0 08 68 a6 80 dd a8 02 30 d5 18 e5 c0 f7 80 eb 98 e3 b8 f5 58 12 e0 f4 68 f3 60 03 38 f5 20 f9 e8 e6 58 f5 38 00 30 eb 68 fc 60 fe 38 1d f8 0b d0 f5 98 2a 80 0a f8 f6 30 e9 e0 f4 b8 06 88 eb c8 00 20 05 10 f0 50 c1 d8 e7 88 05 38 a5 c8 df d0 0b 48 b5 80 e1 d0 02 28 db 70 e5 b8 f8 10 ef f8 e5 c8 f6 b0 f2 88 ea 38 f9 70 e5 68 ed b0 fc b0 e8 f0 f4 e0 fb f8 0e 50 03 c0 f5 68 40 80 12 48 f1 28 3a c8 10 78 f8 f8 0b 80 09 98 04 e0 e6 d8 04 88 09 78 ee b8 c8 48 ec 90 01 f0 a6 80 e2 78 0b 70 b8 88 e4 38 03 c8 d9 78 e6 38 fa 28 fe 40 ed 60 f5 c0 2b c8 ff 48 f1 b0 1a 40 ff a8 f8 d0 01 a0 02 20 00 50 f5 b0 04 88 01 40 e5 f8 fc 68 03 18 ef 80 fc 50 01 18 f0 d8 f6 b8 00 48 e1 50 ef 20 03 b8 f3 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 15 80 23 35 59 8c 50 15 80 5b ad 3d 4b a0 15 80 9b 69 df 5a 50 15 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 15 80 23 35 59 8c 50 15 80 5b ad 3d 4b a0 15 80 9b 69 df 5a 50 15 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): b8 cd 78 ed 48 01 38 bc 28 e6 98 07 78 b5 60 de 80 04 a8 e7 00 eb 48 f8 60 f4 38 e8 60 f6 c0 e3 d8 e8 a0 fd 48 05 a8 02 88 f9 18 ed 48 f9 c0 fd d8 0b 78 05 90 fa 40 09 28 fe 00 fc 28 24 d8 0b e8 f4 48 ed 88 f9 08 fc 70 fb a8 07 80 fb 88 f7 a0 d2 80 eb 20 05 88 bd e8 e8 d0 06 e8 bc 18 e6 30 02 00 e0 d8 eb f0 f9 b8 f0 c0 ea 50 f8 d0 0d b0 f7 88 f6 98 02 e0 f7 d0 fa 38 ed f8 f7 28 00 68 f0 48 fd c0 fe e8 15 08 09 60 f8 f0 1f e8 07 50 f9 e8 ee a8 f7 28 05 b0 f0 90 00 f0 03 10 f4 00 d1 f0 ed 38 04 f0 bb d8 e7 e0 08 f8 c7 28 e9 20 02 60 e4 20 ec 90 fa 48 f3 88 ec 20 f9 08 f6 e8 ef f0 fa 18 ec 00 f2 80 fd 88 ee a0 f7 e8 fc 38 0b 78 02 50 f8 48 30 e8 0d 00 f5 a0 2b a0 0c 70 fa 08 09 28 07 90 03 30 ed a8 03 40 07 e8 f2 88 d6 40 f1 30 01 38 bd e0 e9 a0 08 58 ca 68 eb 68 02 58 e3 d8 ec a8 fb a0 fe f0 f1 08 f8 d0 20 d8 ff f0 f4 00 14 70 ff 78 fa 60 01 f8 01 20 00 f8 f7 80 03 28 01 f0 eb c0 fd 90 02 50 f3 58 fd 00 01 10 f4 20 f9 88 00 f8 e8 80 f3 60 02 d0 f6 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 13 80 23 35 59 8c 50 13 80 5b ad 3d 4b a0 13 80 9b 69 df 5a 50 13 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 13 80 23 35 59 8c 50 13 80 5b ad 3d 4b a0 13 80 9b 69 df 5a 50 13 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): c8 dd 70 f3 60 00 30 d2 58 ee 10 05 e8 cd 28 e9 00 03 88 ef 90 f1 c0 fa 28 f8 d8 ef 70 f9 28 ed 98 f0 60 fe 80 03 40 02 c8 fb 48 f3 00 fc 98 fe d8 07 c0 03 70 fc 30 06 90 fe 60 fd 28 18 c0 07 28 f8 60 f3 b0 fb 98 fc b0 fc 30 05 68 fc 18 fa c0 e1 18 f2 38 03 a0 d3 88 f0 60 04 38 d3 b8 ee 50 01 98 ea 88 f2 e0 fb c0 f5 c8 f1 d8 fa 28 09 70 fa b8 f9 b0 01 a0 fa 98 fc 78 f3 b0 fa 20 00 98 f5 30 fe 28 ff 98 0e 00 06 e8 fa 48 15 40 05 70 fb 98 f4 70 fa 58 03 c0 f5 60 00 90 02 00 f8 a8 e0 f0 f3 c0 02 98 d2 e0 ef e0 05 a0 da c0 f0 60 01 90 ed b8 f2 58 fc 80 f7 f8 f2 68 fb 58 f9 40 f5 98 fc b8 f2 b8 f6 58 fe 58 f4 78 fa f0 fd 78 07 a8 01 e0 fa 30 20 40 09 a0 f8 18 1d 68 08 38 fc 00 06 c0 04 48 02 70 f3 70 02 c0 04 38 f7 58 e4 20 f6 c8 00 78 d3 40 f1 c0 05 38 dc 48 f2 98 01 e0 ec 38 f3 18 fd 10 ff a0 f6 b0 fa e0 15 e8 ff a0 f8 58 0d a8 ff 50 fc e8 00 50 01 18 00 a8 fa 58 02 c8 00 a0 f2 80 fe b8 01 88 f7 40 fe a8 00 10 f8 68 fb 58 00 a8 f0 a8 f7 90 01 e0 f9 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 11 80 23 35 59 8c 50 11 80 5b ad 3d 4b a0 11 80 9b 69 df 5a 50 11 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 11 80 23 35 59 8c 50 11 80 5b ad 3d 4b a0 11 80 9b 69 df 5a 50 11 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): e0 e6 b8 f6 a0 00 18 de 18 f3 c8 03 b8 da 30 ef 40 02 d8 f3 80 f5 20 fc 28 fa 20 f4 30 fb e0 f1 70 f4 d0 fe a8 02 58 01 c8 fc 90 f6 a0 fc e0 fe e8 05 b8 02 48 fd a0 04 10 ff 08 fe 18 12 e8 05 78 fa a8 f6 c0 fc 08 fe b8 fd d0 03 b8 fd c0 fb 50 e9 b8 f5 90 02 c0 de 70 f4 68 03 70 de 08 f3 10 01 00 f0 e8 f5 f8 fc 58 f8 58 f5 20 fc e8 06 d0 fb 40 fb 48 01 e8 fb 68 fd 98 f6 f8 fb 10 00 30 f8 a8 fe 60 ff f0 0a 80 04 30 fc f8 0f f0 03 a8 fc 70 f7 d0 fb 98 02 58 f8 48 00 f8 01 08 fa 80 e8 f8 f6 18 02 f8 dd f0 f3 70 04 f8 e3 90 f4 10 01 28 f2 10 f6 48 fd a8 f9 40 f6 88 fc 00 fb f0 f7 70 fd 08 f6 f8 f8 c0 fe 40 f7 c8 fb 70 fe 98 05 38 01 20 fc 28 18 f0 06 78 fa d0 15 48 06 30 fd 88 04 90 03 c8 01 98 f6 d0 01 a0 03 68 f9 40 eb a0 f8 98 00 98 de f0 f4 50 04 28 e5 b0 f5 38 01 a8 f1 68 f6 d8 fd 50 ff f8 f8 00 fc 68 10 e8 ff 78 fa 00 0a b0 ff 38 fd a8 00 f8 00 10 00 00 fc c0 01 90 00 f8 f5 e0 fe 40 01 a8 f9 a8 fe 80 00 08 fa 90 fc 48 00 78 f4 b8 f9 28 01 68 fb +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 0f 80 23 35 59 8c 50 0f 80 5b ad 3d 4b a0 0f 80 9b 69 df 5a 50 0f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 0f 80 23 35 59 8c 50 0f 80 5b ad 3d 4b a0 0f 80 9b 69 df 5a 50 0f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): e0 ee b0 f9 30 00 18 e9 28 f7 88 02 f0 e6 88 f4 80 01 c0 f7 c0 f8 60 fd 10 fc e8 f7 b8 fc 90 f6 50 f8 30 ff b8 01 20 01 e0 fd a0 f9 00 fe 48 ff e8 03 e0 01 38 fe 18 03 48 ff b0 fe 18 0c e0 03 10 fc a8 f9 d8 fd 50 fe 58 fe 98 02 30 fe 10 fd e0 f0 08 f9 a0 01 d0 e9 48 f8 30 02 98 e9 60 f7 a8 00 50 f5 48 f9 e8 fd e0 fa e8 f8 68 fd 90 04 38 fd d8 fc d8 00 50 fd 48 fe b8 f9 58 fd 10 00 d0 fa 18 ff 98 ff 50 07 00 03 70 fd a0 0a a0 02 c0 fd 48 fa 38 fd a8 01 e0 fa 30 00 40 01 00 fc 58 f0 f8 f9 60 01 50 e9 f0 f7 f0 02 50 ed 60 f8 b0 00 c8 f6 58 f9 28 fe c8 fb 80 f9 b0 fd a8 fc a0 fa 50 fe 58 f9 58 fb 28 ff 28 fa 38 fd f8 fe b8 03 d0 00 70 fd 18 10 98 04 50 fc 88 0e 30 04 20 fe 00 03 60 02 28 01 b8 f9 38 01 60 02 98 fb 28 f2 10 fb 60 00 b8 e9 a0 f8 e0 02 18 ee 20 f9 d0 00 70 f6 98 f9 88 fe 88 ff 48 fb 50 fd f0 0a f0 ff 48 fc a8 06 d0 ff 28 fe 70 00 a8 00 08 00 50 fd 28 01 60 00 48 f9 40 ff d8 00 c0 fb 20 ff 50 00 08 fc b0 fd 28 00 58 f8 d8 fb c0 00 e8 fc +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 0d 80 23 35 59 8c 50 0d 80 5b ad 3d 4b a0 0d 80 9b 69 df 5a 50 0d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 0d 80 23 35 59 8c 50 0d 80 5b ad 3d 4b a0 0d 80 9b 69 df 5a 50 0d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 68 f3 58 fb 48 00 10 ef 88 f9 e0 01 60 ed 98 f7 18 01 e8 f9 c0 fa 10 fe 10 fd 10 fa 98 fd e8 f8 30 fa 68 ff 50 01 a8 00 60 fe 40 fb 48 fe 70 ff f8 02 58 01 a0 fe 50 02 88 ff 00 ff 08 09 f8 02 38 fd 58 fb 60 fe 00 ff e0 fe f0 01 e0 fe e0 fd a8 f4 e0 fa 48 01 60 ef 38 fa b8 01 38 ef 80 f9 88 00 f8 f7 f0 fa 78 fe 28 fc b0 fa 10 fe 70 03 e8 fd a0 fd a0 00 f8 fd b0 fe 50 fb f8 fd 08 00 18 fc 50 ff b0 ff 78 05 40 02 18 fe f8 07 f8 01 50 fe b8 fb e8 fd 48 01 28 fc 20 00 f8 00 00 fd 40 f4 80 fb 08 01 f8 ee f8 f9 38 02 f8 f1 48 fa 80 00 10 f9 00 fb a0 fe d0 fc 18 fb 40 fe 78 fd f0 fb b8 fe 08 fb 78 fc 60 ff a0 fb e0 fd 38 ff c8 02 a0 00 10 fe 10 0c 78 03 40 fd e0 0a 28 03 98 fe 40 02 c8 01 e8 00 48 fb e8 00 d0 01 b8 fc a0 f5 48 fc 48 00 50 ef 78 fa 28 02 90 f2 d8 fa 98 00 d8 f8 30 fb e8 fe a0 ff 78 fc 00 fe 30 08 f8 ff 38 fd 00 05 e0 ff a0 fe 58 00 80 00 08 00 00 fe e0 00 48 00 f8 fa 70 ff a0 00 d0 fc 58 ff 40 00 08 fd 48 fe 20 00 40 fa e0 fc 90 00 b0 fd +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 0b 80 23 35 59 8c 50 0b 80 5b ad 3d 4b a0 0b 80 9b 69 df 5a 50 0b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 0b 80 23 35 59 8c 50 0b 80 5b ad 3d 4b a0 0b 80 9b 69 df 5a 50 0b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 70 f7 d8 fc 18 00 88 f4 90 fb 40 01 78 f3 48 fa b8 00 e0 fb 60 fc a8 fe 08 fe f8 fb 60 fe 48 fb 28 fc 98 ff e0 00 90 00 f0 fe d8 fc 00 ff a8 ff f8 01 f0 00 18 ff 90 01 a0 ff 50 ff 08 06 f0 01 08 fe d8 fc f0 fe 28 ff 30 ff 50 01 18 ff 88 fe 70 f8 80 fc d0 00 e8 f4 20 fc 10 01 c8 f4 b0 fb 50 00 a0 fa a0 fc f8 fe 68 fd 70 fc b8 fe 48 02 98 fe 70 fe 68 00 a8 fe 28 ff d8 fc a8 fe 08 00 60 fd 88 ff c8 ff a8 03 80 01 b8 fe 50 05 50 01 d8 fe 20 fd 98 fe d8 00 70 fd 18 00 a0 00 00 fe 28 f8 f8 fc b0 00 a0 f4 f8 fb 78 01 a8 f6 28 fc 50 00 60 fb a8 fc 18 ff e0 fd b8 fc d8 fe 50 fe 48 fd 20 ff a8 fc b0 fd 90 ff 10 fd 98 fe 78 ff e0 01 68 00 b8 fe 08 08 48 02 28 fe 40 07 18 02 08 ff 80 01 28 01 90 00 d8 fc 98 00 30 01 c8 fd 10 f9 88 fd 30 00 d8 f4 48 fc 70 01 08 f7 88 fc 60 00 38 fb c8 fc 48 ff c8 ff a8 fd a8 fe 78 05 f8 ff 28 fe 58 03 e8 ff 10 ff 38 00 58 00 08 00 a8 fe 98 00 30 00 a0 fc 98 ff 68 00 e0 fd 88 ff 20 00 00 fe d8 fe 18 00 28 fc e8 fd 60 00 78 fe +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 09 80 23 35 59 8c 50 09 80 5b ad 3d 4b a0 09 80 9b 69 df 5a 50 09 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 09 80 23 35 59 8c 50 09 80 5b ad 3d 4b a0 09 80 9b 69 df 5a 50 09 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): b0 f9 a8 fd 28 00 80 f7 c0 fc e8 00 a8 f6 c8 fb 88 00 f0 fc 58 fd 00 ff 88 fe 00 fd c8 fe 70 fc 10 fd b0 ff a0 00 50 00 28 ff 98 fd 28 ff b8 ff 78 01 a8 00 50 ff 20 01 c0 ff 80 ff 80 04 78 01 98 fe a0 fd 30 ff 80 ff 68 ff f0 00 68 ff f0 fe 50 fa 70 fd a0 00 b0 f7 20 fd e0 00 a0 f7 c0 fc 48 00 00 fc 78 fd 40 ff 18 fe 50 fd 08 ff b8 01 f0 fe d0 fe 50 00 f8 fe 58 ff a8 fd 00 ff 08 00 08 fe a8 ff d8 ff c0 02 20 01 08 ff 00 04 f8 00 28 ff e0 fd f0 fe a0 00 18 fe 10 00 78 00 80 fe 20 fa b8 fd 88 00 80 f7 f8 fc 18 01 00 f9 20 fd 40 00 88 fc 80 fd 50 ff 68 fe 90 fd 20 ff b8 fe f8 fd 58 ff 80 fd 38 fe b0 ff d0 fd f0 fe 98 ff 68 01 50 00 08 ff 08 06 b8 01 98 fe 70 05 90 01 48 ff 18 01 e0 00 70 00 a8 fd 70 00 e0 00 58 fe d0 fa 20 fe 20 00 a0 f7 38 fd 10 01 48 f9 68 fd 48 00 68 fc 98 fd 78 ff d0 ff 38 fe 00 ff 18 04 f8 ff a0 fe 80 02 f0 ff 48 ff 28 00 40 00 00 00 f8 fe 70 00 28 00 78 fd b0 ff 50 00 68 fe a8 ff 20 00 80 fe 20 ff 10 00 20 fd 70 fe 50 00 d8 fe +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 07 80 23 35 59 8c 50 07 80 5b ad 3d 4b a0 07 80 9b 69 df 5a 50 07 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 07 80 23 35 59 8c 50 07 80 5b ad 3d 4b a0 07 80 9b 69 df 5a 50 07 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): b8 fb 68 fe 08 00 48 fa c8 fd a0 00 c0 f9 20 fd 60 00 f0 fd 30 fe 58 ff 00 ff f8 fd 28 ff a0 fd 10 fe c8 ff 68 00 48 00 78 ff 68 fe 78 ff d0 ff f8 00 70 00 88 ff c8 00 d0 ff a8 ff 00 03 f8 00 00 ff 68 fe 78 ff 90 ff 98 ff a0 00 88 ff 40 ff 30 fc 40 fe 68 00 70 fa 10 fe 88 00 60 fa d0 fd 28 00 50 fd 48 fe 78 ff b0 fe 30 fe 50 ff 20 01 48 ff 30 ff 30 00 50 ff 90 ff 70 fe 58 ff 00 00 b0 fe c8 ff e0 ff d0 01 b8 00 58 ff a0 02 a8 00 68 ff 90 fe 48 ff 68 00 b8 fe 08 00 50 00 00 ff 10 fc 78 fe 58 00 50 fa f8 fd b8 00 50 fb 18 fe 28 00 b0 fd 58 fe 88 ff f0 fe 60 fe 68 ff 28 ff a8 fe 90 ff 58 fe d8 fe c8 ff 88 fe 50 ff c0 ff e8 00 38 00 58 ff 00 04 28 01 10 ff a0 03 08 01 80 ff c0 00 90 00 40 00 68 fe 48 00 98 00 e8 fe 88 fc c0 fe 18 00 70 fa 28 fe b0 00 88 fb 48 fe 30 00 98 fd 68 fe a0 ff e0 ff d0 fe 50 ff b8 02 f8 ff 10 ff a8 01 f8 ff 88 ff 18 00 28 00 00 00 50 ff 48 00 18 00 50 fe d0 ff 38 00 f0 fe c8 ff 18 00 00 ff 68 ff 08 00 10 fe f0 fe 30 00 38 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 05 80 23 35 59 8c 50 05 80 5b ad 3d 4b a0 05 80 9b 69 df 5a 50 05 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 05 80 23 35 59 8c 50 05 80 5b ad 3d 4b a0 05 80 9b 69 df 5a 50 05 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): d8 fc d0 fe 10 00 c0 fb 60 fe 78 00 58 fb e0 fd 48 00 78 fe b0 fe 80 ff 40 ff 80 fe 60 ff 38 fe 88 fe d8 ff 50 00 28 00 90 ff c8 fe 90 ff d8 ff b8 00 50 00 a8 ff 90 00 e0 ff c0 ff 40 02 b8 00 48 ff d0 fe 98 ff c0 ff b0 ff 78 00 b0 ff 70 ff 28 fd b0 fe 50 00 d0 fb 88 fe 68 00 c8 fb 58 fe 18 00 f8 fd b8 fe 98 ff 08 ff a8 fe 80 ff e0 00 78 ff 68 ff 28 00 80 ff b0 ff d0 fe 78 ff 00 00 00 ff d0 ff f0 ff 60 01 88 00 80 ff 00 02 78 00 90 ff e8 fe 70 ff 50 00 08 ff 08 00 38 00 38 ff 10 fd e0 fe 40 00 b8 fb 78 fe 90 00 78 fc 90 fe 20 00 40 fe b8 fe a8 ff 30 ff c8 fe 90 ff 60 ff 00 ff a8 ff c0 fe 20 ff d8 ff e8 fe 78 ff c8 ff b0 00 28 00 80 ff 08 03 e0 00 50 ff b8 02 c8 00 a0 ff 90 00 70 00 38 00 d0 fe 38 00 70 00 30 ff 68 fd 18 ff 10 00 d0 fb a0 fe 88 00 a0 fc b0 fe 28 00 30 fe c8 fe b8 ff e8 ff 20 ff 80 ff 08 02 00 00 50 ff 40 01 f0 ff a8 ff 18 00 20 00 00 00 80 ff 38 00 10 00 c0 fe d8 ff 28 00 30 ff d0 ff 10 00 40 ff 90 ff 08 00 88 fe 30 ff 20 00 68 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 03 80 23 35 59 8c 50 03 80 5b ad 3d 4b a0 03 80 9b 69 df 5a 50 03 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 03 80 23 35 59 8c 50 03 80 5b ad 3d 4b a0 03 80 9b 69 df 5a 50 03 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): d8 fd 30 ff 08 00 20 fd e0 fe 48 00 d8 fc 90 fe 30 00 f8 fe 18 ff b0 ff 80 ff 00 ff 98 ff d0 fe 08 ff e8 ff 38 00 20 00 b8 ff 30 ff b8 ff e8 ff 78 00 30 00 c8 ff 60 00 e0 ff d8 ff 80 01 78 00 80 ff 38 ff b8 ff c8 ff c8 ff 50 00 c0 ff a0 ff 18 fe 20 ff 30 00 38 fd 08 ff 40 00 30 fd e8 fe 18 00 a8 fe 20 ff b8 ff 58 ff 18 ff a8 ff 90 00 a8 ff 98 ff 18 00 a8 ff c8 ff 38 ff a8 ff 08 00 58 ff e0 ff f0 ff e8 00 60 00 a8 ff 50 01 50 00 b0 ff 48 ff a0 ff 30 00 58 ff 00 00 28 00 78 ff 08 fe 40 ff 28 00 28 fd f8 fe 60 00 a8 fd 08 ff 18 00 d8 fe 28 ff c0 ff 78 ff 30 ff b0 ff 90 ff 50 ff c8 ff 28 ff 68 ff e8 ff 48 ff a8 ff e0 ff 78 00 18 00 b0 ff 00 02 90 00 88 ff d0 01 88 00 c0 ff 60 00 50 00 20 00 30 ff 28 00 48 00 78 ff 48 fe 60 ff 10 00 38 fd 18 ff 60 00 c0 fd 20 ff 18 00 c8 fe 30 ff d0 ff e8 ff 68 ff a8 ff 58 01 00 00 88 ff d0 00 f8 ff c0 ff 08 00 08 00 00 00 a8 ff 20 00 08 00 28 ff e0 ff 18 00 78 ff e0 ff 00 00 80 ff b8 ff 00 00 08 ff 78 ff 18 00 a0 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 01 80 23 35 59 8c 50 01 80 5b ad 3d 4b a0 01 80 9b 69 df 5a 50 01 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 01 80 23 35 59 8c 50 01 80 5b ad 3d 4b a0 01 80 9b 69 df 5a 50 01 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): d8 fe 90 ff f8 ff 80 fe 68 ff 28 00 68 fe 40 ff 18 00 78 ff 80 ff d0 ff c0 ff 78 ff c8 ff 68 ff 88 ff f0 ff 18 00 20 00 e0 ff 90 ff e8 ff f0 ff 38 00 20 00 e0 ff 30 00 f0 ff e8 ff c0 00 38 00 b0 ff 90 ff d8 ff d0 ff e0 ff 28 00 d0 ff c8 ff 08 ff 88 ff 10 00 98 fe 80 ff 20 00 98 fe 70 ff 08 00 50 ff 90 ff d8 ff a8 ff 88 ff d0 ff 48 00 d0 ff c8 ff 08 00 d0 ff e0 ff 98 ff d8 ff 00 00 a8 ff f0 ff 00 00 78 00 30 00 d8 ff a8 00 28 00 d8 ff a8 ff d0 ff 18 00 b0 ff 00 00 10 00 c0 ff 00 ff 98 ff 10 00 90 fe 80 ff 28 00 d8 fe 88 ff 08 00 68 ff 98 ff e0 ff b8 ff 98 ff d8 ff c0 ff a8 ff e0 ff 90 ff b0 ff f0 ff a0 ff d0 ff f0 ff 38 00 00 00 d0 ff 00 01 40 00 c0 ff e8 00 40 00 e0 ff 30 00 20 00 10 00 a0 ff 10 00 20 00 b8 ff 20 ff b0 ff 00 00 98 fe 88 ff 28 00 e0 fe 90 ff 08 00 68 ff 98 ff e8 ff f8 ff b0 ff d0 ff b0 00 00 00 c8 ff 68 00 f8 ff e0 ff 08 00 08 00 f8 ff d0 ff 08 00 00 00 90 ff f0 ff 08 00 b8 ff f0 ff 00 00 c0 ff d8 ff 00 00 80 ff b8 ff 10 00 d0 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): 80 ff 80 ff 98 ff 30 ff 30 ff 68 ff 18 ff 10 ff 28 ff f8 fe f8 fe 00 ff e0 fe a8 fe 80 fe 48 fe 30 fe 20 fe d0 fd d8 fd c8 fd 70 fd 80 fd 78 fd 28 fd 30 fd 28 fd b0 fc f0 fc 98 fc 78 fc 88 fc 58 fc 28 fc 40 fc 28 fc d8 fb 20 fc d8 fb f0 fb 78 fb 28 fc 28 fb e0 fb 60 fb a8 fb 10 fb e8 fb d0 fa a0 fb 18 fb 68 fb d0 fa b8 fb 98 fa 70 fb e8 fa 30 fb a8 fa 78 fb 78 fa 28 fb d0 fa e8 fa 90 fa 30 fb 68 fa e0 fa b8 fa a0 fa 80 fa e0 fa 50 fa 98 fa a0 fa 60 fa 60 fa a8 fa 30 fa a8 fa f8 f9 e0 fa c8 f9 c0 fa e8 f9 a8 fa a8 f9 f0 fa 78 f9 a8 fa c0 f9 78 fa 80 f9 b8 fa 50 f9 70 fa a8 f9 30 fa 68 f9 78 fa 38 f9 30 fa 98 f9 f0 f9 58 f9 38 fa 28 f9 f0 f9 88 f9 b0 f9 48 f9 00 fa 18 f9 b8 f9 70 f9 78 f9 30 f9 c8 f9 f8 f8 b8 f9 c8 f8 e8 f9 a0 f8 c0 f9 c0 f8 a0 f9 88 f8 e0 f9 58 f8 98 f9 a0 f8 68 f9 60 f8 a8 f9 30 f8 58 f9 90 f8 18 f9 50 f8 60 f9 20 f8 10 f9 80 f8 c8 f8 40 f8 10 f9 10 f8 c8 f8 68 f8 88 f8 28 f8 d0 f8 f8 f7 88 f8 50 f8 50 f8 10 f8 98 f8 d8 f7 98 f8 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): a8 f7 c8 f8 78 f7 a8 f8 98 f7 88 f8 58 f7 c8 f8 30 f7 88 f8 78 f7 50 f8 38 f7 90 f8 10 f7 48 f8 68 f7 00 f8 30 f7 48 f8 00 f7 f8 f7 58 f7 c0 f7 18 f7 08 f8 e8 f6 c0 f7 38 f7 80 f7 00 f7 c8 f7 c8 f6 80 f7 20 f7 48 f7 e0 f6 98 f7 b0 f6 88 f7 80 f6 b8 f7 50 f6 98 f7 70 f6 78 f7 38 f6 b8 f7 08 f6 78 f7 50 f6 40 f7 10 f6 88 f7 e8 f5 38 f7 38 f6 00 f7 00 f6 40 f7 d0 f5 f8 f6 30 f6 b0 f6 f0 f5 f8 f6 c0 f5 b0 f6 20 f6 68 f6 e0 f5 b0 f6 b0 f5 68 f6 08 f6 28 f6 d0 f5 70 f6 a0 f5 68 f6 70 f5 98 f6 40 f5 70 f6 60 f5 50 f6 28 f5 90 f6 f8 f4 48 f6 40 f5 18 f6 00 f5 58 f6 d8 f4 10 f6 30 f5 d0 f5 f8 f4 10 f6 c8 f4 c8 f5 28 f5 80 f5 f0 f4 c0 f5 c0 f4 78 f5 18 f5 38 f5 e0 f4 80 f5 b0 f4 38 f5 00 f5 f8 f4 c0 f4 48 f5 88 f4 38 f5 60 f4 70 f5 30 f4 48 f5 50 f4 28 f5 18 f4 68 f5 e8 f3 28 f5 30 f4 f8 f4 f0 f3 38 f5 c8 f3 f0 f4 18 f4 b0 f4 e0 f3 f8 f4 b0 f3 a8 f4 10 f4 68 f4 d8 f3 b0 f4 a8 f3 60 f4 00 f4 20 f4 c0 f3 70 f4 90 f3 28 f4 e8 f3 e8 f3 a8 f3 38 f4 70 f3 30 f4 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): 40 f3 60 f4 10 f3 38 f4 30 f3 18 f4 f0 f2 58 f4 c0 f2 18 f4 08 f3 e0 f3 c8 f2 28 f4 a0 f2 d8 f3 f8 f2 a0 f3 b8 f2 e8 f3 88 f2 98 f3 e0 f2 58 f3 a8 f2 a0 f3 70 f2 58 f3 d0 f2 10 f3 90 f2 58 f3 58 f2 10 f3 b0 f2 d0 f2 78 f2 18 f3 40 f2 10 f3 08 f2 40 f3 d8 f1 18 f3 00 f2 f8 f2 b8 f1 38 f3 90 f1 f8 f2 d8 f1 c0 f2 98 f1 08 f3 68 f1 b8 f2 c0 f1 78 f2 80 f1 c0 f2 50 f1 78 f2 a8 f1 30 f2 70 f1 78 f2 38 f1 30 f2 90 f1 e8 f1 58 f1 38 f2 28 f1 e8 f1 80 f1 a8 f1 48 f1 f8 f1 10 f1 f0 f1 e0 f0 28 f2 a8 f0 00 f2 d0 f0 e0 f1 90 f0 20 f2 60 f0 e0 f1 a8 f0 a8 f1 70 f0 e8 f1 40 f0 98 f1 98 f0 58 f1 60 f0 a0 f1 30 f0 50 f1 88 f0 10 f1 48 f0 58 f1 18 f0 10 f1 78 f0 c8 f0 38 f0 18 f1 08 f0 c8 f0 60 f0 88 f0 28 f0 d8 f0 f0 ef d0 f0 c0 ef 00 f1 90 ef d8 f0 b8 ef b8 f0 78 ef f8 f0 48 ef b8 f0 90 ef 88 f0 58 ef c8 f0 28 ef 80 f0 80 ef 48 f0 48 ef 88 f0 18 ef 40 f0 70 ef f8 ef 38 ef 40 f0 08 ef f8 ef 60 ef b0 ef 28 ef f8 ef f8 ee b0 ef 50 ef 70 ef 18 ef c0 ef e8 ee b0 ef +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): b8 ee e0 ef 88 ee b8 ef a8 ee 98 ef 70 ee d8 ef 40 ee 90 ef 88 ee 60 ef 48 ee a0 ef 20 ee 50 ef 78 ee 10 ef 38 ee 58 ef 10 ee 08 ef 68 ee c0 ee 30 ee 08 ef 00 ee c0 ee 60 ee 80 ee 28 ee c8 ee f0 ed 78 ee 48 ee 40 ee 08 ee 88 ee d8 ed 80 ee a8 ed b0 ee 78 ed 90 ee a0 ed 70 ee 60 ed b0 ee 30 ed 70 ee 80 ed 38 ee 48 ed 78 ee 18 ed 28 ee 70 ed e8 ed 30 ed 38 ee 00 ed f0 ed 58 ed b0 ed 10 ed f8 ed e0 ec b0 ed 38 ed 78 ed f8 ec c8 ed c8 ec 78 ed 20 ed 40 ed e0 ec 88 ed b0 ec 78 ed 88 ec a8 ed 58 ec 80 ed 78 ec 60 ed 40 ec a0 ed 10 ec 58 ed 58 ec 20 ed 20 ec 68 ed f8 eb 18 ed 50 ec d8 ec 10 ec 20 ed d8 eb d0 ec 30 ec 88 ec f8 eb d0 ec c0 eb 88 ec 18 ec 48 ec e0 eb 98 ec a8 eb 48 ec 00 ec 08 ec c8 eb 58 ec 90 eb 48 ec 60 eb 78 ec 38 eb 50 ec 60 eb 30 ec 20 eb 70 ec f8 ea 28 ec 48 eb f0 eb 10 eb 30 ec e0 ea e0 eb 38 eb a0 eb 00 eb f0 eb c8 ea a8 eb 28 eb 68 eb e8 ea b8 eb b0 ea 70 eb 08 eb 38 eb c8 ea 88 eb 90 ea 40 eb e8 ea 08 eb a8 ea 58 eb 70 ea 50 eb + +chunk null_context: depth=0 diff --git a/tests/testsuite.at b/tests/testsuite.at index 9855f5b..2b1f4c2 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -23,6 +23,13 @@ $abs_top_builddir/tests/io/pq_rtp_test], [0], [expout]) AT_CLEANUP +AT_SETUP([ecu/ecu_fr_test]) +AT_KEYWORDS([ecu_fr_test]) +cat $abs_srcdir/ecu/ecu_fr_test.ok > expout +AT_CHECK([ + $abs_top_builddir/tests/ecu/ecu_fr_test], [0], [expout]) +AT_CLEANUP + AT_SETUP([conv/enc/amr_efr]) AT_KEYWORDS([amr_efr]) AT_CHECK([test "x$enable_amr_efr_tests" = xyes || exit 77]) -- To view, visit https://gerrit.osmocom.org/9786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia929ee04f6be3d842c6ef7bc40cce0fdab16e90a Gerrit-Change-Number: 9786 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 29 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#169?= In-Reply-To: <192763622.371.1530198606689.JavaMail.jenkins@jenkins.osmocom.org> References: <192763622.371.1530198606689.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2075009825.389.1530285006423.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.81 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y flex -s -p -Cem -Pasn1p_ -olex.yy.c asn1p_l.l if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi %option yylineno entails a performance penalty ONLY on rules that can match newline characters REJECT entails a large performance penalty asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] sed '/^#/ s|lex.yy\.c|asn1p_l.c|' lex.yy.c >asn1p_l.c rm -f lex.yy.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Jun 29 15:51:02 2018 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 29 Jun 2018 15:51:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: do not use constant IP addresses Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/9787 Change subject: MGCP_Test: do not use constant IP addresses ...................................................................... MGCP_Test: do not use constant IP addresses The RTP stream tests TC_two_crcx_and_unsolicited_rtp and TC_two_crcx_and_one_mdcx_rtp_ho, which were introduced recently with Change-Id I556a6efff0e74aab897bd8165200eec36e46629f, use hardcoded ip addresses (127.0.0.1) to establish the RTP streams that are used to test how the MGW reacts on unsolicited packets. This works fine when everything runs on local host but on docker it failes since the containers there have different ip-addresses. - replace hardcoded IP-Addresses with modulepar variable in TC_two_crcx_and_unsolicited_rtp and TC_two_crcx_and_one_mdcx_rtp_ho Change-Id: I5af5186f173c2b8564e8034249c82245acdd09f6 Related: OS#2703 --- M mgw/MGCP_Test.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/87/9787/1 diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 8746c38..d816a71 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -1164,8 +1164,8 @@ f_sleep(0.5); /* Start inserting unsolicited RTP packets */ - f_rtpem_bind(RTPEM[2], "127.0.0.1", unsolicited_port); - f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_bind(RTPEM[2], mp_local_ip, unsolicited_port); + f_rtpem_connect(RTPEM[2], mp_remote_ip, flow[0].mgw.portnr); f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); f_sleep(0.5); @@ -1219,8 +1219,8 @@ * transmitting for a while. We simulate this by injecting * some unsolicited packets on the behalf of the old source, * (old remote port) */ - f_rtpem_bind(RTPEM[2], "127.0.0.1", port_old); - f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_bind(RTPEM[2], mp_local_ip, port_old); + f_rtpem_connect(RTPEM[2], mp_remote_ip, flow[0].mgw.portnr); f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); f_sleep(1.0); f_rtpem_mode(RTPEM[2], RTPEM_MODE_NONE); -- To view, visit https://gerrit.osmocom.org/9787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5af5186f173c2b8564e8034249c82245acdd09f6 Gerrit-Change-Number: 9787 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:39:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:39:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: do not use constant IP addresses In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9787 ) Change subject: MGCP_Test: do not use constant IP addresses ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5af5186f173c2b8564e8034249c82245acdd09f6 Gerrit-Change-Number: 9787 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 17:39:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:39:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:39:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: do not use constant IP addresses In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9787 ) Change subject: MGCP_Test: do not use constant IP addresses ...................................................................... MGCP_Test: do not use constant IP addresses The RTP stream tests TC_two_crcx_and_unsolicited_rtp and TC_two_crcx_and_one_mdcx_rtp_ho, which were introduced recently with Change-Id I556a6efff0e74aab897bd8165200eec36e46629f, use hardcoded ip addresses (127.0.0.1) to establish the RTP streams that are used to test how the MGW reacts on unsolicited packets. This works fine when everything runs on local host but on docker it failes since the containers there have different ip-addresses. - replace hardcoded IP-Addresses with modulepar variable in TC_two_crcx_and_unsolicited_rtp and TC_two_crcx_and_one_mdcx_rtp_ho Change-Id: I5af5186f173c2b8564e8034249c82245acdd09f6 Related: OS#2703 --- M mgw/MGCP_Test.ttcn 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 8746c38..d816a71 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -1164,8 +1164,8 @@ f_sleep(0.5); /* Start inserting unsolicited RTP packets */ - f_rtpem_bind(RTPEM[2], "127.0.0.1", unsolicited_port); - f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_bind(RTPEM[2], mp_local_ip, unsolicited_port); + f_rtpem_connect(RTPEM[2], mp_remote_ip, flow[0].mgw.portnr); f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); f_sleep(0.5); @@ -1219,8 +1219,8 @@ * transmitting for a while. We simulate this by injecting * some unsolicited packets on the behalf of the old source, * (old remote port) */ - f_rtpem_bind(RTPEM[2], "127.0.0.1", port_old); - f_rtpem_connect(RTPEM[2], "127.0.0.1", flow[0].mgw.portnr); + f_rtpem_bind(RTPEM[2], mp_local_ip, port_old); + f_rtpem_connect(RTPEM[2], mp_remote_ip, flow[0].mgw.portnr); f_rtpem_mode(RTPEM[2], RTPEM_MODE_TXONLY); f_sleep(1.0); f_rtpem_mode(RTPEM[2], RTPEM_MODE_NONE); -- To view, visit https://gerrit.osmocom.org/9787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5af5186f173c2b8564e8034249c82245acdd09f6 Gerrit-Change-Number: 9787 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:41:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:41:36 +0000 Subject: Change in gapk[master]: Implement ECU (Error Concealment Unit) block for FR In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9786 ) Change subject: Implement ECU (Error Concealment Unit) block for FR ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia929ee04f6be3d842c6ef7bc40cce0fdab16e90a Gerrit-Change-Number: 9786 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 17:41:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:42:26 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:42:26 +0000 Subject: Change in gapk[master]: procqueue.c: rely on item type instead of its position In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9785 ) Change subject: procqueue.c: rely on item type instead of its position ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I770a1d02273d9d8301a9e4ec72426fb8f4060277 Gerrit-Change-Number: 9785 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 17:42:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:42:40 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:42:40 +0000 Subject: Change in gapk[master]: app_osmo_gapk.c: use recommended osmo_init_logging2() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9784 ) Change subject: app_osmo_gapk.c: use recommended osmo_init_logging2() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic30a924571feb273274587998e87c86b688c3544 Gerrit-Change-Number: 9784 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 17:42:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:43:42 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:43:42 +0000 Subject: Change in openbsc[master]: rtp_proxy: use 3GPP assigned payload type numbers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9782 ) Change subject: rtp_proxy: use 3GPP assigned payload type numbers ...................................................................... Patch Set 1: Code-Review-2 I'm not sure what we gain from this in openbsc.git. There's no 3GPP AoIP in openbsc.git, and the definitions by 3GPP are specific to that iterface. -- To view, visit https://gerrit.osmocom.org/9782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I96784be13254b16744211ed3bd1c9e6ad9a792ba Gerrit-Change-Number: 9782 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 17:43:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:47:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:47:20 +0000 Subject: Change in osmo-bsc[master]: rsl: use 3GPP assigned payload type numbers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9781 ) Change subject: rsl: use 3GPP assigned payload type numbers ...................................................................... Patch Set 1: RSL is part of Abis. the 3GPP payload types apply to the A interface only. So in principle, there is no need for us to use the A interface PT definitions on Abis. osmo-mgw should be able to detect that the same codec is used on two connections, but that the PT doesn't agree, and then patch/rewrite the PTs according to the rtpmap of both connections. The existing dynamic PT definitions for Abis were used this way to align with what ip.access is doing on the Abis/IP interface. However, since it's configurable via RSL CRCX / MDCX, I think it sould be find to change this. However, we should double-check that it works with nanoBTS. Also, irrespective of whether we change it here or not, we should make sure osmo-mgw does the PT translation between different connections. This is important *particularly* also with the MSC-colocated MGW where the PT on the external (SIP) side is determined by a remote peer, and that peer of course has [rightfully] no clue about what 3GPP AoIP specs might say. -- To view, visit https://gerrit.osmocom.org/9781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib6a866b29d863d6875c67748dbe6b6468941ab29 Gerrit-Change-Number: 9781 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 17:47:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:51:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:51:20 +0000 Subject: Change in libosmo-abis[master]: ortp: use 3GPP assigned payload type numbers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9779 ) Change subject: ortp: use 3GPP assigned payload type numbers ...................................................................... Patch Set 1: rather than doing search/replace in three locations (libosmo-abis, libosmo-netif and osmo-bsc.git), we should make sure that we only have one place for #define of those values, and then use it from everywhere. And if we keep multiple, they should not have the same names in the global namespace of preprocessor #defines. For sure the osmo-bsc.git ones should go, and the libosmo-abis ones used in osmo-bsc. For libosmo-netif, the problem is that it doesn't depend on libosmo-abis, and sharing the definitions would introduce a related dependency. -- To view, visit https://gerrit.osmocom.org/9779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If5bfa4aac37ce95741322f6a7481cf612425d77b Gerrit-Change-Number: 9779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 17:51:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:51:29 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:51:29 +0000 Subject: Change in libosmo-netif[master]: rtp: use 3GPP assigned payload type numbers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9780 ) Change subject: rtp: use 3GPP assigned payload type numbers ...................................................................... Patch Set 1: rather than doing search/replace in three locations (libosmo-abis, libosmo-netif and osmo-bsc.git), we should make sure that we only have one place for #define of those values, and then use it from everywhere. And if we keep multiple, they should not have the same names in the global namespace of preprocessor #defines. For sure the osmo-bsc.git ones should go, and the libosmo-abis ones used in osmo-bsc. For libosmo-netif, the problem is that it doesn't depend on libosmo-abis, and sharing the definitions would introduce a related dependency. -- To view, visit https://gerrit.osmocom.org/9780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ife9ea525a615685c4b2369e491db46452b63c6cb Gerrit-Change-Number: 9780 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 17:51:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:51:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:51:36 +0000 Subject: Change in osmo-bsc[master]: rsl: use 3GPP assigned payload type numbers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9781 ) Change subject: rsl: use 3GPP assigned payload type numbers ...................................................................... Patch Set 1: rather than doing search/replace in three locations (libosmo-abis, libosmo-netif and osmo-bsc.git), we should make sure that we only have one place for #define of those values, and then use it from everywhere. And if we keep multiple, they should not have the same names in the global namespace of preprocessor #defines. For sure the osmo-bsc.git ones should go, and the libosmo-abis ones used in osmo-bsc. For libosmo-netif, the problem is that it doesn't depend on libosmo-abis, and sharing the definitions would introduce a related dependency. -- To view, visit https://gerrit.osmocom.org/9781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib6a866b29d863d6875c67748dbe6b6468941ab29 Gerrit-Change-Number: 9781 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 17:51:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:52:57 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:52:57 +0000 Subject: Change in libosmo-netif[master]: remove "channel" layer In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9783 ) Change subject: remove "channel" layer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I97c378750acb1637ee032fa88a968edf68d8979f Gerrit-Change-Number: 9783 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 17:52:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:52:59 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:52:59 +0000 Subject: Change in libosmo-netif[master]: remove "channel" layer In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9783 ) Change subject: remove "channel" layer ...................................................................... remove "channel" layer The "channel" layer on top of IPA client + server was introduced in 2011 but never used in any osmocom program/project so far. Contrary to the several other IPA multiplex related implementations in libosmo*, it did not deal properly with segmented IPA messages, i.e. where a single TCP segment (and hence recv/read call) does not contain a full IPA message. So rather than fixing it up and having yet another IPA related API in our libraries, let's remove it. Change-Id: I97c378750acb1637ee032fa88a968edf68d8979f --- M .gitignore M configure.ac M examples/Makefile.am D examples/channel/Makefile.am D examples/channel/abis_ipa_stream_client.c D examples/channel/abis_ipa_stream_server.c M include/osmocom/netif/Makefile.am D include/osmocom/netif/channel.h D include/osmocom/netif/channel/Makefile.am D include/osmocom/netif/channel/abis_ipa_client.h D include/osmocom/netif/channel/abis_ipa_server.h M src/Makefile.am D src/channel.c D src/channel/Makefile.am D src/channel/abis/Makefile.am D src/channel/abis/ipa_stream_client.c D src/channel/abis/ipa_stream_server.c M src/ipa.c 18 files changed, 1 insertion(+), 1,141 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/.gitignore b/.gitignore index 350e975..31b7a15 100644 --- a/.gitignore +++ b/.gitignore @@ -35,8 +35,6 @@ tests/osmux/osmux_test tests/testsuite.log -examples/channel/abis_ipa_stream_client -examples/channel/abis_ipa_stream_server examples/ipa-stream-client examples/ipa-stream-server examples/lapd-over-datagram-network diff --git a/configure.ac b/configure.ac index a04390c..f9346c0 100644 --- a/configure.ac +++ b/configure.ac @@ -118,12 +118,8 @@ include/Makefile include/osmocom/Makefile include/osmocom/netif/Makefile - include/osmocom/netif/channel/Makefile src/Makefile - src/channel/Makefile - src/channel/abis/Makefile examples/Makefile - examples/channel/Makefile tests/Makefile Doxyfile Makefile) diff --git a/examples/Makefile.am b/examples/Makefile.am index df13808..52f4c83 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -2,8 +2,6 @@ AM_CFLAGS=-Wall -g $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(COVERAGE_CFLAGS) AM_LDFLAGS = $(COVERAGE_LDFLAGS) -SUBDIRS = channel - noinst_PROGRAMS = ipa-stream-client \ ipa-stream-server \ lapd-over-datagram-user \ diff --git a/examples/channel/Makefile.am b/examples/channel/Makefile.am deleted file mode 100644 index c417909..0000000 --- a/examples/channel/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -AM_CPPFLAGS = -I$(top_srcdir)/include -AM_CFLAGS=-Wall -g $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(COVERAGE_CFLAGS) -AM_LDFLAGS = $(COVERAGE_LDFLAGS) - -noinst_PROGRAMS = abis_ipa_stream_server \ - abis_ipa_stream_client - -abis_ipa_stream_server_SOURCES = abis_ipa_stream_server.c -abis_ipa_stream_server_LDADD = $(top_builddir)/src/libosmonetif.la \ - $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) - -abis_ipa_stream_client_SOURCES = abis_ipa_stream_client.c -abis_ipa_stream_client_LDADD = $(top_builddir)/src/libosmonetif.la \ - $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) diff --git a/examples/channel/abis_ipa_stream_client.c b/examples/channel/abis_ipa_stream_client.c deleted file mode 100644 index 8795cc6..0000000 --- a/examples/channel/abis_ipa_stream_client.c +++ /dev/null @@ -1,92 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -static void *tall_example; - -#define DEXAMPLE 0 - -struct log_info_cat example_cat[] = { - [DEXAMPLE] = { - .name = "DEXAMPLE", - .description = "example", - .color = "\033[1;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -const struct log_info example_log_info = { - .filter_fn = NULL, - .cat = example_cat, - .num_cat = ARRAY_SIZE(example_cat), -}; - -void sighandler(int foo) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "closing test.\n"); - exit(EXIT_SUCCESS); -} - -static void signal_msg_cb(struct msgb *msg, int type) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "received signal message\n"); -} - -static struct osmo_chan *chan; - -int main(void) -{ - struct osmo_ipa_unit *unit; - - tall_example = talloc_named_const(NULL, 1, "example"); - msgb_talloc_ctx_init(tall_example, 0); - osmo_init_logging2(tall_example, &example_log_info); - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - - /* initialize channel infrastructure. */ - osmo_chan_init(tall_example); - - /* create channel. */ - chan = osmo_chan_create(OSMO_CHAN_ABIS_IPA_CLI, OSMO_SUBCHAN_STREAM); - if (chan == NULL) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA client\n"); - exit(EXIT_FAILURE); - } - - /* set specific parameters (depends on channel type). */ - osmo_abis_ipa_cli_set_oml_addr(chan, "127.0.0.1"); - osmo_abis_ipa_cli_set_rsl_addr(chan, "127.0.0.1"); - - unit = osmo_ipa_unit_alloc(0); - if (unit == NULL) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create IPA unit\n"); - exit(EXIT_FAILURE); - } - osmo_ipa_unit_set_site_id(unit, 1801); - - osmo_abis_ipa_cli_set_unit(chan, unit); - osmo_abis_ipa_cli_set_cb_signalmsg(chan, signal_msg_cb); - - /* open channel. */ - if (osmo_chan_open(chan) < 0) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA client\n"); - exit(EXIT_FAILURE); - } - - LOGP(DEXAMPLE, LOGL_NOTICE, "Entering main loop\n"); - - while(1) { - osmo_select_main(0); - } -} diff --git a/examples/channel/abis_ipa_stream_server.c b/examples/channel/abis_ipa_stream_server.c deleted file mode 100644 index 58a4e15..0000000 --- a/examples/channel/abis_ipa_stream_server.c +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include - -static void *tall_example; - -#define DEXAMPLE 0 - -struct log_info_cat example_cat[] = { - [DEXAMPLE] = { - .name = "DEXAMPLE", - .description = "example", - .color = "\033[1;35m", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -const struct log_info example_log_info = { - .filter_fn = NULL, - .cat = example_cat, - .num_cat = ARRAY_SIZE(example_cat), -}; - -void sighandler(int foo) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "closing test.\n"); - exit(EXIT_SUCCESS); -} - -static void signal_msg_cb(struct msgb *msg, int type) -{ - LOGP(DEXAMPLE, LOGL_NOTICE, "received signal message\n"); -} - -static struct osmo_chan *chan; - -int main(void) -{ - tall_example = talloc_named_const(NULL, 1, "example"); - msgb_talloc_ctx_init(tall_example, 0); - osmo_init_logging2(tall_example, &example_log_info); - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - - /* initialize channel infrastructure. */ - osmo_chan_init(tall_example); - - /* create channel. */ - chan = osmo_chan_create(OSMO_CHAN_ABIS_IPA_SRV, OSMO_SUBCHAN_STREAM); - if (chan == NULL) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA server\n"); - exit(EXIT_FAILURE); - } - - /* set specific parameters (depends on channel type). */ - osmo_abis_ipa_srv_set_cb_signalmsg(chan, signal_msg_cb); - osmo_abis_ipa_unit_add(chan, 1801, 0); - - /* open channel. */ - if (osmo_chan_open(chan) < 0) { - LOGP(DEXAMPLE, LOGL_ERROR, "Cannot create A-bis IPA server\n"); - exit(EXIT_FAILURE); - } - - LOGP(DEXAMPLE, LOGL_NOTICE, "Entering main loop\n"); - - while(1) { - osmo_select_main(0); - } -} diff --git a/include/osmocom/netif/Makefile.am b/include/osmocom/netif/Makefile.am index 0db78fb..39df08a 100644 --- a/include/osmocom/netif/Makefile.am +++ b/include/osmocom/netif/Makefile.am @@ -1,7 +1,4 @@ -SUBDIRS = channel - osmonetif_HEADERS = amr.h \ - channel.h \ datagram.h \ jibuf.h \ osmux.h \ diff --git a/include/osmocom/netif/channel.h b/include/osmocom/netif/channel.h deleted file mode 100644 index 1abc828..0000000 --- a/include/osmocom/netif/channel.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _CHANNEL_H_ -#define _CHANNEL_H_ - -#include - -/* channel types */ -enum { - OSMO_CHAN_NONE, - OSMO_CHAN_ABIS_IPA_SRV, - OSMO_CHAN_ABIS_IPA_CLI, - OSMO_CHAN_MAX, -}; - -/* channel subtypes */ -enum { - OSMO_SUBCHAN_STREAM, - OSMO_SUBCHAN_MAX, -}; - -struct osmo_chan; -struct msgb; - -struct osmo_chan_type { - struct llist_head head; - - char *name; - int type; - int subtype; - int datasiz; - - int (*create)(struct osmo_chan *chan); - void (*destroy)(struct osmo_chan *chan); - int (*open)(struct osmo_chan *chan); - void (*close)(struct osmo_chan *chan); - int (*enqueue)(struct osmo_chan *chan, struct msgb *msg); -}; - -struct osmo_chan { - void *ctx; - struct osmo_chan_type *ops; - char data[0]; -}; - -void osmo_chan_init(void *ctx); - -struct osmo_chan *osmo_chan_create(int type, int subtype); -void osmo_chan_destroy(struct osmo_chan *c); - -int osmo_chan_open(struct osmo_chan *c); -void osmo_chan_close(struct osmo_chan *c); - -int osmo_chan_enqueue(struct osmo_chan *c, struct msgb *msg); - -#endif /* _CHANNEL_H_ */ diff --git a/include/osmocom/netif/channel/Makefile.am b/include/osmocom/netif/channel/Makefile.am deleted file mode 100644 index dec19b2..0000000 --- a/include/osmocom/netif/channel/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -osmonetif_channel_HEADERS = abis_ipa_server.h abis_ipa_client.h - -osmonetif_channeldir = $(includedir)/osmocom/netif/channel diff --git a/include/osmocom/netif/channel/abis_ipa_client.h b/include/osmocom/netif/channel/abis_ipa_client.h deleted file mode 100644 index cd35852..0000000 --- a/include/osmocom/netif/channel/abis_ipa_client.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _OSMO_ABIS_IPA_CLIENT_H_ -#define _OSMO_ABIS_IPA_CLIENT_H_ - -struct osmo_ipa_unit; - -void osmo_abis_ipa_cli_set_oml_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_cli_set_oml_port(struct osmo_chan *c, uint16_t port); -void osmo_abis_ipa_cli_set_rsl_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_cli_set_rsl_port(struct osmo_chan *c, uint16_t port); -void osmo_abis_ipa_cli_set_unit(struct osmo_chan *c, struct osmo_ipa_unit *unit); -void osmo_abis_ipa_cli_set_cb_signalmsg(struct osmo_chan *c, void (*signal_msg)(struct msgb *msg, int type)); - -#endif /* _OSMO_ABIS_IPA_CLIENT_H_ */ diff --git a/include/osmocom/netif/channel/abis_ipa_server.h b/include/osmocom/netif/channel/abis_ipa_server.h deleted file mode 100644 index 6518f99..0000000 --- a/include/osmocom/netif/channel/abis_ipa_server.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _ABIS_IPA_SERVER_H_ -#define _ABIS_IPA_SERVER_H_ - -void osmo_abis_ipa_srv_set_oml_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_srv_set_oml_port(struct osmo_chan *c, uint16_t port); - -void osmo_abis_ipa_srv_set_rsl_addr(struct osmo_chan *c, const char *addr); -void osmo_abis_ipa_srv_set_rsl_port(struct osmo_chan *c, uint16_t port); - -void osmo_abis_ipa_srv_set_cb_signalmsg(struct osmo_chan *c, void (*signal_msg)(struct msgb *msg, int type)); - -int osmo_abis_ipa_unit_add(struct osmo_chan *c, uint16_t site_id, uint16_t bts_id); - -#endif diff --git a/src/Makefile.am b/src/Makefile.am index 9dc5e46..9951ca4 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -6,15 +6,12 @@ AM_CFLAGS= -fPIC -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(COVERAGE_CFLAGS) $(LIBSCTP_CFLAGS) AM_LDFLAGS = $(COVERAGE_LDFLAGS) -SUBDIRS = channel - lib_LTLIBRARIES = libosmonetif.la -libosmonetif_la_LIBADD = channel/abis/libosmonetif-abis.la $(LIBOSMOCORE_LIBS) $(LIBSCTP_LIBS) +libosmonetif_la_LIBADD = $(LIBOSMOCORE_LIBS) $(LIBSCTP_LIBS) libosmonetif_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined libosmonetif_la_SOURCES = amr.c \ - channel.c \ datagram.c \ ipa.c \ ipa_unit.c \ diff --git a/src/channel.c b/src/channel.c deleted file mode 100644 index 2784f22..0000000 --- a/src/channel.c +++ /dev/null @@ -1,116 +0,0 @@ -/* (C) 2011-2012 by Pablo Neira Ayuso - * 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 . - * - */ -#include -#include -#include -#include - -#include - -static LLIST_HEAD(channel_list); - -extern struct osmo_chan_type chan_abis_ipa_srv; -extern struct osmo_chan_type chan_abis_ipa_cli; - -static void *osmo_chan_ctx; - -void osmo_chan_init(void *ctx) -{ - osmo_chan_ctx = ctx; - llist_add(&chan_abis_ipa_srv.head, &channel_list); - llist_add(&chan_abis_ipa_cli.head, &channel_list); - /* add your new channel type here */ -} - -struct osmo_chan *osmo_chan_create(int type_id, int subtype_id) -{ - struct osmo_chan_type *cur = NULL; - int found = 0, found_partial = 0; - struct osmo_chan *c; - - if (type_id > OSMO_CHAN_MAX) { - LOGP(DLINP, LOGL_ERROR, "unsupported channel type " - "number `%u'\n", type_id); - return NULL; - } - if (subtype_id > OSMO_SUBCHAN_MAX) { - LOGP(DLINP, LOGL_ERROR, "unsupported subchannel type " - "number `%u'\n", type_id); - return NULL; - } - - llist_for_each_entry(cur, &channel_list, head) { - if (type_id == cur->type && subtype_id == cur->subtype) { - found = 1; - break; - } else if (type_id == cur->type) { - found_partial = 1; - break; - } - } - - if (!found) { - LOGP(DLINP, LOGL_ERROR, "unsupported channel type `%s'\n", - cur->name); - return NULL; - } - if (found_partial) { - LOGP(DLINP, LOGL_ERROR, "Sorry, channel type `%s' does not " - "support subtype `%u'\n", cur->name, subtype_id); - return NULL; - } - - c = talloc_zero_size(osmo_chan_ctx, - sizeof(struct osmo_chan) + cur->datasiz); - if (c == NULL) { - LOGP(DLINP, LOGL_ERROR, "cannot allocate channel data\n"); - return NULL; - } - - c->ops = cur; - - if (c->ops->create(c) < 0) { - LOGP(DLINP, LOGL_ERROR, "cannot create channel\n"); - talloc_free(c); - return NULL; - } - return c; -} - -void osmo_chan_destroy(struct osmo_chan *c) -{ - c->ops->destroy(c); - talloc_free(c); -} - -int osmo_chan_open(struct osmo_chan *c) -{ - return c->ops->open(c); -} - -void osmo_chan_close(struct osmo_chan *c) -{ - c->ops->close(c); -} - -int osmo_chan_enqueue(struct osmo_chan *c, struct msgb *msg) -{ - return c->ops->enqueue(c, msg); -} diff --git a/src/channel/Makefile.am b/src/channel/Makefile.am deleted file mode 100644 index 1c4b7a9..0000000 --- a/src/channel/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = abis diff --git a/src/channel/abis/Makefile.am b/src/channel/abis/Makefile.am deleted file mode 100644 index 615abff..0000000 --- a/src/channel/abis/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir) -AM_CFLAGS= -fPIC -Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(COVERAGE_CFLAGS) -AM_LDFLAGS = $(COVERAGE_LDFLAGS) - -noinst_LTLIBRARIES = libosmonetif-abis.la - -libosmonetif_abis_la_SOURCES = ipa_stream_server.c \ - ipa_stream_client.c -libosmonetif_abis_la_LIBADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOVTY_LIBS) diff --git a/src/channel/abis/ipa_stream_client.c b/src/channel/abis/ipa_stream_client.c deleted file mode 100644 index c610730..0000000 --- a/src/channel/abis/ipa_stream_client.c +++ /dev/null @@ -1,309 +0,0 @@ -/* (C) 2012 by Pablo Neira Ayuso - * 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 . - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -#define CHAN_SIGN_OML 0 -#define CHAN_SIGN_RSL 1 - -/* default IPA cli ports. */ -#define IPA_TCP_PORT_OML 3002 -#define IPA_TCP_PORT_RSL 3003 - -static void *abis_ipa_cli_tall; - -struct chan_abis_ipa_cli { - struct osmo_ipa_unit *unit; - - struct osmo_stream_cli *oml; - struct osmo_stream_cli *rsl; - - void (*signal_msg)(struct msgb *msg, int type); -}; - -static int oml_read_cb(struct osmo_stream_cli *conn); -static int rsl_read_cb(struct osmo_stream_cli *conn); - -static int chan_abis_ipa_cli_create(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - - c->unit = osmo_ipa_unit_alloc(0); - if (c->unit == NULL) - goto err; - - c->oml = osmo_stream_cli_create(abis_ipa_cli_tall); - if (c->oml == NULL) - goto err_oml; - - /* default address and port for OML. */ - osmo_stream_cli_set_addr(c->oml, "0.0.0.0"); - osmo_stream_cli_set_port(c->oml, IPA_TCP_PORT_OML); - osmo_stream_cli_set_read_cb(c->oml, oml_read_cb); - osmo_stream_cli_set_data(c->oml, chan); - - c->rsl = osmo_stream_cli_create(abis_ipa_cli_tall); - if (c->rsl == NULL) - goto err_rsl; - - /* default address and port for RSL. */ - osmo_stream_cli_set_addr(c->rsl, "0.0.0.0"); - osmo_stream_cli_set_port(c->rsl, IPA_TCP_PORT_RSL); - osmo_stream_cli_set_read_cb(c->rsl, rsl_read_cb); - osmo_stream_cli_set_data(c->rsl, chan); - - return 0; -err_rsl: - osmo_stream_cli_destroy(c->oml); -err_oml: - osmo_ipa_unit_free(c->unit); -err: - return -1; -} - -static void chan_abis_ipa_cli_destroy(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - - osmo_ipa_unit_free(c->unit); - talloc_free(c->rsl); - talloc_free(c->oml); -} - -static int chan_abis_ipa_cli_open(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - struct osmo_fd *ofd; - int ret, on = 1; - - if (osmo_stream_cli_open(c->oml) < 0) - goto err; - - ofd = osmo_stream_cli_get_ofd(c->oml); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_oml; - - if (osmo_stream_cli_open(c->rsl) < 0) - goto err_oml; - - ofd = osmo_stream_cli_get_ofd(c->rsl); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_rsl; - - return 0; - -err_rsl: - osmo_stream_cli_close(c->rsl); -err_oml: - osmo_stream_cli_close(c->oml); -err: - return -1; -} - -static void chan_abis_ipa_cli_close(struct osmo_chan *chan) -{ - struct chan_abis_ipa_cli *c = (struct chan_abis_ipa_cli *)chan->data; - - osmo_stream_cli_close(c->oml); - osmo_stream_cli_close(c->rsl); -} - -static int chan_abis_ipa_cli_enqueue(struct osmo_chan *c, struct msgb *msg) -{ - osmo_stream_cli_send(msg->dst, msg); - return 0; -} - -void osmo_abis_ipa_cli_set_oml_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_addr(s->oml, addr); -} - -void osmo_abis_ipa_cli_set_oml_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_port(s->oml, port); -} - -void osmo_abis_ipa_cli_set_rsl_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_addr(s->rsl, addr); -} - -void osmo_abis_ipa_cli_set_rsl_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_stream_cli_set_port(s->rsl, port); -} - -void osmo_abis_ipa_cli_set_unit(struct osmo_chan *c, struct osmo_ipa_unit *unit) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - osmo_ipa_unit_free(s->unit); - s->unit = unit; -} - -void osmo_abis_ipa_cli_set_cb_signalmsg(struct osmo_chan *c, - void (*signal_msg)(struct msgb *msg, int type)) -{ - struct chan_abis_ipa_cli *s = (struct chan_abis_ipa_cli *)&c->data; - - s->signal_msg = signal_msg; -} - -static int -abis_ipa_cli_rcvmsg(struct osmo_chan *c, struct osmo_stream_cli *conn, - struct msgb *msg, int type) -{ - uint8_t msg_type = *(msg->l2h); - struct osmo_fd *ofd = osmo_stream_cli_get_ofd(conn); - struct chan_abis_ipa_cli *chan = (struct chan_abis_ipa_cli *)&c->data; - int ret; - - /* Handle IPA PING, PONG and ID_ACK messages. */ - if (osmo_ipa_rcvmsg_base(msg, ofd, 0)) /* XXX: 0 indicates client */ - return 0; - - if (msg_type == IPAC_MSGT_ID_GET) { - struct msgb *rmsg; - uint8_t *data = msgb_l2(msg); - int len = msgb_l2len(msg); - - LOGP(DLINP, LOGL_NOTICE, "received ID get\n"); - - rmsg = ipa_cli_id_resp(chan->unit, data + 1, len - 1); - osmo_stream_cli_send(conn, rmsg); - - /* send ID_ACK. */ - rmsg = ipa_cli_id_ack(); - osmo_stream_cli_send(conn, rmsg); - ret = 0; - } else { - LOGP(DLINP, LOGL_ERROR, "Unknown IPA message type\n"); - ret = -EINVAL; - } - return ret; -} - -static int read_cb(struct osmo_stream_cli *conn, int type) -{ - int ret; - struct msgb *msg; - struct osmo_chan *chan = osmo_stream_cli_get_data(conn); - struct chan_abis_ipa_cli *s; - struct ipa_head *hh; - - LOGP(DLINP, LOGL_DEBUG, "received message from stream\n"); - - msg = osmo_ipa_msg_alloc(0); - if (msg == NULL) { - LOGP(DLINP, LOGL_ERROR, "cannot allocate message\n"); - return 0; - } - ret = osmo_stream_cli_recv(conn, msg); - if (ret < 0) { - LOGP(DLINP, LOGL_ERROR, "cannot receive message\n"); - msgb_free(msg); - /* not the dummy connection, release it. */ - return 0; - } else if (ret == 0) { - /* link has vanished, dead socket. */ - LOGP(DLINP, LOGL_ERROR, "closed connection\n"); - msgb_free(msg); - return 0; - } - - if (osmo_ipa_process_msg(msg) < 0) { - LOGP(DLINP, LOGL_ERROR, "Bad IPA message\n"); - msgb_free(msg); - return -EIO; - } - - hh = (struct ipa_head *) msg->data; - if (hh->proto == IPAC_PROTO_IPACCESS) { - abis_ipa_cli_rcvmsg(chan, conn, msg, type); - msgb_free(msg); - return -EIO; - } - - chan = osmo_stream_cli_get_data(conn); - if (chan == NULL) { - LOGP(DLINP, LOGL_ERROR, "no matching signalling link\n"); - msgb_free(msg); - return -EIO; - } - if (hh->proto != IPAC_PROTO_OML && hh->proto != IPAC_PROTO_RSL) { - LOGP(DLINP, LOGL_ERROR, "wrong protocol\n"); - return -EIO; - } - msg->dst = chan; - - s = (struct chan_abis_ipa_cli *)chan->data; - s->signal_msg(msg, type); - - return 0; -} - -static int oml_read_cb(struct osmo_stream_cli *conn) -{ - return read_cb(conn, CHAN_SIGN_OML); -} - -static int rsl_read_cb(struct osmo_stream_cli *conn) -{ - return read_cb(conn, CHAN_SIGN_RSL); -} - -struct osmo_chan_type chan_abis_ipa_cli = { - .type = OSMO_CHAN_ABIS_IPA_CLI, - .subtype = OSMO_SUBCHAN_STREAM, - .name = "A-bis IPA client", - .datasiz = sizeof(struct chan_abis_ipa_cli), - .create = chan_abis_ipa_cli_create, - .destroy = chan_abis_ipa_cli_destroy, - .open = chan_abis_ipa_cli_open, - .close = chan_abis_ipa_cli_close, - .enqueue = chan_abis_ipa_cli_enqueue, -}; diff --git a/src/channel/abis/ipa_stream_server.c b/src/channel/abis/ipa_stream_server.c deleted file mode 100644 index 1cd889c..0000000 --- a/src/channel/abis/ipa_stream_server.c +++ /dev/null @@ -1,421 +0,0 @@ -/* (C) 2012 by Pablo Neira Ayuso - * 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 . - */ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include - -#define CHAN_SIGN_OML 0 -#define CHAN_SIGN_RSL 1 - -/* default IPA srv ports. */ -#define IPA_TCP_PORT_OML 3002 -#define IPA_TCP_PORT_RSL 3003 - -static void *abis_ipa_srv_tall; - -static int oml_accept_cb(struct osmo_stream_srv_link *srv, int fd); -static int rsl_accept_cb(struct osmo_stream_srv_link *srv, int fd); - -struct chan_abis_ipa_srv { - struct osmo_chan *chan; - struct osmo_stream_srv_link *oml; - struct osmo_stream_srv_link *rsl; - - struct llist_head bts_list; - - void (*signal_msg)(struct msgb *msg, int type); -}; - -struct chan_abis_ipa_srv_conn { - struct chan_abis_ipa_srv *master; - - struct osmo_stream_srv *oml; - struct osmo_stream_srv *rsl; -}; - -static int chan_abis_ipa_srv_create(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - - c->oml = osmo_stream_srv_link_create(abis_ipa_srv_tall); - if (c->oml == NULL) - goto err_oml; - - /* default address and port for OML. */ - osmo_stream_srv_link_set_addr(c->oml, "0.0.0.0"); - osmo_stream_srv_link_set_port(c->oml, IPA_TCP_PORT_OML); - osmo_stream_srv_link_set_accept_cb(c->oml, oml_accept_cb); - osmo_stream_srv_link_set_data(c->oml, c); - - c->rsl = osmo_stream_srv_link_create(abis_ipa_srv_tall); - if (c->rsl == NULL) - goto err_rsl; - - /* default address and port for RSL. */ - osmo_stream_srv_link_set_addr(c->rsl, "0.0.0.0"); - osmo_stream_srv_link_set_port(c->rsl, IPA_TCP_PORT_RSL); - osmo_stream_srv_link_set_accept_cb(c->rsl, rsl_accept_cb); - osmo_stream_srv_link_set_data(c->rsl, c); - - INIT_LLIST_HEAD(&c->bts_list); - - return 0; -err_rsl: - osmo_stream_srv_link_destroy(c->oml); -err_oml: - return -1; -} - -static void chan_abis_ipa_srv_destroy(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - - osmo_stream_srv_link_destroy(c->rsl); - osmo_stream_srv_link_destroy(c->oml); -} - -static int chan_abis_ipa_srv_open(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - struct osmo_fd *ofd; - int ret, on = 1; - - if (osmo_stream_srv_link_open(c->oml) < 0) - goto err; - - ofd = osmo_stream_srv_link_get_ofd(c->oml); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_oml; - - if (osmo_stream_srv_link_open(c->rsl) < 0) - goto err_oml; - - ofd = osmo_stream_srv_link_get_ofd(c->rsl); - ret = setsockopt(ofd->fd, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)); - if (ret < 0) - goto err_rsl; - - return 0; - -err_rsl: - osmo_stream_srv_link_close(c->rsl); -err_oml: - osmo_stream_srv_link_close(c->oml); -err: - return -1; -} - -static void chan_abis_ipa_srv_close(struct osmo_chan *chan) -{ - struct chan_abis_ipa_srv *c = (struct chan_abis_ipa_srv *)chan->data; - - osmo_stream_srv_link_close(c->oml); - osmo_stream_srv_link_close(c->rsl); -} - -static int chan_abis_ipa_srv_enqueue(struct osmo_chan *c, struct msgb *msg) -{ - osmo_stream_srv_send(msg->dst, msg); - return 0; -} - -void osmo_abis_ipa_srv_set_oml_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_addr(s->oml, addr); -} - -void osmo_abis_ipa_srv_set_oml_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_port(s->oml, port); -} - -void osmo_abis_ipa_srv_set_rsl_addr(struct osmo_chan *c, const char *addr) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_addr(s->rsl, addr); -} - -void osmo_abis_ipa_srv_set_rsl_port(struct osmo_chan *c, uint16_t port) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - osmo_stream_srv_link_set_port(s->rsl, port); -} - -void osmo_abis_ipa_srv_set_cb_signalmsg(struct osmo_chan *c, - void (*signal_msg)(struct msgb *msg, int type)) -{ - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - - s->signal_msg = signal_msg; -} - -int -osmo_abis_ipa_unit_add(struct osmo_chan *c, uint16_t site_id, uint16_t bts_id) -{ - struct osmo_ipa_unit *unit; - struct chan_abis_ipa_srv *s = (struct chan_abis_ipa_srv *)&c->data; - struct chan_abis_ipa_srv_conn *inst; - - unit = osmo_ipa_unit_alloc(sizeof(struct chan_abis_ipa_srv_conn)); - if (unit == NULL) - return -1; - - osmo_ipa_unit_set_site_id(unit, site_id); - osmo_ipa_unit_set_bts_id(unit, bts_id); - osmo_ipa_unit_add(&s->bts_list, unit); - - inst = osmo_ipa_unit_get_data(unit); - inst->master = s; - - return 0; -} - -static int oml_read_cb(struct osmo_stream_srv *conn); - -static int oml_accept_cb(struct osmo_stream_srv_link *srv, int fd) -{ - struct osmo_stream_srv *conn; - struct osmo_fd *ofd; - - conn = osmo_stream_srv_create(abis_ipa_srv_tall, - srv, fd, oml_read_cb, NULL, NULL); - if (conn == NULL) { - LOGP(DLINP, LOGL_ERROR, "error while creating connection\n"); - return -1; - } - - ofd = osmo_stream_srv_get_ofd(conn); - - /* XXX: better use chan_abis_ipa_srv_enqueue. */ - ipaccess_send_id_req(ofd->fd); - - return 0; -} - -static int rsl_read_cb(struct osmo_stream_srv *conn); - -static int rsl_accept_cb(struct osmo_stream_srv_link *srv, int fd) -{ - struct osmo_stream_srv *conn; - struct osmo_fd *ofd; - - conn = osmo_stream_srv_create(abis_ipa_srv_tall, srv, fd, - rsl_read_cb, NULL, NULL); - if (conn == NULL) { - LOGP(DLINP, LOGL_ERROR, "error while creating connection\n"); - return -1; - } - - ofd = osmo_stream_srv_get_ofd(conn); - - /* XXX: better use chan_abis_ipa_srv_enqueue. */ - ipaccess_send_id_req(ofd->fd); - - return 0; -} - -static void abis_ipa_put(struct osmo_ipa_unit *unit) -{ - struct chan_abis_ipa_srv_conn *inst = osmo_ipa_unit_get_data(unit); - - osmo_stream_srv_destroy(inst->oml); - osmo_stream_srv_destroy(inst->rsl); - inst->oml = NULL; - inst->rsl = NULL; -} - -static int -abis_ipa_srv_rcvmsg(struct osmo_stream_srv *conn, struct msgb *msg, int type) -{ - uint8_t msg_type = *(msg->l2h); - struct osmo_fd *ofd = osmo_stream_srv_get_ofd(conn); - struct osmo_stream_srv_link *link = osmo_stream_srv_get_master(conn); - struct chan_abis_ipa_srv *s = osmo_stream_srv_link_get_data(link); - struct chan_abis_ipa_srv_conn *inst; - int ret; - - /* Handle IPA PING, PONG and ID_ACK messages */ - if (osmo_ipa_rcvmsg_base(msg, ofd, 1)) /* XXX: 1 indicates server */ - return 0; - - if (msg_type == IPAC_MSGT_ID_RESP) { - struct osmo_ipa_unit *unit; - struct ipaccess_unit unit_data; - - if (osmo_ipa_parse_msg_id_resp(msg, &unit_data) < 0) { - LOGP(DLINP, LOGL_ERROR, "bad ID RESP message\n"); - return -EIO; - } - - unit = osmo_ipa_unit_find(&s->bts_list, unit_data.site_id, - unit_data.bts_id); - - if (unit == NULL) { - LOGP(DLINP, LOGL_ERROR, "Unable to find BTS " - "configuration for %u/%u/%u, disconnecting\n", - unit_data.site_id, unit_data.bts_id, - unit_data.trx_id); - return 0; - } - DEBUGP(DLINP, "Identified BTS %u/%u/%u\n", - unit_data.site_id, unit_data.bts_id, - unit_data.trx_id); - - inst = osmo_ipa_unit_get_data(unit); - - if (type == CHAN_SIGN_OML) { - if (inst->oml) { - /* link already exists, kill it. */ - osmo_stream_srv_destroy(inst->oml); - return 0; - } - inst->oml = conn; - } else if (type == CHAN_SIGN_RSL) { - if (!inst->oml) { - /* no OML link? Restart from scratch. */ - abis_ipa_put(unit); - return 0; - } - if (inst->rsl) { - /* RSL link already exists, kill it. */ - osmo_stream_srv_destroy(inst->rsl); - return 0; - } - inst->rsl = conn; - } - osmo_stream_srv_set_data(conn, unit); - ret = 0; - } else { - LOGP(DLINP, LOGL_ERROR, "Unknown IPA message type\n"); - ret = -EINVAL; - } - return ret; -} - -static int read_cb(struct osmo_stream_srv *conn, int type) -{ - int ret; - struct msgb *msg; - struct osmo_ipa_unit *unit = osmo_stream_srv_get_data(conn); - struct chan_abis_ipa_srv_conn *inst; - struct ipa_head *hh; - - LOGP(DLINP, LOGL_DEBUG, "received message from stream\n"); - - msg = osmo_ipa_msg_alloc(0); - if (msg == NULL) { - LOGP(DLINP, LOGL_ERROR, "cannot allocate message\n"); - return 0; - } - ret = osmo_stream_srv_recv(conn, msg); - if (ret < 0) { - LOGP(DLINP, LOGL_ERROR, "cannot receive message\n"); - msgb_free(msg); - if (unit != NULL) - abis_ipa_put(unit); - else - osmo_stream_srv_destroy(conn); - - return 0; - } else if (ret == 0) { - /* link has vanished, dead socket. */ - LOGP(DLINP, LOGL_ERROR, "closed connection\n"); - msgb_free(msg); - if (unit != NULL) - abis_ipa_put(unit); - else - osmo_stream_srv_destroy(conn); - - return 0; - } - ret = osmo_ipa_process_msg(msg); - if (ret < 0) { - LOGP(DLINP, LOGL_ERROR, "invalid IPA message\n"); - msgb_free(msg); - } - - hh = (struct ipa_head *) msg->data; - if (hh->proto == IPAC_PROTO_IPACCESS) { - abis_ipa_srv_rcvmsg(conn, msg, type); - msgb_free(msg); - return -EIO; - } - - if (unit == NULL) { - LOGP(DLINP, LOGL_ERROR, "no IPA unit associated to this " - "connection\n"); - return -EIO; - } - inst = osmo_ipa_unit_get_data(unit); - - if (hh->proto != IPAC_PROTO_OML && hh->proto != IPAC_PROTO_RSL) { - LOGP(DLINP, LOGL_ERROR, "wrong protocol\n"); - return -EIO; - } - msg->dst = conn; - - inst->master->signal_msg(msg, type); - - return 0; -} - -static int oml_read_cb(struct osmo_stream_srv *conn) -{ - return read_cb(conn, CHAN_SIGN_OML); -} - -static int rsl_read_cb(struct osmo_stream_srv *conn) -{ - return read_cb(conn, CHAN_SIGN_RSL); -} - -struct osmo_chan_type chan_abis_ipa_srv = { - .type = OSMO_CHAN_ABIS_IPA_SRV, - .subtype = OSMO_SUBCHAN_STREAM, - .name = "A-bis IPA server", - .datasiz = sizeof(struct chan_abis_ipa_srv), - .create = chan_abis_ipa_srv_create, - .destroy = chan_abis_ipa_srv_destroy, - .open = chan_abis_ipa_srv_open, - .close = chan_abis_ipa_srv_close, - .enqueue = chan_abis_ipa_srv_enqueue, -}; diff --git a/src/ipa.c b/src/ipa.c index c924382..3888457 100644 --- a/src/ipa.c +++ b/src/ipa.c @@ -31,7 +31,6 @@ #include -#include #include #include -- To view, visit https://gerrit.osmocom.org/9783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I97c378750acb1637ee032fa88a968edf68d8979f Gerrit-Change-Number: 9783 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:53:08 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:53:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Extend Osmocom-specific RSL "supplementary meas info IE" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9778 ) Change subject: bts: Extend Osmocom-specific RSL "supplementary meas info IE" ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5d1114c73508c67ad7cd9864d7370367612b1241 Gerrit-Change-Number: 9778 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 17:53:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:53:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:53:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Extend Osmocom-specific RSL "supplementary meas info IE" In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9778 ) Change subject: bts: Extend Osmocom-specific RSL "supplementary meas info IE" ...................................................................... bts: Extend Osmocom-specific RSL "supplementary meas info IE" In osmo-bts Change-Id Iea4a4781481f77c6163d82dcd71a844a5be87bf2 we introduce an Osmocom specific "supplementary measurement info IE" into the RSL MEAS REP message. This commit adds the related type definitions and extends the related matching in BTS_Tests.ttcn. Change-Id: I5d1114c73508c67ad7cd9864d7370367612b1241 --- M bts/BTS_Tests.ttcn M library/RSL_Types.ttcn 2 files changed, 16 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 1044747..b77a70a 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1240,8 +1240,13 @@ supp_meas_info := omit }; if (l1p.toa256_enabled) { - ul_meas.len := 5; - ul_meas.supp_meas_info := int2oct(l1p.timing_offset_256syms, 2); + ul_meas.len := (3+8); + ul_meas.supp_meas_info := { + toa256_mean := l1p.timing_offset_256syms, + toa256_min := ?, + toa256_max := ?, + toa256_std_dev := ? + } } /* HACK HACK HACK FIXME HACK HACK HACK see https://osmocom.org/issues/2988 */ ul_meas.rxlev_f_u := ?; diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn index e1f6af0..d4d0c4d 100644 --- a/library/RSL_Types.ttcn +++ b/library/RSL_Types.ttcn @@ -473,6 +473,14 @@ frame_nr := tr_RSL_IE_FrameNumber(frame_nr) } + /* Osmocom Extension */ + type record RSL_IE_UplinkMeasSuppMeasInfo { + int16_t toa256_mean, + int16_t toa256_min, + int16_t toa256_max, + uint16_t toa256_std_dev + }; + /* 9.3.25 */ type record RSL_IE_UplinkMeas { uint8_t len, @@ -484,7 +492,7 @@ BIT2 reserved2, uint3_t rxq_f_u, uint3_t rxq_s_u, - octetstring supp_meas_info optional + RSL_IE_UplinkMeasSuppMeasInfo supp_meas_info optional } with { variant (len) "LENGTHTO(rfu,dtx_d,rxlev_f_u,reserved1,rxlev_s_u,reserved2,rxq_f_u,rxq_s_u,supp_meas_info)" }; /* 9.3.26 */ -- To view, visit https://gerrit.osmocom.org/9778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5d1114c73508c67ad7cd9864d7370367612b1241 Gerrit-Change-Number: 9778 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:53:18 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:53:18 +0000 Subject: Change in osmo-bts[master]: Add min/max/std-dev measurement reporting for TOA256 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9777 ) Change subject: Add min/max/std-dev measurement reporting for TOA256 ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2 Gerrit-Change-Number: 9777 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 17:53:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:53:20 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:53:20 +0000 Subject: Change in osmo-bts[master]: Add min/max/std-dev measurement reporting for TOA256 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9777 ) Change subject: Add min/max/std-dev measurement reporting for TOA256 ...................................................................... Add min/max/std-dev measurement reporting for TOA256 This patch adds extended processing of the high-resolution TOA256 measurement values. It adds reporting of the following values for each RSL MEAS REP for uplink measurements: * minimum TOA256 value during reporting period * maximum TOA256 value during reporting period * standard deviation of TOA256 value during reporting period Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2 --- M include/osmo-bts/gsm_data_shared.h M src/common/measurement.c M src/common/rsl.c M tests/meas/meas_test.c M tests/meas/meas_test.ok 5 files changed, 348 insertions(+), 9 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmo-bts/gsm_data_shared.h b/include/osmo-bts/gsm_data_shared.h index f4fb766..e15abfe 100644 --- a/include/osmo-bts/gsm_data_shared.h +++ b/include/osmo-bts/gsm_data_shared.h @@ -127,6 +127,7 @@ #define MAX_NUM_UL_MEAS 104 #define LC_UL_M_F_L1_VALID (1 << 0) #define LC_UL_M_F_RES_VALID (1 << 1) +#define LC_UL_M_F_OSMO_EXT_VALID (1 << 2) struct bts_ul_meas { /* BER in units of 0.01%: 10.000 == 100% ber, 0 == 0% ber */ @@ -257,6 +258,15 @@ uint8_t l1_info[2]; struct gsm_meas_rep_unidir ul_res; int16_t ms_toa256; + /* Osmocom extended measurement results, see LC_UL_M_F_EXTD_VALID */ + struct { + /* minimum value of toa256 during measurement period */ + int16_t toa256_min; + /* maximum value of toa256 during measurement period */ + int16_t toa256_max; + /* standard deviation of toa256 value during measurement period */ + uint16_t toa256_std_dev; + } ext; } meas; struct { struct amr_multirate_conf amr_mr; @@ -317,6 +327,11 @@ } ecu_state; }; +static inline uint8_t lchan_get_ta(const struct gsm_lchan *lchan) +{ + return lchan->meas.l1_info[1]; +} + extern const struct value_string lchan_ciph_state_names[]; static inline const char *lchan_ciph_state_name(uint8_t state) { return get_value_string(lchan_ciph_state_names, state); diff --git a/src/common/measurement.c b/src/common/measurement.c index ba7494a..01f1e5d 100644 --- a/src/common/measurement.c +++ b/src/common/measurement.c @@ -3,6 +3,7 @@ #include #include +#include #include #include @@ -335,6 +336,64 @@ return 7; } +/* if we clip the TOA value to 12 bits, i.e. toa256=3200, + * -> the maximum deviation can be 2*3200 = 6400 + * -> the maximum squared deviation can be 6400^2 = 40960000 + * -> the maximum sum of squared deviations can be 104*40960000 = 4259840000 + * and hence fit into uint32_t + * -> once the value is divided by 104, it's again below 40960000 + * leaving 6 MSBs of freedom, i.e. we could extend by 64, resulting in 2621440000 + * -> as a result, the standard deviation could be communicated with up to six bits + * of fractional fixed-point number. + */ + +/* compute Osmocom extended measurements for the given lchan */ +static void lchan_meas_compute_extended(struct gsm_lchan *lchan) +{ + /* we assume that lchan_meas_check_compute() has already computed the mean value + * and we can compute the min/max/variance/stddev from this */ + int i; + + /* each measurement is an int32_t, so the squared difference value must fit in 32bits */ + /* the sum of the squared values (each up to 32bit) can very easily exceed 32 bits */ + u_int64_t sq_diff_sum = 0; + /* initialize min/max values with their counterpart */ + lchan->meas.ext.toa256_min = INT16_MAX; + lchan->meas.ext.toa256_max = INT16_MIN; + + OSMO_ASSERT(lchan->meas.num_ul_meas); + + /* all computations are done on the relative arrival time of the burst, relative to the + * beginning of its slot. This is of course excluding the TA value that the MS has already + * compensated/pre-empted its transmission */ + + /* step 1: compute the sum of the squared difference of each value to mean */ + for (i = 0; i < lchan->meas.num_ul_meas; i++) { + struct bts_ul_meas *m = &lchan->meas.uplink[i]; + int32_t diff = (int32_t)m->ta_offs_256bits - (int32_t)lchan->meas.ms_toa256; + /* diff can now be any value of +65535 to -65535, so we can safely square it, + * but only in unsigned math. As squaring looses the sign, we can simply drop + * it before squaring, too. */ + uint32_t diff_abs = labs(diff); + uint32_t diff_squared = diff_abs * diff_abs; + sq_diff_sum += diff_squared; + + /* also use this loop iteration to compute min/max values */ + if (m->ta_offs_256bits > lchan->meas.ext.toa256_max) + lchan->meas.ext.toa256_max = m->ta_offs_256bits; + if (m->ta_offs_256bits < lchan->meas.ext.toa256_min) + lchan->meas.ext.toa256_min = m->ta_offs_256bits; + } + /* step 2: compute the variance (mean of sum of squared differences) */ + sq_diff_sum = sq_diff_sum / lchan->meas.num_ul_meas; + /* as the individual summed values can each not exceed 2^32, and we're + * dividing by the number of summands, the resulting value can also not exceed 2^32 */ + OSMO_ASSERT(sq_diff_sum <= UINT32_MAX); + /* step 3: compute the standard deviation from the variance */ + lchan->meas.ext.toa256_std_dev = osmo_isqrt32(sq_diff_sum); + lchan->meas.flags |= LC_UL_M_F_OSMO_EXT_VALID; +} + int lchan_meas_check_compute(struct gsm_lchan *lchan, uint32_t fn) { struct gsm_meas_rep_unidir *mru; @@ -410,8 +469,10 @@ mru->sub.rx_qual, num_meas_sub, lchan->meas.num_ul_meas); lchan->meas.flags |= LC_UL_M_F_RES_VALID; - lchan->meas.num_ul_meas = 0; + lchan_meas_compute_extended(lchan); + + lchan->meas.num_ul_meas = 0; /* send a signal indicating computation is complete */ return 1; diff --git a/src/common/rsl.c b/src/common/rsl.c index 5d30ca7..8bbf73c 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -2536,6 +2536,13 @@ return (lchan->ms_t_offs >= 0) || (lchan->p_offs >= 0); } +struct osmo_bts_supp_meas_info { + int16_t toa256_mean; + int16_t toa256_min; + int16_t toa256_max; + uint16_t toa256_std_dev; +} __attribute__((packed)); + /* 8.4.8 MEASUREMENT RESult */ static int rsl_tx_meas_res(struct gsm_lchan *lchan, uint8_t *l3, int l3_len, const struct lapdm_entity *le) { @@ -2573,16 +2580,23 @@ meas_res); lchan->tch.dtx.dl_active = false; if (ie_len >= 3) { - if (bts->supp_meas_toa256) { + if (bts->supp_meas_toa256 && lchan->meas.flags & LC_UL_M_F_OSMO_EXT_VALID) { + struct osmo_bts_supp_meas_info *smi; + smi = (struct osmo_bts_supp_meas_info *) &meas_res[ie_len]; + ie_len += sizeof(struct osmo_bts_supp_meas_info); /* append signed 16bit value containing MS timing offset in 1/256th symbols * in the vendor-specific "Supplementary Measurement Information" part of - * the uplink measurements IE. This is the current offset *relative* to the - * TA which the MS has already applied. So if you want to know the total - * propagation time between MS and BTS, you need to add the actual TA value - * used (from L1_INFO below, in full symbols) plus the ms_toa256 value - * in 1/256 symbol periods. */ - meas_res[ie_len++] = lchan->meas.ms_toa256 >> 8; - meas_res[ie_len++] = lchan->meas.ms_toa256 & 0xff; + * the uplink measurements IE. The lchan->meas.ext members are the current + * offset *relative* to the TA which the MS has already applied. As we want + * to know the total propagation time between MS and BTS, we need to add + * the actual TA value applied by the MS plus the respective toa256 value in + * 1/256 symbol periods. */ + int16_t ta256 = lchan_get_ta(lchan) * 256; + smi->toa256_mean = htons(ta256 + lchan->meas.ms_toa256); + smi->toa256_min = htons(ta256 + lchan->meas.ext.toa256_min); + smi->toa256_max = htons(ta256 + lchan->meas.ext.toa256_max); + smi->toa256_std_dev = htons(lchan->meas.ext.toa256_std_dev); + lchan->meas.flags &= ~LC_UL_M_F_OSMO_EXT_VALID; } msgb_tlv_put(msg, RSL_IE_UPLINK_MEAS, ie_len, meas_res); lchan->meas.flags &= ~LC_UL_M_F_RES_VALID; diff --git a/tests/meas/meas_test.c b/tests/meas/meas_test.c index cbc673f..e889345 100644 --- a/tests/meas/meas_test.c +++ b/tests/meas/meas_test.c @@ -3,6 +3,7 @@ #include #include +#include #include #include @@ -62,6 +63,214 @@ OSMO_ASSERT(tsmap_result == tsmap); } +#define ULM(ber, ta, neg_rssi) \ + { .ber10k = (ber), .ta_offs_256bits = (ta), .c_i = 1.0, .is_sub = 0, .inv_rssi = (neg_rssi) } + +struct meas_testcase { + const char *name; + /* input data */ + const struct bts_ul_meas *ulm; + unsigned int ulm_count; + uint32_t final_fn; + /* results */ + struct { + int success; + uint8_t rx_lev_full; + uint8_t rx_qual_full; + int16_t toa256_mean; + int16_t toa256_min; + int16_t toa256_max; + uint16_t toa256_std_dev; + } res; +}; + +static struct bts_ul_meas ulm1[] = { + ULM(0, 0, 90), + ULM(0, 256, 90), + ULM(0, -256, 90), +}; +static const struct meas_testcase mtc1 = { + .name = "TOA256 Min-Max negative/positive", + .ulm = ulm1, + .ulm_count = ARRAY_SIZE(ulm1), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 0, + .toa256_max = 256, + .toa256_min = -256, + .toa256_std_dev = 209, + }, +}; + + +static struct bts_ul_meas ulm2[] = { + ULM(0, 256, 90), + ULM(0, 258, 90), + ULM(0, 254, 90), + ULM(0, 258, 90), + ULM(0, 254, 90), + ULM(0, 256, 90), +}; +static const struct meas_testcase mtc2 = { + .name = "TOA256 small jitter around 256", + .ulm = ulm2, + .ulm_count = ARRAY_SIZE(ulm2), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 256, + .toa256_max = 258, + .toa256_min = 254, + .toa256_std_dev = 1, + }, +}; + +static struct bts_ul_meas ulm3[] = { + ULM(0, 0, 90), + ULM(0, 0, 80), + ULM(0, 0, 80), + ULM(0, 0, 100), + ULM(0, 0, 100), +}; +static const struct meas_testcase mtc3 = { + .name = "RxLEv averaging", + .ulm = ulm3, + .ulm_count = ARRAY_SIZE(ulm3), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 0, + .toa256_max = 0, + .toa256_min = 0, + .toa256_std_dev = 0, + }, +}; + +static struct bts_ul_meas ulm4[] = { +}; +static const struct meas_testcase mtc4 = { + .name = "Empty measurements", + .ulm = ulm4, + .ulm_count = ARRAY_SIZE(ulm4), + .final_fn = 25, + .res = { + .success = 0, + .rx_lev_full = 0, + .rx_qual_full = 0, + .toa256_mean = 0, + .toa256_max = 0, + .toa256_min = 0, + .toa256_std_dev = 0, + }, +}; + +static struct bts_ul_meas ulm5[] = { + /* one 104 multiframe can at max contain 26 blocks (TCH/F), + * each of which can at maximum be 64 bits in advance (TA range) */ + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), + ULM(0, 64*256, 90), +}; +static const struct meas_testcase mtc5 = { + .name = "TOA256 26 blocks with max TOA256", + .ulm = ulm5, + .ulm_count = ARRAY_SIZE(ulm5), + .final_fn = 25, + .res = { + .success = 1, + .rx_lev_full = 110-90, + .rx_qual_full = 0, + .toa256_mean = 64*256, + .toa256_max = 64*256, + .toa256_min = 64*256, + .toa256_std_dev = 0, + }, +}; + + +static void reset_lchan_meas(struct gsm_lchan *lchan) +{ + lchan->state = LCHAN_S_ACTIVE; + memset(&lchan->meas, 0, sizeof(lchan->meas)); +} + +static void test_meas_compute(const struct meas_testcase *mtc) +{ + struct gsm_lchan *lchan = &trx->ts[1].lchan[0]; + unsigned int i; + unsigned int fn = 0; + + printf("\nMeasurement Compute Test %s\n", mtc->name); + + lchan->ts->pchan = GSM_PCHAN_TCH_F; + reset_lchan_meas(lchan); + + /* feed uplink measurements into the code */ + for (i = 0; i < mtc->ulm_count; i++) { + lchan_new_ul_meas(lchan, (struct bts_ul_meas *) &mtc->ulm[i], fn); + fn += 1; + } + + /* compute the results */ + OSMO_ASSERT(lchan_meas_check_compute(lchan, mtc->final_fn) == mtc->res.success); + if (!mtc->res.success) { + OSMO_ASSERT(!(lchan->meas.flags & LC_UL_M_F_RES_VALID)); + } else { + OSMO_ASSERT(lchan->meas.flags & (LC_UL_M_F_RES_VALID|LC_UL_M_F_OSMO_EXT_VALID)); + printf("meas.ext.toa256_min | %6d | %6d\n", + lchan->meas.ext.toa256_min, mtc->res.toa256_min); + printf("meas.ext.toa256_max | %6d | %6d\n", + lchan->meas.ext.toa256_max, mtc->res.toa256_max); + printf("meas.ms_toa256 | %6d | %6d\n", + lchan->meas.ms_toa256, mtc->res.toa256_mean); + printf("meas.ext.toa256_std_dev | %6u | %6u\n", + lchan->meas.ext.toa256_std_dev, mtc->res.toa256_std_dev); + printf("meas.ul_res.full.rx_lev | %6u | %6u\n", + lchan->meas.ul_res.full.rx_lev, mtc->res.rx_lev_full); + printf("meas.ul_res.full.rx_qual | %6u | %6u\n", + lchan->meas.ul_res.full.rx_qual, mtc->res.rx_qual_full); + + if ((lchan->meas.ext.toa256_min != mtc->res.toa256_min) || + (lchan->meas.ext.toa256_max != mtc->res.toa256_max) || + (lchan->meas.ms_toa256 != mtc->res.toa256_mean) || + (lchan->meas.ext.toa256_std_dev != mtc->res.toa256_std_dev) || + (lchan->meas.ul_res.full.rx_lev != mtc->res.rx_lev_full)) { + fprintf(stderr, "%s: Unexpected measurement result!\n", mtc->name); + } + } + +} + int main(int argc, char **argv) { void *tall_bts_ctx; @@ -111,6 +320,12 @@ test_fn_sample(test_fn_tch_h_ts_6_ss0_ss1, ARRAY_SIZE(test_fn_tch_h_ts_6_ss0_ss1), GSM_PCHAN_TCH_H, (1 << 6)); test_fn_sample(test_fn_tch_h_ts_7_ss0_ss1, ARRAY_SIZE(test_fn_tch_h_ts_7_ss0_ss1), GSM_PCHAN_TCH_H, (1 << 7)); + test_meas_compute(&mtc1); + test_meas_compute(&mtc2); + test_meas_compute(&mtc3); + test_meas_compute(&mtc4); + test_meas_compute(&mtc5); + printf("Success\n"); return 0; diff --git a/tests/meas/meas_test.ok b/tests/meas/meas_test.ok index 6dbda54..026899d 100644 --- a/tests/meas/meas_test.ok +++ b/tests/meas/meas_test.ok @@ -539,4 +539,38 @@ Testing: ts[7]->lchan[1], fn=15079=>015079/11/25/34/23, fn%104=103, rc=1, delta=13 Testing: ts[7]->lchan[0], fn=15170=>015170/11/12/23/14, fn%104=90, rc=1, delta=91 Testing: ts[7]->lchan[1], fn=15183=>015183/11/25/36/27, fn%104=103, rc=1, delta=13 + +Measurement Compute Test TOA256 Min-Max negative/positive +meas.ext.toa256_min | -256 | -256 +meas.ext.toa256_max | 256 | 256 +meas.ms_toa256 | 0 | 0 +meas.ext.toa256_std_dev | 209 | 209 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 + +Measurement Compute Test TOA256 small jitter around 256 +meas.ext.toa256_min | 254 | 254 +meas.ext.toa256_max | 258 | 258 +meas.ms_toa256 | 256 | 256 +meas.ext.toa256_std_dev | 1 | 1 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 + +Measurement Compute Test RxLEv averaging +meas.ext.toa256_min | 0 | 0 +meas.ext.toa256_max | 0 | 0 +meas.ms_toa256 | 0 | 0 +meas.ext.toa256_std_dev | 0 | 0 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 + +Measurement Compute Test Empty measurements + +Measurement Compute Test TOA256 26 blocks with max TOA256 +meas.ext.toa256_min | 16384 | 16384 +meas.ext.toa256_max | 16384 | 16384 +meas.ms_toa256 | 16384 | 16384 +meas.ext.toa256_std_dev | 0 | 0 +meas.ul_res.full.rx_lev | 20 | 20 +meas.ul_res.full.rx_qual | 0 | 0 Success -- To view, visit https://gerrit.osmocom.org/9777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iea4a4781481f77c6163d82dcd71a844a5be87bf2 Gerrit-Change-Number: 9777 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:53:41 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:53:41 +0000 Subject: Change in osmo-ci[master]: Restrict where the parent build runs for osmo-gsm-manuals In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9770 ) Change subject: Restrict where the parent build runs for osmo-gsm-manuals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23cf2c98f02278a5deb9c4ae8d13438b76538287 Gerrit-Change-Number: 9770 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Fri, 29 Jun 2018 17:53:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:53:50 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:53:50 +0000 Subject: Change in libosmocore[master]: Don't call abort() directly, always use osmo_panic() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9760 ) Change subject: Don't call abort() directly, always use osmo_panic() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433 Gerrit-Change-Number: 9760 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 17:53:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 17:53:52 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 17:53:52 +0000 Subject: Change in libosmocore[master]: Don't call abort() directly, always use osmo_panic() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9760 ) Change subject: Don't call abort() directly, always use osmo_panic() ...................................................................... Don't call abort() directly, always use osmo_panic() A loooong time ago, we introduced osmo_panic() as a wrapper around abort(). The advantage is, that this wrapper can be overridden, and that it will also work in embedded (bare iron) targets, where the abort simply translates to an infinite loop. Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433 --- M include/osmocom/core/utils.h M src/bitvec.c M src/gsm/gsm0808_utils.c 3 files changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index cd22dfb..dd4461c 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -4,6 +4,7 @@ #include #include +#include /*! \defgroup utils General-purpose utility functions * @{ @@ -77,9 +78,7 @@ */ #define OSMO_ASSERT(exp) \ if (!(exp)) { \ - fprintf(stderr, "Assert failed %s %s:%d\n", #exp, __BASE_FILE__, __LINE__); \ - osmo_generate_backtrace(); \ - abort(); \ + osmo_panic("Assert failed %s %s:%d\n", #exp, __BASE_FILE__, __LINE__); \ } /*! duplicate a string using talloc and release its prior content (if any) diff --git a/src/bitvec.c b/src/bitvec.c index 884eb02..0f56e3e 100644 --- a/src/bitvec.c +++ b/src/bitvec.c @@ -44,6 +44,7 @@ #include #include +#include #define BITNUM_FROM_COMP(byte, bit) ((byte*8)+bit) @@ -530,7 +531,7 @@ case ONE: return '1'; case L: return 'L'; case H: return 'H'; - default: abort(); + default: osmo_panic("unexpected input in bit_value_to_char"); return 'X'; } } diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index 080fc95..73f0234 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -155,7 +155,7 @@ /* See also 3GPP TS 48.008 3.2.2.103 Speech Codec List */ uint8_t header = 0; uint8_t *old_tail; - bool type_extended; + bool type_extended = false; /* Note: Extended codec types are codec types that require 8 instead * of 4 bit to fully specify the selected codec. In the following, -- To view, visit https://gerrit.osmocom.org/9760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5a70eb65952cbc329bf96eacb428b07a9da32433 Gerrit-Change-Number: 9760 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 29 17:57:26 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 17:57:26 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mast?= =?UTF-8?Q?er-osmo-mgw_=C2=BB_--enable-mgcp-tr?= =?UTF-8?Q?anscoding,a2=3Ddefault,a3=3Ddefaul?= =?UTF-8?Q?t,osmocom-master-debian9_#1050?= Message-ID: <1093393000.390.1530295046653.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 179.32 KB...] /bin/mkdir -p '/build/deps/install/stow/libosmo-netif/share/doc/libosmo-netif' /bin/mkdir -p '/build/deps/install/stow/libosmo-netif/lib/pkgconfig' /usr/bin/install -c -m 644 libosmo-netif.pc '/build/deps/install/stow/libosmo-netif/lib/pkgconfig' /usr/bin/install -c -m 644 ./doc/html.tar '/build/deps/install/stow/libosmo-netif/share/doc/libosmo-netif' make install-data-hook make[4]: Entering directory '/build/deps/libosmo-netif' cd /build/deps/install/stow/libosmo-netif/share/doc/libosmo-netif && tar xf html.tar && rm -f html.tar make[4]: Leaving directory '/build/deps/libosmo-netif' make[3]: Leaving directory '/build/deps/libosmo-netif' make[2]: Leaving directory '/build/deps/libosmo-netif' make[1]: Leaving directory '/build/deps/libosmo-netif' + STOW_DIR=/build/deps/install/stow stow --restow libosmo-netif Possible precedence issue with control flow operator at /usr/share/perl5/Stow.pm line 1736. + set +x =============================== osmo-mgw =============================== + cd /build + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/libosmo-legacy-mgcp/Makefile.am: installing './depcomp' + ./configure --enable-mgcp-transcoding --enable-vty-tests --enable-external-tests --enable-werror checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking for library containing gsm_create... -lgsm checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/dist-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.25-8838 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in legacy_mgcp make[4]: Entering directory '/build/include/osmocom/legacy_mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/legacy_mgcp' Making all in mgcp_client make[4]: Entering directory '/build/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make all-am make[5]: Entering directory '/build/include/osmocom/mgcp_client' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/include/osmocom/mgcp_client' Making all in mgcp make[4]: Entering directory '/build/include/osmocom/mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/mgcp' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in libosmo-legacy-mgcp make[3]: Entering directory '/build/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_osmux.lo CC mgcp_sdp.lo CC mgcp_vty.lo CC mgcp_transcode.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ mgcp_transcode.c: In function 'source_for_dest': mgcp_transcode.c:441:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors Makefile:495: recipe for target 'mgcp_transcode.lo' failed make[3]: *** [mgcp_transcode.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/src/libosmo-legacy-mgcp' make[2]: *** [all-recursive] Error 1 Makefile:393: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' Makefile:491: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make[1]: *** [all-recursive] Error 1 Makefile:397: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 17:57:34 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 17:57:34 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_maste?= =?UTF-8?Q?r-osmo-mgw_=C2=BB_--disable-mgcp-tr?= =?UTF-8?Q?anscoding,a2=3Ddefault,a3=3Ddefaul?= =?UTF-8?Q?t,osmocom-master-debian9_#1050?= Message-ID: <1703304735.391.1530295054832.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 180.27 KB...] =============================== osmo-mgw =============================== + set +x + cd /build + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/libosmo-legacy-mgcp/Makefile.am: installing './depcomp' + ./configure --disable-mgcp-transcoding --enable-vty-tests --enable-external-tests --enable-werror checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/dist-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.25-8838 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in legacy_mgcp make[4]: Entering directory '/build/include/osmocom/legacy_mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/legacy_mgcp' Making all in mgcp_client make[4]: Entering directory '/build/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make all-am make[5]: Entering directory '/build/include/osmocom/mgcp_client' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/include/osmocom/mgcp_client' Making all in mgcp make[4]: Entering directory '/build/include/osmocom/mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/mgcp' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in libosmo-legacy-mgcp make[3]: Entering directory '/build/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_vty.lo CC mgcp_osmux.lo CC mgcp_sdp.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[3]: Leaving directory '/build/src/libosmo-legacy-mgcp' Making all in libosmo-mgcp-client make[3]: Entering directory '/build/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_vty.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: all warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/src/libosmo-mgcp-client' Makefile:393: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' make[2]: *** [all-recursive] Error 1 Makefile:491: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Makefile:397: recipe for target 'all' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 17:57:40 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 17:57:40 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable?= =?UTF-8?Q?-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3930?= Message-ID: <563582669.392.1530295060416.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 199.06 KB...] =============================== osmo-sgsn =============================== + cd /build + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/gprs/Makefile.am: installing './depcomp' tests/gprs/Makefile.am:8: warning: source file '$(top_srcdir)/src/gprs/gprs_utils.c' is in a subdirectory, tests/gprs/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --enable-sanitize --enable-werror --disable-iu --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes checking for LIBOSMOGSM... yes checking for LIBOSMOABIS... yes checking for LIBOSMOGB... yes checking for LIBOSMONETIF... yes checking for LIBGTP... yes checking for LIBCARES... yes checking for ANSI C header files... (cached) yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether struct tm has tm_gmtoff member... no checking for python2... yes checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating osmo-sgsn.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sgsn/Makefile config.status: creating src/Makefile config.status: creating src/gprs/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/gprs/Makefile config.status: creating tests/gbproxy/Makefile config.status: creating tests/sgsn/Makefile config.status: creating tests/oap/Makefile config.status: creating tests/gtphub/Makefile config.status: creating tests/xid/Makefile config.status: creating tests/sndcp_xid/Makefile config.status: creating tests/slhc/Makefile config.status: creating tests/v42bis/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.13-3226 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in sgsn make[4]: Entering directory '/build/include/osmocom/sgsn' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/sgsn' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in gprs make[3]: Entering directory '/build/src/gprs' CC gb_proxy_main.o CC gb_proxy.o CC gb_proxy_vty.o CC gb_proxy_ctrl.o CC gb_proxy_patch.o CC gprs_gb_parse.o CC gb_proxy_tlli.o CC gb_proxy_peer.o CC gprs_llc_parse.o CC crc24.o CC gprs_utils.o CC gprs_gmm.o gprs_gmm.c: In function 'gsm0408_gprs_rcvmsg_iu': gprs_gmm.c:2823:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" ^ CC gprs_sgsn.o CC gprs_sndcp.o CC gprs_sndcp_comp.o CC gprs_sndcp_dcomp.o CC gprs_sndcp_pcomp.o gprs_sndcp_dcomp.c: In function 'gprs_sndcp_dcomp_init': gprs_sndcp_dcomp.c:105:1: error: control reaches end of non-void function [-Werror=return-type] } ^ CC gprs_sndcp_vty.o gprs_sndcp_pcomp.c: In function 'gprs_sndcp_pcomp_init': gprs_sndcp_pcomp.c:70:1: error: control reaches end of non-void function [-Werror=return-type] } ^ CC gprs_sndcp_xid.o cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_dcomp.o' failed make[3]: *** [gprs_sndcp_dcomp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_pcomp.o' failed make[3]: *** [gprs_sndcp_pcomp.o] Error 1 make[3]: Leaving directory '/build/src/gprs' make[2]: *** [all-recursive] Error 1 Makefile:375: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' Makefile:489: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Makefile:397: recipe for target 'all' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 17:58:58 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 17:58:58 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-bsc_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#2610?= Message-ID: <2070263791.393.1530295138928.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 654.33 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 4 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_vty.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CC mgcp_osmux.lo CC mgcp_sdp.lo CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_fsm.lo CC mgcp_client_vty.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[2]: *** [install-recursive] Error 1 make[1]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 17:59:43 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 17:59:43 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable?= =?UTF-8?Q?-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3931?= In-Reply-To: <563582669.392.1530295060416.JavaMail.jenkins@jenkins.osmocom.org> References: <563582669.392.1530295060416.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1911813473.394.1530295183093.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 199.70 KB...] + set +x + cd /build + autoreconf --install --force =============================== osmo-sgsn =============================== libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/gprs/Makefile.am: installing './depcomp' tests/gprs/Makefile.am:8: warning: source file '$(top_srcdir)/src/gprs/gprs_utils.c' is in a subdirectory, tests/gprs/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --enable-sanitize --enable-werror --disable-iu --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes checking for LIBOSMOGSM... yes checking for LIBOSMOABIS... yes checking for LIBOSMOGB... yes checking for LIBOSMONETIF... yes checking for LIBGTP... yes checking for LIBCARES... yes checking for ANSI C header files... (cached) yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether struct tm has tm_gmtoff member... no checking for python2... yes checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating osmo-sgsn.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sgsn/Makefile config.status: creating src/Makefile config.status: creating src/gprs/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/gprs/Makefile config.status: creating tests/gbproxy/Makefile config.status: creating tests/sgsn/Makefile config.status: creating tests/oap/Makefile config.status: creating tests/gtphub/Makefile config.status: creating tests/xid/Makefile config.status: creating tests/sndcp_xid/Makefile config.status: creating tests/slhc/Makefile config.status: creating tests/v42bis/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.13-3226 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in sgsn make[4]: Entering directory '/build/include/osmocom/sgsn' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/sgsn' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in gprs make[3]: Entering directory '/build/src/gprs' CC gb_proxy_main.o CC gb_proxy.o CC gb_proxy_ctrl.o CC gb_proxy_vty.o CC gprs_gb_parse.o CC gb_proxy_peer.o CC gb_proxy_patch.o CC gb_proxy_tlli.o CC gprs_llc_parse.o CC crc24.o CC gprs_utils.o CC gprs_gmm.o gprs_gmm.c: In function 'gsm0408_gprs_rcvmsg_iu': gprs_gmm.c:2823:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" ^ CC gprs_sgsn.o CC gprs_sndcp.o CC gprs_sndcp_comp.o CC gprs_sndcp_dcomp.o CC gprs_sndcp_pcomp.o gprs_sndcp_dcomp.c: In function 'gprs_sndcp_dcomp_init': gprs_sndcp_dcomp.c:105:1: error: control reaches end of non-void function [-Werror=return-type] } ^ gprs_sndcp_pcomp.c: In function 'gprs_sndcp_pcomp_init': gprs_sndcp_pcomp.c:70:1: error: control reaches end of non-void function [-Werror=return-type] } ^ CC gprs_sndcp_vty.o cc1: all warnings being treated as errors make[3]: *** [gprs_sndcp_dcomp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... Makefile:596: recipe for target 'gprs_sndcp_dcomp.o' failed cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_pcomp.o' failed make[3]: *** [gprs_sndcp_pcomp.o] Error 1 make[3]: Leaving directory '/build/src/gprs' Makefile:375: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' make[2]: *** [all-recursive] Error 1 Makefile:489: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make[1]: *** [all-recursive] Error 1 Makefile:397: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:00:07 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:00:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--enable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4265?= Message-ID: <539470266.395.1530295207250.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 803.55 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_vty.lo CC mgcp_osmux.lo CC mgcp_sdp.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_vty.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[2]: *** [install-recursive] Error 1 make[1]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' make: *** [install] Error 2 Makefile:790: recipe for target 'install' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:00:19 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:00:19 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--disable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4265?= Message-ID: <13921320.396.1530295219275.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 712.65 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_vty.lo CC mgcp_network.lo CC mgcp_sdp.lo CC mgcp_osmux.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client_vty.lo CC mgcp_client.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' make[2]: *** [install-recursive] Error 1 Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' make[1]: *** [install-recursive] Error 1 Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:05:33 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:05:33 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-ggsn_=C2=BB_--disable-gt?= =?UTF-8?Q?p-linux,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#580?= Message-ID: <1941668435.397.1530295533897.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 98.04 KB...] + cd + autoreconf --install --force aclocal: warning: couldn't open directory 'm4': No such file or directory libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:17: installing './compile' configure.ac:11: installing './config.guess' configure.ac:11: installing './config.sub' configure.ac:18: installing './install-sh' configure.ac:136: installing './missing' ggsn/Makefile.am: installing './depcomp' + ./configure --enable-sanitize --enable-werror --disable-gtp-linux checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu checking whether make supports nested variables... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for a BSD-compatible install... /usr/bin/install -c checking for gawk... gawk checking how to run the C preprocessor... gcc -E checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for ANSI C header files... (cached) yes checking for sys/wait.h that is POSIX.1 compatible... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking linux/if.h usability... no checking linux/if.h presence... yes configure: WARNING: linux/if.h: present but cannot be compiled configure: WARNING: linux/if.h: check for missing prerequisite headers? configure: WARNING: linux/if.h: see the Autoconf documentation configure: WARNING: linux/if.h: section "Present But Cannot Be Compiled" configure: WARNING: linux/if.h: proceeding with the compiler's result configure: WARNING: ## ------------------------------------------------- ## configure: WARNING: ## Report this to osmocom-net-gprs at lists.osmocom.org ## configure: WARNING: ## ------------------------------------------------- ## checking for linux/if.h... no checking net/if.h usability... yes checking net/if.h presence... yes checking for net/if.h... yes checking linux/if_tun.h usability... yes checking linux/if_tun.h presence... yes checking for linux/if_tun.h... yes checking net/if_tun.h usability... no checking net/if_tun.h presence... no checking for net/if_tun.h... no checking linux/netlink.h usability... yes checking linux/netlink.h presence... yes checking for linux/netlink.h... yes checking linux/rtnetlink.h usability... yes checking linux/rtnetlink.h presence... yes checking for linux/rtnetlink.h... yes checking for an ANSI C-conforming const... yes checking for mode_t... yes checking for size_t... yes checking whether time.h and sys/time.h may both be included... yes checking whether struct ifaliasreq exist... no checking whether struct ifreq.ifru_netmask exist... yes checking whether struct rt_msghdr exist... no checking whether struct iphdr exists... yes checking whether gcc needs -traditional... no checking for gethostbyname... yes checking for inet_ntoa... yes checking for memset... yes checking for select... yes checking for socket... yes checking for strdup... yes checking for strerror... yes checking for strtol... yes checking for inet_aton... yes checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking for getopt_long... yes checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking whether make sets $(MAKE)... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating ggsn/Makefile config.status: creating gtp/Makefile config.status: creating lib/Makefile config.status: creating intl/Makefile config.status: creating po/Makefile config.status: creating sgsnemu/Makefile config.status: creating tests/Makefile config.status: creating tests/lib/Makefile config.status: creating tests/gtp/Makefile config.status: creating libgtp.pc config.status: creating osmo-ggsn.spec config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing libtool commands config.status: executing depfiles commands osmo-ggsn Configuration: GTP Linux kernel support: no + make -j 8 echo 1.2.2.1-3e0b > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory ' Making all in lib make[2]: Entering directory ' CC getopt1.o CC getopt.o CC ippool.o CC lookup.o CC debug.o CC tun.o CC netdev.o CC in46_addr.o AR libmisc.a ar: `u' modifier ignored since `D' is the default (see `U') make[2]: Leaving directory ' Making all in gtp make[2]: Entering directory ' CC gtp.lo CC gtpie.lo CC lookupa.lo CC queue.lo CC pdp.lo CCLD libgtp.la ar: `u' modifier ignored since `D' is the default (see `U') make[2]: Leaving directory ' Making all in ggsn make[2]: Entering directory ' CC ggsn_vty.o CC ggsn.o CC icmpv6.o CC checksum.o ggsn.c: In function ?ggsn_gtp_fd_cb?: ggsn.c:892:9: error: ?rc? may be used uninitialized in this function [-Werror=maybe-uninitialized] return rc; ^~ cc1: all warnings being treated as errors Makefile:424: recipe for target 'ggsn.o' failed make[2]: *** [ggsn.o] Error 1 make[2]: Leaving directory ' Makefile:480: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:383: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:05:43 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:05:43 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-ggsn_=C2=BB_--enable-gtp?= =?UTF-8?Q?-linux,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#580?= Message-ID: <1243271351.398.1530295543222.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 114.59 KB...] aclocal: warning: couldn't open directory 'm4': No such file or directory libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:17: installing './compile' configure.ac:11: installing './config.guess' configure.ac:11: installing './config.sub' configure.ac:18: installing './install-sh' configure.ac:136: installing './missing' ggsn/Makefile.am: installing './depcomp' + ./configure --enable-sanitize --enable-werror --enable-gtp-linux checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu checking whether make supports nested variables... yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for a BSD-compatible install... /usr/bin/install -c checking for gawk... gawk checking how to run the C preprocessor... gcc -E checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for LIBGTPNL... yes checking for ANSI C header files... (cached) yes checking for sys/wait.h that is POSIX.1 compatible... yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for unistd.h... (cached) yes checking linux/if.h usability... no checking linux/if.h presence... yes configure: WARNING: linux/if.h: present but cannot be compiled configure: WARNING: linux/if.h: check for missing prerequisite headers? configure: WARNING: linux/if.h: see the Autoconf documentation configure: WARNING: linux/if.h: section "Present But Cannot Be Compiled" configure: WARNING: linux/if.h: proceeding with the compiler's result configure: WARNING: ## ------------------------------------------------- ## configure: WARNING: ## Report this to osmocom-net-gprs at lists.osmocom.org ## configure: WARNING: ## ------------------------------------------------- ## checking for linux/if.h... no checking net/if.h usability... yes checking net/if.h presence... yes checking for net/if.h... yes checking linux/if_tun.h usability... yes checking linux/if_tun.h presence... yes checking for linux/if_tun.h... yes checking net/if_tun.h usability... no checking net/if_tun.h presence... no checking for net/if_tun.h... no checking linux/netlink.h usability... yes checking linux/netlink.h presence... yes checking for linux/netlink.h... yes checking linux/rtnetlink.h usability... yes checking linux/rtnetlink.h presence... yes checking for linux/rtnetlink.h... yes checking for an ANSI C-conforming const... yes checking for mode_t... yes checking for size_t... yes checking whether time.h and sys/time.h may both be included... yes checking whether struct ifaliasreq exist... no checking whether struct ifreq.ifru_netmask exist... yes checking whether struct rt_msghdr exist... no checking whether struct iphdr exists... yes checking whether gcc needs -traditional... no checking for gethostbyname... yes checking for inet_ntoa... yes checking for memset... yes checking for select... yes checking for socket... yes checking for strdup... yes checking for strerror... yes checking for strtol... yes checking for inet_aton... yes checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking for getopt_long... yes checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking whether make sets $(MAKE)... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating ggsn/Makefile config.status: creating gtp/Makefile config.status: creating lib/Makefile config.status: creating intl/Makefile config.status: creating po/Makefile config.status: creating sgsnemu/Makefile config.status: creating tests/Makefile config.status: creating tests/lib/Makefile config.status: creating tests/gtp/Makefile config.status: creating libgtp.pc config.status: creating osmo-ggsn.spec config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing libtool commands config.status: executing depfiles commands osmo-ggsn Configuration: GTP Linux kernel support: yes + make -j 4 echo 1.2.2.1-3e0b > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory ' Making all in lib make[2]: Entering directory ' CC getopt1.o CC getopt.o CC ippool.o CC lookup.o CC tun.o CC debug.o CC in46_addr.o CC netdev.o CC gtp-kernel.o AR libmisc.a ar: `u' modifier ignored since `D' is the default (see `U') make[2]: Leaving directory ' Making all in gtp make[2]: Entering directory ' CC gtp.lo CC gtpie.lo CC lookupa.lo CC pdp.lo CC queue.lo CCLD libgtp.la ar: `u' modifier ignored since `D' is the default (see `U') make[2]: Leaving directory ' Making all in ggsn make[2]: Entering directory ' CC ggsn_vty.o CC ggsn.o CC icmpv6.o CC checksum.o ggsn.c: In function ?ggsn_gtp_fd_cb?: ggsn.c:892:9: error: ?rc? may be used uninitialized in this function [-Werror=maybe-uninitialized] return rc; ^~ cc1: all warnings being treated as errors Makefile:424: recipe for target 'ggsn.o' failed make[2]: *** [ggsn.o] Error 1 make[2]: Leaving directory ' Makefile:480: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:383: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:07:40 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:07:40 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable?= =?UTF-8?Q?-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3932?= In-Reply-To: <1911813473.394.1530295183093.JavaMail.jenkins@jenkins.osmocom.org> References: <1911813473.394.1530295183093.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <193629873.399.1530295660626.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 216.26 KB...] =============================== osmo-sgsn =============================== + cd /build + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/gprs/Makefile.am: installing './depcomp' tests/gprs/Makefile.am:8: warning: source file '$(top_srcdir)/src/gprs/gprs_utils.c' is in a subdirectory, tests/gprs/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --enable-sanitize --enable-werror --disable-iu --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes checking for LIBOSMOGSM... yes checking for LIBOSMOABIS... yes checking for LIBOSMOGB... yes checking for LIBOSMONETIF... yes checking for LIBGTP... yes checking for LIBCARES... yes checking for ANSI C header files... (cached) yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether struct tm has tm_gmtoff member... no checking for python2... yes checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating osmo-sgsn.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sgsn/Makefile config.status: creating src/Makefile config.status: creating src/gprs/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/gprs/Makefile config.status: creating tests/gbproxy/Makefile config.status: creating tests/sgsn/Makefile config.status: creating tests/oap/Makefile config.status: creating tests/gtphub/Makefile config.status: creating tests/xid/Makefile config.status: creating tests/sndcp_xid/Makefile config.status: creating tests/slhc/Makefile config.status: creating tests/v42bis/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.13-3226 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in sgsn make[4]: Entering directory '/build/include/osmocom/sgsn' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/sgsn' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in gprs make[3]: Entering directory '/build/src/gprs' CC gb_proxy_main.o CC gb_proxy.o CC gb_proxy_vty.o CC gb_proxy_tlli.o CC gb_proxy_ctrl.o CC gb_proxy_patch.o CC gprs_gb_parse.o CC gb_proxy_peer.o CC gprs_llc_parse.o CC crc24.o CC gprs_utils.o CC gprs_gmm.o gprs_gmm.c: In function 'gsm0408_gprs_rcvmsg_iu': gprs_gmm.c:2823:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" ^ CC gprs_sgsn.o CC gprs_sndcp.o CC gprs_sndcp_comp.o CC gprs_sndcp_dcomp.o gprs_sndcp_dcomp.c: In function 'gprs_sndcp_dcomp_init': gprs_sndcp_dcomp.c:105:1: error: control reaches end of non-void function [-Werror=return-type] } ^ CC gprs_sndcp_pcomp.o CC gprs_sndcp_vty.o gprs_sndcp_pcomp.c: In function 'gprs_sndcp_pcomp_init': gprs_sndcp_pcomp.c:70:1: error: control reaches end of non-void function [-Werror=return-type] } ^ CC gprs_sndcp_xid.o CC sgsn_main.o cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_dcomp.o' failed make[3]: *** [gprs_sndcp_dcomp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_pcomp.o' failed make[3]: *** [gprs_sndcp_pcomp.o] Error 1 make[3]: Leaving directory '/build/src/gprs' make[2]: *** [all-recursive] Error 1 Makefile:375: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' Makefile:489: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Makefile:397: recipe for target 'all' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:08:16 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:08:16 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--enable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4266?= In-Reply-To: <539470266.395.1530295207250.JavaMail.jenkins@jenkins.osmocom.org> References: <539470266.395.1530295207250.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1354210525.400.1530295696620.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 825.30 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_sdp.lo CC mgcp_osmux.lo CC mgcp_vty.lo CC mgcp_network.lo CC mgcp_protocol.lo CC mgcp_common.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_vty.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[2]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory '/build/deps/osmo-mgw' Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:08:18 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:08:18 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--disable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4266?= In-Reply-To: <13921320.396.1530295219275.JavaMail.jenkins@jenkins.osmocom.org> References: <13921320.396.1530295219275.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <378592866.401.1530295698616.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 734.40 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_vty.lo CC mgcp_osmux.lo CC mgcp_sdp.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_vty.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[2]: *** [install-recursive] Error 1 make[1]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:12:48 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:12:48 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mast?= =?UTF-8?Q?er-osmo-mgw_=C2=BB_--enable-mgcp-tr?= =?UTF-8?Q?anscoding,a2=3Ddefault,a3=3Ddefaul?= =?UTF-8?Q?t,osmocom-master-debian9_#1051?= In-Reply-To: <1093393000.390.1530295046653.JavaMail.jenkins@jenkins.osmocom.org> References: <1093393000.390.1530295046653.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1117321844.402.1530295968722.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 194.65 KB...] /bin/mkdir -p '/build/deps/install/stow/libosmo-netif/share/doc/libosmo-netif' /bin/mkdir -p '/build/deps/install/stow/libosmo-netif/lib/pkgconfig' /usr/bin/install -c -m 644 libosmo-netif.pc '/build/deps/install/stow/libosmo-netif/lib/pkgconfig' /usr/bin/install -c -m 644 ./doc/html.tar '/build/deps/install/stow/libosmo-netif/share/doc/libosmo-netif' make install-data-hook make[4]: Entering directory '/build/deps/libosmo-netif' cd /build/deps/install/stow/libosmo-netif/share/doc/libosmo-netif && tar xf html.tar && rm -f html.tar make[4]: Leaving directory '/build/deps/libosmo-netif' make[3]: Leaving directory '/build/deps/libosmo-netif' make[2]: Leaving directory '/build/deps/libosmo-netif' make[1]: Leaving directory '/build/deps/libosmo-netif' + STOW_DIR=/build/deps/install/stow stow --restow libosmo-netif Possible precedence issue with control flow operator at /usr/share/perl5/Stow.pm line 1736. + set +x =============================== osmo-mgw =============================== + cd /build + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/libosmo-legacy-mgcp/Makefile.am: installing './depcomp' + ./configure --enable-mgcp-transcoding --enable-vty-tests --enable-external-tests --enable-werror checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking for library containing gsm_create... -lgsm checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/dist-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.25-8838 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in legacy_mgcp make[4]: Entering directory '/build/include/osmocom/legacy_mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/legacy_mgcp' Making all in mgcp_client make[4]: Entering directory '/build/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make all-am make[5]: Entering directory '/build/include/osmocom/mgcp_client' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/include/osmocom/mgcp_client' Making all in mgcp make[4]: Entering directory '/build/include/osmocom/mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/mgcp' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in libosmo-legacy-mgcp make[3]: Entering directory '/build/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_osmux.lo CC mgcp_vty.lo CC mgcp_sdp.lo CC mgcp_transcode.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_transcode.c: In function 'source_for_dest': mgcp_transcode.c:441:1: error: control reaches end of non-void function [-Werror=return-type] } ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ cc1: all warnings being treated as errors make[3]: *** [mgcp_transcode.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... Makefile:495: recipe for target 'mgcp_transcode.lo' failed make[3]: Leaving directory '/build/src/libosmo-legacy-mgcp' Makefile:393: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' make[2]: *** [all-recursive] Error 1 Makefile:491: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make[1]: *** [all-recursive] Error 1 Makefile:397: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:13:13 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:13:13 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_maste?= =?UTF-8?Q?r-osmo-mgw_=C2=BB_--disable-mgcp-tr?= =?UTF-8?Q?anscoding,a2=3Ddefault,a3=3Ddefaul?= =?UTF-8?Q?t,osmocom-master-debian9_#1051?= In-Reply-To: <1703304735.391.1530295054832.JavaMail.jenkins@jenkins.osmocom.org> References: <1703304735.391.1530295054832.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2026429883.403.1530295994025.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 181.34 KB...] + autoreconf --install --force =============================== osmo-mgw =============================== libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/libosmo-legacy-mgcp/Makefile.am: installing './depcomp' + ./configure --disable-mgcp-transcoding --enable-vty-tests --enable-external-tests --enable-werror checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking for python... /usr/bin/python checking for python version... 2.7 checking for python platform... linux2 checking for python script directory... ${prefix}/lib/python2.7/dist-packages checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.25-8838 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in legacy_mgcp make[4]: Entering directory '/build/include/osmocom/legacy_mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/legacy_mgcp' Making all in mgcp_client make[4]: Entering directory '/build/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make all-am make[5]: Entering directory '/build/include/osmocom/mgcp_client' make[5]: Nothing to be done for 'all-am'. make[5]: Leaving directory '/build/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/include/osmocom/mgcp_client' Making all in mgcp make[4]: Entering directory '/build/include/osmocom/mgcp' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/mgcp' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in libosmo-legacy-mgcp make[3]: Entering directory '/build/src/libosmo-legacy-mgcp' CC mgcp_network.lo CC mgcp_vty.lo CC mgcp_sdp.lo CC mgcp_protocol.lo CC mgcp_osmux.lo CC mgcp_common.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[3]: Leaving directory '/build/src/libosmo-legacy-mgcp' Making all in libosmo-mgcp-client make[3]: Entering directory '/build/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_vty.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: all warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/src/libosmo-mgcp-client' Makefile:393: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' make[2]: *** [all-recursive] Error 1 Makefile:491: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Makefile:397: recipe for target 'all' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:13:15 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:13:15 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable?= =?UTF-8?Q?-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3933?= In-Reply-To: <193629873.399.1530295660626.JavaMail.jenkins@jenkins.osmocom.org> References: <193629873.399.1530295660626.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1362005189.404.1530295995375.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 200.29 KB...] /usr/bin/install -c -m 644 libgtp.pc '/build/deps/install/stow/osmo-ggsn/lib/pkgconfig' make[3]: Leaving directory '/build/deps/osmo-ggsn' make[2]: Leaving directory '/build/deps/osmo-ggsn' make[1]: Leaving directory '/build/deps/osmo-ggsn' + STOW_DIR=/build/deps/install/stow stow --restow osmo-ggsn Possible precedence issue with control flow operator at /usr/share/perl5/Stow.pm line 1736. + enable_werror= + '[' x--disable-iu = x--enable-iu ']' + enable_werror=--enable-werror + set +x + cd /build =============================== osmo-sgsn =============================== + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/gprs/Makefile.am: installing './depcomp' tests/gprs/Makefile.am:8: warning: source file '$(top_srcdir)/src/gprs/gprs_utils.c' is in a subdirectory, tests/gprs/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --enable-sanitize --enable-werror --disable-iu --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes checking for LIBOSMOGSM... yes checking for LIBOSMOABIS... yes checking for LIBOSMOGB... yes checking for LIBOSMONETIF... yes checking for LIBGTP... yes checking for LIBCARES... yes checking for ANSI C header files... (cached) yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether struct tm has tm_gmtoff member... no checking for python2... yes checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating osmo-sgsn.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sgsn/Makefile config.status: creating src/Makefile config.status: creating src/gprs/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/gprs/Makefile config.status: creating tests/gbproxy/Makefile config.status: creating tests/sgsn/Makefile config.status: creating tests/oap/Makefile config.status: creating tests/gtphub/Makefile config.status: creating tests/xid/Makefile config.status: creating tests/sndcp_xid/Makefile config.status: creating tests/slhc/Makefile config.status: creating tests/v42bis/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 4 echo 1.3.0.13-3226 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in sgsn make[4]: Entering directory '/build/include/osmocom/sgsn' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/sgsn' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in gprs make[3]: Entering directory '/build/src/gprs' CC gb_proxy.o CC gb_proxy_main.o CC gb_proxy_vty.o CC gb_proxy_ctrl.o CC gb_proxy_patch.o CC gb_proxy_tlli.o CC gb_proxy_peer.o CC gprs_gb_parse.o CC gprs_llc_parse.o CC crc24.o CC gprs_utils.o CC gprs_gmm.o CC gprs_sgsn.o gprs_gmm.c: In function 'gsm0408_gprs_rcvmsg_iu': gprs_gmm.c:2823:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" ^ CC gprs_sndcp.o CC gprs_sndcp_comp.o CC gprs_sndcp_dcomp.o gprs_sndcp_dcomp.c: In function 'gprs_sndcp_dcomp_init': gprs_sndcp_dcomp.c:105:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_dcomp.o' failed make[3]: *** [gprs_sndcp_dcomp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/src/gprs' make[2]: *** [all-recursive] Error 1 Makefile:375: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' make[1]: *** [all-recursive] Error 1 Makefile:489: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' make: *** [all] Error 2 Makefile:397: recipe for target 'all' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:15:38 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:15:38 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--disable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4267?= In-Reply-To: <378592866.401.1530295698616.JavaMail.jenkins@jenkins.osmocom.org> References: <378592866.401.1530295698616.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1592747394.405.1530296138499.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 713.95 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_vty.lo CC mgcp_osmux.lo CC mgcp_sdp.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_vty.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' make[2]: *** [install-recursive] Error 1 Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' make[1]: *** [install-recursive] Error 1 Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:15:40 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:15:40 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable?= =?UTF-8?Q?-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3934?= In-Reply-To: <1362005189.404.1530295995375.JavaMail.jenkins@jenkins.osmocom.org> References: <1362005189.404.1530295995375.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <510346575.406.1530296140833.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 217.06 KB...] + cd /build + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/gprs/Makefile.am: installing './depcomp' tests/gprs/Makefile.am:8: warning: source file '$(top_srcdir)/src/gprs/gprs_utils.c' is in a subdirectory, tests/gprs/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --enable-sanitize --enable-werror --disable-iu --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes checking for LIBOSMOGSM... yes checking for LIBOSMOABIS... yes checking for LIBOSMOGB... yes checking for LIBOSMONETIF... yes checking for LIBGTP... yes checking for LIBCARES... yes checking for ANSI C header files... (cached) yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether struct tm has tm_gmtoff member... no checking for python2... yes checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating osmo-sgsn.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sgsn/Makefile config.status: creating src/Makefile config.status: creating src/gprs/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/gprs/Makefile config.status: creating tests/gbproxy/Makefile config.status: creating tests/sgsn/Makefile config.status: creating tests/oap/Makefile config.status: creating tests/gtphub/Makefile config.status: creating tests/xid/Makefile config.status: creating tests/sndcp_xid/Makefile config.status: creating tests/slhc/Makefile config.status: creating tests/v42bis/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.13-3226 > .version-t && mv .version-t .version (CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /build/missing autoheader) rm -f stamp-h1 touch bscconfig.h.in cd . && /bin/bash ./config.status bscconfig.h config.status: creating bscconfig.h config.status: bscconfig.h is unchanged make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in sgsn make[4]: Entering directory '/build/include/osmocom/sgsn' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/sgsn' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in gprs make[3]: Entering directory '/build/src/gprs' CC gb_proxy.o CC gb_proxy_main.o CC gb_proxy_tlli.o CC gb_proxy_ctrl.o CC gb_proxy_vty.o CC gprs_gb_parse.o CC gb_proxy_patch.o CC gb_proxy_peer.o CC gprs_llc_parse.o CC crc24.o CC gprs_utils.o CC gprs_gmm.o gprs_gmm.c: In function 'gsm0408_gprs_rcvmsg_iu': gprs_gmm.c:2823:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" ^ CC gprs_sgsn.o CC gprs_sndcp.o CC gprs_sndcp_comp.o CC gprs_sndcp_dcomp.o CC gprs_sndcp_pcomp.o gprs_sndcp_dcomp.c: In function 'gprs_sndcp_dcomp_init': gprs_sndcp_dcomp.c:105:1: error: control reaches end of non-void function [-Werror=return-type] } ^ gprs_sndcp_pcomp.c: In function 'gprs_sndcp_pcomp_init': gprs_sndcp_pcomp.c:70:1: error: control reaches end of non-void function [-Werror=return-type] } ^ CC gprs_sndcp_vty.o cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_dcomp.o' failed make[3]: *** [gprs_sndcp_dcomp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... cc1: all warnings being treated as errors make[3]: *** [gprs_sndcp_pcomp.o] Error 1 Makefile:596: recipe for target 'gprs_sndcp_pcomp.o' failed make[3]: Leaving directory '/build/src/gprs' Makefile:375: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 Makefile:489: recipe for target 'all-recursive' failed make[1]: Leaving directory '/build' Makefile:397: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:15:46 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:15:46 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--enable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4267?= In-Reply-To: <1354210525.400.1530295696620.JavaMail.jenkins@jenkins.osmocom.org> References: <1354210525.400.1530295696620.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1433939567.407.1530296146733.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 825.97 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_sdp.lo CC mgcp_network.lo CC mgcp_vty.lo CC mgcp_protocol.lo CC mgcp_osmux.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client_vty.lo CC mgcp_client.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[2]: *** [install-recursive] Error 1 make[1]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:16:20 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:16:20 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-bsc_=C2=BB_a1=3Ddefaul?= =?UTF-8?Q?t,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#2611?= In-Reply-To: <2070263791.393.1530295138928.JavaMail.jenkins@jenkins.osmocom.org> References: <2070263791.393.1530295138928.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <244905475.408.1530296180984.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 655.64 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_protocol.lo CC mgcp_common.lo CC mgcp_sdp.lo CC mgcp_osmux.lo CC mgcp_network.lo CC mgcp_vty.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client_fsm.lo CC mgcp_client_vty.lo CC mgcp_client.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' make[2]: *** [install-recursive] Error 1 Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[1]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:21:59 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:21:59 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--disable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4268?= In-Reply-To: <1592747394.405.1530296138499.JavaMail.jenkins@jenkins.osmocom.org> References: <1592747394.405.1530296138499.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <137111347.409.1530296519207.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 714.59 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 4 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_protocol.lo CC mgcp_network.lo CC mgcp_vty.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CC mgcp_osmux.lo CC mgcp_sdp.lo CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_fsm.lo CC mgcp_client_vty.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[2]: *** [install-recursive] Error 1 make[1]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' Makefile:790: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:22:00 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:22:00 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable?= =?UTF-8?Q?-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3935?= In-Reply-To: <510346575.406.1530296140833.JavaMail.jenkins@jenkins.osmocom.org> References: <510346575.406.1530296140833.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1865814981.410.1530296520467.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 217.05 KB...] /usr/bin/install -c -m 644 libgtp.pc '/build/deps/install/stow/osmo-ggsn/lib/pkgconfig' make[3]: Leaving directory '/build/deps/osmo-ggsn' make[2]: Leaving directory '/build/deps/osmo-ggsn' make[1]: Leaving directory '/build/deps/osmo-ggsn' + STOW_DIR=/build/deps/install/stow stow --restow osmo-ggsn Possible precedence issue with control flow operator at /usr/share/perl5/Stow.pm line 1736. + enable_werror= + '[' x--disable-iu = x--enable-iu ']' + enable_werror=--enable-werror + set +x =============================== osmo-sgsn =============================== + cd /build + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' src/gprs/Makefile.am: installing './depcomp' tests/gprs/Makefile.am:8: warning: source file '$(top_srcdir)/src/gprs/gprs_utils.c' is in a subdirectory, tests/gprs/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --enable-sanitize --enable-werror --disable-iu --enable-external-tests checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOCTRL... yes checking for LIBOSMOGSM... yes checking for LIBOSMOABIS... yes checking for LIBOSMOGB... yes checking for LIBOSMONETIF... yes checking for LIBGTP... yes checking for LIBCARES... yes checking for ANSI C header files... (cached) yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether struct tm has tm_gmtoff member... no checking for python2... yes checking for osmotestvty.py... yes checking whether to enable VTY/CTRL tests... yes CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating osmo-sgsn.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sgsn/Makefile config.status: creating src/Makefile config.status: creating src/gprs/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/gprs/Makefile config.status: creating tests/gbproxy/Makefile config.status: creating tests/sgsn/Makefile config.status: creating tests/oap/Makefile config.status: creating tests/gtphub/Makefile config.status: creating tests/xid/Makefile config.status: creating tests/sndcp_xid/Makefile config.status: creating tests/slhc/Makefile config.status: creating tests/v42bis/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 echo 1.3.0.13-3226 > .version-t && mv .version-t .version make all-recursive make[1]: Entering directory '/build' Making all in doc make[2]: Entering directory '/build/doc' Making all in examples make[3]: Entering directory '/build/doc/examples' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/build/doc/examples' make[3]: Entering directory '/build/doc' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/doc' make[2]: Leaving directory '/build/doc' Making all in include make[2]: Entering directory '/build/include' Making all in osmocom make[3]: Entering directory '/build/include/osmocom' Making all in sgsn make[4]: Entering directory '/build/include/osmocom/sgsn' make[4]: Nothing to be done for 'all'. make[4]: Leaving directory '/build/include/osmocom/sgsn' make[4]: Entering directory '/build/include/osmocom' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/build/include/osmocom' make[3]: Leaving directory '/build/include/osmocom' make[3]: Entering directory '/build/include' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/build/include' make[2]: Leaving directory '/build/include' Making all in src make[2]: Entering directory '/build/src' Making all in gprs make[3]: Entering directory '/build/src/gprs' CC gb_proxy_tlli.o CC gb_proxy_ctrl.o CC gprs_gb_parse.o CC gb_proxy_peer.o CC gb_proxy.o CC gb_proxy_vty.o CC gb_proxy_main.o CC gb_proxy_patch.o CC gprs_llc_parse.o CC crc24.o CC gprs_utils.o CC gprs_gmm.o gprs_gmm.c: In function 'gsm0408_gprs_rcvmsg_iu': gprs_gmm.c:2823:9: note: #pragma message: set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS? #pragma message "set drop_cipherable arg for gsm0408_rcv_gmm() from IuPS?" ^ CC gprs_sgsn.o CC gprs_sndcp.o CC gprs_sndcp_comp.o CC gprs_sndcp_dcomp.o gprs_sndcp_dcomp.c: In function 'gprs_sndcp_dcomp_init': gprs_sndcp_dcomp.c:105:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1: all warnings being treated as errors Makefile:596: recipe for target 'gprs_sndcp_dcomp.o' failed make[3]: *** [gprs_sndcp_dcomp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/src/gprs' Makefile:375: recipe for target 'all-recursive' failed make[2]: Leaving directory '/build/src' make[2]: *** [all-recursive] Error 1 Makefile:489: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/build' make: *** [all] Error 2 Makefile:397: recipe for target 'all' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 18:22:29 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:22:29 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--enable-?= =?UTF-8?Q?iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4268?= In-Reply-To: <1433939567.407.1530296146733.JavaMail.jenkins@jenkins.osmocom.org> References: <1433939567.407.1530296146733.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <812175141.411.1530296549131.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 826.61 KB...] checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for library containing dlopen... -ldl checking for LIBOSMOCORE... yes checking for LIBOSMOGSM... yes checking for LIBOSMOVTY... yes checking for LIBOSMONETIF... yes checking if gcc supports -fvisibility=hidden... yes checking whether C compiler accepts -Werror=implicit... yes checking whether C compiler accepts -Werror=maybe-uninitialized... yes checking whether C compiler accepts -Werror=memset-transposed-args... yes checking whether C compiler accepts -Werror=null-dereference... no checking whether C compiler accepts -Werror=sizeof-array-argument... no checking whether C compiler accepts -Werror=sizeof-pointer-memaccess... yes checking whether to enable code coverage support... no checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-pointer-memaccess" CPPFLAGS="" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-legacy-mgcp.pc config.status: creating libosmo-mgcp-client.pc config.status: creating include/Makefile config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/legacy_mgcp/Makefile config.status: creating include/osmocom/mgcp_client/Makefile config.status: creating include/osmocom/mgcp/Makefile config.status: creating src/Makefile config.status: creating src/libosmo-legacy-mgcp/Makefile config.status: creating src/libosmo-mgcp-client/Makefile config.status: creating src/libosmo-mgcp/Makefile config.status: creating src/osmo-bsc_mgcp/Makefile config.status: creating src/osmo-mgw/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating tests/legacy_mgcp/Makefile config.status: creating tests/mgcp_client/Makefile config.status: creating tests/mgcp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating contrib/Makefile config.status: creating Makefile config.status: creating bscconfig.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.3.0.25-8838 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/osmo-mgw' Making install in doc make[2]: Entering directory '/build/deps/osmo-mgw/doc' Making install in examples make[3]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Entering directory '/build/deps/osmo-mgw/doc/examples' make[4]: Nothing to be done for 'install-exec-am'. make install-data-hook make[5]: Entering directory '/build/deps/osmo-mgw/doc/examples' for f in $(find . -name '*.cfg*' | sed -e 's,^.,,'); do \ j="/build/deps/install/stow/osmo-mgw/share/doc/osmo-mgw/examples/$f" && \ mkdir -p "$(dirname $j)" && \ /usr/bin/install -c -m 644 ./$f $j; \ done make[5]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[4]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Leaving directory '/build/deps/osmo-mgw/doc/examples' make[3]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Entering directory '/build/deps/osmo-mgw/doc' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/osmo-mgw/doc' make[3]: Leaving directory '/build/deps/osmo-mgw/doc' make[2]: Leaving directory '/build/deps/osmo-mgw/doc' Making install in include make[2]: Entering directory '/build/deps/osmo-mgw/include' Making install in osmocom make[3]: Entering directory '/build/deps/osmo-mgw/include/osmocom' Making install in legacy_mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/legacy_mgcp' Making install in mgcp_client make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' echo -e "/*\n\n DO NOT EDIT THIS FILE!\n THIS IS OVERWRITTEN DURING BUILD\n This is an automatic copy of \n\n */" > mgcp_common.h cat ../../../include/osmocom/mgcp/mgcp_common.h >> mgcp_common.h make install-am make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[6]: Nothing to be done for 'install-exec-am'. make[6]: Nothing to be done for 'install-data-am'. make[6]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp_client' Making install in mgcp make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom/mgcp' make[4]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Entering directory '/build/deps/osmo-mgw/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[4]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Leaving directory '/build/deps/osmo-mgw/include/osmocom' make[3]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Entering directory '/build/deps/osmo-mgw/include' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /usr/bin/install -c -m 644 osmocom/mgcp_client/mgcp_client.h osmocom/mgcp_client/mgcp_client_fsm.h osmocom/mgcp_client/mgcp_common.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp_client' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /usr/bin/install -c -m 644 osmocom/mgcp/mgcp.h osmocom/mgcp/mgcp_common.h osmocom/mgcp/mgcp_internal.h osmocom/mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/mgcp' /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' /usr/bin/install -c -m 644 osmocom/legacy_mgcp/mgcp.h osmocom/legacy_mgcp/mgcp_internal.h osmocom/legacy_mgcp/osmux.h '/build/deps/install/stow/osmo-mgw/include/osmocom/legacy_mgcp' make[4]: Leaving directory '/build/deps/osmo-mgw/include' make[3]: Leaving directory '/build/deps/osmo-mgw/include' make[2]: Leaving directory '/build/deps/osmo-mgw/include' Making install in src make[2]: Entering directory '/build/deps/osmo-mgw/src' Making install in libosmo-legacy-mgcp make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' CC mgcp_common.lo CC mgcp_network.lo CC mgcp_sdp.lo CC mgcp_protocol.lo CC mgcp_vty.lo CC mgcp_osmux.lo mgcp_network.c:44:2: warning: #warning "Make use of the rtp proxy code" [-Wcpp] #warning "Make use of the rtp proxy code" ^ mgcp_network.c: In function 'receive_from': mgcp_network.c:765:3: warning: #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." [-Wcpp] #warning "Slight spec violation. With connection mode recvonly we should attempt to forward." ^ CCLD libosmo-legacy-mgcp.la make[4]: Entering directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/osmo-mgw/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmo-legacy-mgcp.la '/build/deps/install/stow/osmo-mgw/lib' libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.so.0.0.1 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.so.0.0.1 libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0 || { rm -f libosmo-legacy-mgcp.so.0 && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so.0; }; }) libtool: install: (cd /build/deps/install/stow/osmo-mgw/lib && { ln -s -f libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so || { rm -f libosmo-legacy-mgcp.so && ln -s libosmo-legacy-mgcp.so.0.0.1 libosmo-legacy-mgcp.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.lai /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.la libtool: install: /usr/bin/install -c .libs/libosmo-legacy-mgcp.a /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: chmod 644 /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: install: ranlib /build/deps/install/stow/osmo-mgw/lib/libosmo-legacy-mgcp.a libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/osmo-mgw/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/osmo-mgw/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-legacy-mgcp' Making install in libosmo-mgcp-client make[3]: Entering directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' CC mgcp_client.lo CC mgcp_client_vty.lo CC mgcp_client_fsm.lo mgcp_client_fsm.c: In function 'fsm_ready_cb': mgcp_client_fsm.c:349:5: error: 'rc' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (rc < 0) { ^ In file included from mgcp_client_fsm.c:24:0: /build/deps/install/stow/libosmocore/include/osmocom/core/fsm.h:180:2: error: 'new_state' may be used uninitialized in this function [-Werror=maybe-uninitialized] _osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \ ^ mgcp_client_fsm.c:321:11: note: 'new_state' was declared here uint32_t new_state; ^ mgcp_client_fsm.c:346:32: error: 'msg' may be used uninitialized in this function [-Werror=maybe-uninitialized] mgcp_ctx->mgw_pending_trans = mgcp_msg_trans_id(msg); ^ cc1: some warnings being treated as errors Makefile:475: recipe for target 'mgcp_client_fsm.lo' failed make[3]: *** [mgcp_client_fsm.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/osmo-mgw/src/libosmo-mgcp-client' make[2]: *** [install-recursive] Error 1 Makefile:393: recipe for target 'install-recursive' failed make[2]: Leaving directory '/build/deps/osmo-mgw/src' make[1]: *** [install-recursive] Error 1 Makefile:491: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-mgw' make: *** [install] Error 2 Makefile:790: recipe for target 'install' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:24:00 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 18:24:00 +0000 Subject: Change in gapk[master]: app_osmo_gapk.c: use recommended osmo_init_logging2() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9784 ) Change subject: app_osmo_gapk.c: use recommended osmo_init_logging2() ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic30a924571feb273274587998e87c86b688c3544 Gerrit-Change-Number: 9784 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 29 Jun 2018 18:24:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:24:42 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 18:24:42 +0000 Subject: Change in gapk[master]: procqueue.c: rely on item type instead of its position In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9785 ) Change subject: procqueue.c: rely on item type instead of its position ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I770a1d02273d9d8301a9e4ec72426fb8f4060277 Gerrit-Change-Number: 9785 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 29 Jun 2018 18:24:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:24:47 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 18:24:47 +0000 Subject: Change in gapk[master]: Implement ECU (Error Concealment Unit) block for FR In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/9786 ) Change subject: Implement ECU (Error Concealment Unit) block for FR ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/9786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia929ee04f6be3d842c6ef7bc40cce0fdab16e90a Gerrit-Change-Number: 9786 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 29 Jun 2018 18:24:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:28:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 18:28:01 +0000 Subject: Change in libosmocore[master]: osmo_panic(): Annotate as __attribute__ ((noreturn)) Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9788 Change subject: osmo_panic(): Annotate as __attribute__ ((noreturn)) ...................................................................... osmo_panic(): Annotate as __attribute__ ((noreturn)) In Change-Id I5a70eb65952cbc329bf96eacb428b07a9da32433 we redirected all OSMO_ASSERT() via osmo_panic(). However, this caused various applications to have build failures, as OSMO_ASSERT() now appeared to be able to return to the call site. Let's inform the compiler explicitly that there's no return from osmo_panic(). Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 --- M include/osmocom/core/panic.h M src/panic.c 2 files changed, 12 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/9788/1 diff --git a/include/osmocom/core/panic.h b/include/osmocom/core/panic.h index 2bb4240..e6a5bb5 100644 --- a/include/osmocom/core/panic.h +++ b/include/osmocom/core/panic.h @@ -7,9 +7,9 @@ #include /*! panic handler callback function type */ -typedef void (*osmo_panic_handler_t)(const char *fmt, va_list args); +typedef void (*osmo_panic_handler_t)(const char *fmt, va_list args) __attribute__((noreturn)); -extern void osmo_panic(const char *fmt, ...); +extern void osmo_panic(const char *fmt, ...) __attribute__ ((noreturn)); extern void osmo_set_panic_handler(osmo_panic_handler_t h); /*! @} */ diff --git a/src/panic.c b/src/panic.c index a08f89f..61d1840 100644 --- a/src/panic.c +++ b/src/panic.c @@ -27,6 +27,7 @@ * @{ * \file panic.c */ +#include #include #include @@ -50,6 +51,8 @@ #else +static void osmo_panic_default(const char *fmt, va_list args) __attribute__ ((noreturn)); + static void osmo_panic_default(const char *fmt, va_list args) { while (1); @@ -83,8 +86,14 @@ osmo_panic_default(fmt, args); va_end(args); + + /* not reached, but make compiler believe we really never return */ +#ifndef PANIC_INFLOOP + exit(2342); +#else + while (1) ; +#endif } - /*! Set the panic handler * \param[in] h New panic handler function -- To view, visit https://gerrit.osmocom.org/9788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 Gerrit-Change-Number: 9788 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:33:02 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 18:33:02 +0000 Subject: Change in libosmocore[master]: osmo_panic(): Annotate as __attribute__ ((noreturn)) In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/9788 to look at the new patch set (#2). Change subject: osmo_panic(): Annotate as __attribute__ ((noreturn)) ...................................................................... osmo_panic(): Annotate as __attribute__ ((noreturn)) In Change-Id I5a70eb65952cbc329bf96eacb428b07a9da32433 we redirected all OSMO_ASSERT() via osmo_panic(). However, this caused various applications to have build failures, as OSMO_ASSERT() now appeared to be able to return to the call site. Let's inform the compiler explicitly that there's no return from osmo_panic(). Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 --- M include/osmocom/core/panic.h M src/panic.c 2 files changed, 9 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/9788/2 -- To view, visit https://gerrit.osmocom.org/9788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 Gerrit-Change-Number: 9788 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:36:06 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 18:36:06 +0000 Subject: Change in libosmocore[master]: osmo_panic(): Annotate as __attribute__ ((noreturn)) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9788 ) Change subject: osmo_panic(): Annotate as __attribute__ ((noreturn)) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 Gerrit-Change-Number: 9788 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 18:36:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:36:07 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 18:36:07 +0000 Subject: Change in libosmocore[master]: osmo_panic(): Annotate as __attribute__ ((noreturn)) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9788 ) Change subject: osmo_panic(): Annotate as __attribute__ ((noreturn)) ...................................................................... osmo_panic(): Annotate as __attribute__ ((noreturn)) In Change-Id I5a70eb65952cbc329bf96eacb428b07a9da32433 we redirected all OSMO_ASSERT() via osmo_panic(). However, this caused various applications to have build failures, as OSMO_ASSERT() now appeared to be able to return to the call site. Let's inform the compiler explicitly that there's no return from osmo_panic(). Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 --- M include/osmocom/core/panic.h M src/panic.c 2 files changed, 9 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/core/panic.h b/include/osmocom/core/panic.h index 2bb4240..c4006dc 100644 --- a/include/osmocom/core/panic.h +++ b/include/osmocom/core/panic.h @@ -9,7 +9,7 @@ /*! panic handler callback function type */ typedef void (*osmo_panic_handler_t)(const char *fmt, va_list args); -extern void osmo_panic(const char *fmt, ...); +extern void osmo_panic(const char *fmt, ...) __attribute__ ((noreturn)); extern void osmo_set_panic_handler(osmo_panic_handler_t h); /*! @} */ diff --git a/src/panic.c b/src/panic.c index a08f89f..072f458 100644 --- a/src/panic.c +++ b/src/panic.c @@ -27,6 +27,7 @@ * @{ * \file panic.c */ +#include #include #include @@ -83,8 +84,14 @@ osmo_panic_default(fmt, args); va_end(args); + + /* not reached, but make compiler believe we really never return */ +#ifndef PANIC_INFLOOP + exit(2342); +#else + while (1) ; +#endif } - /*! Set the panic handler * \param[in] h New panic handler function -- To view, visit https://gerrit.osmocom.org/9788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8adf4c7b0ee6a4581cef8dd4e9f6a1dfde70ee55 Gerrit-Change-Number: 9788 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 29 18:44:05 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:44:05 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_norma?= =?UTF-8?Q?l_:_master-osmo-ggsn_=C2=BB_--enabl?= =?UTF-8?Q?e-gtp-linux,a2=3Ddefault,a3=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#581?= In-Reply-To: <1243271351.398.1530295543222.JavaMail.jenkins@jenkins.osmocom.org> References: <1243271351.398.1530295543222.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1888840192.412.1530297845855.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Fri Jun 29 18:44:08 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:44:08 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_norma?= =?UTF-8?Q?l_:_master-osmo-ggsn_=C2=BB_--disabl?= =?UTF-8?Q?e-gtp-linux,a2=3Ddefault,a3=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#581?= In-Reply-To: <1941668435.397.1530295533897.JavaMail.jenkins@jenkins.osmocom.org> References: <1941668435.397.1530295533897.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <459045878.413.1530297848269.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Fri Jun 29 18:49:55 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:49:55 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_?= =?UTF-8?Q?:_master-osmo-mgw_=C2=BB_--disable-mg?= =?UTF-8?Q?cp-transcoding,a2=3Ddefault,a3=3Ddef?= =?UTF-8?Q?ault,osmocom-master-debian9_#1052?= In-Reply-To: <2026429883.403.1530295994025.JavaMail.jenkins@jenkins.osmocom.org> References: <2026429883.403.1530295994025.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <863862967.414.1530298195763.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Fri Jun 29 18:49:59 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:49:59 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-sgsn_=C2=BB_--dis?= =?UTF-8?Q?able-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3936?= In-Reply-To: <1865814981.410.1530296520467.JavaMail.jenkins@jenkins.osmocom.org> References: <1865814981.410.1530296520467.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1528863560.415.1530298199700.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Fri Jun 29 18:49:59 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:49:59 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_?= =?UTF-8?Q?:_master-osmo-mgw_=C2=BB_--enable-mgc?= =?UTF-8?Q?p-transcoding,a2=3Ddefault,a3=3Ddefa?= =?UTF-8?Q?ult,osmocom-master-debian9_#1052?= In-Reply-To: <1117321844.402.1530295968722.JavaMail.jenkins@jenkins.osmocom.org> References: <1117321844.402.1530295968722.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2007257855.416.1530298199997.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:52:22 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 18:52:22 +0000 Subject: Change in gapk[master]: app_osmo_gapk.c: use recommended osmo_init_logging2() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/9784 ) Change subject: app_osmo_gapk.c: use recommended osmo_init_logging2() ...................................................................... app_osmo_gapk.c: use recommended osmo_init_logging2() The osmo_init_logging() was deprecated. Change-Id: Ic30a924571feb273274587998e87c86b688c3544 --- M src/app_osmo_gapk.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Verified diff --git a/src/app_osmo_gapk.c b/src/app_osmo_gapk.c index 729ea25..a4b93ef 100644 --- a/src/app_osmo_gapk.c +++ b/src/app_osmo_gapk.c @@ -716,7 +716,7 @@ osmo_gapk_set_talloc_ctx(app_root_ctx); /* Init Osmocom logging framework */ - osmo_init_logging(&gapk_log_info); + osmo_init_logging2(app_root_ctx, &gapk_log_info); /* and GAPK logging wrapper */ osmo_gapk_log_init(DAPP); -- To view, visit https://gerrit.osmocom.org/9784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic30a924571feb273274587998e87c86b688c3544 Gerrit-Change-Number: 9784 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:52:23 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 18:52:23 +0000 Subject: Change in gapk[master]: procqueue.c: rely on item type instead of its position In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/9785 ) Change subject: procqueue.c: rely on item type instead of its position ...................................................................... procqueue.c: rely on item type instead of its position In the osmo_gapk_pq_prepare() we do allocate an item's buffer conditionally, only when its type is not sink, because an output buffer is not required for sink. Let's use a bit more elegant way to check, whether item is sink. Change-Id: I770a1d02273d9d8301a9e4ec72426fb8f4060277 --- M src/procqueue.c 1 file changed, 15 insertions(+), 13 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Verified diff --git a/src/procqueue.c b/src/procqueue.c index 78dee4d..28ad1cf 100644 --- a/src/procqueue.c +++ b/src/procqueue.c @@ -159,25 +159,27 @@ osmo_gapk_pq_prepare(struct osmo_gapk_pq *pq) { struct osmo_gapk_pq_item *item; + unsigned int buf_size; /* Iterate over all items in queue */ llist_for_each_entry(item, &pq->items, list) { /* The sink item doesn't require an output buffer */ - if (item->list.next != &pq->items) { - unsigned int buf_size = item->len_out; + if (item->type == OSMO_GAPK_ITEM_TYPE_SINK) + continue; - /** - * Use maximum known buffer size - * for variable-length codec output - */ - if (!buf_size) - buf_size = VAR_BUF_SIZE; + buf_size = item->len_out; - /* Allocate memory for an output buffer */ - item->buf = talloc_named_const(item, buf_size, ".buffer"); - if (!item->buf) - return -ENOMEM; - } + /** + * Use maximum known buffer size + * for variable-length codec output + */ + if (!buf_size) + buf_size = VAR_BUF_SIZE; + + /* Allocate memory for an output buffer */ + item->buf = talloc_named_const(item, buf_size, ".buffer"); + if (!item->buf) + return -ENOMEM; } return 0; -- To view, visit https://gerrit.osmocom.org/9785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I770a1d02273d9d8301a9e4ec72426fb8f4060277 Gerrit-Change-Number: 9785 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 18:52:23 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 29 Jun 2018 18:52:23 +0000 Subject: Change in gapk[master]: Implement ECU (Error Concealment Unit) block for FR In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/9786 ) Change subject: Implement ECU (Error Concealment Unit) block for FR ...................................................................... Implement ECU (Error Concealment Unit) block for FR In I06a21f60db01bfe1c2b838f93866fad1d53fdcd1 the Error Concealment Unit API for FR codec was introduced. This change implements a corresponding block. Note: at the moment, only Full Rate is supported by the ECU API. Change-Id: Ia929ee04f6be3d842c6ef7bc40cce0fdab16e90a --- M include/osmocom/gapk/codecs.h M include/osmocom/gapk/procqueue.h M src/Makefile.am M src/codec_fr.c A src/ecu_fr.c A src/pq_ecu.c M tests/Makefile.am A tests/ecu/ecu_fr_test.c A tests/ecu/ecu_fr_test.ok M tests/testsuite.at 10 files changed, 440 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Verified diff --git a/include/osmocom/gapk/codecs.h b/include/osmocom/gapk/codecs.h index 253fb14..33f6593 100644 --- a/include/osmocom/gapk/codecs.h +++ b/include/osmocom/gapk/codecs.h @@ -73,6 +73,9 @@ /* Encoding / decoding function pointers */ osmo_gapk_codec_conv_cb_t codec_encode; osmo_gapk_codec_conv_cb_t codec_decode; + + /* ECU (Error Concealment Unit) function */ + osmo_gapk_codec_conv_cb_t ecu_proc; }; const struct osmo_gapk_codec_desc * diff --git a/include/osmocom/gapk/procqueue.h b/include/osmocom/gapk/procqueue.h index 6b929d7..ac9253b 100644 --- a/include/osmocom/gapk/procqueue.h +++ b/include/osmocom/gapk/procqueue.h @@ -103,3 +103,6 @@ /* Codec */ struct osmo_gapk_codec_desc; int osmo_gapk_pq_queue_codec(struct osmo_gapk_pq *pq, const struct osmo_gapk_codec_desc *codec, int encode); + +/* ECU (Error Concealment Unit) */ +int osmo_gapk_pq_queue_ecu(struct osmo_gapk_pq *pq, const struct osmo_gapk_codec_desc *codec); diff --git a/src/Makefile.am b/src/Makefile.am index 50ffda4..8fdeff7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -43,6 +43,12 @@ pq_file.c \ pq_alsa.c \ pq_rtp.c \ + pq_ecu.c \ + $(NULL) + +# ECU (Error Concealment Unit) implementation +libosmogapk_la_SOURCES += \ + ecu_fr.c \ $(NULL) # Formats implementation diff --git a/src/codec_fr.c b/src/codec_fr.c index eddbee6..75efeb7 100644 --- a/src/codec_fr.c +++ b/src/codec_fr.c @@ -83,6 +83,8 @@ #endif /* HAVE_LIBGSM */ +/* Forward declaration of ECU (Error Concealment Unit) function */ +int ecu_proc_fr(void *state, uint8_t *out, const uint8_t *in, unsigned int in_len); const struct osmo_gapk_codec_desc codec_fr_desc = { .type = CODEC_FR, @@ -97,4 +99,5 @@ .codec_encode = codec_fr_encode, .codec_decode = codec_fr_decode, #endif + .ecu_proc = ecu_proc_fr, }; diff --git a/src/ecu_fr.c b/src/ecu_fr.c new file mode 100644 index 0000000..db55fec --- /dev/null +++ b/src/ecu_fr.c @@ -0,0 +1,78 @@ +/* ECU (Error Concealment Unit) for FR */ + +/* + * This file is part of GAPK (GSM Audio Pocket Knife). + * + * (C) 2018 by Vadim Yanitskiy + * + * All Rights Reserved + * + * GAPK 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 3 of the License, or + * (at your option) any later version. + * + * GAPK 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 GAPK. If not, see . + */ + +#include +#include +#include +#include + +#include +#include + +int +ecu_proc_fr(void *_state, uint8_t *out, const uint8_t *in, unsigned int in_len) +{ + struct osmo_ecu_fr_state *state = (struct osmo_ecu_fr_state *) _state; + bool backup = false; + bool bfi = true; + int i, rc; + + assert(in_len == FR_CANON_LEN); + + /* Check if a frame is BFI */ + for (i = 1; i < in_len; i++) { + if (in[i] != 0x00) { + bfi = false; + break; + } + } + + /* We have got a good frame, nothing to do */ + if (!bfi) { + osmo_ecu_fr_reset(state, (uint8_t *) in); + memcpy(out, in, in_len); + return in_len; + } + + /* Check if ECU state contains a backup frame */ + for (i = 0; i < in_len; i++) { + if (state->frame_backup[i] != 0x00) { + backup = true; + break; + } + } + + /* There is no back-up frame */ + if (!backup) { + /* Copy BFI 'as-is' */ + memcpy(out, in, in_len); + return in_len; + } + + /* Attempt to perform error concealment */ + rc = osmo_ecu_fr_conceal(state, out); + if (rc) + return rc; + + return in_len; +} diff --git a/src/pq_ecu.c b/src/pq_ecu.c new file mode 100644 index 0000000..fad853c --- /dev/null +++ b/src/pq_ecu.c @@ -0,0 +1,88 @@ +/* ECU (Error Concealment Unit) */ + +/* + * This file is part of GAPK (GSM Audio Pocket Knife). + * + * (C) 2018 by Vadim Yanitskiy + * + * All Rights Reserved + * + * GAPK 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 3 of the License, or + * (at your option) any later version. + * + * GAPK 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 GAPK. If not, see . + */ + +#include +#include +#include + +#include +#include +#include +#include + +#include + +static void +clean_up(void *state) +{ + talloc_free(state); +} + +/*! Add a ECU block to the processing queue + * (To be placed between frame source and decoder) + * \param pq Processing Queue to which the block is added + * \returns 0 on success; negative on error */ +int +osmo_gapk_pq_queue_ecu(struct osmo_gapk_pq *pq, + const struct osmo_gapk_codec_desc *codec) +{ + const struct osmo_gapk_format_desc *fmt; + struct osmo_gapk_pq_item *item; + + /* Make sure that a codec has corresponding ECU implementation */ + if (codec->ecu_proc == NULL) { + LOGPGAPK(LOGL_ERROR, "Codec '%s' has no ECU implementation\n", codec->name); + return -ENOTSUP; + } + + /* Allocate a new item to the processing queue */ + item = osmo_gapk_pq_add_item(pq); + if (!item) + return -ENOMEM; + + /* Allocate the ECU state */ + item->state = talloc_zero(item, struct osmo_ecu_fr_state); + if (!item->state) { + talloc_free(item); + return -ENOMEM; + } + + /* I/O signature shall match the input signature of a codec */ + fmt = osmo_gapk_fmt_get_from_type(codec->codec_dec_format_type); + item->len_in = fmt->frame_len; + item->len_out = fmt->frame_len; + + item->proc = codec->ecu_proc; + item->exit = &clean_up; + item->wait = NULL; + + /* Meta information */ + item->type = OSMO_GAPK_ITEM_TYPE_PROC; + item->cat_name = "ecu"; + item->sub_name = codec->name; + + LOGPGAPK(LOGL_DEBUG, "PQ '%s': Adding ECU for codec '%s', " + "format '%s'\n", pq->name, codec->name, fmt->name); + + return 0; +} diff --git a/tests/Makefile.am b/tests/Makefile.am index f838fa4..4f7c4be 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -14,6 +14,7 @@ procqueue/pq_test \ io/pq_file_test \ io/pq_rtp_test \ + ecu/ecu_fr_test \ $(NULL) procqueue_pq_test_SOURCES = procqueue/pq_test.c @@ -40,6 +41,14 @@ $(TALLOC_LIBS) \ $(NULL) +ecu_ecu_fr_test_SOURCES = ecu/ecu_fr_test.c +ecu_ecu_fr_test_LDADD = \ + $(top_builddir)/src/libosmogapk.la \ + $(LIBOSMOCORE_LIBS) \ + $(LIBOSMOCODEC_LIBS) \ + $(TALLOC_LIBS) \ + $(NULL) + # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac :;{ \ @@ -66,6 +75,7 @@ EXTRA_DIST += \ procqueue/pq_test.ok \ + ecu/ecu_fr_test.ok \ io/pq_file_test.ok \ io/pq_rtp_test.ok \ io/io_sample.txt \ diff --git a/tests/ecu/ecu_fr_test.c b/tests/ecu/ecu_fr_test.c new file mode 100644 index 0000000..372df25 --- /dev/null +++ b/tests/ecu/ecu_fr_test.c @@ -0,0 +1,147 @@ +/* + * This file is part of GAPK (GSM Audio Pocket Knife). + * + * (C) 2018 by Vadim Yanitskiy + * + * GAPK 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 3 of the License, or + * (at your option) any later version. + * + * GAPK 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 GAPK. If not, see . + */ + +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +/* A good FR frame */ +static const char *sample_frame_hex = \ + "d9ec9be212901f802335598c501f805bad3d4ba01f809b69df5a501f809cd1b4da"; + +static void talloc_ctx_walk_cb(const void *chunk, int depth, + int max_depth, int is_ref, void *data) +{ + const char *chunk_name = talloc_get_name(chunk); + int spaces_cnt; + + /* Hierarchical spacing */ + for (spaces_cnt = 0; spaces_cnt < depth; spaces_cnt++) + printf(" "); + + /* Chunk info */ + printf("chunk %s: depth=%d\n", chunk_name, depth); +} + +void pq_execute(struct osmo_gapk_pq *pq, uint8_t *frame, size_t len) +{ + struct osmo_gapk_pq_item *pq_item; + unsigned int len_prev = len; + uint8_t *buf_prev = frame; + int rv; + + /* Iterate over all items in the chain */ + llist_for_each_entry(pq_item, &pq->items, list) { + printf("Block '%s/%s/%s' in (len=%d): %s\n", pq->name, + pq_item->cat_name, pq_item->sub_name, len_prev, + osmo_hexdump(buf_prev, len_prev)); + + /* Call item's processing handler */ + rv = pq_item->proc(pq_item->state, pq_item->buf, buf_prev, len_prev); + assert(rv > 0); + + printf("Block '%s/%s/%s' out (len=%d): %s\n", pq->name, + pq_item->cat_name, pq_item->sub_name, rv, + osmo_hexdump(pq_item->buf, rv)); + + buf_prev = pq_item->buf; + len_prev = rv; + } +} + +void test_fr_concealment(struct osmo_gapk_pq *pq) +{ + uint8_t fb[GSM_FR_BYTES]; + int i; + + /* Init frame buffer with BFI */ + memset(fb, 0x00, sizeof(fb)); + fb[0] = 0xd0; + + /* Process a BFI frame */ + printf("[i] Process a BFI frame: %s\n", osmo_hexdump(fb, sizeof(fb))); + pq_execute(pq, fb, sizeof(fb)); + printf("\n"); + + /* Parse frame from string to hex */ + osmo_hexparse(sample_frame_hex, fb, GSM_FR_BYTES); + + /* Process a good frame (reset ECU) */ + printf("[i] Process a good frame: %s\n", osmo_hexdump(fb, sizeof(fb))); + pq_execute(pq, fb, sizeof(fb)); + printf("\n"); + + /* Now pretend that we do not receive any good frames anymore */ + memset(fb, 0x00, sizeof(fb)); + fb[0] = 0xd0; + + printf("[i] Pretend that we do not receive any good frames anymore\n"); + for (i = 0; i < 20; i++) + pq_execute(pq, fb, sizeof(fb)); + + printf("\n"); +} + +int main(int argc, char **argv) +{ + const struct osmo_gapk_codec_desc *codec; + struct osmo_gapk_pq *pq; + int rc; + + /* Enable tracking the use of NULL memory contexts */ + talloc_enable_null_tracking(); + + /* Allocate a single processing chain */ + pq = osmo_gapk_pq_create("pq_ecu_test"); + assert(pq != NULL); + + /* Obtain FR codec description */ + codec = osmo_gapk_codec_get_from_type(CODEC_FR); + assert(codec->ecu_proc); + + /* Put a FR ECU */ + rc = osmo_gapk_pq_queue_ecu(pq, codec); + assert(rc == 0); + + /* Put a FR decoder */ + rc = osmo_gapk_pq_queue_codec(pq, codec, 0); + assert(rc == 0); + + /* Prepare the chain */ + rc = osmo_gapk_pq_prepare(pq); + assert(rc == 0); + + test_fr_concealment(pq); + + /* Release memory */ + osmo_gapk_pq_destroy(pq); + + /* Make sure we have no memleaks */ + talloc_report_depth_cb(NULL, 0, 10, &talloc_ctx_walk_cb, NULL); + + return 0; +} diff --git a/tests/ecu/ecu_fr_test.ok b/tests/ecu/ecu_fr_test.ok new file mode 100644 index 0000000..26c6466 --- /dev/null +++ b/tests/ecu/ecu_fr_test.ok @@ -0,0 +1,95 @@ +[i] Process a BFI frame: d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): c8 ff c8 ff c0 ff 88 ff 88 ff 80 ff 48 ff 48 ff 40 ff 08 ff 00 ff f8 fe c0 fe 98 fe 70 fe 20 fe 20 fe f8 fd b0 fd c0 fd 98 fd 58 fd 60 fd 48 fd 08 fd 18 fd 00 fd a8 fc e8 fc 88 fc 80 fc 80 fc 60 fc 28 fc 60 fc 18 fc f8 fb 28 fc e8 fb 08 fc 90 fb 48 fc 40 fb 10 fc 70 fb e0 fb 20 fb 20 fc e8 fa d8 fb 38 fb 98 fb f8 fa e0 fb c0 fa 90 fb 18 fb 50 fb d8 fa a0 fb a0 fa 50 fb f8 fa 18 fb b8 fa 60 fb 80 fa 18 fb d8 fa d8 fa 98 fa 28 fb 60 fa e8 fa b0 fa a8 fa 70 fa f8 fa 30 fa f8 fa 00 fa 28 fb d0 f9 00 fb f8 f9 e0 fa b8 f9 20 fb 88 f9 e0 fa c8 f9 b0 fa 88 f9 f8 fa 58 f9 b0 fa a8 f9 70 fa 70 f9 b8 fa 40 f9 68 fa 98 f9 28 fa 58 f9 70 fa 28 f9 20 fa 88 f9 e0 f9 48 f9 28 fa 10 f9 e0 f9 70 f9 a0 f9 30 f9 f0 f9 00 f9 e8 f9 d0 f8 18 fa a0 f8 f0 f9 c8 f8 d0 f9 88 f8 10 fa 58 f8 d0 f9 a0 f8 98 f9 68 f8 e0 f9 38 f8 98 f9 90 f8 58 f9 50 f8 98 f9 20 f8 50 f9 80 f8 08 f9 48 f8 50 f9 18 f8 08 f9 70 f8 c0 f8 38 f8 10 f9 08 f8 c0 f8 60 f8 88 f8 28 f8 d0 f8 f0 f7 c0 f8 + +[i] Process a good frame: d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/ecu/fr' in (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 00 80 10 f8 e8 1a 20 00 00 80 00 80 90 a5 f0 9c 60 bd 58 d2 90 d4 00 80 28 8a f8 24 00 80 f8 a2 60 21 00 80 e8 8d 08 0b 60 92 30 b3 28 ea 28 bd 00 b2 f8 e1 28 46 60 ee c8 d5 e0 0a 40 e0 b0 ea 28 9d 48 d6 f0 06 e8 af 28 f0 a0 fe 38 77 30 30 70 da f8 7f e0 2a 60 e0 90 a7 f0 d3 38 20 20 b1 28 03 70 18 98 c2 00 80 88 a1 08 18 00 80 e0 a9 10 24 00 80 68 99 90 0d 60 8f b0 b2 40 ee 78 be 20 b1 a0 e5 a0 c6 30 bb 38 ec 58 94 c0 b9 88 f7 20 a5 80 d1 98 f3 e0 3e 48 0b 00 da f8 7f 28 3f 88 c9 f8 7f 88 3d 30 e5 48 27 d0 1d a0 14 d8 9c 88 0b 58 27 20 bd 00 80 90 b0 50 08 00 80 e0 ac 10 23 00 80 40 9f c0 0d 78 84 70 af 78 f1 78 fa 38 c8 68 dd f8 7f f8 0d e8 ca f8 68 58 03 f8 e6 88 08 70 0b 88 04 60 d7 b8 11 18 09 b8 96 68 f3 28 0f 78 bd 28 f2 10 06 60 c1 d0 db 30 03 00 86 b8 bd c8 0c 78 cf + +[i] Pretend that we do not receive any good frames anymore +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1f 80 23 35 59 8c 50 1f 80 5b ad 3d 4b a0 1f 80 9b 69 df 5a 50 1f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 f0 a0 10 0f 00 80 20 a0 f8 1e 00 80 c8 83 60 0f b0 c9 e0 b7 48 e2 e8 d8 50 ad e0 de 00 80 f0 a1 20 01 d8 17 20 18 10 e6 08 9d 18 da 58 fa 40 44 28 1b 38 e8 60 35 f8 f7 e8 ed f8 7f 30 41 c0 cd 20 a1 10 de c8 f6 00 ed 78 28 20 f1 30 d7 00 80 90 96 b8 1e 00 80 90 ad e8 1b 00 80 f0 98 28 0a 38 8e e0 b4 78 eb c0 bb 98 b0 c8 e4 98 45 38 ed 30 d8 a8 0a c0 e1 58 ec 20 9d 30 d8 80 07 50 b0 a0 f0 98 fe f8 77 50 2f 50 da f8 7f 58 2a 10 de c8 a6 30 d4 a8 1c d8 af c0 03 a0 15 68 c1 00 80 18 a0 00 17 00 80 00 a9 28 23 00 80 d0 98 b8 0c e8 8e 88 b1 78 ed 58 be 20 b0 20 e5 80 c6 b0 bb 50 ec f0 93 48 bc 48 f8 90 a4 d8 d3 40 f4 98 3e d0 0b 60 da f8 7f 38 3e b8 c9 f8 7f c8 3c 00 e3 60 26 d8 1d 10 11 98 9b f0 0b 78 24 00 bc 00 80 58 af 70 07 00 80 78 ac 50 22 00 80 48 9f 20 0d 08 84 58 af 18 f1 40 fa 08 c8 48 dd f8 7f e0 0d f0 ca d8 68 80 03 08 e7 70 08 98 0b 90 04 50 d7 b8 11 18 09 b8 96 48 f3 28 0f 88 bd 10 f2 d0 05 50 c1 d8 db d8 02 e0 85 c8 bd 80 0c 60 cf +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1d 80 23 35 59 8c 50 1d 80 5b ad 3d 4b a0 1d 80 9b 69 df 5a 50 1d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1d 80 23 35 59 8c 50 1d 80 5b ad 3d 4b a0 1d 80 9b 69 df 5a 50 1d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 d0 b5 40 05 00 80 90 9e 08 1e 00 80 40 8f 50 0f 60 bc e0 b8 88 e3 70 dc 60 b1 30 df 28 8e b8 af 80 fb 60 13 48 12 60 ea 38 b4 b8 e7 68 fa b8 30 10 16 f0 ec b0 26 28 f8 a8 f1 f8 7f 40 2f 60 d4 18 b6 60 e6 38 f0 58 ee 08 1f d8 ed 68 de 00 80 f0 ad b8 14 00 80 e8 ab c8 1a 00 80 f0 a3 e8 08 40 8f e8 b9 30 ea b8 c6 78 b5 98 e4 80 36 10 e6 38 dd b0 09 48 e3 e8 ed 28 b5 e8 e0 d0 02 80 c2 08 f5 a8 fc 80 58 e0 23 58 e2 f8 7f a8 1f 80 e5 38 bc d0 de a8 14 20 c3 88 02 a8 0f 80 d0 00 80 c8 b7 e0 10 00 80 c0 a8 b8 22 00 80 98 a9 30 09 08 97 a8 b7 88 ec 20 cd 98 b7 68 e6 50 d7 28 c3 68 ed 40 b0 48 c9 78 f7 88 ba 90 de d0 f4 78 2d a0 09 f8 e1 f8 7f 78 37 38 d4 f8 7f 88 32 c8 e9 60 24 a8 1c 40 0e f8 b4 a8 0e 08 1d a8 cb 00 80 10 c5 d8 04 00 80 20 ac 48 22 00 80 40 b0 10 0a 10 90 10 b7 d0 ef 80 fa 90 ca 18 e1 f8 7f 30 01 a8 d4 08 50 68 fe a8 ea b0 05 f8 07 10 01 38 e0 f8 0d 00 05 f8 af f0 f6 68 0a 68 cd 88 f5 10 04 70 d0 98 e4 28 02 00 a4 08 ce 70 09 50 db +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 1b 80 23 35 59 8c 50 1b 80 5b ad 3d 4b a0 1b 80 9b 69 df 5a 50 1b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 1b 80 23 35 59 8c 50 1b 80 5b ad 3d 4b a0 1b 80 9b 69 df 5a 50 1b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 00 80 c8 cd 98 01 00 80 60 b9 48 14 00 80 98 a4 18 0c 30 be 38 c6 00 eb b8 e0 70 bf d0 e5 b0 b4 90 c2 88 f9 f8 0d 28 09 30 ef 38 cd 08 f0 78 fa 60 1f 18 0f c8 f1 d8 18 58 fa 88 f5 b0 60 10 1f a8 e0 80 cd d0 ee 80 f2 e0 f2 d0 14 98 f1 78 e8 28 87 58 c8 f8 0c 00 80 38 c2 78 11 00 80 f8 ba 50 05 70 aa 40 ca 88 ef 08 d7 38 c7 68 eb b0 24 c8 e9 d8 e6 c8 06 80 ea 48 f2 d8 cd c8 ea 78 00 68 d6 d0 f8 b8 fc 78 3a 08 18 a8 eb 38 55 10 15 f0 ed 68 d2 c0 e9 78 0d 10 d7 90 01 40 0a 20 e0 b0 82 c0 cf 20 0b 00 80 90 bf a0 17 00 80 00 c3 98 05 50 b6 e0 ca 78 f1 20 de f0 cb a0 ed 60 e5 18 d5 78 f2 e8 ca e0 da 68 f9 60 d1 e0 e9 d0 f7 e8 1d a0 06 88 eb f8 7f 00 25 a0 e2 58 74 98 21 00 f1 08 18 08 13 40 09 c8 cd c0 09 20 13 f8 dc 78 91 98 d8 20 03 00 80 08 c5 f8 16 00 80 18 c9 68 06 98 b3 f0 cc 70 f4 50 fc 88 da c0 ea 80 57 98 ff 80 e2 60 35 80 fe 48 f1 a0 03 48 05 50 00 98 ea 60 09 10 03 78 ca f8 f9 d0 06 28 de f8 f8 a8 02 30 e0 a8 ed 68 01 98 c2 a0 de 40 06 78 e7 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 19 80 23 35 59 8c 50 19 80 5b ad 3d 4b a0 19 80 9b 69 df 5a 50 19 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 19 80 23 35 59 8c 50 19 80 5b ad 3d 4b a0 19 80 9b 69 df 5a 50 19 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 68 9b e0 da 88 02 00 80 50 cc 28 0f 00 80 c8 bc 00 09 58 cf 00 d6 88 f0 b8 e8 80 d0 d0 ec 80 c7 c0 d1 50 fb 98 0a 58 05 20 f3 38 da 98 f2 88 fb b8 17 00 0b 28 f5 88 12 58 fc 10 f8 50 48 b0 17 e0 e9 a0 da 10 f3 18 f8 e8 f6 58 0f 00 f7 08 ef 48 a5 08 d7 48 0a 00 80 d8 d1 a8 0d 00 80 28 cc 60 04 08 c0 b0 d7 d8 f3 60 e1 78 d5 a0 f0 a0 1b 58 ef 18 ed 28 05 c0 ef 98 f5 70 da f0 ef 48 00 d0 e0 98 fa 88 fd d0 2b 18 12 c0 f0 e0 3f d0 0f 98 f2 e0 dd 50 ef 58 0a 68 e1 28 01 d8 07 28 e8 00 a2 e8 db 68 08 00 80 b0 cf c8 11 f0 8f 48 d2 40 04 c0 c8 38 d8 28 f5 98 e6 08 d9 40 f2 08 ec c8 df d8 f5 30 d8 f8 e3 00 fb 10 dd 40 ef d0 f9 70 16 e8 04 98 f0 98 60 d0 1b f8 e9 40 57 38 19 d8 f4 10 12 48 0e 28 07 68 da 48 07 88 0e c8 e5 18 ad 88 e2 68 02 00 80 c8 d3 48 11 b0 94 d0 d6 d8 04 b0 c6 b0 d9 58 f7 40 fd e0 e3 10 f0 a0 41 b0 ff e0 e9 08 28 e0 fe f0 f4 b8 02 f8 03 38 00 f0 ef 08 07 50 02 d8 d7 80 fb 20 05 a0 e6 c0 fa 08 02 28 e8 40 f2 10 01 f8 d1 f8 e6 b8 04 98 ed +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 17 80 23 35 59 8c 50 17 80 5b ad 3d 4b a0 17 80 9b 69 df 5a 50 17 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 17 80 23 35 59 8c 50 17 80 5b ad 3d 4b a0 17 80 9b 69 df 5a 50 17 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 90 bb e0 e6 c8 00 60 a4 b0 dc 20 0a d0 9b 48 d2 08 06 10 df 18 e3 80 f5 58 f0 b0 df e8 f2 58 da 48 e1 c0 fc f8 06 90 04 98 f7 98 e6 00 f8 38 fd b0 0f 90 07 e8 f8 70 0c 30 fd c0 fa 58 30 88 0f 50 f0 c0 e6 68 f7 38 f9 70 f9 68 0a d0 f8 38 f4 98 c3 30 e4 78 06 48 a7 18 e1 c0 08 68 a6 80 dd a8 02 30 d5 18 e5 c0 f7 80 eb 98 e3 b8 f5 58 12 e0 f4 68 f3 60 03 38 f5 20 f9 e8 e6 58 f5 38 00 30 eb 68 fc 60 fe 38 1d f8 0b d0 f5 98 2a 80 0a f8 f6 30 e9 e0 f4 b8 06 88 eb c8 00 20 05 10 f0 50 c1 d8 e7 88 05 38 a5 c8 df d0 0b 48 b5 80 e1 d0 02 28 db 70 e5 b8 f8 10 ef f8 e5 c8 f6 b0 f2 88 ea 38 f9 70 e5 68 ed b0 fc b0 e8 f0 f4 e0 fb f8 0e 50 03 c0 f5 68 40 80 12 48 f1 28 3a c8 10 78 f8 f8 0b 80 09 98 04 e0 e6 d8 04 88 09 78 ee b8 c8 48 ec 90 01 f0 a6 80 e2 78 0b 70 b8 88 e4 38 03 c8 d9 78 e6 38 fa 28 fe 40 ed 60 f5 c0 2b c8 ff 48 f1 b0 1a 40 ff a8 f8 d0 01 a0 02 20 00 50 f5 b0 04 88 01 40 e5 f8 fc 68 03 18 ef 80 fc 50 01 18 f0 d8 f6 b8 00 48 e1 50 ef 20 03 b8 f3 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 15 80 23 35 59 8c 50 15 80 5b ad 3d 4b a0 15 80 9b 69 df 5a 50 15 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 15 80 23 35 59 8c 50 15 80 5b ad 3d 4b a0 15 80 9b 69 df 5a 50 15 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): b8 cd 78 ed 48 01 38 bc 28 e6 98 07 78 b5 60 de 80 04 a8 e7 00 eb 48 f8 60 f4 38 e8 60 f6 c0 e3 d8 e8 a0 fd 48 05 a8 02 88 f9 18 ed 48 f9 c0 fd d8 0b 78 05 90 fa 40 09 28 fe 00 fc 28 24 d8 0b e8 f4 48 ed 88 f9 08 fc 70 fb a8 07 80 fb 88 f7 a0 d2 80 eb 20 05 88 bd e8 e8 d0 06 e8 bc 18 e6 30 02 00 e0 d8 eb f0 f9 b8 f0 c0 ea 50 f8 d0 0d b0 f7 88 f6 98 02 e0 f7 d0 fa 38 ed f8 f7 28 00 68 f0 48 fd c0 fe e8 15 08 09 60 f8 f0 1f e8 07 50 f9 e8 ee a8 f7 28 05 b0 f0 90 00 f0 03 10 f4 00 d1 f0 ed 38 04 f0 bb d8 e7 e0 08 f8 c7 28 e9 20 02 60 e4 20 ec 90 fa 48 f3 88 ec 20 f9 08 f6 e8 ef f0 fa 18 ec 00 f2 80 fd 88 ee a0 f7 e8 fc 38 0b 78 02 50 f8 48 30 e8 0d 00 f5 a0 2b a0 0c 70 fa 08 09 28 07 90 03 30 ed a8 03 40 07 e8 f2 88 d6 40 f1 30 01 38 bd e0 e9 a0 08 58 ca 68 eb 68 02 58 e3 d8 ec a8 fb a0 fe f0 f1 08 f8 d0 20 d8 ff f0 f4 00 14 70 ff 78 fa 60 01 f8 01 20 00 f8 f7 80 03 28 01 f0 eb c0 fd 90 02 50 f3 58 fd 00 01 10 f4 20 f9 88 00 f8 e8 80 f3 60 02 d0 f6 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 13 80 23 35 59 8c 50 13 80 5b ad 3d 4b a0 13 80 9b 69 df 5a 50 13 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 13 80 23 35 59 8c 50 13 80 5b ad 3d 4b a0 13 80 9b 69 df 5a 50 13 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): c8 dd 70 f3 60 00 30 d2 58 ee 10 05 e8 cd 28 e9 00 03 88 ef 90 f1 c0 fa 28 f8 d8 ef 70 f9 28 ed 98 f0 60 fe 80 03 40 02 c8 fb 48 f3 00 fc 98 fe d8 07 c0 03 70 fc 30 06 90 fe 60 fd 28 18 c0 07 28 f8 60 f3 b0 fb 98 fc b0 fc 30 05 68 fc 18 fa c0 e1 18 f2 38 03 a0 d3 88 f0 60 04 38 d3 b8 ee 50 01 98 ea 88 f2 e0 fb c0 f5 c8 f1 d8 fa 28 09 70 fa b8 f9 b0 01 a0 fa 98 fc 78 f3 b0 fa 20 00 98 f5 30 fe 28 ff 98 0e 00 06 e8 fa 48 15 40 05 70 fb 98 f4 70 fa 58 03 c0 f5 60 00 90 02 00 f8 a8 e0 f0 f3 c0 02 98 d2 e0 ef e0 05 a0 da c0 f0 60 01 90 ed b8 f2 58 fc 80 f7 f8 f2 68 fb 58 f9 40 f5 98 fc b8 f2 b8 f6 58 fe 58 f4 78 fa f0 fd 78 07 a8 01 e0 fa 30 20 40 09 a0 f8 18 1d 68 08 38 fc 00 06 c0 04 48 02 70 f3 70 02 c0 04 38 f7 58 e4 20 f6 c8 00 78 d3 40 f1 c0 05 38 dc 48 f2 98 01 e0 ec 38 f3 18 fd 10 ff a0 f6 b0 fa e0 15 e8 ff a0 f8 58 0d a8 ff 50 fc e8 00 50 01 18 00 a8 fa 58 02 c8 00 a0 f2 80 fe b8 01 88 f7 40 fe a8 00 10 f8 68 fb 58 00 a8 f0 a8 f7 90 01 e0 f9 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 11 80 23 35 59 8c 50 11 80 5b ad 3d 4b a0 11 80 9b 69 df 5a 50 11 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 11 80 23 35 59 8c 50 11 80 5b ad 3d 4b a0 11 80 9b 69 df 5a 50 11 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): e0 e6 b8 f6 a0 00 18 de 18 f3 c8 03 b8 da 30 ef 40 02 d8 f3 80 f5 20 fc 28 fa 20 f4 30 fb e0 f1 70 f4 d0 fe a8 02 58 01 c8 fc 90 f6 a0 fc e0 fe e8 05 b8 02 48 fd a0 04 10 ff 08 fe 18 12 e8 05 78 fa a8 f6 c0 fc 08 fe b8 fd d0 03 b8 fd c0 fb 50 e9 b8 f5 90 02 c0 de 70 f4 68 03 70 de 08 f3 10 01 00 f0 e8 f5 f8 fc 58 f8 58 f5 20 fc e8 06 d0 fb 40 fb 48 01 e8 fb 68 fd 98 f6 f8 fb 10 00 30 f8 a8 fe 60 ff f0 0a 80 04 30 fc f8 0f f0 03 a8 fc 70 f7 d0 fb 98 02 58 f8 48 00 f8 01 08 fa 80 e8 f8 f6 18 02 f8 dd f0 f3 70 04 f8 e3 90 f4 10 01 28 f2 10 f6 48 fd a8 f9 40 f6 88 fc 00 fb f0 f7 70 fd 08 f6 f8 f8 c0 fe 40 f7 c8 fb 70 fe 98 05 38 01 20 fc 28 18 f0 06 78 fa d0 15 48 06 30 fd 88 04 90 03 c8 01 98 f6 d0 01 a0 03 68 f9 40 eb a0 f8 98 00 98 de f0 f4 50 04 28 e5 b0 f5 38 01 a8 f1 68 f6 d8 fd 50 ff f8 f8 00 fc 68 10 e8 ff 78 fa 00 0a b0 ff 38 fd a8 00 f8 00 10 00 00 fc c0 01 90 00 f8 f5 e0 fe 40 01 a8 f9 a8 fe 80 00 08 fa 90 fc 48 00 78 f4 b8 f9 28 01 68 fb +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 0f 80 23 35 59 8c 50 0f 80 5b ad 3d 4b a0 0f 80 9b 69 df 5a 50 0f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 0f 80 23 35 59 8c 50 0f 80 5b ad 3d 4b a0 0f 80 9b 69 df 5a 50 0f 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): e0 ee b0 f9 30 00 18 e9 28 f7 88 02 f0 e6 88 f4 80 01 c0 f7 c0 f8 60 fd 10 fc e8 f7 b8 fc 90 f6 50 f8 30 ff b8 01 20 01 e0 fd a0 f9 00 fe 48 ff e8 03 e0 01 38 fe 18 03 48 ff b0 fe 18 0c e0 03 10 fc a8 f9 d8 fd 50 fe 58 fe 98 02 30 fe 10 fd e0 f0 08 f9 a0 01 d0 e9 48 f8 30 02 98 e9 60 f7 a8 00 50 f5 48 f9 e8 fd e0 fa e8 f8 68 fd 90 04 38 fd d8 fc d8 00 50 fd 48 fe b8 f9 58 fd 10 00 d0 fa 18 ff 98 ff 50 07 00 03 70 fd a0 0a a0 02 c0 fd 48 fa 38 fd a8 01 e0 fa 30 00 40 01 00 fc 58 f0 f8 f9 60 01 50 e9 f0 f7 f0 02 50 ed 60 f8 b0 00 c8 f6 58 f9 28 fe c8 fb 80 f9 b0 fd a8 fc a0 fa 50 fe 58 f9 58 fb 28 ff 28 fa 38 fd f8 fe b8 03 d0 00 70 fd 18 10 98 04 50 fc 88 0e 30 04 20 fe 00 03 60 02 28 01 b8 f9 38 01 60 02 98 fb 28 f2 10 fb 60 00 b8 e9 a0 f8 e0 02 18 ee 20 f9 d0 00 70 f6 98 f9 88 fe 88 ff 48 fb 50 fd f0 0a f0 ff 48 fc a8 06 d0 ff 28 fe 70 00 a8 00 08 00 50 fd 28 01 60 00 48 f9 40 ff d8 00 c0 fb 20 ff 50 00 08 fc b0 fd 28 00 58 f8 d8 fb c0 00 e8 fc +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 0d 80 23 35 59 8c 50 0d 80 5b ad 3d 4b a0 0d 80 9b 69 df 5a 50 0d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 0d 80 23 35 59 8c 50 0d 80 5b ad 3d 4b a0 0d 80 9b 69 df 5a 50 0d 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 68 f3 58 fb 48 00 10 ef 88 f9 e0 01 60 ed 98 f7 18 01 e8 f9 c0 fa 10 fe 10 fd 10 fa 98 fd e8 f8 30 fa 68 ff 50 01 a8 00 60 fe 40 fb 48 fe 70 ff f8 02 58 01 a0 fe 50 02 88 ff 00 ff 08 09 f8 02 38 fd 58 fb 60 fe 00 ff e0 fe f0 01 e0 fe e0 fd a8 f4 e0 fa 48 01 60 ef 38 fa b8 01 38 ef 80 f9 88 00 f8 f7 f0 fa 78 fe 28 fc b0 fa 10 fe 70 03 e8 fd a0 fd a0 00 f8 fd b0 fe 50 fb f8 fd 08 00 18 fc 50 ff b0 ff 78 05 40 02 18 fe f8 07 f8 01 50 fe b8 fb e8 fd 48 01 28 fc 20 00 f8 00 00 fd 40 f4 80 fb 08 01 f8 ee f8 f9 38 02 f8 f1 48 fa 80 00 10 f9 00 fb a0 fe d0 fc 18 fb 40 fe 78 fd f0 fb b8 fe 08 fb 78 fc 60 ff a0 fb e0 fd 38 ff c8 02 a0 00 10 fe 10 0c 78 03 40 fd e0 0a 28 03 98 fe 40 02 c8 01 e8 00 48 fb e8 00 d0 01 b8 fc a0 f5 48 fc 48 00 50 ef 78 fa 28 02 90 f2 d8 fa 98 00 d8 f8 30 fb e8 fe a0 ff 78 fc 00 fe 30 08 f8 ff 38 fd 00 05 e0 ff a0 fe 58 00 80 00 08 00 00 fe e0 00 48 00 f8 fa 70 ff a0 00 d0 fc 58 ff 40 00 08 fd 48 fe 20 00 40 fa e0 fc 90 00 b0 fd +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 0b 80 23 35 59 8c 50 0b 80 5b ad 3d 4b a0 0b 80 9b 69 df 5a 50 0b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 0b 80 23 35 59 8c 50 0b 80 5b ad 3d 4b a0 0b 80 9b 69 df 5a 50 0b 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): 70 f7 d8 fc 18 00 88 f4 90 fb 40 01 78 f3 48 fa b8 00 e0 fb 60 fc a8 fe 08 fe f8 fb 60 fe 48 fb 28 fc 98 ff e0 00 90 00 f0 fe d8 fc 00 ff a8 ff f8 01 f0 00 18 ff 90 01 a0 ff 50 ff 08 06 f0 01 08 fe d8 fc f0 fe 28 ff 30 ff 50 01 18 ff 88 fe 70 f8 80 fc d0 00 e8 f4 20 fc 10 01 c8 f4 b0 fb 50 00 a0 fa a0 fc f8 fe 68 fd 70 fc b8 fe 48 02 98 fe 70 fe 68 00 a8 fe 28 ff d8 fc a8 fe 08 00 60 fd 88 ff c8 ff a8 03 80 01 b8 fe 50 05 50 01 d8 fe 20 fd 98 fe d8 00 70 fd 18 00 a0 00 00 fe 28 f8 f8 fc b0 00 a0 f4 f8 fb 78 01 a8 f6 28 fc 50 00 60 fb a8 fc 18 ff e0 fd b8 fc d8 fe 50 fe 48 fd 20 ff a8 fc b0 fd 90 ff 10 fd 98 fe 78 ff e0 01 68 00 b8 fe 08 08 48 02 28 fe 40 07 18 02 08 ff 80 01 28 01 90 00 d8 fc 98 00 30 01 c8 fd 10 f9 88 fd 30 00 d8 f4 48 fc 70 01 08 f7 88 fc 60 00 38 fb c8 fc 48 ff c8 ff a8 fd a8 fe 78 05 f8 ff 28 fe 58 03 e8 ff 10 ff 38 00 58 00 08 00 a8 fe 98 00 30 00 a0 fc 98 ff 68 00 e0 fd 88 ff 20 00 00 fe d8 fe 18 00 28 fc e8 fd 60 00 78 fe +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 09 80 23 35 59 8c 50 09 80 5b ad 3d 4b a0 09 80 9b 69 df 5a 50 09 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 09 80 23 35 59 8c 50 09 80 5b ad 3d 4b a0 09 80 9b 69 df 5a 50 09 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): b0 f9 a8 fd 28 00 80 f7 c0 fc e8 00 a8 f6 c8 fb 88 00 f0 fc 58 fd 00 ff 88 fe 00 fd c8 fe 70 fc 10 fd b0 ff a0 00 50 00 28 ff 98 fd 28 ff b8 ff 78 01 a8 00 50 ff 20 01 c0 ff 80 ff 80 04 78 01 98 fe a0 fd 30 ff 80 ff 68 ff f0 00 68 ff f0 fe 50 fa 70 fd a0 00 b0 f7 20 fd e0 00 a0 f7 c0 fc 48 00 00 fc 78 fd 40 ff 18 fe 50 fd 08 ff b8 01 f0 fe d0 fe 50 00 f8 fe 58 ff a8 fd 00 ff 08 00 08 fe a8 ff d8 ff c0 02 20 01 08 ff 00 04 f8 00 28 ff e0 fd f0 fe a0 00 18 fe 10 00 78 00 80 fe 20 fa b8 fd 88 00 80 f7 f8 fc 18 01 00 f9 20 fd 40 00 88 fc 80 fd 50 ff 68 fe 90 fd 20 ff b8 fe f8 fd 58 ff 80 fd 38 fe b0 ff d0 fd f0 fe 98 ff 68 01 50 00 08 ff 08 06 b8 01 98 fe 70 05 90 01 48 ff 18 01 e0 00 70 00 a8 fd 70 00 e0 00 58 fe d0 fa 20 fe 20 00 a0 f7 38 fd 10 01 48 f9 68 fd 48 00 68 fc 98 fd 78 ff d0 ff 38 fe 00 ff 18 04 f8 ff a0 fe 80 02 f0 ff 48 ff 28 00 40 00 00 00 f8 fe 70 00 28 00 78 fd b0 ff 50 00 68 fe a8 ff 20 00 80 fe 20 ff 10 00 20 fd 70 fe 50 00 d8 fe +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 07 80 23 35 59 8c 50 07 80 5b ad 3d 4b a0 07 80 9b 69 df 5a 50 07 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 07 80 23 35 59 8c 50 07 80 5b ad 3d 4b a0 07 80 9b 69 df 5a 50 07 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): b8 fb 68 fe 08 00 48 fa c8 fd a0 00 c0 f9 20 fd 60 00 f0 fd 30 fe 58 ff 00 ff f8 fd 28 ff a0 fd 10 fe c8 ff 68 00 48 00 78 ff 68 fe 78 ff d0 ff f8 00 70 00 88 ff c8 00 d0 ff a8 ff 00 03 f8 00 00 ff 68 fe 78 ff 90 ff 98 ff a0 00 88 ff 40 ff 30 fc 40 fe 68 00 70 fa 10 fe 88 00 60 fa d0 fd 28 00 50 fd 48 fe 78 ff b0 fe 30 fe 50 ff 20 01 48 ff 30 ff 30 00 50 ff 90 ff 70 fe 58 ff 00 00 b0 fe c8 ff e0 ff d0 01 b8 00 58 ff a0 02 a8 00 68 ff 90 fe 48 ff 68 00 b8 fe 08 00 50 00 00 ff 10 fc 78 fe 58 00 50 fa f8 fd b8 00 50 fb 18 fe 28 00 b0 fd 58 fe 88 ff f0 fe 60 fe 68 ff 28 ff a8 fe 90 ff 58 fe d8 fe c8 ff 88 fe 50 ff c0 ff e8 00 38 00 58 ff 00 04 28 01 10 ff a0 03 08 01 80 ff c0 00 90 00 40 00 68 fe 48 00 98 00 e8 fe 88 fc c0 fe 18 00 70 fa 28 fe b0 00 88 fb 48 fe 30 00 98 fd 68 fe a0 ff e0 ff d0 fe 50 ff b8 02 f8 ff 10 ff a8 01 f8 ff 88 ff 18 00 28 00 00 00 50 ff 48 00 18 00 50 fe d0 ff 38 00 f0 fe c8 ff 18 00 00 ff 68 ff 08 00 10 fe f0 fe 30 00 38 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 05 80 23 35 59 8c 50 05 80 5b ad 3d 4b a0 05 80 9b 69 df 5a 50 05 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 05 80 23 35 59 8c 50 05 80 5b ad 3d 4b a0 05 80 9b 69 df 5a 50 05 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): d8 fc d0 fe 10 00 c0 fb 60 fe 78 00 58 fb e0 fd 48 00 78 fe b0 fe 80 ff 40 ff 80 fe 60 ff 38 fe 88 fe d8 ff 50 00 28 00 90 ff c8 fe 90 ff d8 ff b8 00 50 00 a8 ff 90 00 e0 ff c0 ff 40 02 b8 00 48 ff d0 fe 98 ff c0 ff b0 ff 78 00 b0 ff 70 ff 28 fd b0 fe 50 00 d0 fb 88 fe 68 00 c8 fb 58 fe 18 00 f8 fd b8 fe 98 ff 08 ff a8 fe 80 ff e0 00 78 ff 68 ff 28 00 80 ff b0 ff d0 fe 78 ff 00 00 00 ff d0 ff f0 ff 60 01 88 00 80 ff 00 02 78 00 90 ff e8 fe 70 ff 50 00 08 ff 08 00 38 00 38 ff 10 fd e0 fe 40 00 b8 fb 78 fe 90 00 78 fc 90 fe 20 00 40 fe b8 fe a8 ff 30 ff c8 fe 90 ff 60 ff 00 ff a8 ff c0 fe 20 ff d8 ff e8 fe 78 ff c8 ff b0 00 28 00 80 ff 08 03 e0 00 50 ff b8 02 c8 00 a0 ff 90 00 70 00 38 00 d0 fe 38 00 70 00 30 ff 68 fd 18 ff 10 00 d0 fb a0 fe 88 00 a0 fc b0 fe 28 00 30 fe c8 fe b8 ff e8 ff 20 ff 80 ff 08 02 00 00 50 ff 40 01 f0 ff a8 ff 18 00 20 00 00 00 80 ff 38 00 10 00 c0 fe d8 ff 28 00 30 ff d0 ff 10 00 40 ff 90 ff 08 00 88 fe 30 ff 20 00 68 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 03 80 23 35 59 8c 50 03 80 5b ad 3d 4b a0 03 80 9b 69 df 5a 50 03 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 03 80 23 35 59 8c 50 03 80 5b ad 3d 4b a0 03 80 9b 69 df 5a 50 03 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): d8 fd 30 ff 08 00 20 fd e0 fe 48 00 d8 fc 90 fe 30 00 f8 fe 18 ff b0 ff 80 ff 00 ff 98 ff d0 fe 08 ff e8 ff 38 00 20 00 b8 ff 30 ff b8 ff e8 ff 78 00 30 00 c8 ff 60 00 e0 ff d8 ff 80 01 78 00 80 ff 38 ff b8 ff c8 ff c8 ff 50 00 c0 ff a0 ff 18 fe 20 ff 30 00 38 fd 08 ff 40 00 30 fd e8 fe 18 00 a8 fe 20 ff b8 ff 58 ff 18 ff a8 ff 90 00 a8 ff 98 ff 18 00 a8 ff c8 ff 38 ff a8 ff 08 00 58 ff e0 ff f0 ff e8 00 60 00 a8 ff 50 01 50 00 b0 ff 48 ff a0 ff 30 00 58 ff 00 00 28 00 78 ff 08 fe 40 ff 28 00 28 fd f8 fe 60 00 a8 fd 08 ff 18 00 d8 fe 28 ff c0 ff 78 ff 30 ff b0 ff 90 ff 50 ff c8 ff 28 ff 68 ff e8 ff 48 ff a8 ff e0 ff 78 00 18 00 b0 ff 00 02 90 00 88 ff d0 01 88 00 c0 ff 60 00 50 00 20 00 30 ff 28 00 48 00 78 ff 48 fe 60 ff 10 00 38 fd 18 ff 60 00 c0 fd 20 ff 18 00 c8 fe 30 ff d0 ff e8 ff 68 ff a8 ff 58 01 00 00 88 ff d0 00 f8 ff c0 ff 08 00 08 00 00 00 a8 ff 20 00 08 00 28 ff e0 ff 18 00 78 ff e0 ff 00 00 80 ff b8 ff 00 00 08 ff 78 ff 18 00 a0 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d9 ec 9b e2 12 90 01 80 23 35 59 8c 50 01 80 5b ad 3d 4b a0 01 80 9b 69 df 5a 50 01 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' in (len=33): d9 ec 9b e2 12 90 01 80 23 35 59 8c 50 01 80 5b ad 3d 4b a0 01 80 9b 69 df 5a 50 01 80 9c d1 b4 da +Block 'pq_ecu_test/codec/fr' out (len=320): d8 fe 90 ff f8 ff 80 fe 68 ff 28 00 68 fe 40 ff 18 00 78 ff 80 ff d0 ff c0 ff 78 ff c8 ff 68 ff 88 ff f0 ff 18 00 20 00 e0 ff 90 ff e8 ff f0 ff 38 00 20 00 e0 ff 30 00 f0 ff e8 ff c0 00 38 00 b0 ff 90 ff d8 ff d0 ff e0 ff 28 00 d0 ff c8 ff 08 ff 88 ff 10 00 98 fe 80 ff 20 00 98 fe 70 ff 08 00 50 ff 90 ff d8 ff a8 ff 88 ff d0 ff 48 00 d0 ff c8 ff 08 00 d0 ff e0 ff 98 ff d8 ff 00 00 a8 ff f0 ff 00 00 78 00 30 00 d8 ff a8 00 28 00 d8 ff a8 ff d0 ff 18 00 b0 ff 00 00 10 00 c0 ff 00 ff 98 ff 10 00 90 fe 80 ff 28 00 d8 fe 88 ff 08 00 68 ff 98 ff e0 ff b8 ff 98 ff d8 ff c0 ff a8 ff e0 ff 90 ff b0 ff f0 ff a0 ff d0 ff f0 ff 38 00 00 00 d0 ff 00 01 40 00 c0 ff e8 00 40 00 e0 ff 30 00 20 00 10 00 a0 ff 10 00 20 00 b8 ff 20 ff b0 ff 00 00 98 fe 88 ff 28 00 e0 fe 90 ff 08 00 68 ff 98 ff e8 ff f8 ff b0 ff d0 ff b0 00 00 00 c8 ff 68 00 f8 ff e0 ff 08 00 08 00 f8 ff d0 ff 08 00 00 00 90 ff f0 ff 08 00 b8 ff f0 ff 00 00 c0 ff d8 ff 00 00 80 ff b8 ff 10 00 d0 ff +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): 80 ff 80 ff 98 ff 30 ff 30 ff 68 ff 18 ff 10 ff 28 ff f8 fe f8 fe 00 ff e0 fe a8 fe 80 fe 48 fe 30 fe 20 fe d0 fd d8 fd c8 fd 70 fd 80 fd 78 fd 28 fd 30 fd 28 fd b0 fc f0 fc 98 fc 78 fc 88 fc 58 fc 28 fc 40 fc 28 fc d8 fb 20 fc d8 fb f0 fb 78 fb 28 fc 28 fb e0 fb 60 fb a8 fb 10 fb e8 fb d0 fa a0 fb 18 fb 68 fb d0 fa b8 fb 98 fa 70 fb e8 fa 30 fb a8 fa 78 fb 78 fa 28 fb d0 fa e8 fa 90 fa 30 fb 68 fa e0 fa b8 fa a0 fa 80 fa e0 fa 50 fa 98 fa a0 fa 60 fa 60 fa a8 fa 30 fa a8 fa f8 f9 e0 fa c8 f9 c0 fa e8 f9 a8 fa a8 f9 f0 fa 78 f9 a8 fa c0 f9 78 fa 80 f9 b8 fa 50 f9 70 fa a8 f9 30 fa 68 f9 78 fa 38 f9 30 fa 98 f9 f0 f9 58 f9 38 fa 28 f9 f0 f9 88 f9 b0 f9 48 f9 00 fa 18 f9 b8 f9 70 f9 78 f9 30 f9 c8 f9 f8 f8 b8 f9 c8 f8 e8 f9 a0 f8 c0 f9 c0 f8 a0 f9 88 f8 e0 f9 58 f8 98 f9 a0 f8 68 f9 60 f8 a8 f9 30 f8 58 f9 90 f8 18 f9 50 f8 60 f9 20 f8 10 f9 80 f8 c8 f8 40 f8 10 f9 10 f8 c8 f8 68 f8 88 f8 28 f8 d0 f8 f8 f7 88 f8 50 f8 50 f8 10 f8 98 f8 d8 f7 98 f8 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): a8 f7 c8 f8 78 f7 a8 f8 98 f7 88 f8 58 f7 c8 f8 30 f7 88 f8 78 f7 50 f8 38 f7 90 f8 10 f7 48 f8 68 f7 00 f8 30 f7 48 f8 00 f7 f8 f7 58 f7 c0 f7 18 f7 08 f8 e8 f6 c0 f7 38 f7 80 f7 00 f7 c8 f7 c8 f6 80 f7 20 f7 48 f7 e0 f6 98 f7 b0 f6 88 f7 80 f6 b8 f7 50 f6 98 f7 70 f6 78 f7 38 f6 b8 f7 08 f6 78 f7 50 f6 40 f7 10 f6 88 f7 e8 f5 38 f7 38 f6 00 f7 00 f6 40 f7 d0 f5 f8 f6 30 f6 b0 f6 f0 f5 f8 f6 c0 f5 b0 f6 20 f6 68 f6 e0 f5 b0 f6 b0 f5 68 f6 08 f6 28 f6 d0 f5 70 f6 a0 f5 68 f6 70 f5 98 f6 40 f5 70 f6 60 f5 50 f6 28 f5 90 f6 f8 f4 48 f6 40 f5 18 f6 00 f5 58 f6 d8 f4 10 f6 30 f5 d0 f5 f8 f4 10 f6 c8 f4 c8 f5 28 f5 80 f5 f0 f4 c0 f5 c0 f4 78 f5 18 f5 38 f5 e0 f4 80 f5 b0 f4 38 f5 00 f5 f8 f4 c0 f4 48 f5 88 f4 38 f5 60 f4 70 f5 30 f4 48 f5 50 f4 28 f5 18 f4 68 f5 e8 f3 28 f5 30 f4 f8 f4 f0 f3 38 f5 c8 f3 f0 f4 18 f4 b0 f4 e0 f3 f8 f4 b0 f3 a8 f4 10 f4 68 f4 d8 f3 b0 f4 a8 f3 60 f4 00 f4 20 f4 c0 f3 70 f4 90 f3 28 f4 e8 f3 e8 f3 a8 f3 38 f4 70 f3 30 f4 +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): 40 f3 60 f4 10 f3 38 f4 30 f3 18 f4 f0 f2 58 f4 c0 f2 18 f4 08 f3 e0 f3 c8 f2 28 f4 a0 f2 d8 f3 f8 f2 a0 f3 b8 f2 e8 f3 88 f2 98 f3 e0 f2 58 f3 a8 f2 a0 f3 70 f2 58 f3 d0 f2 10 f3 90 f2 58 f3 58 f2 10 f3 b0 f2 d0 f2 78 f2 18 f3 40 f2 10 f3 08 f2 40 f3 d8 f1 18 f3 00 f2 f8 f2 b8 f1 38 f3 90 f1 f8 f2 d8 f1 c0 f2 98 f1 08 f3 68 f1 b8 f2 c0 f1 78 f2 80 f1 c0 f2 50 f1 78 f2 a8 f1 30 f2 70 f1 78 f2 38 f1 30 f2 90 f1 e8 f1 58 f1 38 f2 28 f1 e8 f1 80 f1 a8 f1 48 f1 f8 f1 10 f1 f0 f1 e0 f0 28 f2 a8 f0 00 f2 d0 f0 e0 f1 90 f0 20 f2 60 f0 e0 f1 a8 f0 a8 f1 70 f0 e8 f1 40 f0 98 f1 98 f0 58 f1 60 f0 a0 f1 30 f0 50 f1 88 f0 10 f1 48 f0 58 f1 18 f0 10 f1 78 f0 c8 f0 38 f0 18 f1 08 f0 c8 f0 60 f0 88 f0 28 f0 d8 f0 f0 ef d0 f0 c0 ef 00 f1 90 ef d8 f0 b8 ef b8 f0 78 ef f8 f0 48 ef b8 f0 90 ef 88 f0 58 ef c8 f0 28 ef 80 f0 80 ef 48 f0 48 ef 88 f0 18 ef 40 f0 70 ef f8 ef 38 ef 40 f0 08 ef f8 ef 60 ef b0 ef 28 ef f8 ef f8 ee b0 ef 50 ef 70 ef 18 ef c0 ef e8 ee b0 ef +Block 'pq_ecu_test/ecu/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/ecu/fr' out (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' in (len=33): d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +Block 'pq_ecu_test/codec/fr' out (len=320): b8 ee e0 ef 88 ee b8 ef a8 ee 98 ef 70 ee d8 ef 40 ee 90 ef 88 ee 60 ef 48 ee a0 ef 20 ee 50 ef 78 ee 10 ef 38 ee 58 ef 10 ee 08 ef 68 ee c0 ee 30 ee 08 ef 00 ee c0 ee 60 ee 80 ee 28 ee c8 ee f0 ed 78 ee 48 ee 40 ee 08 ee 88 ee d8 ed 80 ee a8 ed b0 ee 78 ed 90 ee a0 ed 70 ee 60 ed b0 ee 30 ed 70 ee 80 ed 38 ee 48 ed 78 ee 18 ed 28 ee 70 ed e8 ed 30 ed 38 ee 00 ed f0 ed 58 ed b0 ed 10 ed f8 ed e0 ec b0 ed 38 ed 78 ed f8 ec c8 ed c8 ec 78 ed 20 ed 40 ed e0 ec 88 ed b0 ec 78 ed 88 ec a8 ed 58 ec 80 ed 78 ec 60 ed 40 ec a0 ed 10 ec 58 ed 58 ec 20 ed 20 ec 68 ed f8 eb 18 ed 50 ec d8 ec 10 ec 20 ed d8 eb d0 ec 30 ec 88 ec f8 eb d0 ec c0 eb 88 ec 18 ec 48 ec e0 eb 98 ec a8 eb 48 ec 00 ec 08 ec c8 eb 58 ec 90 eb 48 ec 60 eb 78 ec 38 eb 50 ec 60 eb 30 ec 20 eb 70 ec f8 ea 28 ec 48 eb f0 eb 10 eb 30 ec e0 ea e0 eb 38 eb a0 eb 00 eb f0 eb c8 ea a8 eb 28 eb 68 eb e8 ea b8 eb b0 ea 70 eb 08 eb 38 eb c8 ea 88 eb 90 ea 40 eb e8 ea 08 eb a8 ea 58 eb 70 ea 50 eb + +chunk null_context: depth=0 diff --git a/tests/testsuite.at b/tests/testsuite.at index 9855f5b..2b1f4c2 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -23,6 +23,13 @@ $abs_top_builddir/tests/io/pq_rtp_test], [0], [expout]) AT_CLEANUP +AT_SETUP([ecu/ecu_fr_test]) +AT_KEYWORDS([ecu_fr_test]) +cat $abs_srcdir/ecu/ecu_fr_test.ok > expout +AT_CHECK([ + $abs_top_builddir/tests/ecu/ecu_fr_test], [0], [expout]) +AT_CLEANUP + AT_SETUP([conv/enc/amr_efr]) AT_KEYWORDS([amr_efr]) AT_CHECK([test "x$enable_amr_efr_tests" = xyes || exit 77]) -- To view, visit https://gerrit.osmocom.org/9786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia929ee04f6be3d842c6ef7bc40cce0fdab16e90a Gerrit-Change-Number: 9786 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 29 18:54:35 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:54:35 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-msc_=C2=BB_--dis?= =?UTF-8?Q?able-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4269?= In-Reply-To: <137111347.409.1530296519207.JavaMail.jenkins@jenkins.osmocom.org> References: <137111347.409.1530296519207.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1737903982.417.1530298475009.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Fri Jun 29 18:55:31 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:55:31 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-msc_=C2=BB_--ena?= =?UTF-8?Q?ble-iu,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4269?= In-Reply-To: <812175141.411.1530296549131.JavaMail.jenkins@jenkins.osmocom.org> References: <812175141.411.1530296549131.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <904470668.418.1530298531465.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Fri Jun 29 18:57:02 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 18:57:02 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-bsc_=C2=BB_a1=3Dd?= =?UTF-8?Q?efault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#2612?= In-Reply-To: <244905475.408.1530296180984.JavaMail.jenkins@jenkins.osmocom.org> References: <244905475.408.1530296180984.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <837499268.419.1530298622879.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Fri Jun 29 19:38:43 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 19:38:43 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-simtrace2_=C2=BB_a1=3Ddefa?= =?UTF-8?Q?ult,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#1?= Message-ID: <154070285.421.1530301123406.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ Started by upstream project "master-simtrace2" build number 1 originally caused by: Started by user laforge Building remotely on admin2-deb9build (obs osmo-gsm-tester-build osmocom-gerrit-debian9 osmocom-master-debian9 coverity) in workspace Cloning the remote Git repository Cloning repository git://git.osmocom.org/simtrace2 > git init # timeout=10 Fetching upstream changes from git://git.osmocom.org/simtrace2 > git --version # timeout=10 > git fetch --tags --progress git://git.osmocom.org/simtrace2 +refs/heads/*:refs/remotes/origin/* > git config remote.origin.url git://git.osmocom.org/simtrace2 # timeout=10 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 > git config remote.origin.url git://git.osmocom.org/simtrace2 # timeout=10 Fetching upstream changes from git://git.osmocom.org/simtrace2 > git fetch --tags --progress git://git.osmocom.org/simtrace2 +refs/heads/*:refs/remotes/origin/* Checking out Revision 9e0eaee999dfac77ad8fe454651346a326fd79fc (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 9e0eaee999dfac77ad8fe454651346a326fd79fc Commit message: "add contrib/jenkins.sh for build verification" First time build. Skipping changelog. [osmocom-master-debian9] $ /bin/sh -xe /tmp/jenkins1604094219998188993.sh + ./contrib/jenkins.sh ./contrib/jenkins.sh: 6: ./contrib/jenkins.sh: BUILDS+=simtrace/dfu simtrace/cardem : not found Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 19:40:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 19:40:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-simtrace2_=C2=BB_a1=3Ddefa?= =?UTF-8?Q?ult,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#2?= In-Reply-To: <154070285.421.1530301123406.JavaMail.jenkins@jenkins.osmocom.org> References: <154070285.421.1530301123406.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <838075920.422.1530301206374.JavaMail.jenkins@jenkins.osmocom.org> See Changes: [laforge] add contrib/jenkins.sh for build verification ------------------------------------------ Started by upstream project "master-simtrace2" build number 2 originally caused by: Started by user laforge Building remotely on admin2-deb9build (obs osmo-gsm-tester-build osmocom-gerrit-debian9 osmocom-master-debian9 coverity) in workspace > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git://git.osmocom.org/simtrace2 # timeout=10 Fetching upstream changes from git://git.osmocom.org/simtrace2 > git --version # timeout=10 > git fetch --tags --progress git://git.osmocom.org/simtrace2 +refs/heads/*:refs/remotes/origin/* Checking out Revision 105c1dce4ffd43a940826c5ead8426668f493c62 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 105c1dce4ffd43a940826c5ead8426668f493c62 Commit message: "add contrib/jenkins.sh for build verification" > git rev-list --no-walk 9e0eaee999dfac77ad8fe454651346a326fd79fc # timeout=10 [osmocom-master-debian9] $ /bin/sh -xe /tmp/jenkins2390929274688648635.sh + ./contrib/jenkins.sh =============== simtrace / dfu START ============== gcc usbstring/usbstring.c -o usbstring/usbstring cat apps/dfu/usb_strings.txt | usbstring/usbstring > apps/dfu/usb_strings_generated.h mkdir bin mkdir obj/simtrace mkdir: cannot create directory ?obj/simtrace?: No such file or directory Makefile:195: recipe for target 'obj/simtrace' failed make: *** [obj/simtrace] Error 1 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 19:45:16 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 19:45:16 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-simtrace2_=C2=BB_a1?= =?UTF-8?Q?=3Ddefault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#3?= In-Reply-To: <838075920.422.1530301206374.JavaMail.jenkins@jenkins.osmocom.org> References: <838075920.422.1530301206374.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <836035098.423.1530301516242.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Jun 29 19:46:10 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 19:46:10 +0000 Subject: Change in osmo-ci[master]: Add simtrace2 gerrit + master jobs Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9789 Change subject: Add simtrace2 gerrit + master jobs ...................................................................... Add simtrace2 gerrit + master jobs Change-Id: Ib4da0011337d5a591944821411479f1c6bcc64ee --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/89/9789/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index f41b6ef..14df458 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -184,6 +184,7 @@ - osmocom-bb - osmo-tetra - osmo-sysmon + - simtrace2 - osmo-ttcn3-hacks: repos_url: 'https://gerrit.osmocom.org/{repos}' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index e03434d..a3e33be 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -324,6 +324,7 @@ - osmocom-bb - osmo-sysmon + - simtrace2 - rtl-sdr: email: laforge at gnumonks.org steve at steve-m.de -- To view, visit https://gerrit.osmocom.org/9789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib4da0011337d5a591944821411479f1c6bcc64ee Gerrit-Change-Number: 9789 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 19:47:19 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 19:47:19 +0000 Subject: Change in osmo-ci[master]: Add simtrace2 gerrit + master jobs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9789 ) Change subject: Add simtrace2 gerrit + master jobs ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib4da0011337d5a591944821411479f1c6bcc64ee Gerrit-Change-Number: 9789 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Fri, 29 Jun 2018 19:47:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 19:47:21 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 19:47:21 +0000 Subject: Change in osmo-ci[master]: Add simtrace2 gerrit + master jobs In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9789 ) Change subject: Add simtrace2 gerrit + master jobs ...................................................................... Add simtrace2 gerrit + master jobs Change-Id: Ib4da0011337d5a591944821411479f1c6bcc64ee --- M jobs/gerrit-verifications.yml M jobs/master-builds.yml 2 files changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index f41b6ef..14df458 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -184,6 +184,7 @@ - osmocom-bb - osmo-tetra - osmo-sysmon + - simtrace2 - osmo-ttcn3-hacks: repos_url: 'https://gerrit.osmocom.org/{repos}' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index e03434d..a3e33be 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -324,6 +324,7 @@ - osmocom-bb - osmo-sysmon + - simtrace2 - rtl-sdr: email: laforge at gnumonks.org steve at steve-m.de -- To view, visit https://gerrit.osmocom.org/9789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib4da0011337d5a591944821411479f1c6bcc64ee Gerrit-Change-Number: 9789 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Jun 29 19:56:09 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 19:56:09 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-simtrace2_=C2=BB_a1=3Ddefa?= =?UTF-8?Q?ult,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#4?= Message-ID: <859673279.424.1530302169603.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ Started by upstream project "master-simtrace2" build number 4 originally caused by: Started by an SCM change Building remotely on admin2-deb9build (obs osmo-gsm-tester-build osmocom-gerrit-debian9 osmocom-master-debian9 coverity) in workspace > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git://git.osmocom.org/simtrace2 # timeout=10 Fetching upstream changes from git://git.osmocom.org/simtrace2 > git --version # timeout=10 > git fetch --tags --progress git://git.osmocom.org/simtrace2 +refs/heads/*:refs/remotes/origin/* Checking out Revision 75cf93e04d23b0825ee777766d65ad5792e9058d (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 75cf93e04d23b0825ee777766d65ad5792e9058d Commit message: "rename ccid.c to mode_ccid.c to align with mode_cardemu.c" > git rev-list --no-walk ebe8b2069c8b51197aa2cdfe46ae4d0d77334882 # timeout=10 [osmocom-master-debian9] $ /bin/sh -xe /tmp/jenkins2861481394947835577.sh + ./contrib/jenkins.sh /tmp/jenkins2861481394947835577.sh: 2: /tmp/jenkins2861481394947835577.sh: ./contrib/jenkins.sh: not found Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Jun 29 20:01:41 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 29 Jun 2018 20:01:41 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-simtrace2_=C2=BB_a1?= =?UTF-8?Q?=3Ddefault,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#5?= In-Reply-To: <859673279.424.1530302169603.JavaMail.jenkins@jenkins.osmocom.org> References: <859673279.424.1530302169603.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1136768345.425.1530302501447.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Jun 29 20:17:01 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 20:17:01 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: Also run firmware tests + build-test host software Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9790 Change subject: contrib/jenkins.sh: Also run firmware tests + build-test host software ...................................................................... contrib/jenkins.sh: Also run firmware tests + build-test host software Change-Id: Ie53857164d0a21daac334057c5bafbfd9912bf4b --- M contrib/jenkins.sh 1 file changed, 16 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/90/9790/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index d263851..f764aa5 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -1,5 +1,7 @@ #!/bin/bash +TOPDIR=`pwd` + set -e BUILDS="" @@ -7,8 +9,7 @@ BUILDS+="qmod/dfu qmod/cardem " BUILDS+="owhw/dfu owhw/cardem " -cd firmware - +cd $TOPDIR/firmware for build in $BUILDS; do board=`echo $build | cut -d "/" -f 1` app=`echo $build | cut -d "/" -f 2` @@ -17,3 +18,16 @@ make BOARD="$board" APP="$app" echo "=============== $board / $app RES:$? ==============" done + +echo +echo "=============== FIRMWARE TESTS ===========" +cd $TOPDIR/firmware/test +make clean +make +./card_emu_test + +echo +echo "=============== HOST START ==============" +cd $TOPDIR/host +make clean +make -- To view, visit https://gerrit.osmocom.org/9790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie53857164d0a21daac334057c5bafbfd9912bf4b Gerrit-Change-Number: 9790 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 20:27:04 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 20:27:04 +0000 Subject: Change in simtrace2[master]: Use system include notation for libosmocore headers Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9791 Change subject: Use system include notation for libosmocore headers ...................................................................... Use system include notation for libosmocore headers the curent local copies of libosmocore headers + source is a temporary hack anyway. We should instead rely on a system-wide install of libosmocore cross-compiled for arm-none-eabi. But leave that as a second (later) step beyond this patch. Change-Id: Ia63fd842d45a2b404233b4326050e7eda0604cf0 --- M firmware/apps/cardem/main.c M firmware/apps/triple_play/main.c M firmware/libboard/qmod/source/board_qmod.c M firmware/libboard/qmod/source/wwan_perst.c M firmware/libboard/simtrace/source/board_simtrace.c M firmware/libcommon/include/llist_irqsafe.h M firmware/libcommon/include/usb_buf.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/host_communication.c M firmware/libcommon/source/mode_cardemu.c M firmware/libcommon/source/pseudo_talloc.c M firmware/libcommon/source/usb_buf.c M firmware/libosmocore/include/osmocom/core/timer.h M firmware/libosmocore/source/timer.c 14 files changed, 21 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/91/9791/1 diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c index aabaa41..a80c498 100644 --- a/firmware/apps/cardem/main.c +++ b/firmware/apps/cardem/main.c @@ -6,7 +6,7 @@ #include "board.h" #include "simtrace.h" #include "utils.h" -#include "osmocom/core/timer.h" +#include unsigned int g_unique_id[4]; diff --git a/firmware/apps/triple_play/main.c b/firmware/apps/triple_play/main.c index 5ff3222..75fcb36 100644 --- a/firmware/apps/triple_play/main.c +++ b/firmware/apps/triple_play/main.c @@ -7,7 +7,7 @@ #include "simtrace.h" #include "utils.h" #include "req_ctx.h" -#include "osmocom/core/timer.h" +#include unsigned int g_unique_id[4]; diff --git a/firmware/libboard/qmod/source/board_qmod.c b/firmware/libboard/qmod/source/board_qmod.c index 0343895..dd6e616 100644 --- a/firmware/libboard/qmod/source/board_qmod.c +++ b/firmware/libboard/qmod/source/board_qmod.c @@ -9,7 +9,7 @@ #include "sim_switch.h" #include "boardver_adc.h" #include "card_pres.h" -#include "osmocom/core/timer.h" +#include #include "usb_buf.h" static const Pin pin_hubpwr_override = PIN_PRTPWR_OVERRIDE; diff --git a/firmware/libboard/qmod/source/wwan_perst.c b/firmware/libboard/qmod/source/wwan_perst.c index aff0bb0..a6d7dd2 100644 --- a/firmware/libboard/qmod/source/wwan_perst.c +++ b/firmware/libboard/qmod/source/wwan_perst.c @@ -9,7 +9,7 @@ #include "board.h" #include "trace.h" #include "wwan_perst.h" -#include "osmocom/core/timer.h" +#include struct wwan_perst { uint8_t idx; diff --git a/firmware/libboard/simtrace/source/board_simtrace.c b/firmware/libboard/simtrace/source/board_simtrace.c index e29161c..04a3249 100644 --- a/firmware/libboard/simtrace/source/board_simtrace.c +++ b/firmware/libboard/simtrace/source/board_simtrace.c @@ -5,7 +5,7 @@ #include "simtrace.h" #include "utils.h" #include "sim_switch.h" -#include "osmocom/core/timer.h" +#include #include "usb_buf.h" void board_exec_dbg_cmd(int ch) diff --git a/firmware/libcommon/include/llist_irqsafe.h b/firmware/libcommon/include/llist_irqsafe.h index 369b026..d9c003d 100644 --- a/firmware/libcommon/include/llist_irqsafe.h +++ b/firmware/libcommon/include/llist_irqsafe.h @@ -1,6 +1,6 @@ #pragma once -#include "osmocom/core/linuxlist.h" +#include #include "utils.h" static inline void llist_add_irqsafe(struct llist_head *_new, diff --git a/firmware/libcommon/include/usb_buf.h b/firmware/libcommon/include/usb_buf.h index dd16531..7171c68 100644 --- a/firmware/libcommon/include/usb_buf.h +++ b/firmware/libcommon/include/usb_buf.h @@ -1,7 +1,7 @@ #pragma once -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include /* buffered USB endpoint (with queue of msgb) */ struct usb_buffered_ep { diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 98b08d7..7aa3fc0 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -33,8 +33,8 @@ #include "card_emu.h" #include "simtrace_prot.h" #include "usb_buf.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #define NUM_SLOTS 2 diff --git a/firmware/libcommon/source/host_communication.c b/firmware/libcommon/source/host_communication.c index 04ee9b8..75e1779 100644 --- a/firmware/libcommon/source/host_communication.c +++ b/firmware/libcommon/source/host_communication.c @@ -3,8 +3,8 @@ #include "usb_buf.h" #include "utils.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #include /*********************************************************************** diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 53b29df..7de67df 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -6,8 +6,8 @@ #include "card_emu.h" #include "iso7816_fidi.h" #include "utils.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #include "llist_irqsafe.h" #include "usb_buf.h" #include "simtrace_prot.h" diff --git a/firmware/libcommon/source/pseudo_talloc.c b/firmware/libcommon/source/pseudo_talloc.c index fd5cd13..c9722ba 100644 --- a/firmware/libcommon/source/pseudo_talloc.c +++ b/firmware/libcommon/source/pseudo_talloc.c @@ -3,7 +3,7 @@ #include "talloc.h" #include "trace.h" #include "utils.h" -#include "osmocom/core/utils.h" +#include #define NUM_RCTX_SMALL 10 #define RCTX_SIZE_SMALL 348 diff --git a/firmware/libcommon/source/usb_buf.c b/firmware/libcommon/source/usb_buf.c index ddeb43b..848fd24 100644 --- a/firmware/libcommon/source/usb_buf.c +++ b/firmware/libcommon/source/usb_buf.c @@ -2,8 +2,8 @@ #include "trace.h" #include "usb_buf.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #include #define USB_ALLOC_SIZE 280 diff --git a/firmware/libosmocore/include/osmocom/core/timer.h b/firmware/libosmocore/include/osmocom/core/timer.h index 2f62b20..6d70fff 100644 --- a/firmware/libosmocore/include/osmocom/core/timer.h +++ b/firmware/libosmocore/include/osmocom/core/timer.h @@ -60,8 +60,8 @@ #include -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/linuxrbtree.h" +#include +#include /** * Timer management: diff --git a/firmware/libosmocore/source/timer.c b/firmware/libosmocore/source/timer.c index e045441..75c7d45 100644 --- a/firmware/libosmocore/source/timer.c +++ b/firmware/libosmocore/source/timer.c @@ -33,8 +33,8 @@ #include #include -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/timer.h" +#include +#include /* These store the amount of time that we wait until next timer expires. */ static struct osmo_timeval nearest; -- To view, visit https://gerrit.osmocom.org/9791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia63fd842d45a2b404233b4326050e7eda0604cf0 Gerrit-Change-Number: 9791 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 20:29:34 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 20:29:34 +0000 Subject: Change in simtrace2[master]: Use system include notation for libosmocore headers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/9791 ) Change subject: Use system include notation for libosmocore headers ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/9791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia63fd842d45a2b404233b4326050e7eda0604cf0 Gerrit-Change-Number: 9791 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder Gerrit-Comment-Date: Fri, 29 Jun 2018 20:29:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Jun 29 20:30:36 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 29 Jun 2018 20:30:36 +0000 Subject: Change in simtrace2[master]: Use system include notation for libosmocore headers In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/9791 ) Change subject: Use system include notation for libosmocore headers ...................................................................... Use system include notation for libosmocore headers the curent local copies of libosmocore headers + source is a temporary hack anyway. We should instead rely on a system-wide install of libosmocore cross-compiled for arm-none-eabi. But leave that as a second (later) step beyond this patch. Change-Id: Ia63fd842d45a2b404233b4326050e7eda0604cf0 --- M firmware/apps/cardem/main.c M firmware/apps/triple_play/main.c M firmware/libboard/qmod/source/board_qmod.c M firmware/libboard/qmod/source/wwan_perst.c M firmware/libboard/simtrace/source/board_simtrace.c M firmware/libcommon/include/llist_irqsafe.h M firmware/libcommon/include/usb_buf.h M firmware/libcommon/source/card_emu.c M firmware/libcommon/source/host_communication.c M firmware/libcommon/source/mode_cardemu.c M firmware/libcommon/source/pseudo_talloc.c M firmware/libcommon/source/usb_buf.c M firmware/libosmocore/include/osmocom/core/timer.h M firmware/libosmocore/source/timer.c 14 files changed, 21 insertions(+), 21 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/firmware/apps/cardem/main.c b/firmware/apps/cardem/main.c index aabaa41..a80c498 100644 --- a/firmware/apps/cardem/main.c +++ b/firmware/apps/cardem/main.c @@ -6,7 +6,7 @@ #include "board.h" #include "simtrace.h" #include "utils.h" -#include "osmocom/core/timer.h" +#include unsigned int g_unique_id[4]; diff --git a/firmware/apps/triple_play/main.c b/firmware/apps/triple_play/main.c index 5ff3222..75fcb36 100644 --- a/firmware/apps/triple_play/main.c +++ b/firmware/apps/triple_play/main.c @@ -7,7 +7,7 @@ #include "simtrace.h" #include "utils.h" #include "req_ctx.h" -#include "osmocom/core/timer.h" +#include unsigned int g_unique_id[4]; diff --git a/firmware/libboard/qmod/source/board_qmod.c b/firmware/libboard/qmod/source/board_qmod.c index 0343895..dd6e616 100644 --- a/firmware/libboard/qmod/source/board_qmod.c +++ b/firmware/libboard/qmod/source/board_qmod.c @@ -9,7 +9,7 @@ #include "sim_switch.h" #include "boardver_adc.h" #include "card_pres.h" -#include "osmocom/core/timer.h" +#include #include "usb_buf.h" static const Pin pin_hubpwr_override = PIN_PRTPWR_OVERRIDE; diff --git a/firmware/libboard/qmod/source/wwan_perst.c b/firmware/libboard/qmod/source/wwan_perst.c index aff0bb0..a6d7dd2 100644 --- a/firmware/libboard/qmod/source/wwan_perst.c +++ b/firmware/libboard/qmod/source/wwan_perst.c @@ -9,7 +9,7 @@ #include "board.h" #include "trace.h" #include "wwan_perst.h" -#include "osmocom/core/timer.h" +#include struct wwan_perst { uint8_t idx; diff --git a/firmware/libboard/simtrace/source/board_simtrace.c b/firmware/libboard/simtrace/source/board_simtrace.c index e29161c..04a3249 100644 --- a/firmware/libboard/simtrace/source/board_simtrace.c +++ b/firmware/libboard/simtrace/source/board_simtrace.c @@ -5,7 +5,7 @@ #include "simtrace.h" #include "utils.h" #include "sim_switch.h" -#include "osmocom/core/timer.h" +#include #include "usb_buf.h" void board_exec_dbg_cmd(int ch) diff --git a/firmware/libcommon/include/llist_irqsafe.h b/firmware/libcommon/include/llist_irqsafe.h index 369b026..d9c003d 100644 --- a/firmware/libcommon/include/llist_irqsafe.h +++ b/firmware/libcommon/include/llist_irqsafe.h @@ -1,6 +1,6 @@ #pragma once -#include "osmocom/core/linuxlist.h" +#include #include "utils.h" static inline void llist_add_irqsafe(struct llist_head *_new, diff --git a/firmware/libcommon/include/usb_buf.h b/firmware/libcommon/include/usb_buf.h index dd16531..7171c68 100644 --- a/firmware/libcommon/include/usb_buf.h +++ b/firmware/libcommon/include/usb_buf.h @@ -1,7 +1,7 @@ #pragma once -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include /* buffered USB endpoint (with queue of msgb) */ struct usb_buffered_ep { diff --git a/firmware/libcommon/source/card_emu.c b/firmware/libcommon/source/card_emu.c index 98b08d7..7aa3fc0 100644 --- a/firmware/libcommon/source/card_emu.c +++ b/firmware/libcommon/source/card_emu.c @@ -33,8 +33,8 @@ #include "card_emu.h" #include "simtrace_prot.h" #include "usb_buf.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #define NUM_SLOTS 2 diff --git a/firmware/libcommon/source/host_communication.c b/firmware/libcommon/source/host_communication.c index 04ee9b8..75e1779 100644 --- a/firmware/libcommon/source/host_communication.c +++ b/firmware/libcommon/source/host_communication.c @@ -3,8 +3,8 @@ #include "usb_buf.h" #include "utils.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #include /*********************************************************************** diff --git a/firmware/libcommon/source/mode_cardemu.c b/firmware/libcommon/source/mode_cardemu.c index 53b29df..7de67df 100644 --- a/firmware/libcommon/source/mode_cardemu.c +++ b/firmware/libcommon/source/mode_cardemu.c @@ -6,8 +6,8 @@ #include "card_emu.h" #include "iso7816_fidi.h" #include "utils.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #include "llist_irqsafe.h" #include "usb_buf.h" #include "simtrace_prot.h" diff --git a/firmware/libcommon/source/pseudo_talloc.c b/firmware/libcommon/source/pseudo_talloc.c index fd5cd13..c9722ba 100644 --- a/firmware/libcommon/source/pseudo_talloc.c +++ b/firmware/libcommon/source/pseudo_talloc.c @@ -3,7 +3,7 @@ #include "talloc.h" #include "trace.h" #include "utils.h" -#include "osmocom/core/utils.h" +#include #define NUM_RCTX_SMALL 10 #define RCTX_SIZE_SMALL 348 diff --git a/firmware/libcommon/source/usb_buf.c b/firmware/libcommon/source/usb_buf.c index ddeb43b..848fd24 100644 --- a/firmware/libcommon/source/usb_buf.c +++ b/firmware/libcommon/source/usb_buf.c @@ -2,8 +2,8 @@ #include "trace.h" #include "usb_buf.h" -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/msgb.h" +#include +#include #include #define USB_ALLOC_SIZE 280 diff --git a/firmware/libosmocore/include/osmocom/core/timer.h b/firmware/libosmocore/include/osmocom/core/timer.h index 2f62b20..6d70fff 100644 --- a/firmware/libosmocore/include/osmocom/core/timer.h +++ b/firmware/libosmocore/include/osmocom/core/timer.h @@ -60,8 +60,8 @@ #include -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/linuxrbtree.h" +#include +#include /** * Timer management: diff --git a/firmware/libosmocore/source/timer.c b/firmware/libosmocore/source/timer.c index e045441..75c7d45 100644 --- a/firmware/libosmocore/source/timer.c +++ b/firmware/libosmocore/source/timer.c @@ -33,8 +33,8 @@ #include #include -#include "osmocom/core/linuxlist.h" -#include "osmocom/core/timer.h" +#include +#include /* These store the amount of time that we wait until next timer expires. */ static struct osmo_timeval nearest; -- To view, visit https://gerrit.osmocom.org/9791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia63fd842d45a2b404233b4326050e7eda0604cf0 Gerrit-Change-Number: 9791 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 30 11:08:54 2018 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sat, 30 Jun 2018 11:08:54 +0000 Subject: Change in simtrace2[master]: contrib/jenkins.sh: Also run firmware tests + build-test host software In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/9790 ) Change subject: contrib/jenkins.sh: Also run firmware tests + build-test host software ...................................................................... Patch Set 2: I'm not too familiar with the jenkins setup. is the current directory also the directory where the code to test is (TOPDIR=`pwd`)? Why is jenkins saying the verification failed? I don't see the build fail in gerrit-simtrace2? Is it done later? -- To view, visit https://gerrit.osmocom.org/9790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie53857164d0a21daac334057c5bafbfd9912bf4b Gerrit-Change-Number: 9790 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Assignee: K?vin Redon Gerrit-Reviewer: Jenkins Builder Gerrit-CC: K?vin Redon Gerrit-Comment-Date: Sat, 30 Jun 2018 11:08:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 30 14:23:17 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 30 Jun 2018 14:23:17 +0000 Subject: Change in gapk[master]: libgsmhr/fetch_sources.py: fix source code downloading Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9792 Change subject: libgsmhr/fetch_sources.py: fix source code downloading ...................................................................... libgsmhr/fetch_sources.py: fix source code downloading For some reason, the 3GPP server started to reject the source code download request: urllib2.HTTPError: HTTP Error 403: Forbidden Adding both 'User-Agent' and 'Accept' headers solves the problem. Change-Id: I8afd39c85dd3e450c5355888ab6edcf4c81f8b87 --- M libgsmhr/fetch_sources.py 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/92/9792/1 diff --git a/libgsmhr/fetch_sources.py b/libgsmhr/fetch_sources.py index a65fff2..6fb1b8e 100755 --- a/libgsmhr/fetch_sources.py +++ b/libgsmhr/fetch_sources.py @@ -12,6 +12,10 @@ SRC = "http://www.3gpp.org/ftp/Specs/archive/06_series/06.06/0606-421.zip" +HDR = { + "User-Agent": "Mozilla/5.0 (X11; ArchLinux; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0", + "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", +} def get_zipfile(data): @@ -45,7 +49,8 @@ os.chdir(tgt) # Get the original data - u = urllib2.urlopen(SRC) + req = urllib2.Request(SRC, headers = HDR) + u = urllib2.urlopen(req) d = u.read() # Get DISK.zip -- To view, visit https://gerrit.osmocom.org/9792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8afd39c85dd3e450c5355888ab6edcf4c81f8b87 Gerrit-Change-Number: 9792 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 30 14:23:18 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 30 Jun 2018 14:23:18 +0000 Subject: Change in gapk[master]: tests: make both Valgrind and LeakSanitizer happy Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9793 Change subject: tests: make both Valgrind and LeakSanitizer happy ...................................................................... tests: make both Valgrind and LeakSanitizer happy The talloc_enable_null_tracking() actually allocates a new talloc context, which makes both Valgrind and LeakSanitizer angry. This context should be freed by the talloc_disable_null_tracking(). Change-Id: Ia660d2fdac720f685c0186720d0a476d7e9468be --- M tests/ecu/ecu_fr_test.c M tests/io/pq_file_test.c M tests/io/pq_rtp_test.c M tests/procqueue/pq_test.c 4 files changed, 12 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/93/9793/1 diff --git a/tests/ecu/ecu_fr_test.c b/tests/ecu/ecu_fr_test.c index 372df25..609112f 100644 --- a/tests/ecu/ecu_fr_test.c +++ b/tests/ecu/ecu_fr_test.c @@ -143,5 +143,8 @@ /* Make sure we have no memleaks */ talloc_report_depth_cb(NULL, 0, 10, &talloc_ctx_walk_cb, NULL); + /* Make both Valgrind and LeakSanitizer happy */ + talloc_disable_null_tracking(); + return 0; } diff --git a/tests/io/pq_file_test.c b/tests/io/pq_file_test.c index 6691db3..664acf7 100644 --- a/tests/io/pq_file_test.c +++ b/tests/io/pq_file_test.c @@ -145,5 +145,8 @@ /* Print talloc memory hierarchy */ talloc_report_depth_cb(NULL, 0, 10, &talloc_ctx_walk_cb, NULL); + /* Make both Valgrind and LeakSanitizer happy */ + talloc_disable_null_tracking(); + return 0; } diff --git a/tests/io/pq_rtp_test.c b/tests/io/pq_rtp_test.c index f4070b7..2c1bd41 100644 --- a/tests/io/pq_rtp_test.c +++ b/tests/io/pq_rtp_test.c @@ -345,5 +345,8 @@ /* Memory leak detection test */ talloc_report_depth_cb(NULL, 0, 10, &talloc_ctx_walk_cb, NULL); + /* Make both Valgrind and LeakSanitizer happy */ + talloc_disable_null_tracking(); + return 0; } diff --git a/tests/procqueue/pq_test.c b/tests/procqueue/pq_test.c index 198108d..84b3992 100644 --- a/tests/procqueue/pq_test.c +++ b/tests/procqueue/pq_test.c @@ -369,5 +369,8 @@ printf("Processing queue deallocation test:\n"); talloc_report_depth_cb(NULL, 0, 10, &talloc_ctx_walk_cb, NULL); + /* Make both Valgrind and LeakSanitizer happy */ + talloc_disable_null_tracking(); + return 0; } -- To view, visit https://gerrit.osmocom.org/9793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia660d2fdac720f685c0186720d0a476d7e9468be Gerrit-Change-Number: 9793 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 30 14:23:18 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 30 Jun 2018 14:23:18 +0000 Subject: Change in gapk[master]: fmt_ti.c: fix: properly pre-clean the output buffer Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9794 Change subject: fmt_ti.c: fix: properly pre-clean the output buffer ...................................................................... fmt_ti.c: fix: properly pre-clean the output buffer Despite it was stated that only the last nibble isn't being written, some other bytes in the middle of the output buffer were uninitialized during the first exectution of a queue. The problem was observed with AddressSanitizer enabled. Valgrind output: $ valgrind --track-origins=yes \ src/.libs/lt-osmo-gapk \ -i tests/ref-files/hhgttg_part1_5.s16.ti-efr \ -f ti-efr -g rawpcm-s16le \ -o /dev/null -v Conditional jump or move depends on uninitialised value(s) at 0x52728F2: msb_put_bit (utils.h:39) by 0x52728F2: amr_efr_from_canon (fmt_amr.c:45) by 0x5270A7D: osmo_gapk_pq_execute (procqueue.c:202) by 0x40296A: run (app_osmo_gapk.c:650) by 0x40296A: main (app_osmo_gapk.c:778) Uninitialised value was created by a heap allocation at 0x4C2AB80: malloc (in vgpreload_memcheck-amd64-linux.so) by 0x4E3C2A8: talloc_named_const (in libtalloc.so.2.1.5) by 0x5270A1B: osmo_gapk_pq_prepare (procqueue.c:180) by 0x402940: run (app_osmo_gapk.c:645) by 0x402940: main (app_osmo_gapk.c:778) Change-Id: I79df56dde23702b0eac8e8fdbc0efd270cc0ace4 Related: OS#2934 --- M src/fmt_ti.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/94/9794/1 diff --git a/src/fmt_ti.c b/src/fmt_ti.c index d7a1ec7..61c0f8c 100644 --- a/src/fmt_ti.c +++ b/src/fmt_ti.c @@ -191,7 +191,8 @@ assert(src_len == TI_LEN); - dst[30] = 0x00; /* last nibble won't written, pre-clear it */ + /* Pre-clear the output buffer */ + memset(dst, 0x00, EFR_CANON_LEN); for (i=0; i<244; i++) { int si = i >= 182 ? i+4 : i; -- To view, visit https://gerrit.osmocom.org/9794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I79df56dde23702b0eac8e8fdbc0efd270cc0ace4 Gerrit-Change-Number: 9794 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 30 15:08:07 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 30 Jun 2018 15:08:07 +0000 Subject: Change in gapk[master]: configure.ac: disable building libgsmhr by default Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9795 Change subject: configure.ac: disable building libgsmhr by default ...................................................................... configure.ac: disable building libgsmhr by default At the moment, Half Rate codec support is limited. There are still some issues with encoding of the reference files (see OS#2514), and moreover AddressSanitizer is not happy about libgsmhr... Change-Id: Ib86f3f972fc31c7eedf7ed75a7c356ac62e47dc6 Related: OS#2514 --- M configure.ac 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/95/9795/1 diff --git a/configure.ac b/configure.ac index 8b6a489..6551ae6 100644 --- a/configure.ac +++ b/configure.ac @@ -27,10 +27,10 @@ # Options AC_ARG_ENABLE(gsmhr, [AS_HELP_STRING( - [--disable-gsmhr], - [Disable support for GSM HR codec using reference code] + [--enable-gsmhr], + [Enable support for GSM HR codec using GSM 06.06 reference code] )], - [enable_gsmhr=$enableval], [enable_gsmhr="yes"]) + [enable_gsmhr="yes"], [enable_gsmhr=$enableval]) AM_CONDITIONAL(ENABLE_GSMHR, test "x$enable_gsmhr" = "xyes") if test "x$enable_gsmhr" = "xyes"; then AM_PATH_PYTHON([2.4]) -- To view, visit https://gerrit.osmocom.org/9795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib86f3f972fc31c7eedf7ed75a7c356ac62e47dc6 Gerrit-Change-Number: 9795 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Jun 30 15:08:07 2018 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 30 Jun 2018 15:08:07 +0000 Subject: Change in gapk[master]: contrib/jenkins.sh: enable AddressSanitizer Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/9796 Change subject: contrib/jenkins.sh: enable AddressSanitizer ...................................................................... contrib/jenkins.sh: enable AddressSanitizer Change-Id: I5075107e9b563c06f43eb4544e81aefae3ad1f7d --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/gapk refs/changes/96/9796/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index ba4e7af..cf53c3a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -34,7 +34,7 @@ cd "$base" autoreconf --install --force -./configure +./configure --enable-sanitize $MAKE $PARALLEL_MAKE LD_LIBRARY_PATH="$inst/lib" $MAKE check || cat-testlogs.sh LD_LIBRARY_PATH="$inst/lib" DISTCHECK_CONFIGURE_FLAGS="" $MAKE distcheck || cat-testlogs.sh -- To view, visit https://gerrit.osmocom.org/9796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gapk Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5075107e9b563c06f43eb4544e81aefae3ad1f7d Gerrit-Change-Number: 9796 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Jun 30 15:10:06 2018 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 30 Jun 2018 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-asn1c_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,osmocom-master-debian9_#170?= In-Reply-To: <2075009825.389.1530285006423.JavaMail.jenkins@jenkins.osmocom.org> References: <2075009825.389.1530285006423.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1349738667.438.1530371406862.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 2.51 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Jun 21 18:46:23 2018 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Jun 2018 18:46:23 -0000 Subject: Change in osmo-msc[master]: libmsc: move L3 call-control to separate C file (gsm_04_08_cc.c) Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/9705 Change subject: libmsc: move L3 call-control to separate C file (gsm_04_08_cc.c) ...................................................................... libmsc: move L3 call-control to separate C file (gsm_04_08_cc.c) The CC sub-layer is fairly self-contained, so let's move it to a separate C source file. The old gsm_04_08.c file now only contains the 04.07 / DTAP core and MM sub-layer handling. I did this initially as an experiment to see how self-contained our CC implementation really is. Given this rather straight-forward patch builds fine, CC really is self-contained (yay!). Change-Id: Idb8dd7a8d9d8b4a28c492f12da3cc3305b695cca --- M include/osmocom/msc/gsm_04_08.h M src/libmsc/Makefile.am M src/libmsc/gsm_04_08.c A src/libmsc/gsm_04_08_cc.c 4 files changed, 2,142 insertions(+), 2,066 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/05/9705/1 diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h index a99e458..8767070 100644 --- a/include/osmocom/msc/gsm_04_08.h +++ b/include/osmocom/msc/gsm_04_08.h @@ -77,5 +77,6 @@ int gsm48_multirate_config(uint8_t *lv, const struct amr_multirate_conf *mr, const struct amr_mode *modes); int gsm48_tch_rtp_create(struct gsm_trans *trans); +int gsm48_conn_sendmsg(struct msgb *msg, struct gsm_subscriber_connection *conn, struct gsm_trans *trans); #endif diff --git a/src/libmsc/Makefile.am b/src/libmsc/Makefile.am index ad8deec..a2560ea 100644 --- a/src/libmsc/Makefile.am +++ b/src/libmsc/Makefile.am @@ -32,6 +32,7 @@ msc_vty.c \ db.c \ gsm_04_08.c \ + gsm_04_08_cc.c \ gsm_04_11.c \ gsm_04_14.c \ gsm_04_80.c \ diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 04fa4b0..f81a6fa 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -80,7 +80,23 @@ static int gsm0408_loc_upd_acc(struct gsm_subscriber_connection *conn, uint32_t send_tmsi); -static uint32_t new_callref = 0x80000001; +/*! Send a simple GSM 04.08 message without any payload + * \param conn Active subscriber connection + * \param[in] pdisc Protocol discriminator + * \param[in] msg_type Message type + * \return result of \ref gsm48_conn_sendmsg + */ +int gsm48_tx_simple(struct gsm_subscriber_connection *conn, + uint8_t pdisc, uint8_t msg_type) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 TX SIMPLE"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->proto_discr = pdisc; + gh->msg_type = msg_type; + + return gsm48_conn_sendmsg(msg, conn, NULL); +} static bool classmark_is_r99(struct gsm_classmark *cm) { @@ -148,13 +164,7 @@ } } -void cc_tx_to_mncc(struct gsm_network *net, struct msgb *msg) -{ - net->mncc_recv(net, msg); -} - -static int gsm48_conn_sendmsg(struct msgb *msg, struct gsm_subscriber_connection *conn, - struct gsm_trans *trans) +int gsm48_conn_sendmsg(struct msgb *msg, struct gsm_subscriber_connection *conn, struct gsm_trans *trans) { struct gsm48_hdr *gh = (struct gsm48_hdr *) msg->data; @@ -168,23 +178,6 @@ return msc_tx_dtap(conn, msg); } -int gsm48_cc_tx_notify_ss(struct gsm_trans *trans, const char *message) -{ - struct gsm48_hdr *gh; - struct msgb *ss_notify; - - ss_notify = gsm0480_create_notifySS(message); - if (!ss_notify) - return -1; - - gsm0480_wrap_invoke(ss_notify, GSM0480_OP_CODE_NOTIFY_SS, 0); - uint8_t *data = msgb_push(ss_notify, 1); - data[0] = ss_notify->len - 1; - gh = (struct gsm48_hdr *) msgb_push(ss_notify, sizeof(*gh)); - gh->msg_type = GSM48_MT_CC_FACILITY; - return gsm48_conn_sendmsg(ss_notify, trans->conn, trans); -} - /* clear all transactions globally; used in case of MNCC socket disconnect */ void gsm0408_clear_all_trans(struct gsm_network *net, int protocol) { @@ -1269,2047 +1262,6 @@ return gsm48_conn_sendmsg(msg, conn, NULL); } -/* FIXME: this count_statistics is a state machine behaviour. we should convert - * the complete call control into a state machine. Afterwards we can move this - * code into state transitions. - */ -static void count_statistics(struct gsm_trans *trans, int new_state) -{ - int old_state = trans->cc.state; - struct rate_ctr_group *msc = trans->net->msc_ctrs; - - if (old_state == new_state) - return; - - /* state incoming */ - switch (new_state) { - case GSM_CSTATE_ACTIVE: - osmo_counter_inc(trans->net->active_calls); - rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_ACTIVE]); - break; - } - - /* state outgoing */ - switch (old_state) { - case GSM_CSTATE_ACTIVE: - osmo_counter_dec(trans->net->active_calls); - if (new_state == GSM_CSTATE_DISCONNECT_REQ || - new_state == GSM_CSTATE_DISCONNECT_IND) - rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_COMPLETE]); - else - rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_INCOMPLETE]); - break; - } -} - -/* Call Control */ - -/* The entire call control code is written in accordance with Figure 7.10c - * for 'very early assignment', i.e. we allocate a TCH/F during IMMEDIATE - * ASSIGN, then first use that TCH/F for signalling and later MODE MODIFY - * it for voice */ - -static void new_cc_state(struct gsm_trans *trans, int state) -{ - if (state > 31 || state < 0) - return; - - DEBUGP(DCC, "(ti %02x sub %s) new state %s -> %s\n", - trans->transaction_id, - vlr_subscr_name(trans->vsub), - gsm48_cc_state_name(trans->cc.state), - gsm48_cc_state_name(state)); - - count_statistics(trans, state); - trans->cc.state = state; -} - -static int gsm48_cc_tx_status(struct gsm_trans *trans, void *arg) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC STATUS"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - uint8_t *cause, *call_state; - - gh->msg_type = GSM48_MT_CC_STATUS; - - cause = msgb_put(msg, 3); - cause[0] = 2; - cause[1] = GSM48_CAUSE_CS_GSM | GSM48_CAUSE_LOC_USER; - cause[2] = 0x80 | 30; /* response to status inquiry */ - - call_state = msgb_put(msg, 1); - call_state[0] = 0xc0 | 0x00; - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -/*! Send a simple GSM 04.08 message without any payload - * \param conn Active subscriber connection - * \param[in] pdisc Protocol discriminator - * \param[in] msg_type Message type - * \return result of \ref gsm48_conn_sendmsg - */ -int gsm48_tx_simple(struct gsm_subscriber_connection *conn, - uint8_t pdisc, uint8_t msg_type) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 TX SIMPLE"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->proto_discr = pdisc; - gh->msg_type = msg_type; - - return gsm48_conn_sendmsg(msg, conn, NULL); -} - -static void gsm48_stop_cc_timer(struct gsm_trans *trans) -{ - if (osmo_timer_pending(&trans->cc.timer)) { - DEBUGP(DCC, "stopping pending timer T%x\n", trans->cc.Tcurrent); - osmo_timer_del(&trans->cc.timer); - trans->cc.Tcurrent = 0; - } -} - -static int mncc_recvmsg(struct gsm_network *net, struct gsm_trans *trans, - int msg_type, struct gsm_mncc *mncc) -{ - struct msgb *msg; - unsigned char *data; - - DEBUGP(DMNCC, "transmit message %s\n", get_mncc_name(msg_type)); - -#if BEFORE_MSCSPLIT - /* Re-enable this log output once we can obtain this information via - * A-interface, see OS#2391. */ - if (trans) - if (trans->conn && trans->conn->lchan) - DEBUGP(DCC, "(bts %d trx %d ts %d ti %x sub %s) " - "Sending '%s' to MNCC.\n", - trans->conn->lchan->ts->trx->bts->nr, - trans->conn->lchan->ts->trx->nr, - trans->conn->lchan->ts->nr, trans->transaction_id, - vlr_subscr_msisdn_or_name(trans->vsub), - get_mncc_name(msg_type)); - else - DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " - "Sending '%s' to MNCC.\n", - vlr_subscr_msisdn_or_name(trans->vsub), - get_mncc_name(msg_type)); - else - DEBUGP(DCC, "(bts - trx - ts - ti -- sub -) " - "Sending '%s' to MNCC.\n", get_mncc_name(msg_type)); -#else - DEBUGP(DCC, "Sending '%s' to MNCC.\n", get_mncc_name(msg_type)); -#endif - - mncc->msg_type = msg_type; - - msg = msgb_alloc(sizeof(struct gsm_mncc), "MNCC"); - if (!msg) - return -ENOMEM; - - data = msgb_put(msg, sizeof(struct gsm_mncc)); - memcpy(data, mncc, sizeof(struct gsm_mncc)); - - cc_tx_to_mncc(net, msg); - - return 0; -} - -int mncc_release_ind(struct gsm_network *net, struct gsm_trans *trans, - uint32_t callref, int location, int value) -{ - struct gsm_mncc rel; - - memset(&rel, 0, sizeof(rel)); - rel.callref = callref; - mncc_set_cause(&rel, location, value); - if (trans && trans->cc.state == GSM_CSTATE_RELEASE_REQ) - return mncc_recvmsg(net, trans, MNCC_REL_CNF, &rel); - return mncc_recvmsg(net, trans, MNCC_REL_IND, &rel); -} - -/* Call Control Specific transaction release. - * gets called by trans_free, DO NOT CALL YOURSELF! */ -void _gsm48_cc_trans_free(struct gsm_trans *trans) -{ - gsm48_stop_cc_timer(trans); - - /* Initiate the teardown of the related connections on the MGW */ - msc_mgcp_call_release(trans); - - /* send release to L4, if callref still exists */ - if (trans->callref) { - /* Ressource unavailable */ - mncc_release_ind(trans->net, trans, trans->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_RESOURCE_UNAVAIL); - /* This is a final freeing of the transaction. The MNCC release may have triggered the - * T308 release timer, but we don't have the luxury of graceful CC Release here. */ - gsm48_stop_cc_timer(trans); - } - if (trans->cc.state != GSM_CSTATE_NULL) - new_cc_state(trans, GSM_CSTATE_NULL); -} - -static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg); - -/* call-back from paging the B-end of the connection */ -static int setup_trig_pag_evt(unsigned int hooknum, unsigned int event, - struct msgb *msg, void *_conn, void *_transt) -{ - struct gsm_subscriber_connection *conn = _conn; - struct gsm_trans *transt = _transt; - enum gsm_paging_event paging_event = event; - - OSMO_ASSERT(!transt->conn); - - switch (paging_event) { - case GSM_PAGING_SUCCEEDED: - DEBUGP(DCC, "Paging subscr %s succeeded!\n", - vlr_subscr_msisdn_or_name(transt->vsub)); - OSMO_ASSERT(conn); - /* Assign conn */ - transt->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_CC); - transt->paging_request = NULL; - /* send SETUP request to called party */ - gsm48_cc_tx_setup(transt, &transt->cc.msg); - break; - case GSM_PAGING_EXPIRED: - case GSM_PAGING_BUSY: - DEBUGP(DCC, "Paging subscr %s %s!\n", - vlr_subscr_msisdn_or_name(transt->vsub), - paging_event == GSM_PAGING_EXPIRED ? "expired" : "busy"); - /* Temporarily out of order */ - mncc_release_ind(transt->net, transt, - transt->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_DEST_OOO); - transt->callref = 0; - transt->paging_request = NULL; - trans_free(transt); - break; - } - - return 0; -} - -/* bridge channels of two transactions */ -static int tch_bridge(struct gsm_network *net, struct gsm_mncc_bridge *bridge) -{ - struct gsm_trans *trans1 = trans_find_by_callref(net, bridge->callref[0]); - struct gsm_trans *trans2 = trans_find_by_callref(net, bridge->callref[1]); - int rc; - - if (!trans1 || !trans2) - return -EIO; - - if (!trans1->conn || !trans2->conn) - return -EIO; - - /* Which subscriber do we want to track trans1 or trans2? */ - log_set_context(LOG_CTX_VLR_SUBSCR, trans1->vsub); - - /* Bridge RTP streams */ - rc = msc_mgcp_call_complete(trans1, trans2->conn->rtp.local_port_cn, - trans2->conn->rtp.local_addr_cn); - if (rc) - return -EINVAL; - - rc = msc_mgcp_call_complete(trans2, trans1->conn->rtp.local_port_cn, - trans1->conn->rtp.local_addr_cn); - if (rc) - return -EINVAL; - - return 0; -} - -static int gsm48_cc_rx_status_enq(struct gsm_trans *trans, struct msgb *msg) -{ - DEBUGP(DCC, "-> STATUS ENQ\n"); - return gsm48_cc_tx_status(trans, msg); -} - -static int gsm48_cc_tx_release(struct gsm_trans *trans, void *arg); -static int gsm48_cc_tx_disconnect(struct gsm_trans *trans, void *arg); - -static void gsm48_cc_timeout(void *arg) -{ - struct gsm_trans *trans = arg; - int disconnect = 0, release = 0; - int mo_cause = GSM48_CC_CAUSE_RECOVERY_TIMER; - int mo_location = GSM48_CAUSE_LOC_USER; - int l4_cause = GSM48_CC_CAUSE_NORMAL_UNSPEC; - int l4_location = GSM48_CAUSE_LOC_PRN_S_LU; - struct gsm_mncc mo_rel, l4_rel; - - memset(&mo_rel, 0, sizeof(struct gsm_mncc)); - mo_rel.callref = trans->callref; - memset(&l4_rel, 0, sizeof(struct gsm_mncc)); - l4_rel.callref = trans->callref; - - switch(trans->cc.Tcurrent) { - case 0x303: - release = 1; - l4_cause = GSM48_CC_CAUSE_USER_NOTRESPOND; - break; - case 0x310: - disconnect = 1; - l4_cause = GSM48_CC_CAUSE_USER_NOTRESPOND; - break; - case 0x313: - disconnect = 1; - /* unknown, did not find it in the specs */ - break; - case 0x301: - disconnect = 1; - l4_cause = GSM48_CC_CAUSE_USER_NOTRESPOND; - break; - case 0x308: - if (!trans->cc.T308_second) { - /* restart T308 a second time */ - gsm48_cc_tx_release(trans, &trans->cc.msg); - trans->cc.T308_second = 1; - break; /* stay in release state */ - } - trans_free(trans); - return; - case 0x306: - release = 1; - mo_cause = trans->cc.msg.cause.value; - mo_location = trans->cc.msg.cause.location; - break; - case 0x323: - disconnect = 1; - break; - default: - release = 1; - } - - if (release && trans->callref) { - /* process release towards layer 4 */ - mncc_release_ind(trans->net, trans, trans->callref, - l4_location, l4_cause); - trans->callref = 0; - } - - if (disconnect && trans->callref) { - /* process disconnect towards layer 4 */ - mncc_set_cause(&l4_rel, l4_location, l4_cause); - mncc_recvmsg(trans->net, trans, MNCC_DISC_IND, &l4_rel); - } - - /* process disconnect towards mobile station */ - if (disconnect || release) { - mncc_set_cause(&mo_rel, mo_location, mo_cause); - mo_rel.cause.diag[0] = ((trans->cc.Tcurrent & 0xf00) >> 8) + '0'; - mo_rel.cause.diag[1] = ((trans->cc.Tcurrent & 0x0f0) >> 4) + '0'; - mo_rel.cause.diag[2] = (trans->cc.Tcurrent & 0x00f) + '0'; - mo_rel.cause.diag_len = 3; - - if (disconnect) - gsm48_cc_tx_disconnect(trans, &mo_rel); - if (release) - gsm48_cc_tx_release(trans, &mo_rel); - } - -} - -/* disconnect both calls from the bridge */ -static inline void disconnect_bridge(struct gsm_network *net, - struct gsm_mncc_bridge *bridge, int err) -{ - struct gsm_trans *trans0 = trans_find_by_callref(net, bridge->callref[0]); - struct gsm_trans *trans1 = trans_find_by_callref(net, bridge->callref[1]); - struct gsm_mncc mx_rel; - if (!trans0 || !trans1) - return; - - DEBUGP(DCC, "Failed to bridge TCH for calls %x <-> %x :: %s \n", - trans0->callref, trans1->callref, strerror(err)); - - memset(&mx_rel, 0, sizeof(struct gsm_mncc)); - mncc_set_cause(&mx_rel, GSM48_CAUSE_LOC_INN_NET, - GSM48_CC_CAUSE_CHAN_UNACCEPT); - - mx_rel.callref = trans0->callref; - gsm48_cc_tx_disconnect(trans0, &mx_rel); - - mx_rel.callref = trans1->callref; - gsm48_cc_tx_disconnect(trans1, &mx_rel); -} - -static void gsm48_start_cc_timer(struct gsm_trans *trans, int current, - int sec, int micro) -{ - DEBUGP(DCC, "starting timer T%x with %d seconds\n", current, sec); - osmo_timer_setup(&trans->cc.timer, gsm48_cc_timeout, trans); - osmo_timer_schedule(&trans->cc.timer, sec, micro); - trans->cc.Tcurrent = current; -} - -static int gsm48_cc_rx_setup(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - uint8_t msg_type = gsm48_hdr_msg_type(gh); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc setup; - - memset(&setup, 0, sizeof(struct gsm_mncc)); - setup.callref = trans->callref; - - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - /* emergency setup is identified by msg_type */ - if (msg_type == GSM48_MT_CC_EMERG_SETUP) { - setup.fields |= MNCC_F_EMERGENCY; - setup.emergency = 1; - /* use destination number as configured by user (if any) */ - if (trans->net->emergency.route_to_msisdn) { - setup.fields |= MNCC_F_CALLED; - setup.called.type = 0; /* unknown */ - setup.called.plan = 0; /* unknown */ - OSMO_STRLCPY_ARRAY(setup.called.number, - trans->net->emergency.route_to_msisdn); - } - } - - /* use subscriber as calling party number */ - setup.fields |= MNCC_F_CALLING; - OSMO_STRLCPY_ARRAY(setup.calling.number, trans->vsub->msisdn); - OSMO_STRLCPY_ARRAY(setup.imsi, trans->vsub->imsi); - - /* bearer capability */ - if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { - setup.fields |= MNCC_F_BEARER_CAP; - gsm48_decode_bearer_cap(&setup.bearer_cap, - TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); - - /* Create a copy of the bearer capability - * in the transaction struct, so we can use - * this information later */ - memcpy(&trans->bearer_cap,&setup.bearer_cap, - sizeof(trans->bearer_cap)); - } - /* facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { - setup.fields |= MNCC_F_FACILITY; - gsm48_decode_facility(&setup.facility, - TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); - } - /* called party bcd number */ - if (TLVP_PRESENT(&tp, GSM48_IE_CALLED_BCD)) { - setup.fields |= MNCC_F_CALLED; - gsm48_decode_called(&setup.called, - TLVP_VAL(&tp, GSM48_IE_CALLED_BCD)-1); - } - /* user-user */ - if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { - setup.fields |= MNCC_F_USERUSER; - gsm48_decode_useruser(&setup.useruser, - TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); - } - /* ss-version */ - if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { - setup.fields |= MNCC_F_SSVERSION; - gsm48_decode_ssversion(&setup.ssversion, - TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); - } - /* CLIR suppression */ - if (TLVP_PRESENT(&tp, GSM48_IE_CLIR_SUPP)) - setup.clir.sup = 1; - /* CLIR invocation */ - if (TLVP_PRESENT(&tp, GSM48_IE_CLIR_INVOC)) - setup.clir.inv = 1; - /* cc cap */ - if (TLVP_PRESENT(&tp, GSM48_IE_CC_CAP)) { - setup.fields |= MNCC_F_CCCAP; - gsm48_decode_cccap(&setup.cccap, - TLVP_VAL(&tp, GSM48_IE_CC_CAP)-1); - } - - new_cc_state(trans, GSM_CSTATE_INITIATED); - - LOGP(DCC, setup.emergency ? LOGL_NOTICE : LOGL_INFO, "Subscriber %s (%s) sends %sSETUP to %s\n", - vlr_subscr_name(trans->vsub), trans->vsub->msisdn, setup.emergency ? "EMERGENCY_" : "", - setup.called.number); - - rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_SETUP]); - - /* indicate setup to MNCC */ - mncc_recvmsg(trans->net, trans, MNCC_SETUP_IND, &setup); - - /* MNCC code will modify the channel asynchronously, we should - * ipaccess-bind only after the modification has been made to the - * lchan->tch_mode */ - return 0; -} - -static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC STUP"); - struct gsm48_hdr *gh; - struct gsm_mncc *setup = arg; - int rc, trans_id; - - gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - /* transaction id must not be assigned */ - if (trans->transaction_id != 0xff) { /* unasssigned */ - DEBUGP(DCC, "TX Setup with assigned transaction. " - "This is not allowed!\n"); - /* Temporarily out of order */ - rc = mncc_release_ind(trans->net, trans, trans->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_RESOURCE_UNAVAIL); - trans->callref = 0; - trans_free(trans); - return rc; - } - - /* Get free transaction_id */ - trans_id = trans_assign_trans_id(trans->net, trans->vsub, - GSM48_PDISC_CC, 0); - if (trans_id < 0) { - /* no free transaction ID */ - rc = mncc_release_ind(trans->net, trans, trans->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_RESOURCE_UNAVAIL); - trans->callref = 0; - trans_free(trans); - return rc; - } - trans->transaction_id = trans_id; - - gh->msg_type = GSM48_MT_CC_SETUP; - - gsm48_start_cc_timer(trans, 0x303, GSM48_T303); - - /* bearer capability */ - if (setup->fields & MNCC_F_BEARER_CAP) { - /* Create a copy of the bearer capability in the transaction struct, so we - * can use this information later */ - memcpy(&trans->bearer_cap, &setup->bearer_cap, sizeof(trans->bearer_cap)); - gsm48_encode_bearer_cap(msg, 0, &setup->bearer_cap); - } - /* facility */ - if (setup->fields & MNCC_F_FACILITY) - gsm48_encode_facility(msg, 0, &setup->facility); - /* progress */ - if (setup->fields & MNCC_F_PROGRESS) - gsm48_encode_progress(msg, 0, &setup->progress); - /* calling party BCD number */ - if (setup->fields & MNCC_F_CALLING) - gsm48_encode_calling(msg, &setup->calling); - /* called party BCD number */ - if (setup->fields & MNCC_F_CALLED) - gsm48_encode_called(msg, &setup->called); - /* user-user */ - if (setup->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 0, &setup->useruser); - /* redirecting party BCD number */ - if (setup->fields & MNCC_F_REDIRECTING) - gsm48_encode_redirecting(msg, &setup->redirecting); - /* signal */ - if (setup->fields & MNCC_F_SIGNAL) - gsm48_encode_signal(msg, setup->signal); - - new_cc_state(trans, GSM_CSTATE_CALL_PRESENT); - - rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_call_conf(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc call_conf; - int rc; - - gsm48_stop_cc_timer(trans); - gsm48_start_cc_timer(trans, 0x310, GSM48_T310); - - memset(&call_conf, 0, sizeof(struct gsm_mncc)); - call_conf.callref = trans->callref; - - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); -#if 0 - /* repeat */ - if (TLVP_PRESENT(&tp, GSM48_IE_REPEAT_CIR)) - call_conf.repeat = 1; - if (TLVP_PRESENT(&tp, GSM48_IE_REPEAT_SEQ)) - call_conf.repeat = 2; -#endif - /* bearer capability */ - if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { - call_conf.fields |= MNCC_F_BEARER_CAP; - gsm48_decode_bearer_cap(&call_conf.bearer_cap, - TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); - - /* Create a copy of the bearer capability - * in the transaction struct, so we can use - * this information later */ - memcpy(&trans->bearer_cap,&call_conf.bearer_cap, - sizeof(trans->bearer_cap)); - } - /* cause */ - if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { - call_conf.fields |= MNCC_F_CAUSE; - gsm48_decode_cause(&call_conf.cause, - TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); - } - /* cc cap */ - if (TLVP_PRESENT(&tp, GSM48_IE_CC_CAP)) { - call_conf.fields |= MNCC_F_CCCAP; - gsm48_decode_cccap(&call_conf.cccap, - TLVP_VAL(&tp, GSM48_IE_CC_CAP)-1); - } - - /* IMSI of called subscriber */ - OSMO_STRLCPY_ARRAY(call_conf.imsi, trans->vsub->imsi); - - new_cc_state(trans, GSM_CSTATE_MO_TERM_CALL_CONF); - - /* Assign call (if not done yet) */ - if (trans->assignment_done == false) { - rc = msc_mgcp_call_assignment(trans); - trans->assignment_done = true; - } - else - rc = 0; - - /* don't continue, if there were problems with - * the call assignment. */ - if (rc) - return rc; - - return mncc_recvmsg(trans->net, trans, MNCC_CALL_CONF_IND, - &call_conf); -} - -static int gsm48_cc_tx_call_proc_and_assign(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *proceeding = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC PROC"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - int rc; - - gh->msg_type = GSM48_MT_CC_CALL_PROC; - - new_cc_state(trans, GSM_CSTATE_MO_CALL_PROC); - - /* bearer capability */ - if (proceeding->fields & MNCC_F_BEARER_CAP) { - gsm48_encode_bearer_cap(msg, 0, &proceeding->bearer_cap); - memcpy(&trans->bearer_cap, &proceeding->bearer_cap, sizeof(trans->bearer_cap)); - } - /* facility */ - if (proceeding->fields & MNCC_F_FACILITY) - gsm48_encode_facility(msg, 0, &proceeding->facility); - /* progress */ - if (proceeding->fields & MNCC_F_PROGRESS) - gsm48_encode_progress(msg, 0, &proceeding->progress); - - rc = gsm48_conn_sendmsg(msg, trans->conn, trans); - if (rc) - return rc; - - /* Assign call (if not done yet) */ - if (trans->assignment_done == false) { - rc = msc_mgcp_call_assignment(trans); - trans->assignment_done = true; - } - else - rc = 0; - - return rc; -} - -static int gsm48_cc_rx_alerting(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc alerting; - - gsm48_stop_cc_timer(trans); - gsm48_start_cc_timer(trans, 0x301, GSM48_T301); - - memset(&alerting, 0, sizeof(struct gsm_mncc)); - alerting.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - /* facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { - alerting.fields |= MNCC_F_FACILITY; - gsm48_decode_facility(&alerting.facility, - TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); - } - - /* progress */ - if (TLVP_PRESENT(&tp, GSM48_IE_PROGR_IND)) { - alerting.fields |= MNCC_F_PROGRESS; - gsm48_decode_progress(&alerting.progress, - TLVP_VAL(&tp, GSM48_IE_PROGR_IND)-1); - } - /* ss-version */ - if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { - alerting.fields |= MNCC_F_SSVERSION; - gsm48_decode_ssversion(&alerting.ssversion, - TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); - } - - new_cc_state(trans, GSM_CSTATE_CALL_RECEIVED); - - return mncc_recvmsg(trans->net, trans, MNCC_ALERT_IND, - &alerting); -} - -static int gsm48_cc_tx_alerting(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *alerting = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC ALERT"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_ALERTING; - - /* facility */ - if (alerting->fields & MNCC_F_FACILITY) - gsm48_encode_facility(msg, 0, &alerting->facility); - /* progress */ - if (alerting->fields & MNCC_F_PROGRESS) - gsm48_encode_progress(msg, 0, &alerting->progress); - /* user-user */ - if (alerting->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 0, &alerting->useruser); - - new_cc_state(trans, GSM_CSTATE_CALL_DELIVERED); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_tx_progress(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *progress = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC PROGRESS"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_PROGRESS; - - /* progress */ - gsm48_encode_progress(msg, 1, &progress->progress); - /* user-user */ - if (progress->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 0, &progress->useruser); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_tx_connect(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *connect = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSN 04.08 CC CON"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_CONNECT; - - gsm48_stop_cc_timer(trans); - gsm48_start_cc_timer(trans, 0x313, GSM48_T313); - - /* facility */ - if (connect->fields & MNCC_F_FACILITY) - gsm48_encode_facility(msg, 0, &connect->facility); - /* progress */ - if (connect->fields & MNCC_F_PROGRESS) - gsm48_encode_progress(msg, 0, &connect->progress); - /* connected number */ - if (connect->fields & MNCC_F_CONNECTED) - gsm48_encode_connected(msg, &connect->connected); - /* user-user */ - if (connect->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 0, &connect->useruser); - - new_cc_state(trans, GSM_CSTATE_CONNECT_IND); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_connect(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc connect; - - gsm48_stop_cc_timer(trans); - - memset(&connect, 0, sizeof(struct gsm_mncc)); - connect.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - /* use subscriber as connected party number */ - connect.fields |= MNCC_F_CONNECTED; - OSMO_STRLCPY_ARRAY(connect.connected.number, trans->vsub->msisdn); - OSMO_STRLCPY_ARRAY(connect.imsi, trans->vsub->imsi); - - /* facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { - connect.fields |= MNCC_F_FACILITY; - gsm48_decode_facility(&connect.facility, - TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); - } - /* user-user */ - if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { - connect.fields |= MNCC_F_USERUSER; - gsm48_decode_useruser(&connect.useruser, - TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); - } - /* ss-version */ - if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { - connect.fields |= MNCC_F_SSVERSION; - gsm48_decode_ssversion(&connect.ssversion, - TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); - } - - new_cc_state(trans, GSM_CSTATE_CONNECT_REQUEST); - rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT]); - - return mncc_recvmsg(trans->net, trans, MNCC_SETUP_CNF, &connect); -} - - -static int gsm48_cc_rx_connect_ack(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm_mncc connect_ack; - - gsm48_stop_cc_timer(trans); - - new_cc_state(trans, GSM_CSTATE_ACTIVE); - rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK]); - - memset(&connect_ack, 0, sizeof(struct gsm_mncc)); - connect_ack.callref = trans->callref; - - return mncc_recvmsg(trans->net, trans, MNCC_SETUP_COMPL_IND, - &connect_ack); -} - -static int gsm48_cc_tx_connect_ack(struct gsm_trans *trans, void *arg) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC CON ACK"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_CONNECT_ACK; - - new_cc_state(trans, GSM_CSTATE_ACTIVE); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_disconnect(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc disc; - - gsm48_stop_cc_timer(trans); - - new_cc_state(trans, GSM_CSTATE_DISCONNECT_REQ); - - memset(&disc, 0, sizeof(struct gsm_mncc)); - disc.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_CAUSE, 0); - /* cause */ - if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { - disc.fields |= MNCC_F_CAUSE; - gsm48_decode_cause(&disc.cause, - TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); - } - /* facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { - disc.fields |= MNCC_F_FACILITY; - gsm48_decode_facility(&disc.facility, - TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); - } - /* user-user */ - if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { - disc.fields |= MNCC_F_USERUSER; - gsm48_decode_useruser(&disc.useruser, - TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); - } - /* ss-version */ - if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { - disc.fields |= MNCC_F_SSVERSION; - gsm48_decode_ssversion(&disc.ssversion, - TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); - } - - return mncc_recvmsg(trans->net, trans, MNCC_DISC_IND, &disc); - -} - -static struct gsm_mncc_cause default_cause = { - .location = GSM48_CAUSE_LOC_PRN_S_LU, - .coding = 0, - .rec = 0, - .rec_val = 0, - .value = GSM48_CC_CAUSE_NORMAL_UNSPEC, - .diag_len = 0, - .diag = { 0 }, -}; - -static int gsm48_cc_tx_disconnect(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *disc = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC DISC"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_DISCONNECT; - - gsm48_stop_cc_timer(trans); - gsm48_start_cc_timer(trans, 0x306, GSM48_T306); - - /* cause */ - if (disc->fields & MNCC_F_CAUSE) - gsm48_encode_cause(msg, 1, &disc->cause); - else - gsm48_encode_cause(msg, 1, &default_cause); - - /* facility */ - if (disc->fields & MNCC_F_FACILITY) - gsm48_encode_facility(msg, 0, &disc->facility); - /* progress */ - if (disc->fields & MNCC_F_PROGRESS) - gsm48_encode_progress(msg, 0, &disc->progress); - /* user-user */ - if (disc->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 0, &disc->useruser); - - /* store disconnect cause for T306 expiry */ - memcpy(&trans->cc.msg, disc, sizeof(struct gsm_mncc)); - - new_cc_state(trans, GSM_CSTATE_DISCONNECT_IND); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_release(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc rel; - int rc; - - gsm48_stop_cc_timer(trans); - - memset(&rel, 0, sizeof(struct gsm_mncc)); - rel.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - /* cause */ - if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { - rel.fields |= MNCC_F_CAUSE; - gsm48_decode_cause(&rel.cause, - TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); - } - /* facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { - rel.fields |= MNCC_F_FACILITY; - gsm48_decode_facility(&rel.facility, - TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); - } - /* user-user */ - if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { - rel.fields |= MNCC_F_USERUSER; - gsm48_decode_useruser(&rel.useruser, - TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); - } - /* ss-version */ - if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { - rel.fields |= MNCC_F_SSVERSION; - gsm48_decode_ssversion(&rel.ssversion, - TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); - } - - if (trans->cc.state == GSM_CSTATE_RELEASE_REQ) { - /* release collision 5.4.5 */ - rc = mncc_recvmsg(trans->net, trans, MNCC_REL_CNF, &rel); - } else { - rc = gsm48_tx_simple(trans->conn, - GSM48_PDISC_CC | (trans->transaction_id << 4), - GSM48_MT_CC_RELEASE_COMPL); - rc = mncc_recvmsg(trans->net, trans, MNCC_REL_IND, &rel); - } - - new_cc_state(trans, GSM_CSTATE_NULL); - - trans->callref = 0; - trans_free(trans); - - return rc; -} - -static int gsm48_cc_tx_release(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *rel = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC REL"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_RELEASE; - - gsm48_stop_cc_timer(trans); - gsm48_start_cc_timer(trans, 0x308, GSM48_T308); - - /* cause */ - if (rel->fields & MNCC_F_CAUSE) - gsm48_encode_cause(msg, 0, &rel->cause); - /* facility */ - if (rel->fields & MNCC_F_FACILITY) - gsm48_encode_facility(msg, 0, &rel->facility); - /* user-user */ - if (rel->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 0, &rel->useruser); - - trans->cc.T308_second = 0; - memcpy(&trans->cc.msg, rel, sizeof(struct gsm_mncc)); - - if (trans->cc.state != GSM_CSTATE_RELEASE_REQ) - new_cc_state(trans, GSM_CSTATE_RELEASE_REQ); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_release_compl(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc rel; - int rc = 0; - - gsm48_stop_cc_timer(trans); - - memset(&rel, 0, sizeof(struct gsm_mncc)); - rel.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - /* cause */ - if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { - rel.fields |= MNCC_F_CAUSE; - gsm48_decode_cause(&rel.cause, - TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); - } - /* facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { - rel.fields |= MNCC_F_FACILITY; - gsm48_decode_facility(&rel.facility, - TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); - } - /* user-user */ - if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { - rel.fields |= MNCC_F_USERUSER; - gsm48_decode_useruser(&rel.useruser, - TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); - } - /* ss-version */ - if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { - rel.fields |= MNCC_F_SSVERSION; - gsm48_decode_ssversion(&rel.ssversion, - TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); - } - - if (trans->callref) { - switch (trans->cc.state) { - case GSM_CSTATE_CALL_PRESENT: - rc = mncc_recvmsg(trans->net, trans, - MNCC_REJ_IND, &rel); - break; - case GSM_CSTATE_RELEASE_REQ: - rc = mncc_recvmsg(trans->net, trans, - MNCC_REL_CNF, &rel); - break; - default: - rc = mncc_recvmsg(trans->net, trans, - MNCC_REL_IND, &rel); - } - } - - trans->callref = 0; - trans_free(trans); - - return rc; -} - -static int gsm48_cc_tx_release_compl(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *rel = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC REL COMPL"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - int ret; - - gh->msg_type = GSM48_MT_CC_RELEASE_COMPL; - - trans->callref = 0; - - gsm48_stop_cc_timer(trans); - - /* cause */ - if (rel->fields & MNCC_F_CAUSE) - gsm48_encode_cause(msg, 0, &rel->cause); - /* facility */ - if (rel->fields & MNCC_F_FACILITY) - gsm48_encode_facility(msg, 0, &rel->facility); - /* user-user */ - if (rel->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 0, &rel->useruser); - - ret = gsm48_conn_sendmsg(msg, trans->conn, trans); - - trans_free(trans); - - return ret; -} - -static int gsm48_cc_rx_facility(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc fac; - - memset(&fac, 0, sizeof(struct gsm_mncc)); - fac.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_FACILITY, 0); - /* facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { - fac.fields |= MNCC_F_FACILITY; - gsm48_decode_facility(&fac.facility, - TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); - } - /* ss-version */ - if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { - fac.fields |= MNCC_F_SSVERSION; - gsm48_decode_ssversion(&fac.ssversion, - TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); - } - - return mncc_recvmsg(trans->net, trans, MNCC_FACILITY_IND, &fac); -} - -static int gsm48_cc_tx_facility(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *fac = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC FAC"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_FACILITY; - - /* facility */ - gsm48_encode_facility(msg, 1, &fac->facility); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_hold(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm_mncc hold; - - memset(&hold, 0, sizeof(struct gsm_mncc)); - hold.callref = trans->callref; - return mncc_recvmsg(trans->net, trans, MNCC_HOLD_IND, &hold); -} - -static int gsm48_cc_tx_hold_ack(struct gsm_trans *trans, void *arg) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC HLD ACK"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_HOLD_ACK; - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_tx_hold_rej(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *hold_rej = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC HLD REJ"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_HOLD_REJ; - - /* cause */ - if (hold_rej->fields & MNCC_F_CAUSE) - gsm48_encode_cause(msg, 1, &hold_rej->cause); - else - gsm48_encode_cause(msg, 1, &default_cause); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_retrieve(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm_mncc retrieve; - - memset(&retrieve, 0, sizeof(struct gsm_mncc)); - retrieve.callref = trans->callref; - return mncc_recvmsg(trans->net, trans, MNCC_RETRIEVE_IND, - &retrieve); -} - -static int gsm48_cc_tx_retrieve_ack(struct gsm_trans *trans, void *arg) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC RETR ACK"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_RETR_ACK; - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_tx_retrieve_rej(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *retrieve_rej = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC RETR REJ"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_RETR_REJ; - - /* cause */ - if (retrieve_rej->fields & MNCC_F_CAUSE) - gsm48_encode_cause(msg, 1, &retrieve_rej->cause); - else - gsm48_encode_cause(msg, 1, &default_cause); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_start_dtmf(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc dtmf; - - memset(&dtmf, 0, sizeof(struct gsm_mncc)); - dtmf.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); - /* keypad facility */ - if (TLVP_PRESENT(&tp, GSM48_IE_KPD_FACILITY)) { - dtmf.fields |= MNCC_F_KEYPAD; - gsm48_decode_keypad(&dtmf.keypad, - TLVP_VAL(&tp, GSM48_IE_KPD_FACILITY)-1); - } - - return mncc_recvmsg(trans->net, trans, MNCC_START_DTMF_IND, &dtmf); -} - -static int gsm48_cc_tx_start_dtmf_ack(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *dtmf = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 DTMF ACK"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_START_DTMF_ACK; - - /* keypad */ - if (dtmf->fields & MNCC_F_KEYPAD) - gsm48_encode_keypad(msg, dtmf->keypad); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_tx_start_dtmf_rej(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *dtmf = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 DTMF REJ"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_START_DTMF_REJ; - - /* cause */ - if (dtmf->fields & MNCC_F_CAUSE) - gsm48_encode_cause(msg, 1, &dtmf->cause); - else - gsm48_encode_cause(msg, 1, &default_cause); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_tx_stop_dtmf_ack(struct gsm_trans *trans, void *arg) -{ - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 DTMF STP ACK"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_STOP_DTMF_ACK; - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_stop_dtmf(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm_mncc dtmf; - - memset(&dtmf, 0, sizeof(struct gsm_mncc)); - dtmf.callref = trans->callref; - - return mncc_recvmsg(trans->net, trans, MNCC_STOP_DTMF_IND, &dtmf); -} - -static int gsm48_cc_rx_modify(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc modify; - - memset(&modify, 0, sizeof(struct gsm_mncc)); - modify.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_BEARER_CAP, 0); - /* bearer capability */ - if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { - modify.fields |= MNCC_F_BEARER_CAP; - gsm48_decode_bearer_cap(&modify.bearer_cap, - TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); - - /* Create a copy of the bearer capability - * in the transaction struct, so we can use - * this information later */ - memcpy(&trans->bearer_cap,&modify.bearer_cap, - sizeof(trans->bearer_cap)); - } - - new_cc_state(trans, GSM_CSTATE_MO_ORIG_MODIFY); - - return mncc_recvmsg(trans->net, trans, MNCC_MODIFY_IND, &modify); -} - -static int gsm48_cc_tx_modify(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *modify = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC MOD"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_MODIFY; - - gsm48_start_cc_timer(trans, 0x323, GSM48_T323); - - /* bearer capability */ - gsm48_encode_bearer_cap(msg, 1, &modify->bearer_cap); - memcpy(&trans->bearer_cap, &modify->bearer_cap, sizeof(trans->bearer_cap)); - - new_cc_state(trans, GSM_CSTATE_MO_TERM_MODIFY); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_modify_complete(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc modify; - - gsm48_stop_cc_timer(trans); - - memset(&modify, 0, sizeof(struct gsm_mncc)); - modify.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_BEARER_CAP, 0); - /* bearer capability */ - if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { - modify.fields |= MNCC_F_BEARER_CAP; - gsm48_decode_bearer_cap(&modify.bearer_cap, - TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); - - /* Create a copy of the bearer capability - * in the transaction struct, so we can use - * this information later */ - memcpy(&trans->bearer_cap,&modify.bearer_cap, - sizeof(trans->bearer_cap)); - } - - new_cc_state(trans, GSM_CSTATE_ACTIVE); - - return mncc_recvmsg(trans->net, trans, MNCC_MODIFY_CNF, &modify); -} - -static int gsm48_cc_tx_modify_complete(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *modify = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC MOD COMPL"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_MODIFY_COMPL; - - /* bearer capability */ - gsm48_encode_bearer_cap(msg, 1, &modify->bearer_cap); - memcpy(&trans->bearer_cap, &modify->bearer_cap, sizeof(trans->bearer_cap)); - - new_cc_state(trans, GSM_CSTATE_ACTIVE); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_modify_reject(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc modify; - - gsm48_stop_cc_timer(trans); - - memset(&modify, 0, sizeof(struct gsm_mncc)); - modify.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_BEARER_CAP, GSM48_IE_CAUSE); - /* bearer capability */ - if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { - modify.fields |= GSM48_IE_BEARER_CAP; - gsm48_decode_bearer_cap(&modify.bearer_cap, - TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); - - /* Create a copy of the bearer capability - * in the transaction struct, so we can use - * this information later */ - memcpy(&trans->bearer_cap,&modify.bearer_cap, - sizeof(trans->bearer_cap)); - } - /* cause */ - if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { - modify.fields |= MNCC_F_CAUSE; - gsm48_decode_cause(&modify.cause, - TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); - } - - new_cc_state(trans, GSM_CSTATE_ACTIVE); - - return mncc_recvmsg(trans->net, trans, MNCC_MODIFY_REJ, &modify); -} - -static int gsm48_cc_tx_modify_reject(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *modify = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC MOD REJ"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_MODIFY_REJECT; - - /* bearer capability */ - gsm48_encode_bearer_cap(msg, 1, &modify->bearer_cap); - memcpy(&trans->bearer_cap, &modify->bearer_cap, sizeof(trans->bearer_cap)); - /* cause */ - gsm48_encode_cause(msg, 1, &modify->cause); - - new_cc_state(trans, GSM_CSTATE_ACTIVE); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_tx_notify(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *notify = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC NOT"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_NOTIFY; - - /* notify */ - gsm48_encode_notify(msg, notify->notify); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_notify(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); -// struct tlv_parsed tp; - struct gsm_mncc notify; - - memset(¬ify, 0, sizeof(struct gsm_mncc)); - notify.callref = trans->callref; -// tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len); - if (payload_len >= 1) - gsm48_decode_notify(¬ify.notify, gh->data); - - return mncc_recvmsg(trans->net, trans, MNCC_NOTIFY_IND, ¬ify); -} - -static int gsm48_cc_tx_userinfo(struct gsm_trans *trans, void *arg) -{ - struct gsm_mncc *user = arg; - struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USR INFO"); - struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); - - gh->msg_type = GSM48_MT_CC_USER_INFO; - - /* user-user */ - if (user->fields & MNCC_F_USERUSER) - gsm48_encode_useruser(msg, 1, &user->useruser); - /* more data */ - if (user->more) - gsm48_encode_more(msg); - - return gsm48_conn_sendmsg(msg, trans->conn, trans); -} - -static int gsm48_cc_rx_userinfo(struct gsm_trans *trans, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); - struct tlv_parsed tp; - struct gsm_mncc user; - - memset(&user, 0, sizeof(struct gsm_mncc)); - user.callref = trans->callref; - tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_USER_USER, 0); - /* user-user */ - if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { - user.fields |= MNCC_F_USERUSER; - gsm48_decode_useruser(&user.useruser, - TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); - } - /* more data */ - if (TLVP_PRESENT(&tp, GSM48_IE_MORE_DATA)) - user.more = 1; - - return mncc_recvmsg(trans->net, trans, MNCC_USERINFO_IND, &user); -} - -static void mncc_recv_rtp(struct gsm_network *net, uint32_t callref, - int cmd, uint32_t addr, uint16_t port, uint32_t payload_type, - uint32_t payload_msg_type) -{ - uint8_t data[sizeof(struct gsm_mncc)]; - struct gsm_mncc_rtp *rtp; - - memset(&data, 0, sizeof(data)); - rtp = (struct gsm_mncc_rtp *) &data[0]; - - rtp->callref = callref; - rtp->msg_type = cmd; - rtp->ip = addr; - rtp->port = port; - rtp->payload_type = payload_type; - rtp->payload_msg_type = payload_msg_type; - mncc_recvmsg(net, NULL, cmd, (struct gsm_mncc *)data); -} - -static void mncc_recv_rtp_sock(struct gsm_network *net, struct gsm_trans *trans, int cmd) -{ - int msg_type; - - /* FIXME This has to be set to some meaningful value. - * Possible options are: - * GSM_TCHF_FRAME, GSM_TCHF_FRAME_EFR, - * GSM_TCHH_FRAME, GSM_TCH_FRAME_AMR - * (0 if unknown) */ - msg_type = GSM_TCHF_FRAME; - - uint32_t addr = inet_addr(trans->conn->rtp.local_addr_cn); - uint16_t port = trans->conn->rtp.local_port_cn; - - LOGP(DMNCC, LOGL_ERROR, "RTP create for non-existing trans\n"); - - if (addr == INADDR_NONE) { - LOGP(DMNCC, LOGL_ERROR, - "(subscriber:%s) external MNCC is signalling invalid IP-Address\n", - vlr_subscr_name(trans->vsub)); - return; - } - if (port == 0) { - LOGP(DMNCC, LOGL_ERROR, - "(subscriber:%s) external MNCC is signalling invalid Port\n", - vlr_subscr_name(trans->vsub)); - return; - } - - /* FIXME: This has to be set to some meaningful value, - * before the MSC-Split, this value was pulled from - * lchan->abis_ip.rtp_payload */ - uint32_t payload_type = 0; - - return mncc_recv_rtp(net, trans->callref, cmd, - addr, - port, - payload_type, - msg_type); -} - -static void mncc_recv_rtp_err(struct gsm_network *net, uint32_t callref, int cmd) -{ - return mncc_recv_rtp(net, callref, cmd, 0, 0, 0, 0); -} - -static int tch_rtp_create(struct gsm_network *net, uint32_t callref) -{ - struct gsm_trans *trans; - int rc; - - /* Find callref */ - trans = trans_find_by_callref(net, callref); - if (!trans) { - LOGP(DMNCC, LOGL_ERROR, "RTP create for non-existing trans\n"); - mncc_recv_rtp_err(net, callref, MNCC_RTP_CREATE); - return -EIO; - } - log_set_context(LOG_CTX_VLR_SUBSCR, trans->vsub); - if (!trans->conn) { - LOGP(DMNCC, LOGL_NOTICE, "RTP create for trans without conn\n"); - mncc_recv_rtp_err(net, callref, MNCC_RTP_CREATE); - return 0; - } - - trans->conn->mncc_rtp_bridge = 1; - - /* When we call msc_mgcp_call_assignment() we will trigger, depending - * on the RAN type the call assignment on the A or Iu interface. - * msc_mgcp_call_assignment() also takes care about sending the CRCX - * command to the MGCP-GW. The CRCX will return the port number, - * where the PBX (e.g. Asterisk) will send its RTP stream to. We - * have to return this port number back to the MNCC by sending - * it back with the TCH_RTP_CREATE message. To make sure that - * this message is sent AFTER the response to CRCX from the - * MGCP-GW has arrived, we need will instruct msc_mgcp_call_assignment() - * to take care of this by setting trans->tch_rtp_create to true. - * This will make sure that gsm48_tch_rtp_create() (below) is - * called as soon as the local port number has become known. */ - trans->tch_rtp_create = true; - - /* Assign call (if not done yet) */ - if (trans->assignment_done == false) { - rc = msc_mgcp_call_assignment(trans); - trans->assignment_done = true; - } - else - rc = 0; - - return rc; -} - -/* Trigger TCH_RTP_CREATE acknowledgement */ -int gsm48_tch_rtp_create(struct gsm_trans *trans) -{ - /* This function is called as soon as the port, on which the - * mgcp-gw expects the incoming RTP stream from the remote - * end (e.g. Asterisk) is known. */ - - struct gsm_subscriber_connection *conn = trans->conn; - struct gsm_network *network = conn->network; - - mncc_recv_rtp_sock(network, trans, MNCC_RTP_CREATE); - return 0; -} - -static int tch_rtp_connect(struct gsm_network *net, void *arg) -{ - struct gsm_trans *trans; - struct gsm_mncc_rtp *rtp = arg; - struct in_addr addr; - - /* Find callref */ - trans = trans_find_by_callref(net, rtp->callref); - if (!trans) { - LOGP(DMNCC, LOGL_ERROR, "RTP connect for non-existing trans\n"); - mncc_recv_rtp_err(net, rtp->callref, MNCC_RTP_CONNECT); - return -EIO; - } - log_set_context(LOG_CTX_VLR_SUBSCR, trans->vsub); - if (!trans->conn) { - LOGP(DMNCC, LOGL_ERROR, "RTP connect for trans without conn\n"); - mncc_recv_rtp_err(net, rtp->callref, MNCC_RTP_CONNECT); - return 0; - } - - addr.s_addr = osmo_htonl(rtp->ip); - return msc_mgcp_call_complete(trans, rtp->port, inet_ntoa(addr)); -} - -static struct downstate { - uint32_t states; - int type; - int (*rout) (struct gsm_trans *trans, void *arg); -} downstatelist[] = { - /* mobile originating call establishment */ - {SBIT(GSM_CSTATE_INITIATED), /* 5.2.1.2 */ - MNCC_CALL_PROC_REQ, gsm48_cc_tx_call_proc_and_assign}, - {SBIT(GSM_CSTATE_INITIATED) | SBIT(GSM_CSTATE_MO_CALL_PROC), /* 5.2.1.2 | 5.2.1.5 */ - MNCC_ALERT_REQ, gsm48_cc_tx_alerting}, - {SBIT(GSM_CSTATE_INITIATED) | SBIT(GSM_CSTATE_MO_CALL_PROC) | SBIT(GSM_CSTATE_CALL_DELIVERED), /* 5.2.1.2 | 5.2.1.6 | 5.2.1.6 */ - MNCC_SETUP_RSP, gsm48_cc_tx_connect}, - {SBIT(GSM_CSTATE_MO_CALL_PROC), /* 5.2.1.4.2 */ - MNCC_PROGRESS_REQ, gsm48_cc_tx_progress}, - /* mobile terminating call establishment */ - {SBIT(GSM_CSTATE_NULL), /* 5.2.2.1 */ - MNCC_SETUP_REQ, gsm48_cc_tx_setup}, - {SBIT(GSM_CSTATE_CONNECT_REQUEST), - MNCC_SETUP_COMPL_REQ, gsm48_cc_tx_connect_ack}, - /* signalling during call */ - {SBIT(GSM_CSTATE_ACTIVE), - MNCC_NOTIFY_REQ, gsm48_cc_tx_notify}, - {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_RELEASE_REQ), - MNCC_FACILITY_REQ, gsm48_cc_tx_facility}, - {ALL_STATES, - MNCC_START_DTMF_RSP, gsm48_cc_tx_start_dtmf_ack}, - {ALL_STATES, - MNCC_START_DTMF_REJ, gsm48_cc_tx_start_dtmf_rej}, - {ALL_STATES, - MNCC_STOP_DTMF_RSP, gsm48_cc_tx_stop_dtmf_ack}, - {SBIT(GSM_CSTATE_ACTIVE), - MNCC_HOLD_CNF, gsm48_cc_tx_hold_ack}, - {SBIT(GSM_CSTATE_ACTIVE), - MNCC_HOLD_REJ, gsm48_cc_tx_hold_rej}, - {SBIT(GSM_CSTATE_ACTIVE), - MNCC_RETRIEVE_CNF, gsm48_cc_tx_retrieve_ack}, - {SBIT(GSM_CSTATE_ACTIVE), - MNCC_RETRIEVE_REJ, gsm48_cc_tx_retrieve_rej}, - {SBIT(GSM_CSTATE_ACTIVE), - MNCC_MODIFY_REQ, gsm48_cc_tx_modify}, - {SBIT(GSM_CSTATE_MO_ORIG_MODIFY), - MNCC_MODIFY_RSP, gsm48_cc_tx_modify_complete}, - {SBIT(GSM_CSTATE_MO_ORIG_MODIFY), - MNCC_MODIFY_REJ, gsm48_cc_tx_modify_reject}, - {SBIT(GSM_CSTATE_ACTIVE), - MNCC_USERINFO_REQ, gsm48_cc_tx_userinfo}, - /* clearing */ - {SBIT(GSM_CSTATE_INITIATED), - MNCC_REJ_REQ, gsm48_cc_tx_release_compl}, - {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_DISCONNECT_IND) - SBIT(GSM_CSTATE_RELEASE_REQ) - SBIT(GSM_CSTATE_DISCONNECT_REQ), /* 5.4.4 */ - MNCC_DISC_REQ, gsm48_cc_tx_disconnect}, - {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_RELEASE_REQ), /* 5.4.3.2 */ - MNCC_REL_REQ, gsm48_cc_tx_release}, -}; - -#define DOWNSLLEN \ - (sizeof(downstatelist) / sizeof(struct downstate)) - - -int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg) -{ - int i, rc = 0; - struct gsm_trans *trans = NULL, *transt; - struct gsm_subscriber_connection *conn = NULL; - struct gsm_mncc *data = arg, rel; - - DEBUGP(DMNCC, "receive message %s\n", get_mncc_name(msg_type)); - - /* handle special messages */ - switch(msg_type) { - case MNCC_BRIDGE: - rc = tch_bridge(net, arg); - if (rc < 0) - disconnect_bridge(net, arg, -rc); - return rc; - case MNCC_RTP_CREATE: - return tch_rtp_create(net, data->callref); - case MNCC_RTP_CONNECT: - return tch_rtp_connect(net, arg); - case MNCC_RTP_FREE: - /* unused right now */ - return -EIO; - - case MNCC_FRAME_DROP: - case MNCC_FRAME_RECV: - case GSM_TCHF_FRAME: - case GSM_TCHF_FRAME_EFR: - case GSM_TCHH_FRAME: - case GSM_TCH_FRAME_AMR: - LOGP(DMNCC, LOGL_ERROR, "RTP streams must be handled externally; %s not supported.\n", - get_mncc_name(msg_type)); - return -ENOTSUP; - } - - memset(&rel, 0, sizeof(struct gsm_mncc)); - rel.callref = data->callref; - - /* Find callref */ - trans = trans_find_by_callref(net, data->callref); - - /* Callref unknown */ - if (!trans) { - struct vlr_subscr *vsub; - - if (msg_type != MNCC_SETUP_REQ) { - DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " - "Received '%s' from MNCC with " - "unknown callref %d\n", data->called.number, - get_mncc_name(msg_type), data->callref); - /* Invalid call reference */ - return mncc_release_ind(net, NULL, data->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_INVAL_TRANS_ID); - } - if (!data->called.number[0] && !data->imsi[0]) { - DEBUGP(DCC, "(bts - trx - ts - ti) " - "Received '%s' from MNCC with " - "no number or IMSI\n", get_mncc_name(msg_type)); - /* Invalid number */ - return mncc_release_ind(net, NULL, data->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_INV_NR_FORMAT); - } - /* New transaction due to setup, find subscriber */ - if (data->called.number[0]) - vsub = vlr_subscr_find_by_msisdn(net->vlr, - data->called.number); - else - vsub = vlr_subscr_find_by_imsi(net->vlr, data->imsi); - - /* update the subscriber we deal with */ - log_set_context(LOG_CTX_VLR_SUBSCR, vsub); - - /* If subscriber is not found */ - if (!vsub) { - DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " - "Received '%s' from MNCC with " - "unknown subscriber %s\n", data->called.number, - get_mncc_name(msg_type), data->called.number); - /* Unknown subscriber */ - return mncc_release_ind(net, NULL, data->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_UNASSIGNED_NR); - } - /* If subscriber is not "attached" */ - if (!vsub->lac) { - DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " - "Received '%s' from MNCC with " - "detached subscriber %s\n", data->called.number, - get_mncc_name(msg_type), vlr_subscr_name(vsub)); - vlr_subscr_put(vsub); - /* Temporarily out of order */ - return mncc_release_ind(net, NULL, data->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_DEST_OOO); - } - /* Create transaction */ - trans = trans_alloc(net, vsub, GSM48_PDISC_CC, 0xff, data->callref); - if (!trans) { - DEBUGP(DCC, "No memory for trans.\n"); - vlr_subscr_put(vsub); - /* Ressource unavailable */ - mncc_release_ind(net, NULL, data->callref, - GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_RESOURCE_UNAVAIL); - return -ENOMEM; - } - - /* Find conn */ - conn = connection_for_subscr(vsub); - - /* If subscriber has no conn */ - if (!conn) { - /* find transaction with this subscriber already paging */ - llist_for_each_entry(transt, &net->trans_list, entry) { - /* Transaction of our conn? */ - if (transt == trans || - transt->vsub != vsub) - continue; - DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " - "Received '%s' from MNCC with " - "unallocated channel, paging already " - "started for lac %d.\n", - data->called.number, - get_mncc_name(msg_type), vsub->lac); - vlr_subscr_put(vsub); - trans_free(trans); - return 0; - } - /* store setup information until paging succeeds */ - memcpy(&trans->cc.msg, data, sizeof(struct gsm_mncc)); - - /* Request a channel */ - trans->paging_request = subscr_request_conn( - vsub, - setup_trig_pag_evt, - trans, - "MNCC: establish call"); - if (!trans->paging_request) { - LOGP(DCC, LOGL_ERROR, "Failed to allocate paging token.\n"); - vlr_subscr_put(vsub); - trans_free(trans); - return 0; - } - vlr_subscr_put(vsub); - return 0; - } - - /* Assign conn */ - trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_CC); - trans->dlci = 0x00; /* SAPI=0, not SACCH */ - vlr_subscr_put(vsub); - } else { - /* update the subscriber we deal with */ - log_set_context(LOG_CTX_VLR_SUBSCR, trans->vsub); - } - - if (trans->conn) - conn = trans->conn; - - /* if paging did not respond yet */ - if (!conn) { - DEBUGP(DCC, "(sub %s) " - "Received '%s' from MNCC in paging state\n", - vlr_subscr_msisdn_or_name(trans->vsub), - get_mncc_name(msg_type)); - mncc_set_cause(&rel, GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_NORM_CALL_CLEAR); - if (msg_type == MNCC_REL_REQ) - rc = mncc_recvmsg(net, trans, MNCC_REL_CNF, &rel); - else - rc = mncc_recvmsg(net, trans, MNCC_REL_IND, &rel); - trans->callref = 0; - trans_free(trans); - return rc; - } else { - DEBUGP(DCC, "(ti %02x sub %s) " - "Received '%s' from MNCC in state %d (%s)\n", - trans->transaction_id, - vlr_subscr_msisdn_or_name(trans->conn->vsub), - get_mncc_name(msg_type), trans->cc.state, - gsm48_cc_state_name(trans->cc.state)); - } - - /* Find function for current state and message */ - for (i = 0; i < DOWNSLLEN; i++) - if ((msg_type == downstatelist[i].type) - && ((1 << trans->cc.state) & downstatelist[i].states)) - break; - if (i == DOWNSLLEN) { - DEBUGP(DCC, "Message unhandled at this state.\n"); - return 0; - } - - rc = downstatelist[i].rout(trans, arg); - - return rc; -} - - -static struct datastate { - uint32_t states; - int type; - int (*rout) (struct gsm_trans *trans, struct msgb *msg); -} datastatelist[] = { - /* mobile originating call establishment */ - {SBIT(GSM_CSTATE_NULL), /* 5.2.1.2 */ - GSM48_MT_CC_SETUP, gsm48_cc_rx_setup}, - {SBIT(GSM_CSTATE_NULL), /* 5.2.1.2 */ - GSM48_MT_CC_EMERG_SETUP, gsm48_cc_rx_setup}, - {SBIT(GSM_CSTATE_CONNECT_IND), /* 5.2.1.2 */ - GSM48_MT_CC_CONNECT_ACK, gsm48_cc_rx_connect_ack}, - /* mobile terminating call establishment */ - {SBIT(GSM_CSTATE_CALL_PRESENT), /* 5.2.2.3.2 */ - GSM48_MT_CC_CALL_CONF, gsm48_cc_rx_call_conf}, - {SBIT(GSM_CSTATE_CALL_PRESENT) | SBIT(GSM_CSTATE_MO_TERM_CALL_CONF), /* ???? | 5.2.2.3.2 */ - GSM48_MT_CC_ALERTING, gsm48_cc_rx_alerting}, - {SBIT(GSM_CSTATE_CALL_PRESENT) | SBIT(GSM_CSTATE_MO_TERM_CALL_CONF) | SBIT(GSM_CSTATE_CALL_RECEIVED), /* (5.2.2.6) | 5.2.2.6 | 5.2.2.6 */ - GSM48_MT_CC_CONNECT, gsm48_cc_rx_connect}, - /* signalling during call */ - {ALL_STATES - SBIT(GSM_CSTATE_NULL), - GSM48_MT_CC_FACILITY, gsm48_cc_rx_facility}, - {SBIT(GSM_CSTATE_ACTIVE), - GSM48_MT_CC_NOTIFY, gsm48_cc_rx_notify}, - {ALL_STATES, - GSM48_MT_CC_START_DTMF, gsm48_cc_rx_start_dtmf}, - {ALL_STATES, - GSM48_MT_CC_STOP_DTMF, gsm48_cc_rx_stop_dtmf}, - {ALL_STATES, - GSM48_MT_CC_STATUS_ENQ, gsm48_cc_rx_status_enq}, - {SBIT(GSM_CSTATE_ACTIVE), - GSM48_MT_CC_HOLD, gsm48_cc_rx_hold}, - {SBIT(GSM_CSTATE_ACTIVE), - GSM48_MT_CC_RETR, gsm48_cc_rx_retrieve}, - {SBIT(GSM_CSTATE_ACTIVE), - GSM48_MT_CC_MODIFY, gsm48_cc_rx_modify}, - {SBIT(GSM_CSTATE_MO_TERM_MODIFY), - GSM48_MT_CC_MODIFY_COMPL, gsm48_cc_rx_modify_complete}, - {SBIT(GSM_CSTATE_MO_TERM_MODIFY), - GSM48_MT_CC_MODIFY_REJECT, gsm48_cc_rx_modify_reject}, - {SBIT(GSM_CSTATE_ACTIVE), - GSM48_MT_CC_USER_INFO, gsm48_cc_rx_userinfo}, - /* clearing */ - {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_RELEASE_REQ), /* 5.4.3.2 */ - GSM48_MT_CC_DISCONNECT, gsm48_cc_rx_disconnect}, - {ALL_STATES - SBIT(GSM_CSTATE_NULL), /* 5.4.4.1.2.2 */ - GSM48_MT_CC_RELEASE, gsm48_cc_rx_release}, - {ALL_STATES, /* 5.4.3.4 */ - GSM48_MT_CC_RELEASE_COMPL, gsm48_cc_rx_release_compl}, -}; - -#define DATASLLEN \ - (sizeof(datastatelist) / sizeof(struct datastate)) - -static int gsm0408_rcv_cc(struct gsm_subscriber_connection *conn, struct msgb *msg) -{ - struct gsm48_hdr *gh = msgb_l3(msg); - uint8_t msg_type = gsm48_hdr_msg_type(gh); - uint8_t transaction_id = gsm48_hdr_trans_id_flip_ti(gh); - struct gsm_trans *trans = NULL; - int i, rc = 0; - - if (msg_type & 0x80) { - DEBUGP(DCC, "MSG 0x%2x not defined for PD error\n", msg_type); - return -EINVAL; - } - - if (!conn->vsub) { - LOGP(DCC, LOGL_ERROR, "Invalid conn: no subscriber\n"); - return -EINVAL; - } - - /* Find transaction */ - trans = trans_find_by_id(conn, GSM48_PDISC_CC, transaction_id); - -#if BEFORE_MSCSPLIT - /* Re-enable this log output once we can obtain this information via - * A-interface, see OS#2391. */ - DEBUGP(DCC, "(bts %d trx %d ts %d ti %x sub %s) " - "Received '%s' from MS in state %d (%s)\n", - conn->bts->nr, conn->lchan->ts->trx->nr, conn->lchan->ts->nr, - transaction_id, vlr_subscr_msisdn_or_name(conn->vsub), - gsm48_cc_msg_name(msg_type), trans?(trans->cc.state):0, - gsm48_cc_state_name(trans?(trans->cc.state):0)); -#endif - - /* Create transaction */ - if (!trans) { - DEBUGP(DCC, "Unknown transaction ID %x, " - "creating new trans.\n", transaction_id); - /* Create transaction */ - trans = trans_alloc(conn->network, conn->vsub, - GSM48_PDISC_CC, - transaction_id, new_callref++); - if (!trans) { - DEBUGP(DCC, "No memory for trans.\n"); - rc = gsm48_tx_simple(conn, - GSM48_PDISC_CC | (transaction_id << 4), - GSM48_MT_CC_RELEASE_COMPL); - return -ENOMEM; - } - /* Assign transaction */ - trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_CC); - trans->dlci = OMSC_LINKID_CB(msg); /* DLCI as received from BSC */ - cm_service_request_concludes(conn, msg); - } - - /* find function for current state and message */ - for (i = 0; i < DATASLLEN; i++) - if ((msg_type == datastatelist[i].type) - && ((1 << trans->cc.state) & datastatelist[i].states)) - break; - if (i == DATASLLEN) { - DEBUGP(DCC, "Message unhandled at this state.\n"); - return 0; - } - - assert(trans->vsub); - - rc = datastatelist[i].rout(trans, msg); - - msc_subscr_conn_communicating(conn); - return rc; -} - static bool msg_is_initially_permitted(const struct gsm48_hdr *hdr) { uint8_t pdisc = gsm48_hdr_pdisc(hdr); @@ -3460,6 +1412,8 @@ } } +extern int gsm0408_rcv_cc(struct gsm_subscriber_connection *conn, struct msgb *msg); + /* Main entry point for GSM 04.08/44.008 Layer 3 data (e.g. from the BSC). */ int gsm0408_dispatch(struct gsm_subscriber_connection *conn, struct msgb *msg) { diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c new file mode 100644 index 0000000..8becd05 --- /dev/null +++ b/src/libmsc/gsm_04_08_cc.c @@ -0,0 +1,2120 @@ +/* GSM Mobile Radio Interface Layer 3 Call Control */ + +/* (C) 2008-2016 by Harald Welte + * (C) 2008-2012 by Holger Hans Peter Freyther + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "bscconfig.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef BUILD_IU +#include +#endif + +#include +#include +#include + +#include + +static uint32_t new_callref = 0x80000001; + + +/* Call Control */ + +void cc_tx_to_mncc(struct gsm_network *net, struct msgb *msg) +{ + net->mncc_recv(net, msg); +} + +int gsm48_cc_tx_notify_ss(struct gsm_trans *trans, const char *message) +{ + struct gsm48_hdr *gh; + struct msgb *ss_notify; + + ss_notify = gsm0480_create_notifySS(message); + if (!ss_notify) + return -1; + + gsm0480_wrap_invoke(ss_notify, GSM0480_OP_CODE_NOTIFY_SS, 0); + uint8_t *data = msgb_push(ss_notify, 1); + data[0] = ss_notify->len - 1; + gh = (struct gsm48_hdr *) msgb_push(ss_notify, sizeof(*gh)); + gh->msg_type = GSM48_MT_CC_FACILITY; + return gsm48_conn_sendmsg(ss_notify, trans->conn, trans); +} + +/* FIXME: this count_statistics is a state machine behaviour. we should convert + * the complete call control into a state machine. Afterwards we can move this + * code into state transitions. + */ +static void count_statistics(struct gsm_trans *trans, int new_state) +{ + int old_state = trans->cc.state; + struct rate_ctr_group *msc = trans->net->msc_ctrs; + + if (old_state == new_state) + return; + + /* state incoming */ + switch (new_state) { + case GSM_CSTATE_ACTIVE: + osmo_counter_inc(trans->net->active_calls); + rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_ACTIVE]); + break; + } + + /* state outgoing */ + switch (old_state) { + case GSM_CSTATE_ACTIVE: + osmo_counter_dec(trans->net->active_calls); + if (new_state == GSM_CSTATE_DISCONNECT_REQ || + new_state == GSM_CSTATE_DISCONNECT_IND) + rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_COMPLETE]); + else + rate_ctr_inc(&msc->ctr[MSC_CTR_CALL_INCOMPLETE]); + break; + } +} + +/* The entire call control code is written in accordance with Figure 7.10c + * for 'very early assignment', i.e. we allocate a TCH/F during IMMEDIATE + * ASSIGN, then first use that TCH/F for signalling and later MODE MODIFY + * it for voice */ + +static void new_cc_state(struct gsm_trans *trans, int state) +{ + if (state > 31 || state < 0) + return; + + DEBUGP(DCC, "(ti %02x sub %s) new state %s -> %s\n", + trans->transaction_id, + vlr_subscr_name(trans->vsub), + gsm48_cc_state_name(trans->cc.state), + gsm48_cc_state_name(state)); + + count_statistics(trans, state); + trans->cc.state = state; +} + +static int gsm48_cc_tx_status(struct gsm_trans *trans, void *arg) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC STATUS"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + uint8_t *cause, *call_state; + + gh->msg_type = GSM48_MT_CC_STATUS; + + cause = msgb_put(msg, 3); + cause[0] = 2; + cause[1] = GSM48_CAUSE_CS_GSM | GSM48_CAUSE_LOC_USER; + cause[2] = 0x80 | 30; /* response to status inquiry */ + + call_state = msgb_put(msg, 1); + call_state[0] = 0xc0 | 0x00; + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static void gsm48_stop_cc_timer(struct gsm_trans *trans) +{ + if (osmo_timer_pending(&trans->cc.timer)) { + DEBUGP(DCC, "stopping pending timer T%x\n", trans->cc.Tcurrent); + osmo_timer_del(&trans->cc.timer); + trans->cc.Tcurrent = 0; + } +} + +static int mncc_recvmsg(struct gsm_network *net, struct gsm_trans *trans, + int msg_type, struct gsm_mncc *mncc) +{ + struct msgb *msg; + unsigned char *data; + + DEBUGP(DMNCC, "transmit message %s\n", get_mncc_name(msg_type)); + +#if BEFORE_MSCSPLIT + /* Re-enable this log output once we can obtain this information via + * A-interface, see OS#2391. */ + if (trans) + if (trans->conn && trans->conn->lchan) + DEBUGP(DCC, "(bts %d trx %d ts %d ti %x sub %s) " + "Sending '%s' to MNCC.\n", + trans->conn->lchan->ts->trx->bts->nr, + trans->conn->lchan->ts->trx->nr, + trans->conn->lchan->ts->nr, trans->transaction_id, + vlr_subscr_msisdn_or_name(trans->vsub), + get_mncc_name(msg_type)); + else + DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " + "Sending '%s' to MNCC.\n", + vlr_subscr_msisdn_or_name(trans->vsub), + get_mncc_name(msg_type)); + else + DEBUGP(DCC, "(bts - trx - ts - ti -- sub -) " + "Sending '%s' to MNCC.\n", get_mncc_name(msg_type)); +#else + DEBUGP(DCC, "Sending '%s' to MNCC.\n", get_mncc_name(msg_type)); +#endif + + mncc->msg_type = msg_type; + + msg = msgb_alloc(sizeof(struct gsm_mncc), "MNCC"); + if (!msg) + return -ENOMEM; + + data = msgb_put(msg, sizeof(struct gsm_mncc)); + memcpy(data, mncc, sizeof(struct gsm_mncc)); + + cc_tx_to_mncc(net, msg); + + return 0; +} + +int mncc_release_ind(struct gsm_network *net, struct gsm_trans *trans, + uint32_t callref, int location, int value) +{ + struct gsm_mncc rel; + + memset(&rel, 0, sizeof(rel)); + rel.callref = callref; + mncc_set_cause(&rel, location, value); + if (trans && trans->cc.state == GSM_CSTATE_RELEASE_REQ) + return mncc_recvmsg(net, trans, MNCC_REL_CNF, &rel); + return mncc_recvmsg(net, trans, MNCC_REL_IND, &rel); +} + +/* Call Control Specific transaction release. + * gets called by trans_free, DO NOT CALL YOURSELF! */ +void _gsm48_cc_trans_free(struct gsm_trans *trans) +{ + gsm48_stop_cc_timer(trans); + + /* Initiate the teardown of the related connections on the MGW */ + msc_mgcp_call_release(trans); + + /* send release to L4, if callref still exists */ + if (trans->callref) { + /* Ressource unavailable */ + mncc_release_ind(trans->net, trans, trans->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); + /* This is a final freeing of the transaction. The MNCC release may have triggered the + * T308 release timer, but we don't have the luxury of graceful CC Release here. */ + gsm48_stop_cc_timer(trans); + } + if (trans->cc.state != GSM_CSTATE_NULL) + new_cc_state(trans, GSM_CSTATE_NULL); +} + +static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg); + +/* call-back from paging the B-end of the connection */ +static int setup_trig_pag_evt(unsigned int hooknum, unsigned int event, + struct msgb *msg, void *_conn, void *_transt) +{ + struct gsm_subscriber_connection *conn = _conn; + struct gsm_trans *transt = _transt; + enum gsm_paging_event paging_event = event; + + OSMO_ASSERT(!transt->conn); + + switch (paging_event) { + case GSM_PAGING_SUCCEEDED: + DEBUGP(DCC, "Paging subscr %s succeeded!\n", + vlr_subscr_msisdn_or_name(transt->vsub)); + OSMO_ASSERT(conn); + /* Assign conn */ + transt->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_CC); + transt->paging_request = NULL; + /* send SETUP request to called party */ + gsm48_cc_tx_setup(transt, &transt->cc.msg); + break; + case GSM_PAGING_EXPIRED: + case GSM_PAGING_BUSY: + DEBUGP(DCC, "Paging subscr %s %s!\n", + vlr_subscr_msisdn_or_name(transt->vsub), + paging_event == GSM_PAGING_EXPIRED ? "expired" : "busy"); + /* Temporarily out of order */ + mncc_release_ind(transt->net, transt, + transt->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_DEST_OOO); + transt->callref = 0; + transt->paging_request = NULL; + trans_free(transt); + break; + } + + return 0; +} + +/* bridge channels of two transactions */ +static int tch_bridge(struct gsm_network *net, struct gsm_mncc_bridge *bridge) +{ + struct gsm_trans *trans1 = trans_find_by_callref(net, bridge->callref[0]); + struct gsm_trans *trans2 = trans_find_by_callref(net, bridge->callref[1]); + int rc; + + if (!trans1 || !trans2) + return -EIO; + + if (!trans1->conn || !trans2->conn) + return -EIO; + + /* Which subscriber do we want to track trans1 or trans2? */ + log_set_context(LOG_CTX_VLR_SUBSCR, trans1->vsub); + + /* Bridge RTP streams */ + rc = msc_mgcp_call_complete(trans1, trans2->conn->rtp.local_port_cn, + trans2->conn->rtp.local_addr_cn); + if (rc) + return -EINVAL; + + rc = msc_mgcp_call_complete(trans2, trans1->conn->rtp.local_port_cn, + trans1->conn->rtp.local_addr_cn); + if (rc) + return -EINVAL; + + return 0; +} + +static int gsm48_cc_rx_status_enq(struct gsm_trans *trans, struct msgb *msg) +{ + DEBUGP(DCC, "-> STATUS ENQ\n"); + return gsm48_cc_tx_status(trans, msg); +} + +static int gsm48_cc_tx_release(struct gsm_trans *trans, void *arg); +static int gsm48_cc_tx_disconnect(struct gsm_trans *trans, void *arg); + +static void gsm48_cc_timeout(void *arg) +{ + struct gsm_trans *trans = arg; + int disconnect = 0, release = 0; + int mo_cause = GSM48_CC_CAUSE_RECOVERY_TIMER; + int mo_location = GSM48_CAUSE_LOC_USER; + int l4_cause = GSM48_CC_CAUSE_NORMAL_UNSPEC; + int l4_location = GSM48_CAUSE_LOC_PRN_S_LU; + struct gsm_mncc mo_rel, l4_rel; + + memset(&mo_rel, 0, sizeof(struct gsm_mncc)); + mo_rel.callref = trans->callref; + memset(&l4_rel, 0, sizeof(struct gsm_mncc)); + l4_rel.callref = trans->callref; + + switch(trans->cc.Tcurrent) { + case 0x303: + release = 1; + l4_cause = GSM48_CC_CAUSE_USER_NOTRESPOND; + break; + case 0x310: + disconnect = 1; + l4_cause = GSM48_CC_CAUSE_USER_NOTRESPOND; + break; + case 0x313: + disconnect = 1; + /* unknown, did not find it in the specs */ + break; + case 0x301: + disconnect = 1; + l4_cause = GSM48_CC_CAUSE_USER_NOTRESPOND; + break; + case 0x308: + if (!trans->cc.T308_second) { + /* restart T308 a second time */ + gsm48_cc_tx_release(trans, &trans->cc.msg); + trans->cc.T308_second = 1; + break; /* stay in release state */ + } + trans_free(trans); + return; + case 0x306: + release = 1; + mo_cause = trans->cc.msg.cause.value; + mo_location = trans->cc.msg.cause.location; + break; + case 0x323: + disconnect = 1; + break; + default: + release = 1; + } + + if (release && trans->callref) { + /* process release towards layer 4 */ + mncc_release_ind(trans->net, trans, trans->callref, + l4_location, l4_cause); + trans->callref = 0; + } + + if (disconnect && trans->callref) { + /* process disconnect towards layer 4 */ + mncc_set_cause(&l4_rel, l4_location, l4_cause); + mncc_recvmsg(trans->net, trans, MNCC_DISC_IND, &l4_rel); + } + + /* process disconnect towards mobile station */ + if (disconnect || release) { + mncc_set_cause(&mo_rel, mo_location, mo_cause); + mo_rel.cause.diag[0] = ((trans->cc.Tcurrent & 0xf00) >> 8) + '0'; + mo_rel.cause.diag[1] = ((trans->cc.Tcurrent & 0x0f0) >> 4) + '0'; + mo_rel.cause.diag[2] = (trans->cc.Tcurrent & 0x00f) + '0'; + mo_rel.cause.diag_len = 3; + + if (disconnect) + gsm48_cc_tx_disconnect(trans, &mo_rel); + if (release) + gsm48_cc_tx_release(trans, &mo_rel); + } + +} + +/* disconnect both calls from the bridge */ +static inline void disconnect_bridge(struct gsm_network *net, + struct gsm_mncc_bridge *bridge, int err) +{ + struct gsm_trans *trans0 = trans_find_by_callref(net, bridge->callref[0]); + struct gsm_trans *trans1 = trans_find_by_callref(net, bridge->callref[1]); + struct gsm_mncc mx_rel; + if (!trans0 || !trans1) + return; + + DEBUGP(DCC, "Failed to bridge TCH for calls %x <-> %x :: %s \n", + trans0->callref, trans1->callref, strerror(err)); + + memset(&mx_rel, 0, sizeof(struct gsm_mncc)); + mncc_set_cause(&mx_rel, GSM48_CAUSE_LOC_INN_NET, + GSM48_CC_CAUSE_CHAN_UNACCEPT); + + mx_rel.callref = trans0->callref; + gsm48_cc_tx_disconnect(trans0, &mx_rel); + + mx_rel.callref = trans1->callref; + gsm48_cc_tx_disconnect(trans1, &mx_rel); +} + +static void gsm48_start_cc_timer(struct gsm_trans *trans, int current, + int sec, int micro) +{ + DEBUGP(DCC, "starting timer T%x with %d seconds\n", current, sec); + osmo_timer_setup(&trans->cc.timer, gsm48_cc_timeout, trans); + osmo_timer_schedule(&trans->cc.timer, sec, micro); + trans->cc.Tcurrent = current; +} + +static int gsm48_cc_rx_setup(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + uint8_t msg_type = gsm48_hdr_msg_type(gh); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc setup; + + memset(&setup, 0, sizeof(struct gsm_mncc)); + setup.callref = trans->callref; + + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); + /* emergency setup is identified by msg_type */ + if (msg_type == GSM48_MT_CC_EMERG_SETUP) { + setup.fields |= MNCC_F_EMERGENCY; + setup.emergency = 1; + /* use destination number as configured by user (if any) */ + if (trans->net->emergency.route_to_msisdn) { + setup.fields |= MNCC_F_CALLED; + setup.called.type = 0; /* unknown */ + setup.called.plan = 0; /* unknown */ + OSMO_STRLCPY_ARRAY(setup.called.number, + trans->net->emergency.route_to_msisdn); + } + } + + /* use subscriber as calling party number */ + setup.fields |= MNCC_F_CALLING; + OSMO_STRLCPY_ARRAY(setup.calling.number, trans->vsub->msisdn); + OSMO_STRLCPY_ARRAY(setup.imsi, trans->vsub->imsi); + + /* bearer capability */ + if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { + setup.fields |= MNCC_F_BEARER_CAP; + gsm48_decode_bearer_cap(&setup.bearer_cap, + TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); + + /* Create a copy of the bearer capability + * in the transaction struct, so we can use + * this information later */ + memcpy(&trans->bearer_cap,&setup.bearer_cap, + sizeof(trans->bearer_cap)); + } + /* facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { + setup.fields |= MNCC_F_FACILITY; + gsm48_decode_facility(&setup.facility, + TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); + } + /* called party bcd number */ + if (TLVP_PRESENT(&tp, GSM48_IE_CALLED_BCD)) { + setup.fields |= MNCC_F_CALLED; + gsm48_decode_called(&setup.called, + TLVP_VAL(&tp, GSM48_IE_CALLED_BCD)-1); + } + /* user-user */ + if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { + setup.fields |= MNCC_F_USERUSER; + gsm48_decode_useruser(&setup.useruser, + TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); + } + /* ss-version */ + if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { + setup.fields |= MNCC_F_SSVERSION; + gsm48_decode_ssversion(&setup.ssversion, + TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); + } + /* CLIR suppression */ + if (TLVP_PRESENT(&tp, GSM48_IE_CLIR_SUPP)) + setup.clir.sup = 1; + /* CLIR invocation */ + if (TLVP_PRESENT(&tp, GSM48_IE_CLIR_INVOC)) + setup.clir.inv = 1; + /* cc cap */ + if (TLVP_PRESENT(&tp, GSM48_IE_CC_CAP)) { + setup.fields |= MNCC_F_CCCAP; + gsm48_decode_cccap(&setup.cccap, + TLVP_VAL(&tp, GSM48_IE_CC_CAP)-1); + } + + new_cc_state(trans, GSM_CSTATE_INITIATED); + + LOGP(DCC, setup.emergency ? LOGL_NOTICE : LOGL_INFO, "Subscriber %s (%s) sends %sSETUP to %s\n", + vlr_subscr_name(trans->vsub), trans->vsub->msisdn, setup.emergency ? "EMERGENCY_" : "", + setup.called.number); + + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_SETUP]); + + /* indicate setup to MNCC */ + mncc_recvmsg(trans->net, trans, MNCC_SETUP_IND, &setup); + + /* MNCC code will modify the channel asynchronously, we should + * ipaccess-bind only after the modification has been made to the + * lchan->tch_mode */ + return 0; +} + +static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC STUP"); + struct gsm48_hdr *gh; + struct gsm_mncc *setup = arg; + int rc, trans_id; + + gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + /* transaction id must not be assigned */ + if (trans->transaction_id != 0xff) { /* unasssigned */ + DEBUGP(DCC, "TX Setup with assigned transaction. " + "This is not allowed!\n"); + /* Temporarily out of order */ + rc = mncc_release_ind(trans->net, trans, trans->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); + trans->callref = 0; + trans_free(trans); + return rc; + } + + /* Get free transaction_id */ + trans_id = trans_assign_trans_id(trans->net, trans->vsub, + GSM48_PDISC_CC, 0); + if (trans_id < 0) { + /* no free transaction ID */ + rc = mncc_release_ind(trans->net, trans, trans->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); + trans->callref = 0; + trans_free(trans); + return rc; + } + trans->transaction_id = trans_id; + + gh->msg_type = GSM48_MT_CC_SETUP; + + gsm48_start_cc_timer(trans, 0x303, GSM48_T303); + + /* bearer capability */ + if (setup->fields & MNCC_F_BEARER_CAP) { + /* Create a copy of the bearer capability in the transaction struct, so we + * can use this information later */ + memcpy(&trans->bearer_cap, &setup->bearer_cap, sizeof(trans->bearer_cap)); + gsm48_encode_bearer_cap(msg, 0, &setup->bearer_cap); + } + /* facility */ + if (setup->fields & MNCC_F_FACILITY) + gsm48_encode_facility(msg, 0, &setup->facility); + /* progress */ + if (setup->fields & MNCC_F_PROGRESS) + gsm48_encode_progress(msg, 0, &setup->progress); + /* calling party BCD number */ + if (setup->fields & MNCC_F_CALLING) + gsm48_encode_calling(msg, &setup->calling); + /* called party BCD number */ + if (setup->fields & MNCC_F_CALLED) + gsm48_encode_called(msg, &setup->called); + /* user-user */ + if (setup->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 0, &setup->useruser); + /* redirecting party BCD number */ + if (setup->fields & MNCC_F_REDIRECTING) + gsm48_encode_redirecting(msg, &setup->redirecting); + /* signal */ + if (setup->fields & MNCC_F_SIGNAL) + gsm48_encode_signal(msg, setup->signal); + + new_cc_state(trans, GSM_CSTATE_CALL_PRESENT); + + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_SETUP]); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_call_conf(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc call_conf; + int rc; + + gsm48_stop_cc_timer(trans); + gsm48_start_cc_timer(trans, 0x310, GSM48_T310); + + memset(&call_conf, 0, sizeof(struct gsm_mncc)); + call_conf.callref = trans->callref; + + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); +#if 0 + /* repeat */ + if (TLVP_PRESENT(&tp, GSM48_IE_REPEAT_CIR)) + call_conf.repeat = 1; + if (TLVP_PRESENT(&tp, GSM48_IE_REPEAT_SEQ)) + call_conf.repeat = 2; +#endif + /* bearer capability */ + if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { + call_conf.fields |= MNCC_F_BEARER_CAP; + gsm48_decode_bearer_cap(&call_conf.bearer_cap, + TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); + + /* Create a copy of the bearer capability + * in the transaction struct, so we can use + * this information later */ + memcpy(&trans->bearer_cap,&call_conf.bearer_cap, + sizeof(trans->bearer_cap)); + } + /* cause */ + if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { + call_conf.fields |= MNCC_F_CAUSE; + gsm48_decode_cause(&call_conf.cause, + TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); + } + /* cc cap */ + if (TLVP_PRESENT(&tp, GSM48_IE_CC_CAP)) { + call_conf.fields |= MNCC_F_CCCAP; + gsm48_decode_cccap(&call_conf.cccap, + TLVP_VAL(&tp, GSM48_IE_CC_CAP)-1); + } + + /* IMSI of called subscriber */ + OSMO_STRLCPY_ARRAY(call_conf.imsi, trans->vsub->imsi); + + new_cc_state(trans, GSM_CSTATE_MO_TERM_CALL_CONF); + + /* Assign call (if not done yet) */ + if (trans->assignment_done == false) { + rc = msc_mgcp_call_assignment(trans); + trans->assignment_done = true; + } + else + rc = 0; + + /* don't continue, if there were problems with + * the call assignment. */ + if (rc) + return rc; + + return mncc_recvmsg(trans->net, trans, MNCC_CALL_CONF_IND, + &call_conf); +} + +static int gsm48_cc_tx_call_proc_and_assign(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *proceeding = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC PROC"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + int rc; + + gh->msg_type = GSM48_MT_CC_CALL_PROC; + + new_cc_state(trans, GSM_CSTATE_MO_CALL_PROC); + + /* bearer capability */ + if (proceeding->fields & MNCC_F_BEARER_CAP) { + gsm48_encode_bearer_cap(msg, 0, &proceeding->bearer_cap); + memcpy(&trans->bearer_cap, &proceeding->bearer_cap, sizeof(trans->bearer_cap)); + } + /* facility */ + if (proceeding->fields & MNCC_F_FACILITY) + gsm48_encode_facility(msg, 0, &proceeding->facility); + /* progress */ + if (proceeding->fields & MNCC_F_PROGRESS) + gsm48_encode_progress(msg, 0, &proceeding->progress); + + rc = gsm48_conn_sendmsg(msg, trans->conn, trans); + if (rc) + return rc; + + /* Assign call (if not done yet) */ + if (trans->assignment_done == false) { + rc = msc_mgcp_call_assignment(trans); + trans->assignment_done = true; + } + else + rc = 0; + + return rc; +} + +static int gsm48_cc_rx_alerting(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc alerting; + + gsm48_stop_cc_timer(trans); + gsm48_start_cc_timer(trans, 0x301, GSM48_T301); + + memset(&alerting, 0, sizeof(struct gsm_mncc)); + alerting.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); + /* facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { + alerting.fields |= MNCC_F_FACILITY; + gsm48_decode_facility(&alerting.facility, + TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); + } + + /* progress */ + if (TLVP_PRESENT(&tp, GSM48_IE_PROGR_IND)) { + alerting.fields |= MNCC_F_PROGRESS; + gsm48_decode_progress(&alerting.progress, + TLVP_VAL(&tp, GSM48_IE_PROGR_IND)-1); + } + /* ss-version */ + if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { + alerting.fields |= MNCC_F_SSVERSION; + gsm48_decode_ssversion(&alerting.ssversion, + TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); + } + + new_cc_state(trans, GSM_CSTATE_CALL_RECEIVED); + + return mncc_recvmsg(trans->net, trans, MNCC_ALERT_IND, + &alerting); +} + +static int gsm48_cc_tx_alerting(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *alerting = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC ALERT"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_ALERTING; + + /* facility */ + if (alerting->fields & MNCC_F_FACILITY) + gsm48_encode_facility(msg, 0, &alerting->facility); + /* progress */ + if (alerting->fields & MNCC_F_PROGRESS) + gsm48_encode_progress(msg, 0, &alerting->progress); + /* user-user */ + if (alerting->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 0, &alerting->useruser); + + new_cc_state(trans, GSM_CSTATE_CALL_DELIVERED); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_tx_progress(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *progress = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC PROGRESS"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_PROGRESS; + + /* progress */ + gsm48_encode_progress(msg, 1, &progress->progress); + /* user-user */ + if (progress->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 0, &progress->useruser); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_tx_connect(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *connect = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSN 04.08 CC CON"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_CONNECT; + + gsm48_stop_cc_timer(trans); + gsm48_start_cc_timer(trans, 0x313, GSM48_T313); + + /* facility */ + if (connect->fields & MNCC_F_FACILITY) + gsm48_encode_facility(msg, 0, &connect->facility); + /* progress */ + if (connect->fields & MNCC_F_PROGRESS) + gsm48_encode_progress(msg, 0, &connect->progress); + /* connected number */ + if (connect->fields & MNCC_F_CONNECTED) + gsm48_encode_connected(msg, &connect->connected); + /* user-user */ + if (connect->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 0, &connect->useruser); + + new_cc_state(trans, GSM_CSTATE_CONNECT_IND); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_connect(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc connect; + + gsm48_stop_cc_timer(trans); + + memset(&connect, 0, sizeof(struct gsm_mncc)); + connect.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); + /* use subscriber as connected party number */ + connect.fields |= MNCC_F_CONNECTED; + OSMO_STRLCPY_ARRAY(connect.connected.number, trans->vsub->msisdn); + OSMO_STRLCPY_ARRAY(connect.imsi, trans->vsub->imsi); + + /* facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { + connect.fields |= MNCC_F_FACILITY; + gsm48_decode_facility(&connect.facility, + TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); + } + /* user-user */ + if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { + connect.fields |= MNCC_F_USERUSER; + gsm48_decode_useruser(&connect.useruser, + TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); + } + /* ss-version */ + if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { + connect.fields |= MNCC_F_SSVERSION; + gsm48_decode_ssversion(&connect.ssversion, + TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); + } + + new_cc_state(trans, GSM_CSTATE_CONNECT_REQUEST); + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MT_CONNECT]); + + return mncc_recvmsg(trans->net, trans, MNCC_SETUP_CNF, &connect); +} + + +static int gsm48_cc_rx_connect_ack(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm_mncc connect_ack; + + gsm48_stop_cc_timer(trans); + + new_cc_state(trans, GSM_CSTATE_ACTIVE); + rate_ctr_inc(&trans->net->msc_ctrs->ctr[MSC_CTR_CALL_MO_CONNECT_ACK]); + + memset(&connect_ack, 0, sizeof(struct gsm_mncc)); + connect_ack.callref = trans->callref; + + return mncc_recvmsg(trans->net, trans, MNCC_SETUP_COMPL_IND, + &connect_ack); +} + +static int gsm48_cc_tx_connect_ack(struct gsm_trans *trans, void *arg) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC CON ACK"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_CONNECT_ACK; + + new_cc_state(trans, GSM_CSTATE_ACTIVE); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_disconnect(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc disc; + + gsm48_stop_cc_timer(trans); + + new_cc_state(trans, GSM_CSTATE_DISCONNECT_REQ); + + memset(&disc, 0, sizeof(struct gsm_mncc)); + disc.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_CAUSE, 0); + /* cause */ + if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { + disc.fields |= MNCC_F_CAUSE; + gsm48_decode_cause(&disc.cause, + TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); + } + /* facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { + disc.fields |= MNCC_F_FACILITY; + gsm48_decode_facility(&disc.facility, + TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); + } + /* user-user */ + if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { + disc.fields |= MNCC_F_USERUSER; + gsm48_decode_useruser(&disc.useruser, + TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); + } + /* ss-version */ + if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { + disc.fields |= MNCC_F_SSVERSION; + gsm48_decode_ssversion(&disc.ssversion, + TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); + } + + return mncc_recvmsg(trans->net, trans, MNCC_DISC_IND, &disc); + +} + +static struct gsm_mncc_cause default_cause = { + .location = GSM48_CAUSE_LOC_PRN_S_LU, + .coding = 0, + .rec = 0, + .rec_val = 0, + .value = GSM48_CC_CAUSE_NORMAL_UNSPEC, + .diag_len = 0, + .diag = { 0 }, +}; + +static int gsm48_cc_tx_disconnect(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *disc = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC DISC"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_DISCONNECT; + + gsm48_stop_cc_timer(trans); + gsm48_start_cc_timer(trans, 0x306, GSM48_T306); + + /* cause */ + if (disc->fields & MNCC_F_CAUSE) + gsm48_encode_cause(msg, 1, &disc->cause); + else + gsm48_encode_cause(msg, 1, &default_cause); + + /* facility */ + if (disc->fields & MNCC_F_FACILITY) + gsm48_encode_facility(msg, 0, &disc->facility); + /* progress */ + if (disc->fields & MNCC_F_PROGRESS) + gsm48_encode_progress(msg, 0, &disc->progress); + /* user-user */ + if (disc->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 0, &disc->useruser); + + /* store disconnect cause for T306 expiry */ + memcpy(&trans->cc.msg, disc, sizeof(struct gsm_mncc)); + + new_cc_state(trans, GSM_CSTATE_DISCONNECT_IND); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_release(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc rel; + int rc; + + gsm48_stop_cc_timer(trans); + + memset(&rel, 0, sizeof(struct gsm_mncc)); + rel.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); + /* cause */ + if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { + rel.fields |= MNCC_F_CAUSE; + gsm48_decode_cause(&rel.cause, + TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); + } + /* facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { + rel.fields |= MNCC_F_FACILITY; + gsm48_decode_facility(&rel.facility, + TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); + } + /* user-user */ + if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { + rel.fields |= MNCC_F_USERUSER; + gsm48_decode_useruser(&rel.useruser, + TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); + } + /* ss-version */ + if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { + rel.fields |= MNCC_F_SSVERSION; + gsm48_decode_ssversion(&rel.ssversion, + TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); + } + + if (trans->cc.state == GSM_CSTATE_RELEASE_REQ) { + /* release collision 5.4.5 */ + rc = mncc_recvmsg(trans->net, trans, MNCC_REL_CNF, &rel); + } else { + rc = gsm48_tx_simple(trans->conn, + GSM48_PDISC_CC | (trans->transaction_id << 4), + GSM48_MT_CC_RELEASE_COMPL); + rc = mncc_recvmsg(trans->net, trans, MNCC_REL_IND, &rel); + } + + new_cc_state(trans, GSM_CSTATE_NULL); + + trans->callref = 0; + trans_free(trans); + + return rc; +} + +static int gsm48_cc_tx_release(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *rel = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC REL"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_RELEASE; + + gsm48_stop_cc_timer(trans); + gsm48_start_cc_timer(trans, 0x308, GSM48_T308); + + /* cause */ + if (rel->fields & MNCC_F_CAUSE) + gsm48_encode_cause(msg, 0, &rel->cause); + /* facility */ + if (rel->fields & MNCC_F_FACILITY) + gsm48_encode_facility(msg, 0, &rel->facility); + /* user-user */ + if (rel->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 0, &rel->useruser); + + trans->cc.T308_second = 0; + memcpy(&trans->cc.msg, rel, sizeof(struct gsm_mncc)); + + if (trans->cc.state != GSM_CSTATE_RELEASE_REQ) + new_cc_state(trans, GSM_CSTATE_RELEASE_REQ); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_release_compl(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc rel; + int rc = 0; + + gsm48_stop_cc_timer(trans); + + memset(&rel, 0, sizeof(struct gsm_mncc)); + rel.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); + /* cause */ + if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { + rel.fields |= MNCC_F_CAUSE; + gsm48_decode_cause(&rel.cause, + TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); + } + /* facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { + rel.fields |= MNCC_F_FACILITY; + gsm48_decode_facility(&rel.facility, + TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); + } + /* user-user */ + if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { + rel.fields |= MNCC_F_USERUSER; + gsm48_decode_useruser(&rel.useruser, + TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); + } + /* ss-version */ + if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { + rel.fields |= MNCC_F_SSVERSION; + gsm48_decode_ssversion(&rel.ssversion, + TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); + } + + if (trans->callref) { + switch (trans->cc.state) { + case GSM_CSTATE_CALL_PRESENT: + rc = mncc_recvmsg(trans->net, trans, + MNCC_REJ_IND, &rel); + break; + case GSM_CSTATE_RELEASE_REQ: + rc = mncc_recvmsg(trans->net, trans, + MNCC_REL_CNF, &rel); + break; + default: + rc = mncc_recvmsg(trans->net, trans, + MNCC_REL_IND, &rel); + } + } + + trans->callref = 0; + trans_free(trans); + + return rc; +} + +static int gsm48_cc_tx_release_compl(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *rel = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC REL COMPL"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + int ret; + + gh->msg_type = GSM48_MT_CC_RELEASE_COMPL; + + trans->callref = 0; + + gsm48_stop_cc_timer(trans); + + /* cause */ + if (rel->fields & MNCC_F_CAUSE) + gsm48_encode_cause(msg, 0, &rel->cause); + /* facility */ + if (rel->fields & MNCC_F_FACILITY) + gsm48_encode_facility(msg, 0, &rel->facility); + /* user-user */ + if (rel->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 0, &rel->useruser); + + ret = gsm48_conn_sendmsg(msg, trans->conn, trans); + + trans_free(trans); + + return ret; +} + +static int gsm48_cc_rx_facility(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc fac; + + memset(&fac, 0, sizeof(struct gsm_mncc)); + fac.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_FACILITY, 0); + /* facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) { + fac.fields |= MNCC_F_FACILITY; + gsm48_decode_facility(&fac.facility, + TLVP_VAL(&tp, GSM48_IE_FACILITY)-1); + } + /* ss-version */ + if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) { + fac.fields |= MNCC_F_SSVERSION; + gsm48_decode_ssversion(&fac.ssversion, + TLVP_VAL(&tp, GSM48_IE_SS_VERS)-1); + } + + return mncc_recvmsg(trans->net, trans, MNCC_FACILITY_IND, &fac); +} + +static int gsm48_cc_tx_facility(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *fac = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC FAC"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_FACILITY; + + /* facility */ + gsm48_encode_facility(msg, 1, &fac->facility); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_hold(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm_mncc hold; + + memset(&hold, 0, sizeof(struct gsm_mncc)); + hold.callref = trans->callref; + return mncc_recvmsg(trans->net, trans, MNCC_HOLD_IND, &hold); +} + +static int gsm48_cc_tx_hold_ack(struct gsm_trans *trans, void *arg) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC HLD ACK"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_HOLD_ACK; + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_tx_hold_rej(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *hold_rej = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC HLD REJ"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_HOLD_REJ; + + /* cause */ + if (hold_rej->fields & MNCC_F_CAUSE) + gsm48_encode_cause(msg, 1, &hold_rej->cause); + else + gsm48_encode_cause(msg, 1, &default_cause); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_retrieve(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm_mncc retrieve; + + memset(&retrieve, 0, sizeof(struct gsm_mncc)); + retrieve.callref = trans->callref; + return mncc_recvmsg(trans->net, trans, MNCC_RETRIEVE_IND, + &retrieve); +} + +static int gsm48_cc_tx_retrieve_ack(struct gsm_trans *trans, void *arg) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC RETR ACK"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_RETR_ACK; + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_tx_retrieve_rej(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *retrieve_rej = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC RETR REJ"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_RETR_REJ; + + /* cause */ + if (retrieve_rej->fields & MNCC_F_CAUSE) + gsm48_encode_cause(msg, 1, &retrieve_rej->cause); + else + gsm48_encode_cause(msg, 1, &default_cause); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_start_dtmf(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc dtmf; + + memset(&dtmf, 0, sizeof(struct gsm_mncc)); + dtmf.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, 0, 0); + /* keypad facility */ + if (TLVP_PRESENT(&tp, GSM48_IE_KPD_FACILITY)) { + dtmf.fields |= MNCC_F_KEYPAD; + gsm48_decode_keypad(&dtmf.keypad, + TLVP_VAL(&tp, GSM48_IE_KPD_FACILITY)-1); + } + + return mncc_recvmsg(trans->net, trans, MNCC_START_DTMF_IND, &dtmf); +} + +static int gsm48_cc_tx_start_dtmf_ack(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *dtmf = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 DTMF ACK"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_START_DTMF_ACK; + + /* keypad */ + if (dtmf->fields & MNCC_F_KEYPAD) + gsm48_encode_keypad(msg, dtmf->keypad); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_tx_start_dtmf_rej(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *dtmf = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 DTMF REJ"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_START_DTMF_REJ; + + /* cause */ + if (dtmf->fields & MNCC_F_CAUSE) + gsm48_encode_cause(msg, 1, &dtmf->cause); + else + gsm48_encode_cause(msg, 1, &default_cause); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_tx_stop_dtmf_ack(struct gsm_trans *trans, void *arg) +{ + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 DTMF STP ACK"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_STOP_DTMF_ACK; + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_stop_dtmf(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm_mncc dtmf; + + memset(&dtmf, 0, sizeof(struct gsm_mncc)); + dtmf.callref = trans->callref; + + return mncc_recvmsg(trans->net, trans, MNCC_STOP_DTMF_IND, &dtmf); +} + +static int gsm48_cc_rx_modify(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc modify; + + memset(&modify, 0, sizeof(struct gsm_mncc)); + modify.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_BEARER_CAP, 0); + /* bearer capability */ + if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { + modify.fields |= MNCC_F_BEARER_CAP; + gsm48_decode_bearer_cap(&modify.bearer_cap, + TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); + + /* Create a copy of the bearer capability + * in the transaction struct, so we can use + * this information later */ + memcpy(&trans->bearer_cap,&modify.bearer_cap, + sizeof(trans->bearer_cap)); + } + + new_cc_state(trans, GSM_CSTATE_MO_ORIG_MODIFY); + + return mncc_recvmsg(trans->net, trans, MNCC_MODIFY_IND, &modify); +} + +static int gsm48_cc_tx_modify(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *modify = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC MOD"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_MODIFY; + + gsm48_start_cc_timer(trans, 0x323, GSM48_T323); + + /* bearer capability */ + gsm48_encode_bearer_cap(msg, 1, &modify->bearer_cap); + memcpy(&trans->bearer_cap, &modify->bearer_cap, sizeof(trans->bearer_cap)); + + new_cc_state(trans, GSM_CSTATE_MO_TERM_MODIFY); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_modify_complete(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc modify; + + gsm48_stop_cc_timer(trans); + + memset(&modify, 0, sizeof(struct gsm_mncc)); + modify.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_BEARER_CAP, 0); + /* bearer capability */ + if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { + modify.fields |= MNCC_F_BEARER_CAP; + gsm48_decode_bearer_cap(&modify.bearer_cap, + TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); + + /* Create a copy of the bearer capability + * in the transaction struct, so we can use + * this information later */ + memcpy(&trans->bearer_cap,&modify.bearer_cap, + sizeof(trans->bearer_cap)); + } + + new_cc_state(trans, GSM_CSTATE_ACTIVE); + + return mncc_recvmsg(trans->net, trans, MNCC_MODIFY_CNF, &modify); +} + +static int gsm48_cc_tx_modify_complete(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *modify = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC MOD COMPL"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_MODIFY_COMPL; + + /* bearer capability */ + gsm48_encode_bearer_cap(msg, 1, &modify->bearer_cap); + memcpy(&trans->bearer_cap, &modify->bearer_cap, sizeof(trans->bearer_cap)); + + new_cc_state(trans, GSM_CSTATE_ACTIVE); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_modify_reject(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc modify; + + gsm48_stop_cc_timer(trans); + + memset(&modify, 0, sizeof(struct gsm_mncc)); + modify.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_BEARER_CAP, GSM48_IE_CAUSE); + /* bearer capability */ + if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) { + modify.fields |= GSM48_IE_BEARER_CAP; + gsm48_decode_bearer_cap(&modify.bearer_cap, + TLVP_VAL(&tp, GSM48_IE_BEARER_CAP)-1); + + /* Create a copy of the bearer capability + * in the transaction struct, so we can use + * this information later */ + memcpy(&trans->bearer_cap,&modify.bearer_cap, + sizeof(trans->bearer_cap)); + } + /* cause */ + if (TLVP_PRESENT(&tp, GSM48_IE_CAUSE)) { + modify.fields |= MNCC_F_CAUSE; + gsm48_decode_cause(&modify.cause, + TLVP_VAL(&tp, GSM48_IE_CAUSE)-1); + } + + new_cc_state(trans, GSM_CSTATE_ACTIVE); + + return mncc_recvmsg(trans->net, trans, MNCC_MODIFY_REJ, &modify); +} + +static int gsm48_cc_tx_modify_reject(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *modify = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC MOD REJ"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_MODIFY_REJECT; + + /* bearer capability */ + gsm48_encode_bearer_cap(msg, 1, &modify->bearer_cap); + memcpy(&trans->bearer_cap, &modify->bearer_cap, sizeof(trans->bearer_cap)); + /* cause */ + gsm48_encode_cause(msg, 1, &modify->cause); + + new_cc_state(trans, GSM_CSTATE_ACTIVE); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_tx_notify(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *notify = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 CC NOT"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_NOTIFY; + + /* notify */ + gsm48_encode_notify(msg, notify->notify); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_notify(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); +// struct tlv_parsed tp; + struct gsm_mncc notify; + + memset(¬ify, 0, sizeof(struct gsm_mncc)); + notify.callref = trans->callref; +// tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len); + if (payload_len >= 1) + gsm48_decode_notify(¬ify.notify, gh->data); + + return mncc_recvmsg(trans->net, trans, MNCC_NOTIFY_IND, ¬ify); +} + +static int gsm48_cc_tx_userinfo(struct gsm_trans *trans, void *arg) +{ + struct gsm_mncc *user = arg; + struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 USR INFO"); + struct gsm48_hdr *gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); + + gh->msg_type = GSM48_MT_CC_USER_INFO; + + /* user-user */ + if (user->fields & MNCC_F_USERUSER) + gsm48_encode_useruser(msg, 1, &user->useruser); + /* more data */ + if (user->more) + gsm48_encode_more(msg); + + return gsm48_conn_sendmsg(msg, trans->conn, trans); +} + +static int gsm48_cc_rx_userinfo(struct gsm_trans *trans, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + unsigned int payload_len = msgb_l3len(msg) - sizeof(*gh); + struct tlv_parsed tp; + struct gsm_mncc user; + + memset(&user, 0, sizeof(struct gsm_mncc)); + user.callref = trans->callref; + tlv_parse(&tp, &gsm48_att_tlvdef, gh->data, payload_len, GSM48_IE_USER_USER, 0); + /* user-user */ + if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) { + user.fields |= MNCC_F_USERUSER; + gsm48_decode_useruser(&user.useruser, + TLVP_VAL(&tp, GSM48_IE_USER_USER)-1); + } + /* more data */ + if (TLVP_PRESENT(&tp, GSM48_IE_MORE_DATA)) + user.more = 1; + + return mncc_recvmsg(trans->net, trans, MNCC_USERINFO_IND, &user); +} + +static void mncc_recv_rtp(struct gsm_network *net, uint32_t callref, + int cmd, uint32_t addr, uint16_t port, uint32_t payload_type, + uint32_t payload_msg_type) +{ + uint8_t data[sizeof(struct gsm_mncc)]; + struct gsm_mncc_rtp *rtp; + + memset(&data, 0, sizeof(data)); + rtp = (struct gsm_mncc_rtp *) &data[0]; + + rtp->callref = callref; + rtp->msg_type = cmd; + rtp->ip = addr; + rtp->port = port; + rtp->payload_type = payload_type; + rtp->payload_msg_type = payload_msg_type; + mncc_recvmsg(net, NULL, cmd, (struct gsm_mncc *)data); +} + +static void mncc_recv_rtp_sock(struct gsm_network *net, struct gsm_trans *trans, int cmd) +{ + int msg_type; + + /* FIXME This has to be set to some meaningful value. + * Possible options are: + * GSM_TCHF_FRAME, GSM_TCHF_FRAME_EFR, + * GSM_TCHH_FRAME, GSM_TCH_FRAME_AMR + * (0 if unknown) */ + msg_type = GSM_TCHF_FRAME; + + uint32_t addr = inet_addr(trans->conn->rtp.local_addr_cn); + uint16_t port = trans->conn->rtp.local_port_cn; + + LOGP(DMNCC, LOGL_ERROR, "RTP create for non-existing trans\n"); + + if (addr == INADDR_NONE) { + LOGP(DMNCC, LOGL_ERROR, + "(subscriber:%s) external MNCC is signalling invalid IP-Address\n", + vlr_subscr_name(trans->vsub)); + return; + } + if (port == 0) { + LOGP(DMNCC, LOGL_ERROR, + "(subscriber:%s) external MNCC is signalling invalid Port\n", + vlr_subscr_name(trans->vsub)); + return; + } + + /* FIXME: This has to be set to some meaningful value, + * before the MSC-Split, this value was pulled from + * lchan->abis_ip.rtp_payload */ + uint32_t payload_type = 0; + + return mncc_recv_rtp(net, trans->callref, cmd, + addr, + port, + payload_type, + msg_type); +} + +static void mncc_recv_rtp_err(struct gsm_network *net, uint32_t callref, int cmd) +{ + return mncc_recv_rtp(net, callref, cmd, 0, 0, 0, 0); +} + +static int tch_rtp_create(struct gsm_network *net, uint32_t callref) +{ + struct gsm_trans *trans; + int rc; + + /* Find callref */ + trans = trans_find_by_callref(net, callref); + if (!trans) { + LOGP(DMNCC, LOGL_ERROR, "RTP create for non-existing trans\n"); + mncc_recv_rtp_err(net, callref, MNCC_RTP_CREATE); + return -EIO; + } + log_set_context(LOG_CTX_VLR_SUBSCR, trans->vsub); + if (!trans->conn) { + LOGP(DMNCC, LOGL_NOTICE, "RTP create for trans without conn\n"); + mncc_recv_rtp_err(net, callref, MNCC_RTP_CREATE); + return 0; + } + + trans->conn->mncc_rtp_bridge = 1; + + /* When we call msc_mgcp_call_assignment() we will trigger, depending + * on the RAN type the call assignment on the A or Iu interface. + * msc_mgcp_call_assignment() also takes care about sending the CRCX + * command to the MGCP-GW. The CRCX will return the port number, + * where the PBX (e.g. Asterisk) will send its RTP stream to. We + * have to return this port number back to the MNCC by sending + * it back with the TCH_RTP_CREATE message. To make sure that + * this message is sent AFTER the response to CRCX from the + * MGCP-GW has arrived, we need will instruct msc_mgcp_call_assignment() + * to take care of this by setting trans->tch_rtp_create to true. + * This will make sure that gsm48_tch_rtp_create() (below) is + * called as soon as the local port number has become known. */ + trans->tch_rtp_create = true; + + /* Assign call (if not done yet) */ + if (trans->assignment_done == false) { + rc = msc_mgcp_call_assignment(trans); + trans->assignment_done = true; + } + else + rc = 0; + + return rc; +} + +/* Trigger TCH_RTP_CREATE acknowledgement */ +int gsm48_tch_rtp_create(struct gsm_trans *trans) +{ + /* This function is called as soon as the port, on which the + * mgcp-gw expects the incoming RTP stream from the remote + * end (e.g. Asterisk) is known. */ + + struct gsm_subscriber_connection *conn = trans->conn; + struct gsm_network *network = conn->network; + + mncc_recv_rtp_sock(network, trans, MNCC_RTP_CREATE); + return 0; +} + +static int tch_rtp_connect(struct gsm_network *net, void *arg) +{ + struct gsm_trans *trans; + struct gsm_mncc_rtp *rtp = arg; + struct in_addr addr; + + /* Find callref */ + trans = trans_find_by_callref(net, rtp->callref); + if (!trans) { + LOGP(DMNCC, LOGL_ERROR, "RTP connect for non-existing trans\n"); + mncc_recv_rtp_err(net, rtp->callref, MNCC_RTP_CONNECT); + return -EIO; + } + log_set_context(LOG_CTX_VLR_SUBSCR, trans->vsub); + if (!trans->conn) { + LOGP(DMNCC, LOGL_ERROR, "RTP connect for trans without conn\n"); + mncc_recv_rtp_err(net, rtp->callref, MNCC_RTP_CONNECT); + return 0; + } + + addr.s_addr = osmo_htonl(rtp->ip); + return msc_mgcp_call_complete(trans, rtp->port, inet_ntoa(addr)); +} + +static struct downstate { + uint32_t states; + int type; + int (*rout) (struct gsm_trans *trans, void *arg); +} downstatelist[] = { + /* mobile originating call establishment */ + {SBIT(GSM_CSTATE_INITIATED), /* 5.2.1.2 */ + MNCC_CALL_PROC_REQ, gsm48_cc_tx_call_proc_and_assign}, + {SBIT(GSM_CSTATE_INITIATED) | SBIT(GSM_CSTATE_MO_CALL_PROC), /* 5.2.1.2 | 5.2.1.5 */ + MNCC_ALERT_REQ, gsm48_cc_tx_alerting}, + {SBIT(GSM_CSTATE_INITIATED) | SBIT(GSM_CSTATE_MO_CALL_PROC) | SBIT(GSM_CSTATE_CALL_DELIVERED), /* 5.2.1.2 | 5.2.1.6 | 5.2.1.6 */ + MNCC_SETUP_RSP, gsm48_cc_tx_connect}, + {SBIT(GSM_CSTATE_MO_CALL_PROC), /* 5.2.1.4.2 */ + MNCC_PROGRESS_REQ, gsm48_cc_tx_progress}, + /* mobile terminating call establishment */ + {SBIT(GSM_CSTATE_NULL), /* 5.2.2.1 */ + MNCC_SETUP_REQ, gsm48_cc_tx_setup}, + {SBIT(GSM_CSTATE_CONNECT_REQUEST), + MNCC_SETUP_COMPL_REQ, gsm48_cc_tx_connect_ack}, + /* signalling during call */ + {SBIT(GSM_CSTATE_ACTIVE), + MNCC_NOTIFY_REQ, gsm48_cc_tx_notify}, + {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_RELEASE_REQ), + MNCC_FACILITY_REQ, gsm48_cc_tx_facility}, + {ALL_STATES, + MNCC_START_DTMF_RSP, gsm48_cc_tx_start_dtmf_ack}, + {ALL_STATES, + MNCC_START_DTMF_REJ, gsm48_cc_tx_start_dtmf_rej}, + {ALL_STATES, + MNCC_STOP_DTMF_RSP, gsm48_cc_tx_stop_dtmf_ack}, + {SBIT(GSM_CSTATE_ACTIVE), + MNCC_HOLD_CNF, gsm48_cc_tx_hold_ack}, + {SBIT(GSM_CSTATE_ACTIVE), + MNCC_HOLD_REJ, gsm48_cc_tx_hold_rej}, + {SBIT(GSM_CSTATE_ACTIVE), + MNCC_RETRIEVE_CNF, gsm48_cc_tx_retrieve_ack}, + {SBIT(GSM_CSTATE_ACTIVE), + MNCC_RETRIEVE_REJ, gsm48_cc_tx_retrieve_rej}, + {SBIT(GSM_CSTATE_ACTIVE), + MNCC_MODIFY_REQ, gsm48_cc_tx_modify}, + {SBIT(GSM_CSTATE_MO_ORIG_MODIFY), + MNCC_MODIFY_RSP, gsm48_cc_tx_modify_complete}, + {SBIT(GSM_CSTATE_MO_ORIG_MODIFY), + MNCC_MODIFY_REJ, gsm48_cc_tx_modify_reject}, + {SBIT(GSM_CSTATE_ACTIVE), + MNCC_USERINFO_REQ, gsm48_cc_tx_userinfo}, + /* clearing */ + {SBIT(GSM_CSTATE_INITIATED), + MNCC_REJ_REQ, gsm48_cc_tx_release_compl}, + {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_DISCONNECT_IND) - SBIT(GSM_CSTATE_RELEASE_REQ) - SBIT(GSM_CSTATE_DISCONNECT_REQ), /* 5.4.4 */ + MNCC_DISC_REQ, gsm48_cc_tx_disconnect}, + {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_RELEASE_REQ), /* 5.4.3.2 */ + MNCC_REL_REQ, gsm48_cc_tx_release}, +}; + +#define DOWNSLLEN \ + (sizeof(downstatelist) / sizeof(struct downstate)) + + +int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg) +{ + int i, rc = 0; + struct gsm_trans *trans = NULL, *transt; + struct gsm_subscriber_connection *conn = NULL; + struct gsm_mncc *data = arg, rel; + + DEBUGP(DMNCC, "receive message %s\n", get_mncc_name(msg_type)); + + /* handle special messages */ + switch(msg_type) { + case MNCC_BRIDGE: + rc = tch_bridge(net, arg); + if (rc < 0) + disconnect_bridge(net, arg, -rc); + return rc; + case MNCC_RTP_CREATE: + return tch_rtp_create(net, data->callref); + case MNCC_RTP_CONNECT: + return tch_rtp_connect(net, arg); + case MNCC_RTP_FREE: + /* unused right now */ + return -EIO; + + case MNCC_FRAME_DROP: + case MNCC_FRAME_RECV: + case GSM_TCHF_FRAME: + case GSM_TCHF_FRAME_EFR: + case GSM_TCHH_FRAME: + case GSM_TCH_FRAME_AMR: + LOGP(DMNCC, LOGL_ERROR, "RTP streams must be handled externally; %s not supported.\n", + get_mncc_name(msg_type)); + return -ENOTSUP; + } + + memset(&rel, 0, sizeof(struct gsm_mncc)); + rel.callref = data->callref; + + /* Find callref */ + trans = trans_find_by_callref(net, data->callref); + + /* Callref unknown */ + if (!trans) { + struct vlr_subscr *vsub; + + if (msg_type != MNCC_SETUP_REQ) { + DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " + "Received '%s' from MNCC with " + "unknown callref %d\n", data->called.number, + get_mncc_name(msg_type), data->callref); + /* Invalid call reference */ + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_INVAL_TRANS_ID); + } + if (!data->called.number[0] && !data->imsi[0]) { + DEBUGP(DCC, "(bts - trx - ts - ti) " + "Received '%s' from MNCC with " + "no number or IMSI\n", get_mncc_name(msg_type)); + /* Invalid number */ + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_INV_NR_FORMAT); + } + /* New transaction due to setup, find subscriber */ + if (data->called.number[0]) + vsub = vlr_subscr_find_by_msisdn(net->vlr, + data->called.number); + else + vsub = vlr_subscr_find_by_imsi(net->vlr, data->imsi); + + /* update the subscriber we deal with */ + log_set_context(LOG_CTX_VLR_SUBSCR, vsub); + + /* If subscriber is not found */ + if (!vsub) { + DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " + "Received '%s' from MNCC with " + "unknown subscriber %s\n", data->called.number, + get_mncc_name(msg_type), data->called.number); + /* Unknown subscriber */ + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_UNASSIGNED_NR); + } + /* If subscriber is not "attached" */ + if (!vsub->lac) { + DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " + "Received '%s' from MNCC with " + "detached subscriber %s\n", data->called.number, + get_mncc_name(msg_type), vlr_subscr_name(vsub)); + vlr_subscr_put(vsub); + /* Temporarily out of order */ + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_DEST_OOO); + } + /* Create transaction */ + trans = trans_alloc(net, vsub, GSM48_PDISC_CC, 0xff, data->callref); + if (!trans) { + DEBUGP(DCC, "No memory for trans.\n"); + vlr_subscr_put(vsub); + /* Ressource unavailable */ + mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); + return -ENOMEM; + } + + /* Find conn */ + conn = connection_for_subscr(vsub); + + /* If subscriber has no conn */ + if (!conn) { + /* find transaction with this subscriber already paging */ + llist_for_each_entry(transt, &net->trans_list, entry) { + /* Transaction of our conn? */ + if (transt == trans || + transt->vsub != vsub) + continue; + DEBUGP(DCC, "(bts - trx - ts - ti -- sub %s) " + "Received '%s' from MNCC with " + "unallocated channel, paging already " + "started for lac %d.\n", + data->called.number, + get_mncc_name(msg_type), vsub->lac); + vlr_subscr_put(vsub); + trans_free(trans); + return 0; + } + /* store setup information until paging succeeds */ + memcpy(&trans->cc.msg, data, sizeof(struct gsm_mncc)); + + /* Request a channel */ + trans->paging_request = subscr_request_conn( + vsub, + setup_trig_pag_evt, + trans, + "MNCC: establish call"); + if (!trans->paging_request) { + LOGP(DCC, LOGL_ERROR, "Failed to allocate paging token.\n"); + vlr_subscr_put(vsub); + trans_free(trans); + return 0; + } + vlr_subscr_put(vsub); + return 0; + } + + /* Assign conn */ + trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_CC); + trans->dlci = 0x00; /* SAPI=0, not SACCH */ + vlr_subscr_put(vsub); + } else { + /* update the subscriber we deal with */ + log_set_context(LOG_CTX_VLR_SUBSCR, trans->vsub); + } + + if (trans->conn) + conn = trans->conn; + + /* if paging did not respond yet */ + if (!conn) { + DEBUGP(DCC, "(sub %s) " + "Received '%s' from MNCC in paging state\n", + vlr_subscr_msisdn_or_name(trans->vsub), + get_mncc_name(msg_type)); + mncc_set_cause(&rel, GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_NORM_CALL_CLEAR); + if (msg_type == MNCC_REL_REQ) + rc = mncc_recvmsg(net, trans, MNCC_REL_CNF, &rel); + else + rc = mncc_recvmsg(net, trans, MNCC_REL_IND, &rel); + trans->callref = 0; + trans_free(trans); + return rc; + } else { + DEBUGP(DCC, "(ti %02x sub %s) " + "Received '%s' from MNCC in state %d (%s)\n", + trans->transaction_id, + vlr_subscr_msisdn_or_name(trans->conn->vsub), + get_mncc_name(msg_type), trans->cc.state, + gsm48_cc_state_name(trans->cc.state)); + } + + /* Find function for current state and message */ + for (i = 0; i < DOWNSLLEN; i++) + if ((msg_type == downstatelist[i].type) + && ((1 << trans->cc.state) & downstatelist[i].states)) + break; + if (i == DOWNSLLEN) { + DEBUGP(DCC, "Message unhandled at this state.\n"); + return 0; + } + + rc = downstatelist[i].rout(trans, arg); + + return rc; +} + + +static struct datastate { + uint32_t states; + int type; + int (*rout) (struct gsm_trans *trans, struct msgb *msg); +} datastatelist[] = { + /* mobile originating call establishment */ + {SBIT(GSM_CSTATE_NULL), /* 5.2.1.2 */ + GSM48_MT_CC_SETUP, gsm48_cc_rx_setup}, + {SBIT(GSM_CSTATE_NULL), /* 5.2.1.2 */ + GSM48_MT_CC_EMERG_SETUP, gsm48_cc_rx_setup}, + {SBIT(GSM_CSTATE_CONNECT_IND), /* 5.2.1.2 */ + GSM48_MT_CC_CONNECT_ACK, gsm48_cc_rx_connect_ack}, + /* mobile terminating call establishment */ + {SBIT(GSM_CSTATE_CALL_PRESENT), /* 5.2.2.3.2 */ + GSM48_MT_CC_CALL_CONF, gsm48_cc_rx_call_conf}, + {SBIT(GSM_CSTATE_CALL_PRESENT) | SBIT(GSM_CSTATE_MO_TERM_CALL_CONF), /* ???? | 5.2.2.3.2 */ + GSM48_MT_CC_ALERTING, gsm48_cc_rx_alerting}, + {SBIT(GSM_CSTATE_CALL_PRESENT) | SBIT(GSM_CSTATE_MO_TERM_CALL_CONF) | SBIT(GSM_CSTATE_CALL_RECEIVED), /* (5.2.2.6) | 5.2.2.6 | 5.2.2.6 */ + GSM48_MT_CC_CONNECT, gsm48_cc_rx_connect}, + /* signalling during call */ + {ALL_STATES - SBIT(GSM_CSTATE_NULL), + GSM48_MT_CC_FACILITY, gsm48_cc_rx_facility}, + {SBIT(GSM_CSTATE_ACTIVE), + GSM48_MT_CC_NOTIFY, gsm48_cc_rx_notify}, + {ALL_STATES, + GSM48_MT_CC_START_DTMF, gsm48_cc_rx_start_dtmf}, + {ALL_STATES, + GSM48_MT_CC_STOP_DTMF, gsm48_cc_rx_stop_dtmf}, + {ALL_STATES, + GSM48_MT_CC_STATUS_ENQ, gsm48_cc_rx_status_enq}, + {SBIT(GSM_CSTATE_ACTIVE), + GSM48_MT_CC_HOLD, gsm48_cc_rx_hold}, + {SBIT(GSM_CSTATE_ACTIVE), + GSM48_MT_CC_RETR, gsm48_cc_rx_retrieve}, + {SBIT(GSM_CSTATE_ACTIVE), + GSM48_MT_CC_MODIFY, gsm48_cc_rx_modify}, + {SBIT(GSM_CSTATE_MO_TERM_MODIFY), + GSM48_MT_CC_MODIFY_COMPL, gsm48_cc_rx_modify_complete}, + {SBIT(GSM_CSTATE_MO_TERM_MODIFY), + GSM48_MT_CC_MODIFY_REJECT, gsm48_cc_rx_modify_reject}, + {SBIT(GSM_CSTATE_ACTIVE), + GSM48_MT_CC_USER_INFO, gsm48_cc_rx_userinfo}, + /* clearing */ + {ALL_STATES - SBIT(GSM_CSTATE_NULL) - SBIT(GSM_CSTATE_RELEASE_REQ), /* 5.4.3.2 */ + GSM48_MT_CC_DISCONNECT, gsm48_cc_rx_disconnect}, + {ALL_STATES - SBIT(GSM_CSTATE_NULL), /* 5.4.4.1.2.2 */ + GSM48_MT_CC_RELEASE, gsm48_cc_rx_release}, + {ALL_STATES, /* 5.4.3.4 */ + GSM48_MT_CC_RELEASE_COMPL, gsm48_cc_rx_release_compl}, +}; + +#define DATASLLEN \ + (sizeof(datastatelist) / sizeof(struct datastate)) + +int gsm0408_rcv_cc(struct gsm_subscriber_connection *conn, struct msgb *msg) +{ + struct gsm48_hdr *gh = msgb_l3(msg); + uint8_t msg_type = gsm48_hdr_msg_type(gh); + uint8_t transaction_id = gsm48_hdr_trans_id_flip_ti(gh); + struct gsm_trans *trans = NULL; + int i, rc = 0; + + if (msg_type & 0x80) { + DEBUGP(DCC, "MSG 0x%2x not defined for PD error\n", msg_type); + return -EINVAL; + } + + if (!conn->vsub) { + LOGP(DCC, LOGL_ERROR, "Invalid conn: no subscriber\n"); + return -EINVAL; + } + + /* Find transaction */ + trans = trans_find_by_id(conn, GSM48_PDISC_CC, transaction_id); + +#if BEFORE_MSCSPLIT + /* Re-enable this log output once we can obtain this information via + * A-interface, see OS#2391. */ + DEBUGP(DCC, "(bts %d trx %d ts %d ti %x sub %s) " + "Received '%s' from MS in state %d (%s)\n", + conn->bts->nr, conn->lchan->ts->trx->nr, conn->lchan->ts->nr, + transaction_id, vlr_subscr_msisdn_or_name(conn->vsub), + gsm48_cc_msg_name(msg_type), trans?(trans->cc.state):0, + gsm48_cc_state_name(trans?(trans->cc.state):0)); +#endif + + /* Create transaction */ + if (!trans) { + DEBUGP(DCC, "Unknown transaction ID %x, " + "creating new trans.\n", transaction_id); + /* Create transaction */ + trans = trans_alloc(conn->network, conn->vsub, + GSM48_PDISC_CC, + transaction_id, new_callref++); + if (!trans) { + DEBUGP(DCC, "No memory for trans.\n"); + rc = gsm48_tx_simple(conn, + GSM48_PDISC_CC | (transaction_id << 4), + GSM48_MT_CC_RELEASE_COMPL); + return -ENOMEM; + } + /* Assign transaction */ + trans->conn = msc_subscr_conn_get(conn, MSC_CONN_USE_TRANS_CC); + trans->dlci = OMSC_LINKID_CB(msg); /* DLCI as received from BSC */ + cm_service_request_concludes(conn, msg); + } + + /* find function for current state and message */ + for (i = 0; i < DATASLLEN; i++) + if ((msg_type == datastatelist[i].type) + && ((1 << trans->cc.state) & datastatelist[i].states)) + break; + if (i == DATASLLEN) { + DEBUGP(DCC, "Message unhandled at this state.\n"); + return 0; + } + + assert(trans->vsub); + + rc = datastatelist[i].rout(trans, msg); + + msc_subscr_conn_communicating(conn); + return rc; +} -- To view, visit https://gerrit.osmocom.org/9705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idb8dd7a8d9d8b4a28c492f12da3cc3305b695cca Gerrit-Change-Number: 9705 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: