Commit Graph

229 Commits

Author SHA1 Message Date
Neels Hofmeyr 79176bf50b resurrect meas_feed.c from openbsc.git history
meas_feed.c used to live in libmsc, to send out measurement reports to external
entities for evaluation. When splitting osmo-bsc and osmo-msc from openbsc.git,
meas_feed.c should have moved to osmo-bsc.git, but was dropped with libmsc.

Re-add the old meas_feed.c now into libbsc. This is the latest version that
existed in libmsc, and will not compile as-is here. Modifications to
incorporate in the osmo-bsc build will follow with subsequent patches.

Change-Id: Ic070d82e61c122061fe7297a8c5aabbbcef6b301
2018-05-03 15:26:32 +02:00
Stefan Sperling 7b70926ff9 flush paging when RSL link is dropped
Flush the paging queue if the link to TRX 0 is dropped from a BTS.
This should prevent stale paging requests sent to the BTS when it
disconnects or reconnects, as seen in the TTCN3 BSC_Tests test suite.

Also, add entries to the log when RSL or OML links are dropped so
that related error messages in the log can be interpreted in context.

Change-Id: If4401c1139cd01faf5ff374301a9a701898c3777
Related: OS#2901
2018-04-24 16:19:19 +00:00
Stefan Sperling 0eb9169567 extend documentation of paging_flush_bts()
Document the semantics of a NULL msc argument.

Change-Id: Ib3f6fd4e4e6108f03d688eba2416c0714393e6e9
Related: OS#2901
2018-04-24 14:26:11 +00:00
Pau Espin be32b4c80b abis_rsl.c: Clean ericsson specific imm assign code
Move to its own function, store pointer to proper header format and use
the already defined IE define from libosmocore instead of using
hardcoded values.

Depends on: Change-Id I7cb65f3ff1cfdbe4eee97b7545bcd13a38c72e25

Change-Id: I845fd3f0c6ff31f268f68a31e1d55981f7ec6129
2018-04-23 11:59:01 +02:00
Pau Espin 286212c8de abis_rsl.c: abis_rsl_rx_cchan: Print msg type name for unimplemented messages received
Change-Id: I2e2e40bcb9365420f7e79d8d954505b0d2376bed
2018-04-23 11:58:31 +02:00
Stefan Sperling c04d40477a properly skip paging is OML link is down
If the OML link is found down while a paging request is issued,
no paging message is sent. However, we were still counting such
pagings as an actual attempt, and counted them towards the number
of available slots on the paging request queue.

Move the OML link check to the caller of page_ms() where the
accounting steps can be properly skipped as they should be.

Change-Id: I5b6db681da7d45c49e1f2f99d7789c8a29372ef3
Related: OS#2901
2018-04-19 15:49:50 +00:00
Pau Espin fa422556ad chan_alloc.c: Fix log var formatting issues
Change-Id: I7a5e5d26f250f954853c12cfd4de08fed68c178e
2018-04-19 14:31:17 +02:00
Philipp Maier 1f4851e703 gscon: fix assignment of signalling channels
On the assignmen of signalling channels, the voice related fields
do not play a role. However the function send_ass_compl() that
generates the assignment complete message is very strict about the
presence of those voice related parameters.

- Add a parameter to function send_ass_compl() to generate the
  different types of assignment complete messages

Change-Id: I316ebcb1f27b668e17fe48fff028e047aac47f76
Related: OS#2762
2018-04-17 13:16:43 +02:00
Philipp Maier 3ddb12d52e inform A-RESET FSM about MSC CR timeouts
The SUBSCR_CONN (GSCON) fsm starts a timer (993210, 20sec.) when the
CR to the MSC is made. When the timer reaches its timeout, then the
SUBSC_CONN FSM terminates. Such a timeout event is also an indicator
for a bad SCCP connection so we should call a_reset_conn_fail() to
inform the A-RESET FSM about the event in order to cause a BSSMAP
reset when too many timeouts occurr consecutively

