aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-08-27jenkins.sh: Proper error message if local environment isn't set upHarald Welte1-0/+7
Change-Id: I79c2302365824d9c8783dadfa378c8eaa07e2ee7
2017-08-27smpp: fix return causeBenoit Bolsee4-12/+17
Return cause 38 when default SMPP route is unavailable. This is better than cause 1. Change-Id: If3241d50a78fa611981e55fef6ae4c72b0a2a167
2017-08-27smpp_smsc.c: Log on sending deliver_sm messagePau Espin Pedrol1-0/+3
Change-Id: Ie16294df6d5bc0065f8d2b49320ead61f535f271
2017-08-26Use value string check from osmo-ciNeels Hofmeyr1-1/+1
Necessary since libosmocore I513835be2d931d0a931cdfc996f361a451bc1a15 removes the script from libosmocore/contrib. Change-Id: I02d7e1c0151c687fd9341d21a09ca15cbf5a1938
2017-08-24examples/sgsn: Use osmo-hlr with auth-policy remote by defaultDaniel Willmann3-1/+31
For the vty tests, add osmo-sgsn-accept-all.cfg (that does not need an HLR) and use in vty_test_runner.py, otherwise the 'show sgsn' command will reply that it could not connect to the HLR, failing the vty test which expects empty. Change-Id: Ie3b2013198d3e2b780a4e31c36b89b58129dcacd
2017-08-23contrib: Change systemd requirements so the services connect properlyDaniel Willmann2-2/+6
Change-Id: Ib1b3c640ddd81927a60ee307c4b0cb90fd83eebe
2017-08-23examples: Change IP address of config filesDaniel Willmann3-5/+5
This helps in providing 3G software packages for the sysmoNITB hardware, which uses 10.23.24.1 for SGSN and 10.23.24.2 for GGSN. However, in order to not break the python tests, the osmo-sgsn.cfg example still uses 127.0.0.1 as local address. Change the GGSN address to 127.0.0.2, because SGSN and GGSN cannot co-exist on the same address (the GTP port number is fixed by spec: no IE to communicate a differing port, so it has to be the standard GTP port for both). Change-Id: Ie3a25f6771ed6e620cb2b315638c622a9a24e530
2017-08-23contrib: Add osmo-msc service fileDaniel Willmann1-0/+13
Change-Id: Ifdaf4107167c84af8a616f4ee792d5a34495564b
2017-08-2304.08: log protocol discriminators and message types by nameNeels Hofmeyr11-907/+923
On incoming 04.08 messages, we log only the protocol discriminator in decimal. Enhance: log pdisc and message type in hex, and also log the protocol and message type as human readable string. Also adjust the msc_vlr tests' log statements for wrapped rx/tx functions of dtap from/to the MS. Adjust the expected output of msc_vlr_tests. Change-Id: Ida205d217e304337d816b14fd15e2ee435e7397d Depends: libosmocore change-id I0fca8e95ed5c2148b1a7440eff3fc9c7583898df
2017-08-23mgcp: hack RAB success from nano3G: patch first RTP payloadNeels Hofmeyr2-0/+14
The ip.access nano3G needs the first RTP payload's first two bytes to read hex 'e400', or it will reject the RAB assignment. Add flag patched_first_rtp_payload to mgcp_rtp_state to detect the first RTP payload on a stream, and overwrite its first bytes with e400. This should probably be configurable, but seems to not harm other femto cells (as long as we patch only the first RTP payload in each stream). Only do this when sending to the BTS side. Related: OS#2459 Change-Id: I5eff04dcb0936e21690e427ae5e49228cd459bd4
2017-08-22fix msc_vlr tests after libosmocore uses localtime for SMSNeels Hofmeyr1-2/+2
libosmocore change-id I4efdb1eaae43aced33961b64d4f14b0040321c10 changes the gsm340_gen_scts() from gmtime to localtime, meaning that by feeding a mere zero as timestamp, we get different results depending on the local machine's timezone setting. Instead of calling gsm340_gen_scts() with zero, simply write a bunch of bytes as time so that the tests get identical SMS bytes every time. Change-Id: I8a50e8963dce80609749571b61fc6ffe1c54660c
2017-08-08Implement IuCS (large refactoring and addition)Neels Hofmeyr97-3034/+4717
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-08-08sgsn init: pass sgsn_config pointer to sgsn_vty_init(), not sgsn_parse_configNeels Hofmeyr3-7/+10
In an upcoming commit, sgsn_vty_init() will require access to the global sgsn config struct to initialize a generic VTY command with the proper config destination address, see Change-Id I5b5b6a9678b458affa86800afb1ec726e66eed88. Change-Id: Ie6b6e5422987586531a898e0c5b867623dbecb0f
2017-08-08mscsplit: various preparations to separate MSC from BSCNeels Hofmeyr39-1072/+471
Disable large parts of the code that depend on BSC presence. The code sections disabled by #if BEFORE_MSCSPLIT shall be modified or dropped in the course of adding the A-interface. Don't set msg->lchan nor msg->dst. Don't use lchan in libmsc. Decouple lac from bts. Prepare entry/exit point for MSC -> BSC and MSC -> RNC communication: Add msc_ifaces.[hc], a_iface.c, with a general msc_tx_dtap() to redirect to different interfaces depending on the actual subscriber connection. While iu_tx() is going to be functional fairly soon, the a_tx() is going to be just a dummy for some time (see comment). Add Iu specific fields in gsm_subscriber_connection: the UE connection pointer and an indicator for the Integrity Protection status on Iu (to be fully implemented in later commits). Add lac member to gsm_subscriber_connection, to allow decoupling from bts->location_area_code. The conn->lac will actually be set in iu.c in an upcoming commit ("add iucs.[hc]"). move to libcommon-cs: gsm48_extract_mi(), gsm48_paging_extract_mi(). libmsc: duplicate gsm0808 / gsm48 functions (towards BSC). In osmo-nitb, libmsc would directly call the functions on the BSC level, not always via the bsc_api. When separating libmsc from libbsc, some functions are missing from the linkage. Hence duplicate these functions to libmsc, add an msc_ prefix for clarity, also add a _tx to gsm0808_cipher_mode(): * add msc_gsm0808_tx_cipher_mode() (dummy/stub) * add msc_gsm48_tx_mm_serv_ack() * add msc_gsm48_tx_mm_serv_rej() Call these from libmsc instead of * gsm0808_cipher_mode() * gsm48_tx_mm_serv_ack() * gsm48_tx_mm_serv_rej() Also add a comment related to msc_gsm0808_tx_cipher_mode() in two places. Remove internal RTP streaming code; OsmoNITB supported that, but for OsmoMSC, this will be done with an external MGCP gateway. Remove LCHAN_MODIFY from internal MNCC state machine. Temporarily disable all paging to be able to link libmsc without libbsc. Skip the paging part of channel_test because the paging is now disabled. Employ fake paging shims in order for msc_vlr_tests to still work. msc_compl_l3(): publish in .h, tweak return value. Use new libmsc enum values for return val, to avoid dependency on libbsc headers. Make callable from other scopes: publish in osmo_msc.h and remove 'static' in osmo_msc.c add gsm_encr to subscr_conn move subscr_request to gsm_subscriber.h subscr_request_channel() -> subscr_request_conn() move to libmsc: osmo_stats_vty_add_cmds() gsm_04_08: remove apply_codec_restrictions() gsm0408_test: use NULL for root ctx move to libbsc: gsm_bts_neighbor() move to libbsc: lchan_next_meas_rep() move vty config for t3212 to network level (periodic lu) remove unneccessary linking from some tests remove handle_abisip_signal() abis_rsl.c: don't use libvlr from libbsc gsm_subscriber_connection: put the LAC here, so that it is available without accessing conn->bts. In bsc_api.c, place this lac in conn for the sake of transition: Iu and A will use this new field to pass the LAC around, but in a completely separate OsmoBSC this is not actually needed. It can be removed again from osmo-bsc.git when the time has come. Siemens MRPCI: completely drop sending the MRPCI messages for now, they shall be added in osmo-bsc once the A-Interface code has settled. See OS#2389. Related: OS#1845 OS#2257 OS#2389 Change-Id: Id3705236350d5f69e447046b0a764bbabc3d493c
2017-08-08update .gitreview to new repo urlAlexander Couzens1-1/+1
Leftover from split out of openbsc Change-Id: I684eedfdeb52a9b018d3798961b29b9e31526cd1
2017-08-07vlr: LU FSM: enable Retrieve_IMEISV_If_RequiredNeels Hofmeyr14-92/+104
Change-Id: I121b95ad6d5ecb7603815eece2b43008de487a8a
2017-08-07vlr: place comments on if (0) casesNeels Hofmeyr2-1/+8
Change-Id: I56c1e61dedeac01a4e24452feee6616782783d8f
2017-07-23SGSN: Don't indicate GERAN in Iu mode PDP CTX ACT REQ to GGSNHarald Welte1-10/+20
Change-Id: Ifd9ff4342de342475609bad0257a23c50290e23b
2017-07-23IuPS: explicitly check RAN type; move commentNeels Hofmeyr1-1/+3
Change-Id: I054d72590dfb2012f6f8506d3a5f8fd2953194e1
2017-07-23IuPS: don't require an MM context for Iu ReleaseNeels Hofmeyr1-5/+13
Change-Id: I8b4d08b3ee8add1f1d54efb13985eabe0c9d31f3
2017-07-23SI3: indicate R99+ MSC to GSM MS to enable UMTS AKANeels Hofmeyr1-0/+3
Change-Id: I796e1f4281628061f4522c43c549de9e751bc045
2017-07-23cosmetic: make osmo-python-tests dependency more accurateNeels Hofmeyr1-1/+1
Change-Id: I4f84a13b7fa6ec4173bdc155e6114d4d7328b619
2017-07-23osmo-nitb: change default db name to sms.dbNeels Hofmeyr2-2/+2
libvlr now delegates subscriber management to osmo-hlr, so the database no longer represents a HLR. It basically only stores SMS, so reflect that fact in the default database name. Change-Id: I3289d68d3eb63aff940b48a25b584d5e83cd0197
2017-07-23Add msc_vlr test suite for MSC+VLR end-to-end testsNeels Hofmeyr34-0/+14785
Change-Id: If0e7cf20b9d1eac12126955b2f5f02bd8f1192cd
2017-07-23Use libvlr in libmsc (large refactoring)Harald Welte74-4223/+2181
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 Welte19-10/+4734
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-21jenkins: pass proper configure flags to make distcheckNeels Hofmeyr1-1/+3
Enable various components according to the build matrix during make distcheck. Add python tests, osmo-bsc, nat, ... Change-Id: Ic724cf61d44409337414dc58c8795896b4b97a8a
2017-07-21fix make distcheck with python testsNeels Hofmeyr7-3/+6
- 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-13logging: auth request: use hexdump without spaces for RAND, AUTNNeels Hofmeyr1-2/+2
Change-Id: Ie16bb2c01e770914f411bfb34b523c56ea9fab81
2017-07-13gsup_client: allow passing a unit id to identify with HLRNeels Hofmeyr4-7/+21
Before, each GSUP client would contact the HLR with an identical unit id, i.e. "SGSN-00-00-00-00-00-00", with the result that some messages were sucked off by the wrong client. Pass explicit unit name from each gsup client user, so that OsmoMSC is "MSC" and OsmoSGSN is "SGSN". Hence the HLR can properly route the messages. Todo: also set some values instead of the zeros. Unrelated cosmetic change while editing the arguments: gsup_client_create()'s definition's oap client config arg name mismatched the one used in the declaration. Use oapc_config in both. Change-Id: I0a60681ab4a4d73e26fe8f0637447db4b6fe6eb2
2017-07-13GPRS/IuPS: remove all 3G authentication dev hacksNeels Hofmeyr2-44/+2
UMTS auth works now with the external OsmoHLR. Change-Id: Ie42945bb687b077fd0ee430c2711d19782151610
2017-07-12git-version-gen: look for .git in ./, not ../Neels Hofmeyr1-1/+1
Change-Id: Ic71cfb8dde0a43325b50c75aae1e6ef3c3008501
2017-07-12join openbsc/.gitignore with .gitignoreNeels Hofmeyr2-103/+103
Change-Id: Ib2120592749e85a4d13f6668e198857e3bddcf1e
2017-07-12jenkins: apply rename to osmo-msc in log markerNeels Hofmeyr1-1/+1
Change-Id: I8ca9a1a8bdb5b9615df5f19f0c1017cb9383f6ee
2017-07-12move openbsc/* to repos rootNeels Hofmeyr446-1/+0
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
2017-07-12jenkins: fix build of --enable-iu: use osmo-iuh tag 'old_sua'Neels Hofmeyr1-1/+2
We are building with libosmo-sccp tag 'old_sua' until the new sigtran has been applied. Since osmo-iuh commit 0f88c110093935305143987638e46dc6db304a3e "migrate osmo-hnbgw to libosmo-sigtran's SCCP/M3UA" osmo-iuh requires libosmo-sccp master. A similar 'old_sua' tag is in place in osmo-iuh.git, to match libosmo-sccp 'old_sua'. Do that to fix the jenkins build of --enable-iu. Change-Id: I70f731db0b74ed48ae6dd713ed4c3247222ef0de
2017-06-22Enable optional static builds1.0.1Max3-3/+1
* use LT_INIT instead of AC_PROG_RANLIB * remove redundant libbsc entries The default (for both manual and .deb builds) is to use shared build (as before) - the static build is entirely optional. Based on work by Sergey Kostanbaev <sergey.kostanbaev@gmail.com> and Alexander Chemeris <Alexander.Chemeris@gmail.com>. Change-Id: Ibcd1da98302413182c85e25c4cb7d69d9e38c35a
2017-06-22Fix BTS features length checkMax1-4/+4
While fixing potentially incorrect memory access, the check for maximum number of supported BTS features was incorrectly adjusted instead of feature vectore length check next to it. Fix this by adjusting checks properly and adding comments to avoid future confusion. The error was introduced in a60bb3dd28ce9e3720f8ee1b262893f3e233e2e6. Change-Id: I06d2498d730624d5da535f6add6fa98d004714ae
2017-06-18Add vty command "radio-link-timeout infinite" for uplink rx testingHarald Welte6-23/+79
When we are performing Rx sensitivity testing on a BTS, we want to deactivate the connection failure criterion / radio link timeout, i.e. no matter how many SACCH frames in uplink are failed to decode, the BTS should never close the channel. OsmoBTS Change-Id I736f21f6528db5c16fa80cdb905af20673797be5 covers a way how this behavior can be requested from the BTS via an OML attribute. This patch adds support to the BSC to actually set that attribute. Do not use this in production networks, as the BTS will keep open radio channels indefinitely even if the phone is gone and no longer transmitting anything. This is a pure testing feature. Change-Id: I6cb94e0f024934f7baeeb728ca9ed3042fbf16d2
2017-06-15bsc_init: Forget which SIs are valid for the trxMax3-7/+13
Previously the SI generation lead to setting the BCCH SIs for all TRX in a multi-trx setup. This is because we create the SIs globally but si_valid appears to be limited to the 'current' trx. Warn if we attempt to set SIs for the BCCH on a trx that does not have a BCCH. Change-Id: Ie0e288252a2e7709c4dae16b96a0b1512278847f Tweaked-by: Max <msuraev@sysmocom.de>
2017-06-15Update SI data structures and generationMax9-165/+354
To support segmented SI2quater as per 3GPP TS 44.018 we'll have to support multiple SI messages (up to 16 for SI2q) for a given type in contrast to existing 1:1 mapping: * expand storage space to hold up to 16 SI messages (spec limit) * add assertions for budget calculations * generate multiple SI2q messages * adjust SI2q-related tests * use precise check for number of SIq messages instead of approximate estimation Change-Id: Ic516ec9f0b821557d9461ae9f1c0afdd786f3b05 Related: OS#1660
2017-06-15Move SI-related definesMax5-10/+11
* move SI2quater related defines to shared header * add define from OsmoBTS which checks for presence of a given SI message in gsm_bts struct. Rename it to avoid conflicts with OsmoBTS code and to match naming conventions of similar macros. Change-Id: I11432c93c772d1ead6d45a7bb0f1d13d492c82f1 Related: OS#1660
2017-06-12OML: fix potential OOB memory accessMax1-2/+2
Use sizeof target BTS feature storage to make sure we always fit into pre-allocated memory. Also use it for log check. Change-Id: Ib107daa6e8b9bc397a10756071849f8ff82455d5 Fixes: CID 170581
2017-06-09Request and parse BTS feature list via OMLMax1-0/+40
Request features supported by BTS when getting attributes over OML. Change-Id: Ic35b2865998bca3c2c0cb4b77e4e73d12e08bd7e Related: OS#1614
2017-06-09Get TRX attributesMax4-37/+77
Request per-TRX attributes in addition to BTS attributes. Change-Id: I2b61131b9930afd03357c0b66947ee856d58cc46 Related: OS#1614
2017-06-09don't re-implement osmo_talloc_replace_string()Harald Welte11-51/+42
osmo_talloc_replace_string() was introducd into libosmocore in 2014, see commit f3c7e85d05f7b2b7bf093162b776f71b2bc6420d There's no reason for us to re-implement this as bsc_replace_string here. Change-Id: I6d2fcaabbc74730f6f491a2b2d5c784ccafc6602
2017-05-31Add remote BTS feature storage and helpersMax3-0/+39
In addition to compile-time defined BTS model features we also need run-time BTS features reported by BTS via OML. This should be shared by BSC and BTS. To accommodate for this, add following: * features bitvec to gsm_bts struct * features descriptions * comments to avoid confusion between 2 feature sets * helper functions to set/query particular feature * upper boundary on number of supported features and assertion for it Change-Id: I02bd317097ba66585c50ebd4e8fc348f6dc3dad9 Related: OS#1614
2017-05-31Adjust BTS model feature checkMax3-9/+9
Rename gsm_bts_has_feature() -> gsm_btsmodel_has_feature() and adjust type signature to match gsm_btsmodel_set_feature() function and avoid confusion with upcoming functions to check/set BTS features reported over OML. Change-Id: I97abdedbef568e0c2fbd37c110f7d658cf20e100 Related: OS#1614
2017-05-29libbsc: Create pcu-socket only as specified in config fileHarald Welte4-16/+27
Since commit b4999b60d48bcbb5aa575973d068e07ab672e095 we created PCU sockets at hard-coded paths in the filesystem by default for all BTSs. This is inflexible and prevents the use of multiple BSC instances on a single filesystem, or the placement of the sockets in a more secure location than /tmp. The new approach with this patch is that * no PCU sockets are created by default * only for those BTSs where a 'pcu-socket' is configured via VTY, the socket will actually be created Change-Id: Ie9079470584777dcc31f85f9bf0808f479156ccb Closes: OS#2293
2017-05-28bsc_vty: Add command to manually issue IPAC MDCXHarald Welte1-1/+31
Using this command, one can modify the RTP stream associated with a given logical channel and (re)direct it to a specified IP:Port. Change-Id: I63e03b932038a4e2f6d51c5541b52e4a42df27bf