aboutsummaryrefslogtreecommitdiffstats
path: root/include
AgeCommit message (Collapse)AuthorFilesLines
2018-02-16iucs: Add a function to return the connection ID for the IU SCCP connDaniel Willmann1-0/+2
Change-Id: Ica4a7f463fcf1bd67fe082296cecea8d10f2fc5b
2018-02-14remove dead code (gsm_parse_reg)Harald Welte1-7/+0
Change-Id: I47b0260561a9c2bad65c50c8164873e4c23d61b7
2018-02-14remove unused "auth policy" VTY commandHarald Welte1-11/+0
This is yet another unsused bit from the OsmoNITB legacy. Related: OS#2528 Change-Id: I825e659da529257e5edec94d9d59f0e10c1b4c63
2018-02-14remove unused "authorized-regexp" VTY commandHarald Welte1-2/+0
This is another left-over VTY command from the OsmoNITB days. If such functionality is desired, it must be implemented in OsmoHLR, but not here. Related: OS#2528 Change-Id: Icf0897c47388e49ba7886b55acc728a6f7d213fe
2018-02-14remove unused VTY command "location updating reject cause"Harald Welte1-1/+0
OsmoMSC is using whatever reject cause is apropriate in the given situation. This user-configurable reject cause only had relevance in OsmoNITB, and hence it is an unused parameter that can be removed in OsmoMSC. Related: OS#2528 Change-Id: Ie1f39e706477aaf42051877b52d4b3ae1c5f138e
2018-02-14remove unused dyn_ts_allow_tch_f VTY optionHarald Welte1-3/+0
This belongs into the BSC and has no relevance in the MSC, as the MSC has no clue about dynamic timeslots. Related: OS#2528 Change-Id: Iaa41d22db81120572d4cd2c0c4c75d258947a42f
2018-02-14dead code removalHarald Welte3-101/+0
Related: OS#2528 Change-Id: I89157c446d66e11adbe3cad587eb34ec40271c12
2018-02-14remove bsc_api.h and all users - they're all dead codeHarald Welte5-56/+0
Related: OS#2528 Change-Id: I332aa8697c98a0d7b3db65f98711275da3d381d7
2018-02-14gsm_data: remove unused gsm_subscriber_connection membersHarald Welte1-2/+0
The mncc_rtp_create_pending and mncc_rtp_connect_pending members were unused, let's remove them. Related: OS#2528 Change-Id: I417e23ec53323ddd8e1e5d18952566fe8fd6ac24
2018-02-09Add VTY command to configure destination MSISDN for emergency callsHarald Welte1-0/+5
As in GSM/3GPP networks emergency calls carry no explicit destination number/address, add a VTY commadn to patch in some destination handler in the EMERGENCY SETUP before delivering to [internal or external] MNCC. Change-Id: I7c9f43ba312fadda2b9a9483b3cf50e4abca9599
2018-02-09Introduce new BSSAP logging category/subsystemHarald Welte2-2/+3
Having all BSSAP related logs in the "DMSC" category is overly generic, and dosn't provide useful granularity. Change-Id: Id1e52dad03840dfd026fb23f3845a8771c8cc308
2018-02-09a_iface_bssap.c: Use LOGPCONN() whenever possibleHarald Welte1-0/+9
Change-Id: Ic1c9d14b892154d51165598338d23a924a772265
2018-02-09Don't answer to BSC-originated RESET with another RESETHarald Welte2-3/+5
If the BSC is contacting us for the first time and sending a BSSMAP RESET, then we should simply ACK that and transition into the "connected" state, where connection-oriented and connectionless procedures are permitted. This patch is a bit large for such a seemingly simple behavioural change, but the existing data model didn't permit a more straight-forward implementation. Change-Id: Ie67e7ed20a6c42afe99bafef96d85a4e083dd057 Closes: OS#2914
2018-02-09a_reset: Add additional "a_reset_alloc" argumentHarald Welte1-1/+2
Using this argument we can create the state machine in the "already connected" state, i.e. without starting an outbound RESET procedure. Change-Id: Ibf569d57300965cd47084fa0bff54aa67679e2a1
2018-02-08GSUP: check osmo_gsup_encode() resultMax1-2/+2
Check and handle gracefully any error which might appear in osmo_gsup_encode() - mark corresponding functions with warn_unused_result attribute to make sure this failure is always checked against. Change-Id: I4551212011fb0bd898c020a183756ed7a9afb9e5 Related: OS#2864
2018-02-07Constify msc_subscr_conn_is_accepted() parameterMax1-1/+1
Related: OS#2864 Change-Id: I8af50a8847a5b438cf2ef660399d4c8bbac86a71
2018-02-05mgcp: use osmo-mgw to switch rtp streamsPhilipp Maier5-6/+70
in the current implementation we still use osmo-bsc_mgcp, which has many problems and is also obsoleted by osmo-mgw. integrate osmo-mgw and re-implement the current switching using an osmo fsm. Depends: osmo-mgw Iab6a6038e7610c62f34e642cd49c93d11151252c Depends: osmo-iuh I3c1a0455c5f25cae41ee19229d6daf299e023062 Closes: OS#2605 Change-Id: Ieea9630358b3963261fa1993cf1f3b563ff23538
2018-02-05a_iface: correct data type for a.conn_id in gsm_subscriber_connectionPhilipp Maier1-1/+1
conn_id is modeled as int, but should be uint32_t. - change conn_id from int to uint32_t Change-Id: Ibf14d7c9a547c4eeb873975e7dcddef223e7df46 Related: OS#2769
2018-02-03Implement checks for duplicate uplink UL L3 messageHarald Welte1-0/+3
According to TS 24.007 Section 11.2.3.2.3, it is possible that uplink L3 messages are duplicated in some scenarios, particularly during assignment/handover procedure. To avoid L3 entities from seeing duplicated messages, there's a modulo-2 or modulo-4 message sequence counter, based on which the MSC can detect and suppress such duplicate messages. It appears that even our unit tests were wrong in that regard so far. Rather than manually adjusting each and every message, let's make sure that the sequence number generation always increments as expected, and that during matching of incoming messages, sequence numbers are masked out. Note: the tests will only pass from libosmocore Change-Id Iec875a77f5458322dfbef174f5abfc0e8c09d464 onwards, due to gsm48_hdr_msg_type() being broken in earlier versions. Change-Id: Id15e399ab7e1b05dcd426b292886fa19d36082b1 Closes: #2908
2018-01-30Remove unused codeMax2-15/+0
The socket.* is unused leftover from pre-split time. Fixes: CID57645 Change-Id: Ibf3b539fcbd7f311caa2291af23b8f18ebc6c2e0
2018-01-28Change GSUP re-connect interval to 1sHarald Welte1-1/+4
This leads to faster recovery in case of link loss. It also makes the TTCN-3 test suite run much faster, as each test case will inherently terminate the GSUP connection. Change-Id: I16821a26f2c6ff4d0a76926c9212127ab6f6fedf
2018-01-28Permit a set of multiple different A5 ciphersHarald Welte1-1/+2
So far, the administrator had to pick one particular cipher which would then be used throughout all subscribers/phones. This is a bit impractical, as e.g. not all phones support A5/3. Extend the VTY command syntax in a backwards-compatible way to permit for multiple ciphers. NOTE: Like the previous code, OsmoMSC does *not yet check* whether the configured cipher is compatible with the MS capabilities as reported in CLASSMARK! The network hence might choose an algorithm not supported by the phone. Fixing this is subject to another patch. Closes: OS#2460 Change-Id: I79a4e2892eb5fbecc3d84e11dceffb7149db264b
2018-01-28Shift ciphering algorithm selection from VLR to MSCHarald Welte1-5/+4
The VLR code seems to have the assumption that there is one particular algorithm to be used, as opposed to one of a set of algorithms. What's missing is basically to decide when/where to pick the best algorithm within the capabilities of the phone (classmark) and the network configuration (net->a5_encryption_mask). So far, libvlr has no notion of classmark. Rather, libmsc has. Why does the VLR care about the particular algorithm at all? The VLR should probably simply decide if it should use encryption or not, and if so, the MSC will figure which algorithm to use. Change-Id: I5ed80ca2086560a5975a758ec568a034a9a8ab89
2018-01-25Delete expired SMS automatically.Stefan Sperling1-0/+1
Delete expired SMS whenever we are done processing an SMS-related signal. In order to minimize additional latency only one SMS is removed at a time. Change-Id: I56cbe716e52b679c4b94f6cbb4a171306975be2e Related: OS#2354
2018-01-25Add a VTY command which deletes all expired SMS.Stefan Sperling2-0/+2
We already delete SMS which have been sent successfully. However, there are plans to accept SMS for any subscriber in order to fix the problem described in https://osmocom.org/issues/2354 ("SMSC: Store&Forward not working for subscribed but unregistered MS"). This means we may end up storing SMS which never get sent, e.g. because the B subscriber doesn't actually exist. This could lead to a higher degree of SMS database growth over time, and therefore we need a way to keep database size under control. As a first step, introduce a DB function which removes an expired SMS, and add a VTY command which removes all expired SMS from the DB. Later commits will build upon this to remove expired SMS automatically. The SMS expiry time period is currently hard-coded to 2 weeks. We could make this configurable in the future if desired. Change-Id: Icd6093b7b5d8db84b19a0aa47c68182566113ee2 Related: OS#2354
2018-01-25debug: Remove dead log categoriesHarald Welte1-17/+0
Change-Id: Ibdfc39ead4f0c5e3a74321e9d2c9720ae1603541 Related: OS#2528
2018-01-25remove dead ctrl.h header fileHarald Welte2-5/+0
Change-Id: I3ea0d98580085982ec0f20165c0ddcfd439e7419 Related: OS#2528
2018-01-25signal.h: Remove unused/dead signal definitionsHarald Welte1-14/+0
Change-Id: Iba5be82e11fa1d5e5514bc86d8ec23cda24ae4c9 Related: OS#2528
2018-01-25remove dead header files bsc_msc.h, bsc_msc_data.h and bsc_rll.hHarald Welte4-273/+0
Related: OS#2528 Change-Id: I13cc4513689af1d594952dd628738b1240560bb7
2018-01-25remove dead code in auth.h / auth.cHarald Welte2-23/+0
Change-Id: I57e3b79a95a35c4783dc3775a88d15f13cbec13e Related: OS#2528
2018-01-25remove unused ipaccess.hHarald Welte2-53/+0
Change-Id: Ibee159a119a1cce2b3fcbdabf3491673aed4ea95 Related: OS#2528
2018-01-25Massive removal of unused code/structs/headersHarald Welte32-2531/+6
osmo-msc still had large amounts of dead code that came along from openbsc.git. This commit removes a lot of it, mostly stuff relevant only to the BSC side of things (or even GPRS). Change-Id: I247def85da2dc3ec461389fb74414a0d964e7e3c Related: OS#2528
2018-01-24remove traces of bsc_subscriberHarald Welte1-15/+0
Change-Id: I8672f0a76cb47595444a7ddbc4f34fc4ddaeb375
2018-01-24debug: Remove code for filters that don't exist in OsmoMSCHarald Welte1-1/+0
We don't have BSC or GPRS related logging filters here. This is a leftover from the NITB->MSC split Change-Id: I05f991d1f5b7f89545521a73d79619bee4111094
2018-01-24remove unused paging.h and osmo_bsc_grace.hHarald Welte3-113/+0
Change-Id: I6af40f65f0634e49939906a3e50a41e0be246794
2018-01-24Remove traces of meas_feedHarald Welte2-42/+0
Measurement reporting (and the relate feed) are functions of the BSC, not the MSC. This code should never have been inherited from OsmoNITB to OsmoMSC in the first place, let's remove it. Change-Id: I0d57ac214e574e267fa9752daf76566197b9aa64
2018-01-24VLR: constify GSUP-related function parametersMax1-1/+1
Change-Id: If3852e096210713cb5297f6b42ed66dbb98c4a50
2018-01-23MNCC: Add input validationHarald Welte1-0/+1
There appears to have been no input validation whatsoever on MNCC messages. Hence it was very easy for an external MNCC handler to crash OsmoMSC, such as in OS#2853 Change-Id: Idaf3b8e409c84564b1eb26d01a19c605f89b14f4 Closes: OS#2853
2018-01-18Delete SMS from the database once they were sent successfullyStefan Sperling1-0/+1
Currently the SMS database keeps accumulating entries for each SMS. These entries are never deleted automatically. With this change, we start deleting SMS which have successfully been sent to subscriber B. Change-Id: I3749855fe25d9d4e37ec96b0c2bffbc692b66a78
2018-01-10msc/gsm_04_80.h: use '#pragma once' instead of includesVadim Yanitskiy1-4/+1
This is a common include guard way for Osmocom projects. Change-Id: I5a12a742719d4deba0b9dfa8bb330c1986a727f6
2018-01-10msc/gsm_04_80.h: cosmetic: whitespace fixVadim Yanitskiy1-2/+2
Change-Id: Ia3632c75cf2d2ce79b42b3b55ef50a72ab1bb94c
2018-01-10msc/gsm_04_80.h: clean up useless declarationsVadim Yanitskiy1-4/+0
This change removes a few USSD specific declarations, which are not actually used now, and probably accidentally migrated from legacy OpenBSC. Change-Id: Id57a24b92790d3ce0f9c7343d060f511e2b979c7
2018-01-05Add control command to expire subscriberMax1-1/+1
It's equivalent of existing vty command: common part is extracted into shared helper function. Change-Id: I267886b7c79ed6d9c2f34a2e60d2972b7f4f4036
2017-12-31VLR: log subscriber updateMax1-0/+6
* move log helpers to generic header * log subscriber update It's handy for troubleshooting issues with subscriber update via GSUP from HLR. Change-Id: I1958aeeb3ea99831c7e2c5ee9a6b59834baf4520
2017-12-29VLR: remove unused parameterMax1-1/+0
The expire_lu is never used but is printed for every subscriber. Let's remove it to avoid confusion. Change-Id: I6f7ad1670836384d1e6a58f47a13464fdbbf8509
2017-12-20fix: properly cancel all Paging on IMSI DetachNeels Hofmeyr1-0/+1
It's not clear cut which code is responsible for canceling pending requests, since the requests list is kept in vlr_subscr, but sending out Paging does certainly not belong in the VLR. Place the requests cleanup in gsm_04_08.c. Add to test_ms_timeout_paging() in msc_vlr_test_ms_timeout.c to verify that a pending paging is canceled on IMSI Detach. Change-Id: Ib8874a9d92f02b0826525b55518332f6899688fd
2017-12-20fix paging: add timeout to discard unsuccessful pagingNeels Hofmeyr2-0/+3
Currently, if there is no reply from the BSS / RNC, a subscriber will remain as "already paged" forever, and is never going to be paged again. Even on IMSI Detach, the pending request will keep a ref count on the vlr_subscr. Add a paging timeout, as gsm_network->paging_timeout and in the VTY on the 'msc' node as 'paging timeout (default|<1-65535>'. (There is a 'network' / 'T3113' in OsmoBSC, but to not confuse the two, give this a different name.) Add test_ms_timeout_paging() test to verify the timeout works. I hit this while testing Paging across multiple hNodeB, when a UE lost connection to the hNodeB. I noticed that no matter how long I wait, no Paging is sent out anymore, and found this embarrassing issue. Good grief... The choice of 10 seconds is taken from https://osmocom.org/issues/2756 Change-Id: I2db6f1e2ad341cf9c2cc7a21ec2fca0bae5b2db5
2017-12-20cosmetic: rename sccp_rx_udt and sccp_rx_dt to a_*Neels Hofmeyr1-2/+2
These rx functions are only used for the A interface, hence the names should not suggest general SCCP rx (which Iu also has). Change-Id: I6815c3d4dea4c2abfdff1cf0239ada6a9254f351
2017-12-18drop unused T* timers (BSC land, not MSC)Neels Hofmeyr1-25/+0
Change-Id: If27899c90b7c79f25cd5fd5e2429cb3012d69744
2017-12-18cosmetic prep: tell vlr_ops.set_ciph_mode() whether UMTS AKA is usedNeels Hofmeyr1-1/+2
In case of UMTS AKA, the Kc for ciphering must be derived from the 3G auth tokens. tuple->vec.kc was calculated from the GSM algorithm and is not necessarily a match for the UMTS AKA tokens. To decide (in an upcoming patch) whether to use UMTS AKA derived Kc or the Kc from the auth vector, the set_ciph_mode() from vlr_ops needs to know whether UMTS AKA is being used. This could possibly derived from the msc_conn_ref, but all flags are already available in the vlr_lu_fsm and vlr_access_req_fsm. Hence add a umts_aka flag to the set_ciph_mode() callback invocation. The VLR FSMs thus decide whether UMTS AKA or GSM AKA is to be used during Ciphering Mode Command, which makes more sense than re-implementing the same decision process in the MSC. I considered placing the Kc derivation in vlr_set_ciph_mode() and only tell the MSC's set_ciph_mode() implementation the precise keys it should use, but the RAN particulars, and whether a Kc is used at all, rather belong with the MSC. Related: OS#2745 Prepares: If04e405426c55a81341747a9b450a69188525d5c Change-Id: I983c48347faf4ee1b405d8174b4e006c904157cf