- Call a_reset_conn_fail() when 993210 expires

Change-Id: I836a552f2ad37c160081246579f842d104d0dd35
Related: OS#3102
2018-04-14 19:01:57 +00:00
Stefan Sperling cda994edb2 fix handling of state changes in acc ramping
Take both the operative and administrative states into account
when deciding whether to start ACC ramping, and examine old/new
state values to avoid triggering ramping for a no-op state change.

This requires a fix to gsm_trx_lock_rf(): This function overwrote
the old administrative state of a trx before enqueuing a state
change request towards the BTS.
The BTS will confirm this request with an ACK, at which time a
signal is generated which the ACC ramp code listens to. We must
not overwrite the old state value until the signal has been handled,
otherwise the signal handler cannot tell what the old state was.

Tested with a virtphy setup, nanobts, and osmo-bts.

Change-Id: Ib3291439655598fb5ddc891a3e4cc35b0bad250f
Related: OS#2591
2018-04-13 14:42:57 +02:00
Stefan Sperling 4d3d2436cd only trigger acc ramping if trx 0 is usable and unlocked
Starting an ACC ramping process while TRX 0 is unusable or locked is
pointless. For instance, after loading a config with 'rf_locked 1'
for trx 0, the ramping process was started as soon as the BTS
established RSL, even though the air interface was still down.
ACC ramping should instead be triggered once TRX 0 is unlocked.

Change-Id: I054829a936f0aa1e3fa34fad6466a1cd6150e307
Related: OS#2591
2018-04-12 12:51:51 +00:00
Stefan Sperling b06c7a2537 trigger acc ramping on state-changed-event reports
Trigger ACC ramping not only when an Administrative State Change
ACK is received from a BTS, but also when an administrative state
change is reported for TRX 0 in a State Changed Event Report.

This should allow ACC ramping to work with any BTS which reports
an administrative state change to 'unlock' using either of these
OML messages.

Tested with a sysmobts and a nanobts.

The sysmobts only reports TRX locked/unlock changes in Administrative
State Change ACKs, not via State Changed Event Reports.

The nanobts is known to send both of these OML messages in quick
succession, so do not re-trigger ramping if it's already in progress.

Change-Id: I097a113a3a63de02bcb8277020beb59cf485b176
Related: OS#2591
2018-04-12 09:38:59 +02:00
Stefan Sperling 0ad90b39b9 rename helper functions in the acc ramp code to avoid confusion
The word 'enabled' was used in two contexts: Whether ACC ramp is
enabled as a feature, and whether a particular access control class
is permantly allowed/disallowed via VTY configuration.

Rename some helper functions to avoid the use of the word 'enabled'
in the latter context.

Change-Id: Ia67e84270cd50f4c55b8cf616ca38b00482f765c
Related: OS#2591
2018-04-11 21:02:17 +02:00
Stefan Sperling 60ecdeffec trigger acc ramping based on trx rf-locked state
Make ACC ramping listen to network management signals and trigger
or abort ACC ramping based on the RF locked state of TRX 0.

This works as expected with a virtphy setup when RF lock state is
changed via VTY. However, this change still needs to be tested with
a nanobts. It's also not quite clear yet whether operational state
changes, as opposed to administrative ones, should be taken into
account as well.

Change-Id: I4124f1da3dadec003de45c1da8435506ee8f0a34
Depends: Ia25bff85d9e5c277da76bffa11d31972e9fdc323
2018-04-11 16:53:05 +00:00
Stefan Sperling ea33341cf7 ensure that acc_ramp_init() is only called once
There are plans to register signal handlers in acc_ramp_init(). Once we
do that, the acc_ramp_init() function should only be called once to
avoid duplicate signal handlers on the handler list.

However, the acc_ramp_init() function currently serves a dual-purpose:

 1) Initialize the acc_ramp structure for a bts
 2) Enable or disable ACC ramping

