aboutsummaryrefslogtreecommitdiffstats
path: root/configure.ac
AgeCommit message (Collapse)AuthorFilesLines
2020-01-03Bump version: 1.5.0.72-6e72-dirty → 1.6.01.6.0Pau Espin Pedrol1-5/+5
Change-Id: I315ba8c67fbb5bec520f1bc42aedd25d47e4ca95
2019-11-28MNCC v6: add optional SDP to the socket protocolNeels Hofmeyr1-0/+1
Add a char buffer of 1024 characters length as space for SDP to pass to / receive from MNCC. Actually support receiving MNCC without such an SDP tail. The main reason for this is to avoid the need to adjust the ttcn3 implementation of MNCC: it would stop working for older osmo-msc. Older or non-SIP MNCC peers could operate the previous MNCC protocol unchanged (save the protocol number bump) without having to implement SDP. The SDP part in the MNCC protocol will be used in upcoming patch I8c3b2de53ffae4ec3a66b9dabf308c290a2c999f. This patch must be merged at the same time as osmo-sip-connector patch Iaca9ed6611fc5ca8ca749bbbefc31f54bea5e925, so that both sides have a matching MNCC protocol version number. Change-Id: Ie16f0804c4d99760cd4a0c544d0889b6313eebb7
2019-11-28add sdp_msg API: SDP parsing/compositionNeels Hofmeyr1-0/+1
Rationale: in order to add full SDP to the MNCC protocol (upcoming patch I8c3b2de53ffae4ec3a66b9dabf308c290a2c999f), we need to parse and compose SDP messages. Obviously, libosmo-mgcp-client already contains similar code, but that is unfortunately heavily glued to the actual MGCP implementation. The simplest solution is to create this separate implementation, copy-pasting from the existing libosmo-mgcp-client code as is convenient. This API is added here to probe whether it works well. When it does, the intention is to "move it up" to osmo-mgw and overhaul the SDP parsing in our MGCP client and MGCP server APIs using this same API. Change-Id: If3ce23cd5bab15e2ab4c52ef3e4c75979dffe931
2019-08-08Fix dependency version requirementsPau Espin Pedrol1-9/+9
libosmocore 1.1.0 0e8df1c7e48bcae2285c7c138bd50f932049bd24 osmo_use_count() Fixes: 7c5346cd7005ad469702a2f74572b79de738fbbb libosmocore 1.2.0 cdac620579b5bf44970b5f4bb11734fdfdf5bf59 GSM23003_MSISDN_MAX_DIGITS Fixes: 8b0737fa71ea4b04cee8dc61c79a1f93779e66dc libosmo-sccp 1.1.0 21ff9ae4264de159784a59ce4421365007bde08d osmo_sccp_addr_ri_cmp() Fixes: c4628a3ad4d3c5f65782b152b771bf80357235d6 osmo-mgw 1.6.0 538d2c53d90074267e7a70a90c773baa03d6ec04 mgcp_client_endpoint_fsm.h Fixes: c4628a3ad4d3c5f65782b152b771bf80357235d6 libosmo-netif 0.6.0 needed by osmo-mgw 1.6.0 libsmpp34 1.14.0 required due to needed heap allocation function overrides from smpp34_heap.h Change-Id: I1cd2c7317933b416b74a412f10e4cad16ecd6e59
2019-07-22turn -Werror=null-dereference into a warningEric Wild1-1/+1
There is unfortunately no way to suppres this witha pragma, and gcc 9 uncovers quite a few new instaces with enabled LTO that can't/won't be fixed Related: OS#4123 Change-Id: I615bb5be3671022c6b821575a61f945b50e8f2a5
2019-06-03Introduce initial unit test for db_sms_* APIVadim Yanitskiy1-0/+1
Since OsmoMSC has built-in SMSC, it needs to store the messages somewhere. Currently we use libdbi and SQLite3 back-end for that. For a long time, the db_sms_* API remained uncovered by unit tests. This change aims to fix that, and does cover the following calls: - db_sms_store(), - db_sms_get(), - db_sms_get_next_unsent(), - db_sms_mark_delivered(), - db_sms_delete_sent_message_by_id(), - db_sms_delete_by_msisdn(), - db_sms_delete_oldest_expired_message(). Due to performance reasons, the test database is initialized in RAM using the magic filename ':memory:'. This is a feature of SQLite3 (and not libdbi), see: https://www.sqlite.org/inmemorydb.html Of course, this unit test helped to discover some problems: 1) Storing an SMS with empty TP-User-Data (TP-UDL=0) causes buffer overruns in both db_sms_store() and db_sms_get(). 2) TP-User-Data-Length is always being interpreted in octets, regardless of DCS (Data Coding Scheme). This results in storing garbage in the database if the default 7-bit encoding is used. Fortunately, the 'user_data' buffer in structure 'gsm_sms' is large emough, so we don't experience buffer overruns. 3) db_sms_delete_oldest_expired_message() doesn't work as expected. Instead of removing the *oldest* expired message, it tries to remove the *newest* one. The current test expectations do reflect these problems. All of them will be fixed in the follow-up patches. Change-Id: Id94ad35b6f78f839137db2e17010fbf9b40111a3
2019-05-08rename bscconfig.h to config.h, cleanupNeels Hofmeyr1-1/+1
Get rid of the legacy name bscconfig.h from osmo-nitb times. Remove the #include from some of the files that aren't actually using it. Instead of '#include "../../config.h"', use plain '#include "config.h"' because we're anyway passing $top_srcdir as -I during compilation. Change-Id: Id4f683be1f36f0630c83da54e02868aae847aeec
2019-05-08large refactoring: support inter-BSC and inter-MSC HandoverNeels Hofmeyr1-0/+1
3GPP TS 49.008 '4.3 Roles of MSC-A, MSC-I and MSC-T' defines distinct roles: - MSC-A is responsible for managing subscribers, - MSC-I is the gateway to the RAN. - MSC-T is a second transitory gateway to another RAN during Handover. After inter-MSC Handover, the MSC-I is handled by a remote MSC instance, while the original MSC-A retains the responsibility of subscriber management. MSC-T exists in this patch but is not yet used, since Handover is only prepared for, not yet implemented. Facilitate Inter-MSC and inter-BSC Handover by the same internal split of MSC roles. Compared to inter-MSC Handover, mere inter-BSC has the obvious simplifications: - all of MSC-A, MSC-I and MSC-T roles will be served by the same osmo-msc instance, - messages between MSC-A and MSC-{I,T} don't need to be routed via E-interface (GSUP), - no call routing between MSC-A and -I via MNCC necessary. This is the largest code bomb I have submitted, ever. Out of principle, I apologize to everyone trying to read this as a whole. Unfortunately, I see no sense in trying to split this patch into smaller bits. It would be a huge amount of work to introduce these changes in separate chunks, especially if each should in turn be useful and pass all test suites. So, unfortunately, we are stuck with this code bomb. The following are some details and rationale for this rather huge refactoring: * separate MSC subscriber management from ran_conn struct ran_conn is reduced from the pivotal subscriber management entity it has been so far to a mere storage for an SCCP connection ID and an MSC subscriber reference. The new pivotal subscriber management entity is struct msc_a -- struct msub lists the msc_a, msc_i, msc_t roles, the vast majority of code paths however use msc_a, since MSC-A is where all the interesting stuff happens. Before handover, msc_i is an FSM implementation that encodes to the local ran_conn. After inter-MSC Handover, msc_i is a compatible but different FSM implementation that instead forwards via/from GSUP. Same goes for the msc_a struct: if osmo-msc is the MSC-I "RAN proxy" for a remote MSC-A role, the msc_a->fi is an FSM implementation that merely forwards via/from GSUP. * New SCCP implementation for RAN access To be able to forward BSSAP and RANAP messages via the GSUP interface, the individual message layers need to be cleanly separated. The IuCS implementation used until now (iu_client from libosmo-ranap) did not provide this level of separation, and needed a complete rewrite. It was trivial to implement this in such a way that both BSSAP and RANAP can be handled by the same SCCP code, hence the new SCCP-RAN layer also replaces BSSAP handling. sccp_ran.h: struct sccp_ran_inst provides an abstract handler for incoming RAN connections. A set of callback functions provides implementation specific details. * RAN Abstraction (BSSAP vs. RANAP) The common SCCP implementation did set the theme for the remaining refactoring: make all other MSC code paths entirely RAN-implementation-agnostic. ran_infra.c provides data structures that list RAN implementation specifics, from logging to RAN de-/encoding to SCCP callbacks and timers. A ran_infra pointer hence allows complete abstraction of RAN implementations: - managing connected RAN peers (BSC, RNC) in ran_peer.c, - classifying and de-/encoding RAN PDUs, - recording connected LACs and cell IDs and sending out Paging requests to matching RAN peers. * RAN RESET now also for RANAP ran_peer.c absorbs the reset_fsm from a_reset.c; in consequence, RANAP also supports proper RESET semantics now. Hence osmo-hnbgw now also needs to provide proper RESET handling, which it so far duly ignores. (TODO) * RAN de-/encoding abstraction The RAN abstraction mentioned above serves not only to separate RANAP and BSSAP implementations transparently, but also to be able to optionally handle RAN on distinct levels. Before Handover, all RAN messages are handled by the MSC-A role. However, after an inter-MSC Handover, a standalone MSC-I will need to decode RAN PDUs, at least in order to manage Assignment of RTP streams between BSS/RNC and MNCC call forwarding. ran_msg.h provides a common API with abstraction for: - receiving events from RAN, i.e. passing RAN decode from the BSC/RNC and MS/UE: struct ran_dec_msg represents RAN messages decoded from either BSSMAP or RANAP; - sending RAN events: ran_enc_msg is the counterpart to compose RAN messages that should be encoded to either BSSMAP or RANAP and passed down to the BSC/RNC and MS/UE. The RAN-specific implementations are completely contained by ran_msg_a.c and ran_msg_iu.c. In particular, Assignment and Ciphering have so far been distinct code paths for BSSAP and RANAP, with switch(via_ran){...} statements all over the place. Using RAN_DEC_* and RAN_ENC_* abstractions, these are now completely unified. Note that SGs does not qualify for RAN abstraction: the SGs interface always remains with the MSC-A role, and SGs messages follow quite distinct semantics from the fairly similar GERAN and UTRAN. * MGW and RTP stream management So far, managing MGW endpoints via MGCP was tightly glued in-between GSM-04.08-CC on the one and MNCC on the other side. Prepare for switching RTP streams between different RAN peers by moving to object-oriented implementations: implement struct call_leg and struct rtp_stream with distinct FSMs each. For MGW communication, use the osmo_mgcpc_ep API that has originated from osmo-bsc and recently moved to libosmo-mgcp-client for this purpose. Instead of implementing a sequence of events with code duplication for the RAN and CN sides, the idea is to manage each RTP stream separately by firing and receiving events as soon as codecs and RTP ports are negotiated, and letting the individual FSMs take care of the MGW management "asynchronously". The caller provides event IDs and an FSM instance that should be notified of RTP stream setup progress. Hence it becomes possible to reconnect RTP streams from one GSM-04.08-CC to another (inter-BSC Handover) or between CC and MNCC RTP peers (inter-MSC Handover) without duplicating the MGCP code for each transition. The number of FSM implementations used for MGCP handling may seem a bit of an overkill. But in fact, the number of perspectives on RTP forwarding are far from trivial: - an MGW endpoint is an entity with N connections, and MGCP "sessions" for configuring them by talking to the MGW; - an RTP stream is a remote peer connected to one of the endpoint's connections, which is asynchronously notified of codec and RTP port choices; - a call leg is the higher level view on either an MT or MO side of a voice call, a combination of two RTP streams to forward between two remote peers. BSC MGW PBX CI CI [MGW-endpoint] [--rtp_stream--] [--rtp_stream--] [----------------call_leg----------------] * Use counts Introduce using the new osmo_use_count API added to libosmocore for this purpose. Each use token has a distinct name in the logging, which can be a globally constant name or ad-hoc, like the local __func__ string constant. Use in the new struct msc_a, as well as change vlr_subscr to the new osmo_use_count API. * FSM Timeouts Introduce using the new osmo_tdef API, which provides a common VTY implementation for all timer numbers, and FSM state transitions with the correct timeout. Originated in osmo-bsc, recently moved to libosmocore. Depends: Ife31e6798b4e728a23913179e346552a7dd338c0 (libosmocore) Ib9af67b100c4583342a2103669732dab2e577b04 (libosmocore) Id617265337f09dfb6ddfe111ef5e578cd3dc9f63 (libosmocore) Ie9e2add7bbfae651c04e230d62e37cebeb91b0f5 (libosmo-sccp) I26be5c4b06a680f25f19797407ab56a5a4880ddc (osmo-mgw) Ida0e59f9a1f2dd18efea0a51680a67b69f141efa (osmo-mgw) I9a3effd38e72841529df6c135c077116981dea36 (osmo-mgw) Change-Id: I27e4988e0371808b512c757d2b52ada1615067bd
2019-04-25configure.ac: drop useless SQLite3 dependencyVadim Yanitskiy1-5/+0
We don't use SQLite3 directly, we use libdbi and libdbdsqlite3. Change-Id: Ibf4eb53e60a2957eca99a2c8e613f75a8c43ac89
2019-04-15configure.ac: drop rudimentary check for -fvisibility=hiddenVadim Yanitskiy1-12/+0
This looks like a rudiment from OpenBSC, where we have: #define BSC_API __attribute__((visibility("default"))) However, we don't use this attribute in OsmoMSC. Change-Id: Ie2f18e9b47eca478f6e4702606068814546e34ce
2019-02-06configure.ac: Check for libsctpHarald Welte1-0/+11
Since we merged the SGs interface, we include <netinet/sctp.h>, which is provided by libsctp. Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806
2019-01-21Bump version: 1.2.0.199-45df98-dirty → 1.3.01.3.0Harald Welte1-10/+10
Change-Id: I59d032ad953438f12439ac3d6275ee78d0ebbb40
2018-11-27build manuals moved here from osmo-gsm-manuals.gitOliver Smith1-0/+43
Moved to doc/manuals/, with full commit history, in preceding merge commit. Now incorporate in the build system. Build with: $ autoreconf -fi $ ./configure --enable-manuals $ make Shared files from osmo-gsm-manuals.git are found automatically if - the repository is checked out in ../osmo-gsm-manuals; or - if it osmo-gsm-manuals was installed with "make install"; or - OSMO_GSM_MANUALS_DIR is set. Related: OS#3385 Change-Id: Ic3c5add3c87f0aadb1ffab668ce16be6d0805d33
2018-09-10Install systemd services with autotoolsPau Espin Pedrol1-0/+18
Change-Id: I3a87d5ad4cb43efdcfc25828144f825f4d3b1594
2018-08-05Remove local libgsupclient; Use libosmo-gsup-client from osmo-hlrHarald Welte1-1/+1
osmo-hlr has recently (as of Change-Id Iad227bb477d64da30dd6bfbbe1bd0c0a55be9474) a working shared library implementation of libosmo-gsup-client. We can remove the local implementation in osmo-msc and use the system-installed shared library instead. Change-Id: I6f542945403cf2e3ddac419186b09ec0e2d43b69
2018-06-27configure.ac: drop unused dependenciesVadim Yanitskiy1-12/+0
Change-Id: I82083c33b0448113c74b21ed6c51cda121bc9f79
2018-05-18remove redundant unconditional PKG_CHECK_MODULES for libsmppStefan Sperling1-1/+0
The configure script should only check for libsmpp with --enable-smpp. Also, disable the build of smpp_mirror with --disable-smpp. Change-Id: Ic4a8a5c970c04a6257ee4c8e3977e98c4ddfda13 Fixes: a55dda703fc5e367bd58b5f9f6986d62ffbbdb6c Related: If7e1af11cdac8587bb4d66fb4eacee4b79945359 Related: OS#3232
2018-05-03Bump version: 1.1.2.269-86f21-dirty → 1.2.01.2.0Pau Espin Pedrol1-13/+13
Change-Id: I79d1f009617b247b6c3322a7926fd565913b1e6c
2018-03-22remove empty libcommon-csNeels Hofmeyr1-1/+0
Change-Id: If6afda250986b12781ae579323985615621ed75c
2018-03-22rename libcommon to libgsupclientNeels Hofmeyr1-1/+1
All that is left in libcommon now are the GSUP and OAP client implementations. These are duplicated in osmo-sgsn.git and make sense to remain somewhat separate from libmsc. So now they get their own little lib. Change-Id: Ic71aa119c233b6a0ae169a5b2a53819903d2be82
2018-03-13configure: add --enable-werrorNeels Hofmeyr1-0/+21
Provide a sane means of adding the -Werror compiler flag. Currently, some of our jenkins.sh add -Werror by passing 'CFLAGS="-Werror"', but that actually *overwrites* all the other CFLAGS we might want to have set. Maintain these exceptions from -Werror: a) deprecation (allow upstream to mark deprecation without breaking builds); b) "#warning" pragmas (allow to remind ourselves of errors without breaking builds) As a last configure step before generating the output files, print the complete CFLAGS and CPPFLAGS by means of AC_MSG_RESULT. Change-Id: I0528dcb14bf79d0920905a718cc2edea1434c0e5
2017-12-27Migrate from OpenSSL to osmo_get_rand_id()Max1-1/+0
This avoids potential licensing incompatibility and makes integration of Debian packaging patches easier. Related: OS#1694 Change-Id: I71cd631704a4dc155c6c752fee2a42cd6e2fa336
2017-12-05Remove utils imported from openbsc, fix building remaining util smpp_mirrorAlexander Huemer1-0/+1
Related: OS#2522 Change-Id: If7e1af11cdac8587bb4d66fb4eacee4b79945359
2017-12-03Remove unneeded .py scriptsMax1-1/+0
The ipa.py has been moved to osmo-python-tests as osmo_ipa - use it for vty and ctrl tests instead of local copy. The soap.py and twisted_ipa.py are not MSC-specific: leftovers from repository split which are now available in osmo-python-tests as well. Change-Id: Ia3ab77846c9beae7eca32a81079a4a9bfa4dcc75
2017-11-29Remove obsolete ./configure optionMax1-5/+0
The '--enable-vty-tests' is just alias to '--enable-external-tests' anyway. Change-Id: I8ab3ac3d9becee6b4e989b4e71d34598ea012f47
2017-11-18add --enable-sanitize config optionNeels Hofmeyr1-0/+12
Change-Id: I6c0c91abc0d3fa737dbe3db1e6473358da64c2a5
2017-10-28Depend on both libosmo-sigtran-dev and libosmo-sccp-devHarald Welte1-0/+1
libmsc/a_iface.c and libmsc/a_iface_bssap.c still include osmocom/sccp/sccp_types.h to get access to enums defining SCCP cause values. Until that is resolved, we have to keep the build dependency to libosmo-sccp-dev Change-Id: I957dcb2bcce216d0fd81a58bfe869aca0e4624a8 Related: OS#2601
2017-10-28configure.ac: Depend on latest tagged/released libosmo-* versionsHarald Welte1-9/+9
This is the safe choice, as in absence of automatic testing we don't know if we actually still build against the [sometimes] ancient dependencies. Would be great to automatize this, but until we have that, better be safe. Change-Id: Idf5cad1dc17a5136d00c970c326cdf3b7ee18e3c
2017-10-16Remove pkg-config fileMax1-1/+0
It's an artefact of split which is unused anyway. Change-Id: I15c0b4457c108c7791b0f30b79660d9e6d09b269
2017-10-03remove further files and autotest/autoconf bits irrelevant to osmo-mscHarald Welte1-5/+0
Change-Id: I68e879e7474cbd3dd053f23bc4d5d22dc2748c5b
2017-09-08use separated libosmo-mgcp-client, apply rename to mgcp_client_*Neels Hofmeyr1-28/+1
After osmo-mgw changes I8e0b2d2a399b77086a36606f5e427271c6242df1 and I99f7faab637cfcc22ece64a1dbcbe590f2042187, apply linking of new libosmo-mgcp-client and renames to drop the "gw" from mgcp_client_*. Also rename the gsm_network.mgcpgw to mgw, to indicate that the MGCP client is used to contact the MGW (Media Gateway). Depends: I8e0b2d2a399b77086a36606f5e427271c6242df1 (osmo-mgw) I99f7faab637cfcc22ece64a1dbcbe590f2042187 (osmo-mgw) Change-Id: I093ad02ca0e532f659447c785e09678b3e6f220d
2017-09-06rename include/openbsc to include/osmocom/mscNeels Hofmeyr1-1/+2
Change-Id: I1f96a1285bbd1b4607614856bca935d5c26e2da9
2017-09-06rename openbsc.pc to osmo-msc.pcNeels Hofmeyr1-1/+1
Change-Id: Ibe73012cb2a27d886b5faf931a62d5efbddd8120
2017-09-06configure.ac: fix to "AC_INIT[osmo-msc]"Neels Hofmeyr1-1/+1
Change-Id: I3c0dea06e341ccd944448b133381a390fc500c32
2017-08-29build: check for -lgsmNeels Hofmeyr1-11/+27
If libosmo-legacy-mgcp is built with --enable-mgcp-transcoding, we need to link -lgsm here as well. This autodetects whether -lgsm is necessary. Todo: how about --with-g729? Todo: osmo-msc is only using the mgcp client and should not actually need transcoding nor -lgsm. Change-Id: Iab55a089ae36017b79e7cbc3cac45ef9fd85dd43
2017-08-29split off osmo-msc: remove files, apply build, renameNeels Hofmeyr1-61/+0
Change-Id: Icf025e5ea8d180613b3114282951c9afa67af9a7
2017-08-29move to osmo-mgw.git: osmo-bsc_mgcp and libmgcp as libosmo-legacy-mgcpNeels Hofmeyr1-3/+1
Rewire build and includes to libosmo-legacy-mgcp. Drop osmo-bsc_mgcp and related python tests, now found in osmo-mgw.git. libosmo-legacy-mgcp is installed from osmo-mgw, hence add the dependency to jenkins.sh (so far using the pre_release branch). Change-Id: Ic99d681759edce11564da62500c2aac5cf5fffe2
2017-08-29move libiu to osmo-iuh/libosmo-ranapNeels Hofmeyr1-1/+0
Remove libiu here, use the functions from libosmo-ranap instead, by applying the ranap_ / RANAP_ prefix. Corresponding change-id in osmo-iuh.git is I6a3f7ad15be03fb94689b4af6ccfa828c25f45c0 To be able to run the msc_vlr tests for RAN_UTRAN_IU without Iu client headers available, add iu_dummy.h, containing mere function signatures that match iu_dummy.c and a mostly empty struct ranap_ue_conn_ctx. Make sure we can build with and without --enable-iu: include osmo-iuh headers only with --enable-iu. Change-Id: Ib8c4fcdb4766c5e575618b95ce16dce51063206b
2017-08-29Implement AoIP, port to M3UA SIGTRAN (large addition and refactoring)Philipp Maier1-1/+1
This was originally a long series of commits converging to the final result seen in this patch. It does not make much sense to review the smaller steps' trial and error, we need to review this entire change as a whole. Implement AoIP in osmo-msc and osmo-bsc. Change over to the new libosmo-sigtran API with support for proper SCCP/M3UA/SCTP stacking, as mandated by 3GPP specifications for the IuCS and IuPS interfaces. From here on, a separate osmo-stp process is required for SCCP routing between OsmoBSC / OsmoHNBGW <-> OsmoMSC / OsmoSGSN jenkins.sh: build from libosmo-sccp and osmo-iuh master branches now for new M3UA SIGTRAN. Patch-by: pmaier, nhofmeyr, laforge Change-Id: I5ae4e05ee7c57cad341ea5e86af37c1f6b0ffa77
2017-08-28Use release helper from libosmocoreMax1-0/+4
See https://osmocom.org/projects/cellular-infrastructure/wiki/Make_a_new_release for details. Change-Id: I869395d5c9ab5ec1a487aff15418d1517f47e831 Related: OS#1861
2017-08-27increase libsmpp34 version requirement to 1.12Harald Welte1-1/+1
Only 1.12 contains some of the #defines that we're using with recent commits. Change-Id: I3743b10a1a5d2f1d42a61204273c1d00dc22b600
2017-08-08Implement IuCS (large refactoring and addition)Neels Hofmeyr1-2/+2
osmo-nitb becomes osmo-msc add DIUCS debug log constant add iucs.[hc] add msc vty, remove nitb vty add libiudummy, to avoid linking Iu deps in tests Use new msc_tx_dtap() instead of gsm0808_submit_dtap() libmgcp: add mgcpgw client API bridge calls via mgcpgw Enable MSC specific CTRL commands, bsc_base_ctrl_cmds_install() still needs to be split up. Change-Id: I5b5b6a9678b458affa86800afb1ec726e66eed88
2017-07-23cosmetic: make osmo-python-tests dependency more accurateNeels Hofmeyr1-1/+1
Change-Id: I4f84a13b7fa6ec4173bdc155e6114d4d7328b619
2017-07-23Add msc_vlr test suite for MSC+VLR end-to-end testsNeels Hofmeyr1-0/+1
Change-Id: If0e7cf20b9d1eac12126955b2f5f02bd8f1192cd
2017-07-23Use libvlr in libmsc (large refactoring)Harald Welte1-2/+1
Original libvlr code is by Harald Welte <laforge@gnumonks.org>, polished and tweaked by Neels Hofmeyr <nhofmeyr@sysmocom.de>. This is a long series of trial-and-error development collapsed in one patch. This may be split in smaller commits if reviewers prefer that. If we can keep it as one, we have saved ourselves the additional separation work. SMS: The SQL based lookup of SMS for attached subscribers no longer works since the SQL database no longer has the subscriber data. Replace with a round-robin on the SMS recipient MSISDNs paired with a VLR subscriber RAM lookup whether the subscriber is currently attached. If there are many SMS for not-attached subscribers in the SMS database, this will become inefficient: a DB hit returns a pending SMS, the RAM lookup will reveal that the subscriber is not attached, after which the DB is hit for the next SMS. It would become more efficient e.g. by having an MSISDN based hash list for the VLR subscribers and by marking non-attached SMS recipients in the SMS database so that they can be excluded with the SQL query already. There is a sanity limit to do at most 100 db hits per attempt to find a pending SMS. So if there are more than 100 stored SMS waiting for their recipients to actually attach to the MSC, it may take more than one SMS queue trigger to deliver SMS for subscribers that are actually attached. This is not very beautiful, but is merely intended to carry us over to a time when we have a proper separate SMSC entity. Introduce gsm_subscriber_connection ref-counting in libmsc. Remove/Disable VTY and CTRL commands to create subscribers, which is now a task of the OsmoHLR. Adjust the python tests accordingly. Remove VTY cmd subscriber-keep-in-ram. Use OSMO_GSUP_PORT = 4222 instead of 2222. See I4222e21686c823985be8ff1f16b1182be8ad6175. So far use the LAC from conn->bts, will be replaced by conn->lac in Id3705236350d5f69e447046b0a764bbabc3d493c. Related: OS#1592 OS#1974 Change-Id: I639544a6cdda77a3aafc4e3446a55393f60e4050
2017-07-21Add libvlr implementationHarald Welte1-0/+1
Original libvlr code is by Harald Welte <laforge@gnumonks.org>, polished and tweaked by Neels Hofmeyr <nhofmeyr@sysmocom.de>. This is a long series of trial-and-error development collapsed in one patch. This may be split in smaller commits if reviewers prefer that. If we can keep it as one, we have saved ourselves the additional separation work. Related: OS#1592 Change-Id: Ie303c98f8c18e40c87c1b68474b35de332033622
2017-07-21fix make distcheck with python testsNeels Hofmeyr1-0/+1
- bscs.config needed by the vty tests was not picked up as a dist file, because its suffix is not 'cfg'. Rename to *.cfg. Apply this rename in vty_test_runner.py and osmo-bsc_nat.cfg. - Remove restart counters after external tests, otherwise distcheck complains about uncleaned files. - Add contrib/ipa.py to EXTRA_DIST, hence add a Makefile.am to contrib/. Otherwise the python tests cannot find that dependency. Change-Id: I42b55cb1125099afc3a8e3f87c0e398426b2e2a9
2017-07-12move openbsc/* to repos rootNeels Hofmeyr1-0/+266
This is the first step in creating this repository from the legacy openbsc.git. Like all other Osmocom repositories, keep the autoconf and automake files in the repository root. openbsc.git has been the sole exception, which ends now. Change-Id: I9c6f2a448d9cb1cc088cf1cf6918b69d7e69b4e7