aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-12-14Add new per-BTS "rsl:unknown" counter to count unknown RSL messagesHarald Welte2-0/+11
Change-Id: I268f222140fa5783e1d19f81fbd45614aaa4b8c4
2017-12-14Add per-BTS rate_ctr for total + failed number of RSL CHAN_ACTHarald Welte2-0/+8
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 Welte3-10/+23
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-14Fix per-BTS counter group indexHarald Welte1-1/+1
I discovered that the per-BTS counter group could only be requested for BTS 0 but didn't work for any further BTSs. This is a bug introduced in Change-Id I5bd9e6e333b1c396beae46630986b17e7f8b82ef where we introudce the per-BTS counters,t but allocate all of them with index '0'. Change-Id: I1b56f8d7b47597ed263e6808074483edca0895de
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-13paging: paging_flush_bts: be sure pending_requests is initalizedPhilipp Maier1-0/+2
The BSSMAP reset causes the paging requests to be flushed. When this happens right after startup then calling paging_flush_bts() may be called when the list bts->paging.pending_requests is not yet initalized, which causes a segfault. Call paging_init_if_needed() to be sure that the list is inizalized (like the other functions also do) Change-Id: I42ddbfdec6f9d74d858ad13cc38b5b64061d08dc
2017-12-13fix segfault upon release paging on BSSMAP Reset: init llistNeels Hofmeyr2-1/+8
Initialize the llist head gsm_bts->paging.pending_requests at the time gsm_bts is allocated, not only at paging_init_if_needed(). The gsm_bts->paging sub-struct is invalid as long as gsm_bts->paging.bts doesn't point back to bts. Hence the recently added iteration of gsm_bts->paging.pending_requests should have checked whether bts is NULL. The llist_head pending_requests is not initialized unless paging_init_if_needed() has been called (and paging.bts is hence set). However, this fix is a safer way to prevent errors like this in general. The segfault was introduced by d382bf63e2b7e28fe41c5310c26fe584f0356897 / If3f53d3bb66ad2dc02db823cb813590c6b59c700 Related: OS#2747 Change-Id: Idfafac4e2c0e0a241a62aecbbdc22be71febf840
2017-12-12Generate SI2bis Rest OctetsMax4-2/+20
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 Welte3-0/+29
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 Welte4-54/+28
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-11paging.c: add more documentation on what the functions actually doHarald Welte1-4/+45
This was created during code review towards some upcoming fix for OS#2736. However, it's not really related to that. Change-Id: I68d4fc8baaedd1d64cd628b2441c57ebc64ecebc
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 OctetsMax4-2/+22
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-10mgcp: cosmetic fixupsPhilipp Maier1-105/+39
- use unique enum/struct fsm struct names - use macro to shift bits in FSM description - use OSMO_STRINGIFY to generate the state names - remove duplicate logging of states and events - remove unnecessary space in log strings - prefix hexadecimal enpoint ids with - remove unnecessary log messages - rename bsc_mgcp_cause_codes_str to bsc_mgcp_cause_codes_names Change-Id: I663e03046cde3c786af72d15681bf7497330d7f9
2017-12-10OML: expand status reporting checksMax5-1/+22
* check GPRS state: if GPRS is enabled for the BTS but NSE, CELL or both NSVC are locked than report it as degraded * check TRX usability: use already available function to check that TRX is actually usable when reporting OML status via CTRL * fix tests linking: libbsc is using gsm48_create_mm_serv_rej() which is defined in libcommon-cs but neither libbsc itself nor tests using it are actually linked against libcommon-cs Related: OS#2486 Change-Id: I9dce1d3b0cabe149a90cfca58a3fe55f8d6a72bc
2017-12-09Remove 'msc' counter group from BSCHarald Welte2-59/+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 Welte7-46/+69
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-01cosmetic: use fsm pointer from parameter listPhilipp Maier1-39/+31
the parameter list of osmo-fsm callbacks contains a pointer to the fsm instance. Use this pointer instead of reaching out for mgcp_ctx->fsm. Change-Id: I05ff62e7e2de64c2dbf5ea2736f5e58faf16df0b
2017-12-01cosmetic: correct sourcecode formattingPhilipp Maier1-1/+2
add missing line break Change-Id: Ia117e4099046fefcf35ccb94400554062e667869
2017-12-01cosmetic: add missing log prefixPhilipp Maier1-6/+6
the log messages have prefixes that mark important phases (CRCX/BTS, etc...). Some lines lack the prefix. Add missing prefixes. Change-Id: Iea5ea9e54f4b5c998b1d5fe18a98a94abd7b728b
2017-12-01cosmetic: do not cast void pointerPhilipp Maier1-5/+5
remove the casting of void *data, just assign directly Change-Id: I2e37630e315b3602da2f14e2364bb76be9dd2894
2017-12-01cosmetic: remove duplicate loggingPhilipp Maier1-24/+2
The log output of the reset FSM duplicates lots of the built in FSM log output. Remove duplicate logging, use more expressive log messages where needed. Change-Id: Ia5af309207476291f88af47878dc1d32b2dada06
2017-12-01mgcp: do not fail silently on snprintf()Philipp Maier1-2/+1
The snprintf() that is used to compose the fsm name on an assignment request may cause a silent failure. The buffer is large enough to take the string under all circumstances. If snprintf() fails, this would mean we have some other serious problem. use OSMO_ASSERT in case the snprintf() fails, so the failure gets noticed. Change-Id: I3c36df8cfd0880c524244048a993cd136be41f56
2017-12-01mgcp: add missing switch casePhilipp Maier1-0/+8
In the beginning of the CRCX phase for the network does not distinguish between EV_MDCX_BTS_RES and EV_TEARDOWN, so a Teardown due to an error could be misinterpreted as a successful MGW response. Add missing case statement to distinguish CV_MDCX_BTS_RES from EV_TEARDOWN. Change-Id: I9bf49df167d94b33ad65d8b9382a01f160b5aec0
2017-12-01mgcp: use mgw assigned connection identifiersPhilipp Maier2-11/+20
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-12-01mgcp: use hexadecimal digits in endpoint namesPhilipp Maier1-1/+1
The current implementation of osmo-mgw parses the numerical digit inside the endpoint name as hexadecimal number. also use hexadecimal numbers in endpoint names. Change-Id: I64a970d300b7290d50ec84b0640d5a321d903f5e
2017-11-30auth: remove obsolete VTY commandsPhilipp Maier5-21/+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 Maier2-47/+0
remove obsolete vty commands: - token - auth-key - no auth-key Change-Id: I9101d750a424b8af46d603bc7c877229bbae8727
2017-11-30bssap: remove libosmo-legacy-mgcp dependancyPhilipp Maier1-4/+15
the functions mgcp_timeslot_to_endpoint() and rtp_calculate_port() which are used to calculate the port in the sccp-lite / non AoIP case are part of libosmo-legacy-mgcp. Unfortunately libosmo-mgcp and libosmo-legacy-mgcp cause problems when used at the same time. Replace the functions mgcp_timeslot_to_endpoint() and rtp_calculate_port() with a local helper function. Change-Id: Id10311332aeabd8fd3ba1922198e34708e04cef9
2017-11-29HO prep: pass gsm_network to gsm_bts_alloc() alreadyNeels Hofmeyr3-4/+5
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-29examples: add osmo-bsc-minimal.cfgNeels Hofmeyr1-0/+36
An upcoming VTY test requires a cfg that doesn't have handover values set. Prepare for that by adding a minimal BSC config. It is a version further stripped down from the Osmocom Network In The Box wiki page. Prepares-for: I00870a5828703cf397776668d3301c0c3a4e033a Change-Id: Ib68b550a0e9fbb7041e554f358054c0a7931404e
2017-11-29cosmetic: handover.h: use "#pragma once", declare structs, commentsNeels Hofmeyr2-8/+5
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-29compiler warnings: constify in abis_nm.cNeels Hofmeyr1-4/+5
Constify in- and output arguments for Parse Attribute Response Info chain to avoid compiler warnings, and more clearly indicate const data in the first place. Change-Id: Ib7d069fe1fda69e89dfd171cd76b1ed6d6db0ceb
2017-11-29compiler warnings: drop some unused variablesNeels Hofmeyr2-4/+0
Change-Id: I840b0cd8ee3e7c521e7c9053a992deeb9ec22ff4
2017-11-29cosmetic: mark gsm_objclass2mo as staticMax2-5/+1
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 signaturesMax4-11/+11
* 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-29cosmetic: bsc_vty: Document bvci reserved valuesPau Espin Pedrol1-0/+1
Change-Id: I7a4374c3619cb83ef8beef594281f887d9fbf70a
2017-11-29cosmetic: bsc_vty: Fix trailing whitespacePau Espin Pedrol1-2/+2
Change-Id: I7089062285c40ec11af479c98b43d1d407397c82
2017-11-29auth: remove obsolete VTY commandsPhilipp Maier7-64/+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_BSCMax3-117/+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 reportingMax3-3/+8
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 Pedrol6-3/+33
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 Pedrol2-10/+10
Change-Id: Ic0981fca96f4927717ca335be1dab00a5d17fd6c