Add new functions to support use case 2, and call acc_ramp_init()
just once while reading the configuration file. The VTY commands
which enable/disable ACC ramping use the new APIs instead.

Also, rename acc_ramp_start() to acc_ramp_trigger() and tweak its
semantics so that it can always be called regardless of what the
current configuration settings are. This prepares us for triggering
ACC ramping upon events other than "RSL link-up".

Change-Id: Ia25bff85d9e5c277da76bffa11d31972e9fdc323
Related: OS2591
2018-04-11 16:53:05 +00:00
Pau Espin 8ae73375b8 libbsc: set_net_mcc_mnc_apply: Fix memleak on parsing incorrect mcc mnc
Change-Id: I43513e108dfba24efb091d56b3fdfdb0cd0af727
2018-04-11 16:52:49 +00:00
Stefan Sperling 53d40e078e only log actual access control class ramping changes
Silence log messages about no-op changes to access granted to access
control classes. For example, these always occur while configuration
files are being loaded.

Change-Id: I37580f4058f6e3a21d338234b1e22ea46f9538c6
Related: OS#2591
2018-04-10 16:25:26 +02:00
Stefan Sperling c0587d0da2 fix initialization of acc ramping
Remove a redundant call to acc_ramp_init() during bootstrap_bts().
ACC ramping state is already initialized during VTY config parsing,
and bootstrap_bts() accidentally disabled ACC ramping again even
if it was enabled in the configuration.

This bug was introduced in last-minute refactoring during
review of https://gerrit.osmocom.org/#/c/6324/ when the
acc_ramping_enabled flag was moved from struct gsm_bts to
the acc_ramp structure itself.

Also remove an acc_ramp_init() call in bootstrap_rsl().
It is no longer needed as it serves no purpose other than
initializing the bitmasks of barred ACCs. To ensure that
ACC ramping configuration provided to the BTS via system
information stays correct, we move the call to acc_ramp_start(),
which has the same effect on barred ACCs, further up.

Change-Id: Ib7d99c9d3d5d424e21bb7710f719c42f9aef3e95
Fixes: 6442e4327b
Related: OS#2591
2018-04-09 17:38:56 +00:00
Stefan Sperling 5b6aa650f1 fix a format string error in bts_update_t3122_chan_load()
In a debug log message, an unsigned 64-bit value was printed with
%lu but it should be printed with PRIu64 from inttypes.h instead.

Change-Id: I09bb519e68886e650647b1369fd49d1964e76c7e
2018-04-09 15:04:24 +02:00
Harald Welte 0383a09131 "show timeslot": Show dynamic PDCH state also for Osmocom-style dyn PDCH
So far we only used to show the current mode of the timeslot for IPA
style dynamic PDCH, but not for osmocom-style.

Old output for osmocom-style dyn PDCH:

BTS 0, TRX 0, Timeslot 6, phys cfg TCH/F_TCH/H_PDCH, TSC 7
  NM State: Oper 'Enabled', Admin 'Unlocked', Avail 'OK'

new output with this patch:

BTS 0, TRX 0, Timeslot 6, phys cfg TCH/F_TCH/H_PDCH, TSC 7 (PDCH mode)
  NM State: Oper 'Enabled', Admin 'Unlocked', Avail 'OK'

where "PDCH mode" changes from "NONE mode" to "TCH/F mode" to "TCH/H mode"
depending on the current state.

Change-Id: If5044d6bec76b869bd6a7c0260a4c77e229dcd0d
Related: OS#3099
2018-04-07 19:02:33 +02:00
Harald Welte 0a405f13fc Start Dynamic PDCH Initialization after RSL is up
We used to start the dynamic PDCH initialization right after the
respective OML initialization of the related timeslot.  However, this
is problematic as the RSL link may very well not even be up yet at
that point.  So let's do this at RSL link esetablishment time, not
from OML.

