AgeCommit message (Collapse)AuthorFilesLines
2017-11-24handover: Implement proper handover procedure handling at any stage of the callusers/kluchnikov/wip-handoverIvan Kluchnikov4-1/+92
Change-Id: Ia7e95e5e0c8c1c4218dab52a4020912bd3d327f6
2017-11-24transaction: Add new function trans_find_by_lchanIvan Kluchnikov3-12/+22
Change-Id: I37100a925cb89b850684e08bf1e97550d90f3eee
2017-11-24Move ho_detect to gsm_04_08 and move audio switch to proper placeIvan Kluchnikov2-99/+99
Change-Id: I36e9ba7a5ee94f879c9d89605a316ca264bbe2ac
2017-11-11osmo-bsc-sccplite: Implement incoming RESET procedureHarald Welte3-1/+35
In osmo-bsc-sccplite we so far didn't implement the inbound RESET procedure. We instead ignored any RESET message from the MSC. This commit adds support for RESET: We will destrpy any SCCP connections and acknowledge the RESET to the MSC. As osmo-msc is requiring the BSC to handle an inbound RESET procedure, this commit allows osmo-msc to properly initialize the A interface towards osmo-bsc-sccplite via a translating/routing osmo-stp. While we don't anticipate any new deployments of osmo-bsc-sccplite, making it interoperate with osmo-msc enables us to do more testing of osmo-bsc-sccplite. Change-Id: Iceb8278deb36d6103662a704f489ba0d685e04d3
2017-11-11osmo-bsc: Print NOTICE message on unimplemented BSSMAP UDTHarald Welte1-0/+4
When we receive unimplemented/unhandled message types, we shouldn't simply silently discard them, but print a log message for the benefit of the user. Change-Id: I8ecb1d2134f9c6a96f29e145fa0430880e971168
2017-11-08vty: skip installing cmds now always installed by defaultNeels Hofmeyr0-0/+0
vty_install_default() and install_default() will soon be deprecated. Depends: I5021c64a787b63314e0f2f1cba0b8fc7bff4f09b Change-Id: I4951982fc78ae167d8e16a672d7af44d703721a9
2017-11-01vty: skip installing cmds now always installed by defaultNeels Hofmeyr9-18/+0
vty_install_default() and install_default() will soon be deprecated. Depends: I5021c64a787b63314e0f2f1cba0b8fc7bff4f09b Change-Id: I4951982fc78ae167d8e16a672d7af44d703721a9
2017-10-31debian/rules: show testsuite.log when tests are failingNeels Hofmeyr1-0/+3
Change-Id: I30151897d621a1428095006e1f0e8a47059de4cd
2017-10-28Tag/Release Version Welte1-0/+955
This marks the first tagged source code revision after the repository split and subsequent removal of GPRS related code. Change-Id: I5d19269983c9281bf36a7279151891902eff0013
2017-10-27jenkins: use before and after buildNeels Hofmeyr1-0/+4
See osmo-ci change I2409b2928b4d7ebbd6c005097d4ad7337307dd93 for rationale. Depends: I2409b2928b4d7ebbd6c005097d4ad7337307dd93 Change-Id: Ibafac7c8a48f46237835e91c80e72543c6841d08
2017-10-26rename osmo-bsc to osmo-bsc-sccpliteHarald Welte16-28/+33
This is to avoid naming conflicts with the new osmo-bsc, which resides in its own git repository (osmo-bsc.git) and which uses libosmo-sigtran and implements (primarily) 3GPP AoIP. Change-Id: If10d1599b62d010726336134091a4e855c380d93
2017-10-26remove sgsn, gbproxy and gtphub from openbsc.gitHarald Welte124-48826/+2
The GPRS related programs osmo-sgsn, osmo-gtphub and osmo-gbproxy have been split off into the separate osmo-sgsn repository, which can be found at git:// This is technically unrelated but conceptually part of the larger NITB-split activities. I did a brief log of all changes in src/gprs and couldn't find any commits that we might have applied here but which are missing from osmo-sgsn.git. Change-Id: If60e28b23f5cfb2c4eb354951363a2bb63f3e0de
2017-10-26osmo-bsc: Initialize logging before initializing rate_ctrHarald Welte1-3/+3
The library code for rate counter initialization, which is called from the descendants of bsc_network_alloc() might already want to log something (particularly after Change-Id Ifc6ac824f5dae9a848bb4a5d067c64a69eb40b56 in libosmocore), so the logging framework must be initialized before. Change-Id: I1e893c97e023e63489fe8c46539b5e507d3cec8f
2017-10-26nanobts_omlattra_test: Initialize logging before executing testsHarald Welte1-0/+3
... the library code we call could want to log something, after all. Port of osmo-bsc Change-Id Ic01e9bfb63d7b6def9432103e744c23c90f0f6b9 Change-Id: Ib4be9541771e95ca4e051b778fc3958202aab9ab
2017-10-26Fix nanobts_omlattr unit testHarald Welte1-0/+1
The test clearly fails unless bts->network is set correctly. Not sure why this hasn't shown up before? Port of osmo-bsc Change-Id I47786ed06ff610213d7a0b56d0ebf1c537cd7568 Change-Id: Id1cd4ce8f1e03b9715e1223414918bc69499e13d
2017-10-23Make TRX rf locking more visibleMax4-8/+12
* log administrative state transitions * log what's caused it * while at it, mark boolean variable as such Cherry-picked from osmo-bsc be356ed32fbd28dc8d1460371d9e47511b20ac63 Change-Id: I3e25a19fac4d0b4886d825c9876771b1f66efe58 Related: SYS#3864
2017-10-23libbsc: Use correct printf formatting for uint64_tPau Espin Pedrol1-4/+4
unsigned long can be 32 bits on some arch/OS, while "current" field is always 64 bit because it's a uint64_t. Change-Id: I9719c69ef661bb46d8bb43cf8d6537c3e8d47826
2017-10-17bsc_api: Fix NULL secondary_lchan access in handle_ass_failPau Espin Pedrol1-2/+4
Related: OW#3893 Program terminated with signal SIGSEGV, Segmentation fault. 0 gsm_lchan_name (lchan=lchan@entry=0x0) at gsm_data_shared.c:342 (gdb) bt 0 gsm_lchan_name (lchan=lchan@entry=0x0) at gsm_data_shared.c:342 1 0x0805ab80 in lchan_release (lchan=0x0, sacch_deact=sacch_deact@entry=0, mode=mode@entry=RSL_REL_LOCAL_END) at chan_alloc.c:410 2 0x0805c1dd in handle_ass_fail (msg=0x94142b8, conn=0x9251048) at bsc_api.c:459 3 dispatch_dtap (msg=0x94142b8, link_id=0 '\000', conn=0x9251048) at bsc_api.c:598 4 gsm0408_rcvmsg (msg=msg@entry=0x94142b8, link_id=0 '\000') at bsc_api.c:658 5 0x08058ca2 in abis_rsl_rx_rll (msg=0x94142b8) at abis_rsl.c:1686 6 abis_rsl_rcvmsg (msg=0x94142b8) at abis_rsl.c:2097 7 0xb7e8cf9a in handle_ts1_read (bfd=0x94e8e08) at input/ipaccess.c:271 8 ipaccess_fd_cb (bfd=0x94e8e08, what=1) at input/ipaccess.c:386 9 0xb7ee8434 in osmo_select_main (polling=polling@entry=0) at select.c:158 10 0x0804bd7c in main (argc=6, argv=0xbfc27144) at osmo_bsc_main.c:272 (gdb) print lchan $2 = (const struct gsm_lchan *) 0x0 Possible scenario in which this crash can appear: 1- gsm0808_assign_req() calls handle_new_assignment() which sends an CHAN ACTIVATE msg and arms T10 timer. 2- ACTIVATE ACK is received (handle_chan_ack), which calls gsm48_send_rr_ass_cmd() which sends an ASSIGNMENT CMD, and doesn't disable/modify T10 timer. 3- T10 timeout is triggered (assignment_t10_timeout()), which sets conn->secondary_lchan = NULL 4- Immediately after, the ASSIGNMENT FAILURE message (which might have been already queued) is processed in handle_ass_fail, and then the crash occurs. This race condition is not an issue for handle_ass_compl() path because there's this check there which would trigger most probably if secondary_lchan is NULL: "if (conn->secondary_lchan != msg->lchan)" Change-Id: Ied5bd90b9c06f27135a2e3c46e40d49d27d9a387
2017-10-01gsm0408_test: Verify that BA-IND is 0 in SI2xxx and 1 in SI5xxxHarald Welte2-0/+70
This adds a test case to explicitly verify the BA-IND is as expected by the behaviour introduced in Change-Id I1cd0dc51026dcd0e508e63eea4e333e6b184787a Related: OS#2525 Change-Id: I3e5b260af97ce96a221e4d51f6c1b41d58817a59
2017-10-01Make sure BA-IND in all SI2xxx is '0' and in all SI5xxx is '1'Harald Welte3-92/+110
In masurement reports sent by the MS, this can then be used to correlate if a given measurement report was in response to a BCCH/neighbor list received on BCCH (SI2xxx) or on dowlink SACCH (SI5xxx). Closes: OS#2525 Change-Id: I1cd0dc51026dcd0e508e63eea4e333e6b184787a
2017-10-01libbsc: document arguments of generate_bcch_chan_list()Harald Welte1-1/+7
Change-Id: I5afc6e6a5a1d6b6a8ee73fdb60cc28074cf8585b
2017-09-27Show OML link uptime in vtyMax4-3/+31
Save the time when OML link to BTS was established and show it in vty. That's useful when troubleshooting issues like periodic/sporadic BTS restart. Related: SYS#3889 Change-Id: I9e4e8504afe8ca467b68d41826f61654e24d9600
2017-09-23CTRL: cleanup write-only command functionsMax1-31/+3
Remove trivial functions by using more specific defines for CTRL commands. Change-Id: I719b75b6ca1e9372ea11e7e9ff7896021f357035
2017-09-14libmsc: Log Rx DELIVER-SM RESP before calling gsm411_send_rp_ackKeith1-4/+4
This patch just makes the log match chronologically what is happening. We receive the deliver_sm_resp before we send the RP ACK to the MS. Change-Id: I29270652957f58093be8bf7f2e898b0b4933bd93
2017-09-13libmsc: sms_route_mt_sms() may return uninitialized return valuePablo Neira Ayuso1-20/+21
If smpp_first is set off and there is a local receiver for this sms, then return 0. Without this patch, we return 'rc' which is uninitialized in the scenario that I'm describing above. Change-Id: I0c0bcd919cc3275d491995d17c6a32bb61c6afe1
2017-09-13fix vty tests: vty no longer goes to parent node implicitlyNeels Hofmeyr2-22/+1
Fix four instances of VTY tests working because it used to include implicit 'exit' commands to the parent node. Since libosmocore change-id Id73cba2dd34676bad8a130e9c45e67a272f19588 = commit d64b6aed235f6e4d84a2cb8e84b32c3179260254, we no longer do this implicit-exit in interactive VTY shells. *) the nitb node lacked the default command set (including 'end' and 'exit'), so it was impossible to leave the nitb node. This hit in testSubscriberCreateDelete. Add vty_install_default(NITB_NODE). *) in testPingPongConfiguration, the intention is to enter the /msc 0 node. Drop prior entry of the 'network' node, which looks like an oversight. So far the 'msc 0' caused an implicit 'exit' and thus worked, now fails. *) Two instances following comments "# Check searching for outer node's commands", which look like they are intended to check for this implicit-exit behavior. This is obsolete, drop those parts of the tests. Change-Id: I77931d6a09c42c443c6936000592f22a7fd06cab
2017-09-11libmsc: annotate esme route in the sms object from deliver_to_esme()Pablo Neira Ayuso2-3/+12
Annotate this esme route, so we can use it to return -EINPROGRESS to skip sending premature RP-ACK to the mobile station, in case we're handling sms routes through SMPP. Now that we have this information in place, we use it wherever possible to avoid kludgy checks on sms->receiver. sms_free() already releases references to this object, so we should be fine with this. Fixes: 4e5b90a594f9 ("libmsc: remove 'deferred' parameter in sms_route_mt_sms()") Change-Id: Ib8a8fd9bbb0d3b6aff7931e4bacbea99d000e484
2017-09-05Make use of to use dependency artifacts for builds.André Boddenberg1-46/+45
Change-Id: I8a2ff700bbe3806bb2c1d561c6f2249fae3d8dd8 Note: this patchset depends on
2017-09-04handover_decision: Fix condition for power budget handover attemptIvan Kluchnikov1-1/+1
Handover attempt for power budget case should be performed every N SACCH frames, where N = Power Budget Interval. First measurement report with mr->nr = 0 was used for the first handover attempt in this case, which is not correct, because first usable report should have mr->nr = net->handover.pwr_interval-1. Moreover using the first measurement report with mr->nr = 0 for handover attempt could lead to unnecessary handover, because usually av_rxlev for first measurement report from MS is worse than for following reports. Change-Id: If7f54a4cb179eaa9e5eb147b9477633ac618e69e
2017-08-30SI13: drop PBCCH-related bitsMax3-69/+20
According to 3GPP TS 44.018 §1.8 the "network shall never enable PBCCH and PCCCH". Change-Id: I319e71a4b0c682361529e9c21377398a826b934b Related: OS#2400
2017-08-29Use release helper from libosmocoreMax2-0/+7
See for details. Change-Id: I460fd73230facbba3e326214e46c0b98b7491628 Related: OS#1861
2017-08-28Remove common_cs.h from .debMax1-1/+0
It's not required by gsm_data_shared.h anymore. Change-Id: I22004af84244936ca431f3bf901059f366be8bca Related: OS#2272
2017-08-27Use verify_value_string_arrays_are_terminated from osmo-ciHarald Welte1-3/+2
verify_value_string_arrays_are_terminated has recently been moved from libosmocore.git to osmo-ci.git and the person doing this seems to have forgotten to update openbsc.git Change-Id: Ibe4a7f71d2557dfee94803e909dabb00d2ce10af
2017-08-21Revert "factor out & introduce struct gsm_encr, in common_cs.h"Neels Hofmeyr2-11/+6
This reverts commit ac1f1436e9d380f632dd850fcd253d3480f0fc2d. common_cs.h added to gsm_data_shared.h was a mistake, i.e. I added the dependency by accident. Including common_cs.h in the debian installation may have seemed like the logical consequence but was not intended. AFAICT for osmo-msc, the need for struct gsm_encr is obsoleted by libvlr, gsm_encr will only be used in osmo-bsc and can just stay an inline struct. Related: OS#2272 Change-Id: I15d60441c6c6f053486c0482258a8759bdd92df1
2017-08-20Treat SIGTERM just like SIGINT in our programsHarald Welte5-0/+10
When somebody kills the process, it's best to handle the signal and to use the opportunity for some cleanup. We always did this in the NITB on SIGINT, but never on SIGTERM. Let's change it. Change-Id: Iea6804325a6575ceab5edfd28dd20249462f143b
2017-08-18NITB: remove 'help' output about '-a' option that is removed for agesHarald Welte1-2/+0
This option was present in very early versions of the NITB, but at least since 2011 it is no longer supported. It's still listed in --help output, which is wrong. Change-Id: I1d2cceb588ec5fb34ec5e2c05a7d8c93310bee88
2017-08-18libmsc: Use actual delivery time in delivery reports.Keith3-2/+4
Set the time on the status report to the time the message was delivered, as this may not be the same as the time when we are delivering the report to the originating MS. Change-Id: I9056429d40bf02731f004b7833f1de45a0d1add8
2017-08-18gbproxy: log signal value as textMax1-6/+4
Change-Id: I6ed923f5c60a8d64305f4b8e90d1362d6510e1c5
2017-08-18gbproxy: log unhandled BSSGP PDU as textMax1-2/+1
Change-Id: Ibe3c8bd353b3a178e26b0936f25b2e1959f9990c
2017-08-18libmsc: Fix wrong handling of user_message_reference parameterPau Espin Pedrol1-2/+2
libsmpp34 already converts received TLV integer values to native endianess in libsmpp34_(un)pack. Converting them again at receive time swaps the 2 bytes of user_message_reference, then using a wrong value. As GSM03.40 spec uses only 1 byte for the id, then only the high byte of the initial value is used and eventually sent back to the ESME. Again, at that time, htons() is not needed because libsmpp34 already handles that part. See OS-#2429 for more details. Change-Id: If748548a4a223e529a1110c89e483b599b406e8b
2017-08-16smpp: Fix compilation warningPau Espin Pedrol1-1/+1
I already stumbled into 2 compilation environments which had Werror enabled for -Wmaybe-uninitialized and the build failed, so let's workaround this warning. | smpp_openbsc.c: In function 'handle_smpp_submit': | smpp_openbsc.c:216:9: error: 'sms_msg_len' may be used uninitialized in this function [-Werror=maybe-uninitialized] | memcpy(sms->user_data, sms_msg, sms_msg_len); | ^ | smpp_openbsc.c:100:15: note: 'sms_msg_len' was declared here | unsigned int sms_msg_len; | ^ | cc1: some warnings being treated as errors Change-Id: I0901ddadb5f72e1585cb1797ac22c8ab95e83146
2017-08-16sgsn_test: Fix wrong definition of wrap funcPau Espin Pedrol1-5/+5
Commit 058cd573d8 added 2 new pointer parameters to gprs_subscr_request_auth_info, but forgot to update wraps of the function in sgsn_test. I catched this today because openbsc build test sgsn_test was failing. Closed look up to the logs showed: Assert failed (auts != NULL) == (auts_rand != NULL) openbsc/openbsc/src/gprs/gprs_subscriber.c:791 Change-Id: Ie9e4af6da0339536fb20ca0b7bbcf6f485bd522c
2017-08-15LIBMSC: Use sms->text, not sms->user_data to construct report bodyKeith1-1/+1
gsm_04_11.c sms_report_alloc() Use the sms->text, not the sms->user_data to construct the report body. This also prevents the potential output of non printable characters to the log and or vty. Change-Id: Id51bc9483ad6f52d6da74135605cfd12434c7c96
2017-08-15LIBMSC: Place correct dst address in status reportKeith1-1/+1
gsm_04_11.c: gsm340_gen_sms_status_report_tpdu() When we construct the status report PDU, use sms->src instead of sms->dst as the destination address This way we tell the MS that the message was delivered to the destination and not to itself. This is relevant for phones that display a textual representation of the delivery report. Change-Id: I2d4f87ac777465de9bfb5a775a789a2691755ee9
2017-08-15libmsc: use SMPP34_DELIVERY_RECEIPT_* in libsmpp34Pablo Neira Ayuso1-7/+1
Use new definitions in libsmpp34 to set the registered_delivery field accordingly, as provided by I5b3afff1b3b77cccd949e0606914c7ac3ba6114c. Moreover, do not set this header field to zero if status reports are off, the deliver_t structure has been already zeroed so this not required. Change-Id: Ie78e17323796120f576b9c0e1bc5ccc32da8ee12
2017-08-14increase 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-14Migrate from gprs_apn_to_str() to libosmocore osmo_apn_to_str()Harald Welte11-148/+19
In 2015, Jacob moved/copied related functions to libosmocore, but for some reason didn't remove the copies here. Let's follow-up on that and remove duplicated code. The libosmocore commit introducing osmo_apn_to_str() was 8114294bf29ac6e44822c0ae43d4b0819f11b022 Change-Id: I7315ffcbed8a54cca2056f313bb7783ad82d0ee9
2017-08-14sgsn_vty: Don't assume pdp->lib is always validHarald Welte1-14/+16
We can only print libgtp pdp information if a library context is attached to this pdp context. This is not always the case, particuarly during some teardown scenarios. Change-Id: Ia3184877f9709db65f5f93a98403f2ef5b04a8ca
2017-08-14Fix gsm_pchan2chan_nr() to use RSL_CHAN_OSMO_PDCHHarald Welte2-2/+5
When converting from GSM_PCHAN_PDCH, we should generate a RSL channel number IE with the osmocom extension RSL_CHAN_OSMO_PDCH rather than claiming it is a regular TCH/F channel. This is important as this function is used by osmo-bts, too - and it decides which channel number IE is put in the GSMTAP header for both GSMTAP tracing as well as the GSMTAP based osmo-bts-virtual. In order to avoid any unintended effect on libbsc, we make sure to modify rsl_ipacc_pdch_activate() to always use GSM_PCHAN_TCH_F in related RSL message. Change-Id: Ie34219e64a6d89da4a79f2db8ec73d1909fb8280
2017-08-14SGSN: Fix RAN information exposed on GTP during PDP CTX CREATEHarald Welte1-4/+14
In the PDP Context Create from SGSN to GGSN, we include information about the RAN type (GERAN/UTRAN) and the Cell of the MS. This was all hard-coded to GERAN, and wasn't updated when we added UTRAN support to the SGSN. Change-Id: I6c79e42c5e08b28fe8182555302a5505fbbaa313