aboutsummaryrefslogtreecommitdiffstats
path: root/include
AgeCommit message (Collapse)AuthorFilesLines
2017-12-20mgcp: cancel transactions on timeoutPhilipp Maier1-0/+2
when a transaction to the MGW times out, then the context information is freed. Unfortunately the client is not informed about this and will try to execute the callback anyway. explicitly cancel the transaction in order to prevent access to already freed data structures. Change-Id: I40794dff7d10e2b6a96863a2da7e9fbd5662a1bf
2017-12-19remove unused 'lac' member of 'struct gsm_subscriber_connection'Harald Welte1-2/+0
This field was used in write-pnly mode, i.e. set but never read. Change-Id: I319945538fd3e3bc5cf3b9d82533641cb8ba5256
2017-12-19gsm_data.h: Document all fields of gsm_subscriber_connectionHarald Welte1-8/+14
Change-Id: I429fe7817f075d0794645d37f5ea11b104102ba0
2017-12-19osmo-bsc: Move user plane/voice related bits into sub-structureHarald Welte1-17/+17
This clarifies which members of the struct are for what. Change-Id: I618822e6f2d48adce25f9df5c25acbce7c858412
2017-12-19osmo_bsc.h: document every field in 'struct osmo_bsc_sccp_con'Harald Welte1-0/+5
Change-Id: I674ed61a22fad5cc09c45128dbc73474893aefb6
2017-12-19Remove unused struct osmo_bsc_sccp_con member sccp_queue_sizeHarald Welte1-3/+0
Change-Id: Ibc4b8f3776c35df7e81252efb78ec740a371de7f
2017-12-19remove libosmo-sccp dependency for osmo-bscHarald Welte1-4/+0
libosmo-sccp is the old sccp-lite-focused SCCP implementation that we used before libosmo-sigtran was created. The new osmo-bsc in this repository is using libosmo-sigtran and shouldn't be using parts of libosmo-sccp anymore. We only keep it around in configure.ac and Makefile.am for osmo-bsc_nat, which is not even built in this repository anymore (or 'again yet'?) Change-Id: I8f274be7d196cd7a5b1ec9ada949130fb06e984d
2017-12-19Remove some more dead codeHarald Welte2-134/+0
Change-Id: I919bffe88babd90227c89abd4434322965c32ebb
2017-12-19Remove bogus MM INFO configurationHarald Welte1-2/+0
The network name and other MM INFO is controlled by the MSC, not the BSC. Change-Id: I1cbf72fc50cff29e7c1633ba752cbf15b4b84c58
2017-12-19Remove bogus vty config for LU reject causeHarald Welte1-1/+0
The LU reject cause (like anything MM related) is under control of OsmoMSC, not BSC. Change-Id: I559ae31d67726845c9699c8b6127e21c6f63ace6
2017-12-19Remove unused RRLP options/codecHarald Welte4-24/+0
RRLP is handled in OsmoMSC after the split from NITB, so let's remove any bogus VTY commands left over in the BSC. Change-Id: Ib626f43a3a3ca69dfc127afe5832eb58f7fb6a38
2017-12-19Remove dead code left over from NITB splitHarald Welte22-813/+6
There still is a lot of dead code that we inherited from the NITB days, let's remove more of it. libtrau will be re-introduced as part of osmo-mgw later. Change-Id: I8e0af56a158f25a4f1384d667c03eb20e72df5b8
2017-12-14Add new "chan:mode_modify_nack" counter to count RSL MODE MODIFY NACKHarald Welte1-0/+2
Those NACKs shouldn't happen in production, and if they do, you probably want to have a more persistent figure than a line in the log file about it. Having counters allows the user to monitor this efficiently. Change-Id: Ic82c6baaf4cb88d07bc5cdc200f8279cf130f396
2017-12-14Add a new counter "rsl:ipa_nack" to count number of IPA related NACKsHarald Welte1-0/+2
Those NACKs (CRCX/MDCX/PDCH_ACT) shouldn't happen in production, and if they do, you probably want to have a more persistent figure than a line in the log file about it. Having counters allows the user to monitor this efficiently. Change-Id: I5edf979c9a2b4c9a5a60eef9f66c26da54f2bddf
2017-12-14Add new per-BTS "rsl:unknown" counter to count unknown RSL messagesHarald Welte1-0/+2
Change-Id: I268f222140fa5783e1d19f81fbd45614aaa4b8c4
2017-12-14Add per-BTS rate_ctr for total + failed number of RSL CHAN_ACTHarald Welte1-0/+4
Change-Id: I471b598af194dee78ebaa3414b6290c72d9bbcff
2017-12-14Reduce T3113 default from 60s to 10sHarald Welte1-1/+1
Our T3113 timer default of 60s was set early in the development of OpenBSC, where we didn't really know what values to use and used excessively large/safe values. Paging the same MS for 60 seconds (even if there's no paging response) will however create a lot of PCH load for no good reason. It seems there's no clear guidance as to what the value should be. Other implementations use something in the order of 10 seconds (OpenBTS, yateBTS), which seems more realistic. THe Siemens BS-11 has a default of 5 seconds. Let's be conservative and go to 10s as a default, which is already 6 times less potential PCH usage than our default so far... Closes: OS#2756 Change-Id: If9c8441939c6fdcf6e2b9ede8cc576eb86296209
2017-12-14libbsc: paging: more reasonable (and detailed) paging statisticsHarald Welte1-5/+13
Counting the number of T3113 expirations (one per subscriber per BTS) vs the number of paging attempts (Bsc global) is a ueseless figure, as you cannot relate each other. We count on the BSC level: * how many PAGING we received from the MSC (total) * how many of those were for cells/LACs we don't serve * how many of those resulted in PAGING RESPONSE We count on the BTS leve: * how many PAGING CMD we sent to the BTS (total) * how many of those we ignored as we were already paging * how many of those resulted in PAGING RESPONSE * how many were expired due to T3113 expiring Change-Id: I410bbcbb2621f95f11238f7a5da01ab438f5fee1
2017-12-13cosmetic: osmo_bsc_mgcp: improve commentsPhilipp Maier1-2/+7
Make the comments for struct mgcp_ctx more expressive Change-Id: Ie80b4915055e3f944ff1870c38e3609197ab72b2
2017-12-12Generate SI2bis Rest OctetsMax1-0/+1
According to the spec it's an empty 1-byte element reserved for future extension but we still have to generate padding properly. Add stub function similar to the used for SI2ter and adjust test output accordingly. Related: OS#2711 Change-Id: I3c278c57880a173df3c4648c9724339d23ce94fd
2017-12-11paging: Stop all paging if MSC sends us BSSMAP RESETHarald Welte1-0/+3
When the MSC has lost its state and issues a RESET, we should not only clear all ongoing radio connections, but we should also stop any paging. There's no point in paging a subscriber if the MSC doesn't know about this paging anymore. Change-Id: If3f53d3bb66ad2dc02db823cb813590c6b59c700 Closes: OS#2736
2017-12-11paging: Remove obsolete paging call-back supportHarald Welte1-8/+9
The call-back was needed inside the NITB to determine which part (CC, SMS, ...) had triggered a given paging. A pure BSC doesn't need that feature, so let's get rid of it. The 'void *cbfn_data' is replaced with a 'struct bsc_msc_data *', as all callers use it with that type. Change-Id: I8839e8338d3ad1a91b41e687e8412fcdca3fd9ab
2017-12-11Change T3101 default from 10s to 3s.Harald Welte1-1/+1
This timer is started when a channel is allocated with an IMMEDIATE ASSIGNMENT message. It is stopped when the MS has correctly seized the channel. Ever since the early days of development we were using a very long timeout to be on the safe side. However, in production networks this is a terrible waste of resources, as we will occupy 10s worth of air-time on one of our channels for each RACH request we receive. The only scenarios where you might need something absurdly high as 10s would be if you have 8s of RTT between your BTS and the BSC. See also https://osmocom.org/projects/osmobsc/wiki/Timers Change-Id: If3c52a7cf0c06d074c44a2fc414679279189aab9 Closes: OS#2733
2017-12-11Generate SI2ter Rest OctetsMax1-0/+1
Previously we simply omitted SI2ter Rest Octets which is spec violation which lead to 'Malformed Packet' error in Wireshark RSL dissector. Fix this by generating empty 'no rest octets' with proper padding. Adjust test output accordingly. Change-Id: Ie4419aaaf93a462f501f8d8f7bf2677d37c58f94 Fixes: OS#2711
2017-12-09Remove 'msc' counter group from BSCHarald Welte1-53/+0
This is left over from the OsmoNITB days. We're defining and allocating these MSC counters, but never actually using them. This also means that the automatic counter export will list them, raising the expectation at users that such counters could be used in OsmoBSC. Let's remove them. They are in OsmoMSC, but not OsmoBSC. Change-Id: I5bd9e6e333b1c396beae46630986b17e7f8b82ef
2017-12-09rate_ctr: Use ':' as separator, not '.'Harald Welte1-18/+18
In more recent versions of libosmocore, we are converting any '.' in [rate] counter names to ':' to avoid clashes with the special meaning of '.' in the CTRL interface. Let's avoid any conversion and use the proper name already here. This also changes the codec_foo counters to codec:foo to follow the notation of other counters. Change-Id: I18916abbfc706b86bd211e7cca1a0ca3099826e9
2017-12-09Move many counters from BSC-global to per-BTS granularityHarald Welte2-22/+37
We used to have a lot of counters only globlly per BSC, but they're much more useful on a per-BTS level. Change-Id: I954b9dda72b83b91d46a934c221a8b3375743599
2017-12-06use _NUM_CHREQ_T to define the size of ctype_by_chreqAlexander Couzens1-1/+1
Make it future compatible for changes. Otherwise it will break when additional enums are adding to chreq in libosmocore. Depends on libosmocore Id67ba8de89dd6288e449197438e9e1c5d7f5a134 Change-Id: I2acab2af8d67bccb2bc495512c1f259ae649a832
2017-12-01mgcp: use mgw assigned connection identifiersPhilipp Maier1-0/+6
osmo-mgw assigns connection identifiers which are returned with the response to the CRCX. store the assigned connection identifiers and use them to identify the connections. Depends: osmo-mgw Iab6a6038e7610c62f34e642cd49c93d11151252c Closes: OS#2648 Change-Id: Ib379a6f40875bb8f2cf29038a5b5b7a40a21adab
2017-11-30auth: remove obsolete VTY commandsPhilipp Maier1-1/+0
authentication (optional|required) is no longer needed, the related decisions are now made in the HLR. Change-Id: Ib6c6331cc86004c4862067031e4fcb12a6975b63
2017-11-30auth: remove unused structsPhilipp Maier1-35/+0
The following structs are no longer used/needed: - gsm_auth_algo - gsm_auth_info - gsm_auth_tuple - gsm_security_operation Change-Id: I93873a6cb980a54e03e719170e27a7e397236b77
2017-11-30sccp-lite: remove obsolete VTY commandsPhilipp Maier1-4/+0
remove obsolete vty commands: - token - auth-key - no auth-key Change-Id: I9101d750a424b8af46d603bc7c877229bbae8727
2017-11-29HO prep: pass gsm_network to gsm_bts_alloc() alreadyNeels Hofmeyr1-1/+1
Prepare for a future change that accesses bts->network during gsm_bts_alloc(). Currently, gsm_bts_alloc() takes a ctx parameter, and gsm_bts_alloc_register() then gets the gsm_network pointer and sets bts->network to it. All callers anyway pass gsm_network as ctx to gsm_bts_alloc(), and anything else would not make sense anyway. So enforce passing exactly gsm_network to gsm_bts_alloc() and already set the bts->network pointer from there. Prepares-for: I00870a5828703cf397776668d3301c0c3a4e033a Change-Id: Ie590c14aa08df4c4f345596b23e5226c5577057a
2017-11-29cosmetic: handover.h: use "#pragma once", declare structs, commentsNeels Hofmeyr1-8/+3
Use new #pragma style instead of #ifndef dance. Forward-declare all structs we're using pointers of. Move function comments to their definitions in the .c file. Change-Id: I3d43ec01897c0ef9eaf506e68d5a1ec1977f70ea
2017-11-29compiler warnings: add includes in abis_rsl.h, gsm_data_shared.hNeels Hofmeyr2-0/+2
Change-Id: Ic0b1410a352c7be399d16d5db7cfe7a62192df6f
2017-11-29cleanup: drop unused gsm_bts.roleNeels Hofmeyr1-2/+0
While this header was still shared among several code trees, we had this ROLE construct in place to exclude some parts in some trees. Since we're having one copy per code base now, the ROLE #ifdefs were dropped, also drop void *role. Change-Id: I4f0c337779d8e7266b6e02815d886728c4826bb9
2017-11-29cosmetic: mark gsm_objclass2mo as staticMax1-4/+0
It's only used once in the same file so there's no need to put it into global header. Change-Id: Id9674cad54bab6cc04475719678efc2c25d058a9
2017-11-29cosmetic: drop unused includeMax2-192/+0
Change-Id: I46a2af19358c0eb5d2f1644b10afd58c424a51e8
2017-11-29cosmetic: tighten function type signaturesMax2-2/+2
* change return type to bool * constify parameters The nm_is_running(), trx_is_usable() and ts_is_usable() always return boolean value and are always used as such anyway. The also do not change their parameters. Change-Id: I6a572fc78371c69f5308edbad0ebe15e143d0505
2017-11-29auth: remove obsolete VTY commandsPhilipp Maier1-3/+0
Authentication is no longer done in the BSC, the variables that set the authentication policy and the IMSI regex have no longer any effect. Remove auth policy and authorized-regexp Change-Id: Ie31b921b5fd0af5501ec0c77c0f08089c10075e2
2017-11-29cosmetic: remove obsolete ROLE_BSCMax2-104/+0
It's leftover from the time when gsm_data_shared.* was actually shared with OsmoBTS. Nowadays ROLE_BSC is always defined so we can just drop it entirely and make working with gsm_data_shared.h slightly easier. Change-Id: I34fc9ee5955c14bbbde68d5499cf2acfd329afbc
2017-11-29OML: consider administrative state when reportingMax1-1/+1
Report state as degraded if BTS or any of its TRX are administratively locked. Change-Id: Ic9ee998d972ca870ce5d039c3ed95edb6ba8b36f Related: OS#2486
2017-11-24vty: Add cmd to configure 3g Early Classmark SendingPau Espin Pedrol2-0/+2
In state prior to this patch, "3G Early Classmark Sending Restriction" bit in SI3 rest octets was always set to H, which is a sane default as the policy to send the information is then controlled by "Early Classmark Sending Control" bit in the same octet. However, it seems Quortus SoftCore can have some issues decoding the option, so let's add a vty cmd to be able to disable it for those having any issues. Related: SYS#4021 Change-Id: Ic1afe071038a3bb5871d7ff40f665c8644f801ec
2017-11-24Use type bool for boolean fields in gsm48_si_ro_infoPau Espin Pedrol1-3/+3
Change-Id: Ic0981fca96f4927717ca335be1dab00a5d17fd6c
2017-11-20reset: remove name variable from reset contextPhilipp Maier1-3/+0
The reset context contains a string buffer to allow for setting a human readable name, that is then displayed in the logs. Since OSMO-FSMs already have such a feature there is no need for an extra name variable. Use LOGPFSML and the name parameter of osmo_fsm_inst_alloc() to display the name of the FSM Fixes: Coverity CID#178664 Change-Id: I34511698923abec7545a6f3defd595f97b4bbeb1
2017-11-12cosmetic: remove distracting newlinePhilipp Maier1-1/+0
Change-Id: Iedc883b0f5760f004c51d7cf15328eb8c4d472db
2017-11-07mgcp: use osmo-mgw to switch RTP streamsPhilipp Maier4-0/+70
osmo-bsc currently negotiates the RTP stream directly with the BTS and reports back the RTP IP/Port on the BTS. This works fine for a single BTS, but for Handover the port/ip pointing to the MSC side must not change, so an entity in between the BTSs and the MSC is required. Integrate the mgcp-client and use osmo-mgw to switch the RTP streams. Depends: osmo-mgw Ib5fcc72775bf72b489ff79ade36fb345d8d20736 Depends: osmo-mgw I44b338b09de45e1675cedf9737fa72dde72e979a Depends: osmo-mgw I29c5e2fb972896faeb771ba040f015592487fcbe Change-Id: Ia2882b7ca31a3219c676986e85045fa08a425d7a
2017-11-02Check OML state per-BTSMax2-1/+1
To properly decide if a given OML link is degraded we have to use BTS-specific information about MO state. * move check function into BTS-specific part * add generic wrapper Related: OS#2486 Change-Id: Iddc7a4d20fbb95a6566eed1487a12733e5adb9e2
2017-10-11ctrl: add oml-uptime commandMax1-0/+2
Expose OML link uptime available via vts's "sh bts 0" command with the new "bts.0.oml-uptime" ctrl command. To avoid code duplication, move uptime computation into separate function and use it for both. Change-Id: Iec405aa949d6a38a9c8e64cd7ee4b49fd416835d Related: OS#2486
2017-10-09OML: consider RSL link stateMax2-0/+4
OML link state is available via vty ("sh bts 0" command) and ctrl ("oml-connection-state" RO variable). When showing OML link state, take into consideration RSL link state as well: if OML is up but RSL is missing show it as degraded. That's implemented via BTS model-specific functions (currently Sysmo- and Nano- BTS only) Change-Id: I5952fc59e4d82e0aa627ad91d20f964d9559a4c4 Related: OS#2486