Change-Id: I8ac30ca075a1db4b624dc38a423d844d705fda7e
Closes: OS#1841
2018-04-07 11:35:12 +02:00
Stefan Sperling 44311ea6e9 Generate the S_L_INP_TEI_UP signal earlier.
The S_L_INP_TEI_UP signal was generated when the first message from a BTS
arrives on the OML/RSL link, rather than when the OML/RSL link comes up.
Instead, generate this signal when the link is brought up, so we
intitialize state regardless of how a particular BTS behaves.

Tested with osmo-bts-virtual and virtphy/mobile programs,
and with a sysmobts.

This was already committed in faf0982ae2
but subsequently reverted in 383a059a12
because it introduced a regression. The underlying problem causing this
regression has now been addressed by https://gerrit.osmocom.org/#/c/7462/
(libosmo-abis commit 49917c129b1456585258b0ebe89a513ecef823a8).

Change-Id: I78a152671a00b95c997830f7161fca92bb898fa3
Depends: I52f7c903212b38e9c87e4d45e52b231b6f1ae9f5
Related: OS#2719
2018-04-07 09:01:05 +00:00
Neels Hofmeyr 8206f20f89 move init from gsm_bts_alloc_register() to gsm_bts_alloc(); fix gsm0408_test
gsm_bts_alloc() ought to do all static initialization, so that e.g. unit tests
can use an initialized bts struct that is fully usable, just not registered at
the gsm_network.

For example, two INIT_LLIST_HEAD() and various system information data pointers
(pointing to proper places within the same bts struct) should definitely never
be omitted.

This fixes the remaining errors of gsm0408_test's SI tests, as revealed by a
sanitizer build using gcc (Debian 7.3.0-12) 7.3.0.

Fixes:

  ../../../../src/osmo-bsc/src/libbsc/system_information.c:613:3: runtime error: null pointer passed as argument 1, which is declared to never be null

Initializing the bts->si_common.rach_control results in different expected
bytes for SI2. The initialized values are

  bts->si_common.rach_control.re = 1; /* no re-establishment */
  bts->si_common.rach_control.tx_integer = 9;  /* 12 slots spread - 217/115 slots delay */
  bts->si_common.rach_control.max_trans = 3; /* 7 retransmissions */
  bts->si_common.rach_control.t2 = 4; /* no emergency calls */

Causing a change to e5 04. 04 is t2 = 4, and the remaining values are verified by:

  uint8_t re :1,
           cell_bar :1,
           tx_integer :4,
           max_trans :2;

  >>> hex(1 + (9 << 2) + (3 << 6))
  '0xe5'

Change-Id: I13ef24bbe0f1fbe49465e67a0b67d6fd69fff3b1
2018-03-28 18:59:48 +02:00
Neels Hofmeyr cf4a5735e6 range_enc_arfcns: avoid runtime error on zero size
If size <= 1, avoid allocating arfcns_left[size / 2], which results in a zero
size and causes, with gcc 7.3.0 sanitizer, runtime errors:

../../../../src/osmo-bsc/src/libbsc/arfcn_range_encode.c:95:6: runtime error: variable length array bound evaluates to non-positive value 0
../../../../src/osmo-bsc/src/libbsc/arfcn_range_encode.c:96:6: runtime error: variable length array bound evaluates to non-positive value 0

This fixes some of the errors of gsm0408_test, as revealed by a sanitizer build
using gcc (Debian 7.3.0-12) 7.3.0.

Change-Id: Idab2a194fb9d7c41ed3367f935080eaae4ce367f
2018-03-28 18:59:04 +02:00
Philipp Maier ecb0308e74 gscon: fix illegal state transitions
The GSCON fsm has two illegal state transions. The transions
themselves are logically legal but theur respective entries
in out_state_mask are missing.

- remove unnecessary transition from ST_ACTIVE to ST_ACTIVE
- Add ST_CLEARING to the out_state_mask of ST_WAIT_HO_COMPL

Change-Id: I165c3e8b4b268b50e5f4a482b0fe890e940637b3
Closes: OS#3109
2018-03-27 11:31:47 +00:00
Pau Espin a9e4268a0a paging: paging_request_bts: Fix wrong return value
Change-Id: I48f5efbcddd98e15256edfca06ba0ae6acb5bab1
2018-03-26 18:33:35 +02:00
Pau Espin cf48c54e47 bsc_vty: Fix uninitialized var false positive on gcc 7.3.1
Change-Id: If2b315d76081f7ef5f2faf07c502f20196ba6a09
2018-03-26 18:20:34 +02:00
Pau Espin 39fb1fb916 libbsc: nokia_site: Fix uninitialized return val
Fixes following compilation warning:
bts_nokia_site.c:1248:9: error: ‘ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
  return ret;

This could happen if parameter len is passed with value 0.
If we reach the end of the function, it means everything went fine, so
we can return 0 instead of using ret, which is only used to store error
code before returning.

Change-Id: Ic60c8c632a6ddadb8f197d56cc68c2dbfc121d05
2018-03-26 18:10:15 +02:00
Harald Welte ead291aaf2 bssmap: State correct speech codec in ASSIGNMENT COMPLETE
Correctly compute the TS 48.008 "speech mode" (codec) for AMR on TCH/F.

There are way too many different ways how to express a given voice
codec.  There are two different schemes in TS 48.008 alone, plus one
on TS 48.058 and one in 04.08 / 44.018.  Let's avoid unneeded
conversion (that we might get wrong) and avoid storing information in
a sub-struct of the lchan if we can simply derive it from the lchan
at the time we need it.

Also, move BSSAP related encoding/conversion functions closer to the
user (osmo_bsc_bssap), rather than in libbsc.

Without this patch, TCH/F with AMR was erroneously reported as TCH/H
with AMR in the BSSMAP ASSIGNMENT COMPLETE.  After this patch, it's
reported correctly.

Change-Id: I6feebfae77fdc93a7ce333a25dd9b9267c5a4a2e
Related: OS#3094
Related: OS#3095
Related: OS#3096
2018-03-22 15:15:12 +00:00
Harald Welte 6900f81236 GSCON FSM: Fix argument order when calling gsm0808_assign_req()
The first argument is the channel mode (codec), the second one is
a flag whether or not it's a full-rate channel.

Before this patch the two arguments are reversed, resulting in
* all assignments being TCH/F in general
* all assignments have FR1 as codec, as the full_Rate=1 is interpreted as FR1

Change-Id: I80f2a016a7646252bce8d86ed0bab236f3adbfca
Related: OS#3094
2018-03-22 15:15:12 +00:00
Philipp Maier 70fcde63a1 Cosmetic: fix missing semicolon after osmo-assert
- add the missing semicolong,
- correct wrong indentation caused by the missing semicolon

Change-Id: I9a1144b70ab82156175c6cdee32a6d22b4b53539
Related: OS#2823
2018-03-22 12:55:46 +00:00
Philipp Maier 393165cb67 cosmetic: fix incomplete sentence in comment.
Change-Id: I6a04811704750cf715e72eba2959d08e761ced29
Related: OS#2823
2018-03-22 12:55:44 +00:00
Philipp Maier 8ff02fc065 cosmetic: remove needless fixme note.
Change-Id: I4860412f8228756f7cd5669c4f6c7d845904e36b
Related: OS#2823
2018-03-22 12:55:43 +00:00
Philipp Maier 4be98dc5d6 cosmetic: fix argument order of forward_dtap()
The order of the arguments for forward_dtap() differs from
submit_dtap() and sigtran_send()

- bring arguments into a uniform order for all three functions

Change-Id: Ida77c82e600f99d690ffa1850450925359e33ae8
Related: OS#2823
2018-03-22 12:55:43 +00:00
Philipp Maier 458d8a19c9 cosmetic: remove unused enum members
The enum gscon_fsm_event has three unused members.

- remove GSCON_EV_RR_HO_ACC, GSCON_EV_RR_HO_COMPL, GSCON_EV_RR_HO_FAIL

Change-Id: I301f7160b9ec8380849f9c9906b41c121a54f49f
Related: OS#2823
2018-03-22 12:55:40 +00:00
Neels Hofmeyr da5b09a08e cosmetic: abis_nm: use osmo_cell_global_id, parse 3-digit MNC
Instead of a local redefinition, use osmo_cell_global_id.

This change is cosmetic because the decoded PLMN is currently actually never
used.

Change-Id: I38ac98a4d25159cfd4f686efbfbaf8f00625a6d8
2018-03-22 04:13:09 +00:00
Pau Espin 9d075ea6f7 pcu_sock.c: Avoid breaking strict-aliasing on ptr derreference
Fixes following warning:
pcu_sock.c: In function 'pcu_rx_data_req':
pcu_sock.c:406:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   tlli = *((uint32_t *)data_req->data);
   ^

Change-Id: I5c93487c72d15b061e73ed4f9acbf2e77dec967a
2018-03-18 17:31:49 +00:00
Harald Welte f94cbf607b RR: Send RR STATUS in case of unsupported/unknown message
This fixes BSC_Tests.TC_err_84_unknown_msg

Related: OS#2903
Change-Id: I7ecb48971c6a162c7f4c749d128c31d0dbc4916f
2018-03-17 21:46:56 +01:00
Harald Welte 4a1580b7ff paging: Unify formatting of log messages with (bts=%d) prefix
Change-Id: I3eabe8b7553711a4de02fe87994163bfe8955509
2018-03-17 19:15:26 +01:00
Harald Welte fe00edae7f abis_nm: Improve and fix OML logging
This code is among the oldest surviving parts of old bsc_hack/OpenBSC,
and it shows.  We used arcane constructs to puzzle together log
messages, attempting to switch the log level between a LOGP and LOPGC
[which doesn't work], not properly used log levels in general, ...

Let's fix this up by using the new abis_nm_dump_foh() function
introduced in libosmocore I9b2c2afec28882b817d104d5b062651ade7aadd8

Change-Id: Ibd757836c39edd2d1ce59e528342f8923a9e75e4
2018-03-17 19:15:22 +01:00
Harald Welte e9903fdec4 cosmetic: Fix infinite number of formatting errors in gscon_fsm_states
I'm not sure how this got past our review :/  Guess I need to be extra
careful.

Change-Id: I8724cadda774c96f13f957d6d5e708bebb81e3ba
2018-03-17 17:14:28 +01:00
Pau Espin 55677de7a5 bsc_subscr_conn_fsm.c: Fix wrong param list passed to LOGPFSML
Fixes: 3561bd4897

Change-Id: Ifbf84bd3b64eea5bf315b83c95561e4534acc3b7
2018-03-17 01:12:55 +01:00
Pau Espin f73886992d bsc_api.c: bsc_handle_lchan_signal: Remove unused variable
Variable is unused since 3561bd4897.

Change-Id: I8ecff940ae848b965b26b7dc07153dd88b365fe4
2018-03-17 01:00:12 +01:00
Harald Welte 3561bd4897 introduce an osmo_fsm for gsm_subscriber_connection
In the current implementation of osmo-bsc, the subscriber connection is
not handled (very) statefully. However, there is some state keeping in the
code that handles the mgcp connection, but there are still to much loose ends
which allow odd situations to happen, which then lead severe error situations
(see also closes tags at the end) This commit adds a number of improvements
to fix those problems.

- Use an osmo-fsm to control the gsm_subscriber_connection state and
  make sure that certain operations can only take place at certain states
  (e.g let connection oriented SCCP traffic only pass when an SCCP connection
  actually exists.

  Remove the old osmo_bsc_mgcp.c code. Use the recently developed MGCP client
  FSM to handle the MGCP connections.

  Also make sure that stuff that already works does not break. This in
  particular refers to the internal handover capability and the respective
  unit-tests.

  See also OS#2823, OS#2768 and OS#2898

- Fix logic to permit assignment to a signalling channel. (OS#2762)

- Introduce T993210 to release lchan + subscr_conn if MSC fails to respond

  The GSM specs don't have an explicit timer for this, so let's introdcue
  a custom timer (hence starting with 99).

  This timeout catches the following situation:
  * we send a SCCP CR with COMPL_L3_INFO from the MS to the MSC,
  * the MSC doesn't respond (e.g. SCCP routing failure, program down, ...)

  The MS is supposed to timeout with T3210, 3220 or 3230.  But the BSC
  shouldn't trust the MS but have some timer on its own.

  SCCP would have a timer T(conn est), but that one is specified to be
  1-2min and hence rather long.

  See also: OS#2775

- Terminate bsc_subscr_conn_fsm on SCCP N-DISC.ind from MSC

  If the MSC is disconnecting the SCCP channel, we must terminate the FSM
  which in turn will release all lchan's and other state.

  This makes TC_chan_rel_hard_rlsd pass, see also OS#2731

  As a side-effect, this fixes TC_chan_act_ack_est_ind_refused(),
  where the MSC is answering with CREF to our CR/COMPL_L3.

- Release subscriber connection on RLL RELEASE IND of SAPI0 on main DCCH

  The subscriber connection isn't really useful for anything after the
  SAPI0 main signalling link has been released.  We could try to
  re-establish, but our best option is probably simply releasing the
  subscriber_conn and anything related to it.

  This will make TC_chan_rel_rll_rel_ind pass, see also OS#2730

This commit has been tested using the BSC_Tests TTCN3 testsuit and the
following tests were passed:

TC_chan_act_noreply
TC_chan_act_ack_noest
TC_chan_act_ack_est_ind_noreply
TC_chan_act_ack_est_ind_refused
TC_chan_act_nack
TC_chan_exhaustion
TC_ctrl
TC_chan_rel_conn_fail
TC_chan_rel_hard_clear
TC_chan_rel_hard_rlsd
TC_chan_rel_a_reset
TC_rll_est_ind_inact_lchan
TC_rll_est_ind_inval_sapi1
TC_rll_est_ind_inval_sapi3
TC_rll_est_ind_inval_sacch
TC_assignment_cic_only
TC_assignment_csd
TC_assignment_ctm
TC_assignment_fr_a5_0
TC_assignment_fr_a5_1_codec_missing
TC_assignment_fr_a5_1
TC_assignment_fr_a5_3
TC_assignment_fr_a5_4
TC_paging_imsi_nochan
TC_paging_tmsi_nochan
TC_paging_tmsi_any
TC_paging_tmsi_sdcch
TC_paging_tmsi_tch_f
TC_paging_tmsi_tch_hf
TC_paging_imsi_nochan_cgi
TC_paging_imsi_nochan_lac_ci
TC_paging_imsi_nochan_ci
TC_paging_imsi_nochan_lai
TC_paging_imsi_nochan_lac
TC_paging_imsi_nochan_all
TC_paging_imsi_nochan_plmn_lac_rnc
TC_paging_imsi_nochan_rnc
TC_paging_imsi_nochan_lac_rnc
TC_paging_imsi_nochan_lacs
TC_paging_imsi_nochan_lacs_empty
TC_paging_imsi_a_reset
TC_paging_counter
TC_rsl_drop_counter
TC_classmark
TC_unsol_ass_fail
TC_unsol_ass_compl
TC_unsol_ho_fail
TC_err_82_short_msg
TC_ho_int

Authors:
Harald Welte <laforge@gnumonks.org>
Philipp Maier <pmaier@sysmocom.de>
Neels Hofmeyr <neels@hofmeyr.de>

Closes: OS#2730
Closes: OS#2731
Closes: OS#2762
Closes: OS#2768
Closes: OS#2775
Closes: OS#2823
Closes: OS#2898
Closes: OS#2936
Change-Id: I68286d26e2014048b054f39ef29c35fef420cc97
2018-03-16 18:49:47 +00:00
Philipp Maier f27dbc5f88 bsc_vty: display bts features in show bts
The command show bts displays all kind of BTS related info, but it
does not display the bts features yet.

- display bts specific features in vty-command show bts

Change-Id: I650133563436349d4ce55f292ea683dbb2ae68d7
2018-03-12 10:18:07 +00:00
Philipp Maier 8c498fc26b gsm_data: use feature list from libosmocore
In order to avoid code duplication the feature list (bit masks) and
the desciptive value strings as well as the function to set and get
the feature bits have been moved to libosmocore.

- use feature list functionality provided by libosmocore

Depends: libosmocore Change-Id Id0c35aef11aa49aa40abe7deef1f9dbd12210776
Change-Id: I3e80517539cc5d0e5d8189d434a5e3cc0fdea1a0
2018-03-12 10:18:05 +00:00
Harald Welte d6012ffc19 sysinfo: Fix regression causing missing L2 Pseudo-Length in SI5/SI6
Fixes a regression in the code generating SI5* and SI6 on SACCH,
where the L@ pseudo-length is not part of the 'struct' definition
we have in gsm_04_08.h and hence has to be encoded manually into
the first byte of the SI buffer.

We were doing this correctly until April 2017, when the following
patch was merged:

> commit 6f0e50c833
> Author: Max <msuraev@sysmocom.de>
> Date:   Wed Apr 12 15:30:54 2017 +0200
>
>     Prepare for extended SI2quater support

This patch cacidentially overwrote the l2_plen that was just enoded,
as the 'struct' was no longer pointing to 'output' (si_buf+1), but
now directly to the start of the si_buf.

NOTE: The Wireshark RSL dissector (and more recently also LAPDm)
contain a similar bug, so the SACCH will not be decoded correctly
after applying this patch. Nevertheless, it's correct.

Change-Id: Ie8c907b1317566670aeb68f933ceefd552c17565
Closes: #3059
Related: #2963
2018-03-12 00:28:58 +01:00
Neels Hofmeyr 4ac7763bc7 pcu_if: implement support for 3-digit MNC
Add the mnc_3_digits member to the info_ind.

Instead of changing to e.g. osmo_plmn_id, add the flag separately, and instead
of bool use a uint8_t, to not raise any struct packing issues and clarify the
flag's size beyond any doubt.

Bump the PCU interface version to 9.
This is one part of the three identical pcuif_proto.h patches:
- I49cd762c3c9d7ee6a82451bdf3ffa2a060767947 (osmo-bts)
- I787fed84a7b613158a5618dd5cffafe4e4927234 (osmo-pcu)
- I78f30aef7aa224b2e9db54c3a844d8f520b3aee0 (osmo-bsc)

Depends: Id2240f7f518494c9df6c8bda52c0d5092f90f221 (libosmocore)
Change-Id: I78f30aef7aa224b2e9db54c3a844d8f520b3aee0
2018-03-11 00:45:45 +01:00
Neels Hofmeyr 7ec27564c9 cosmetic: typo in log: handover_decision2.c: 'measuements'
Change-Id: I8a92a03feb7dbef2bb008016310ec243226a7c7a
2018-03-08 03:33:21 +01:00
Neels Hofmeyr 7e52ae1e73 cosmetic: hodec2: log nr of neighbors in meas report
Rationale: explicitly indicate the case of zero neighbors.

Change-Id: I09ddfd5b09883ec0124fe485346d9ed26de454e8
2018-03-08 03:32:52 +01:00