Commit Graph

226 Commits

Author SHA1 Message Date
Andreas Eversberg 71f96f1b57 Use uniform log format for default config files
Related: OS#6272
Change-Id: I992ff466db768f625dd722d40829aa0301cc1705
2023-12-01 12:33:42 +01:00
Neels Hofmeyr 65e257effb systemd,manual: set LimitNOFILE=65536
A typical OS imposed limit is 1024 open FD, which is too low when there
are hundreds of BTS.

In systemd service file, set a super high limit of 65536.

In osmo-bsc's user manual, add section 'Configure limits' describing
this in detail.

Related: OS#6256
Change-Id: I26c4058484b11ff1d035a919bf88824c3af14e71
2023-11-30 18:03:31 +01:00
Oliver Smith 6766608231 recover BORKEN lchans for missing ACK scenarios
We already recover broken lchans where an ACTIV ACK or REL ACK arrives
late. Now add a recovery path for lchans that are broken because no
ACTIV ACK or REL ACK arrives at all.

Add a timeout of X28 = 30s to the lchan BORKEN state.
On timeout, attempt both a Channel Activation and a Channel Release. If
any of them is ACKed, we have successfully synced BTS and BSC's state.

After successful recovery, place the lchan back in the UNUSED state,
available for servicing subscribers.

If recovery is unsuccessful, just continue to attempt recovery every
further X28 seconds.

Patch-by: osmith, nhofmeyr
Related: osmo-ttcn3-hacks I9b4ddfc4a337808d9d5ec538c25fd390b1b2530f
Related: OS#5106
Related: SYS#6655
Change-Id: Ic4728b3efe843ea63e2a0b54b1ea8a925347484a
2023-11-27 16:33:25 +00:00
Matan Perelman 1c7eb78896 control.adoc: Update with recent changes
Change-Id: Iea1a416b958e28b95bc881b4ebf0568b43447fec
2023-07-21 11:03:53 +00:00
Matan Perelman 24e01a8225 control.adoc: Remove short-name and long-name
Those options don't actually exist in the CTRL interface!

Change-Id: Ic30807fc9ef6b586d040b81c88e4a8d2a76aa0a6
2023-07-21 11:03:37 +00:00
Pau Espin 9dc7211880 Write explicit role & sctp-role fields in ASP configurations
Change-Id: I9015c49cc52c75c6db986de2e3ac68529e5e4f9c
2023-06-08 19:37:13 +02:00
Pau Espin 5b60a0c8b5 UserManual: Include sigtran*.adoc from osmo-gsm-manuals.git
They were only included in osmo-stp so far.

Change-Id: I004ca2ef70e7f32c83d14d90849cf13f3d1a2cdd
2023-05-26 14:09:23 +02:00
Harald Welte ea7b53850b cosmetic: Clarify language ip.access nanoBTS vs. all IPA Abis/IP
Don't explicitly mention ip.access/nanoBTS if we actually want to refer
to all BTSs implementing an IPA-style Abis/IP interface.

Also, remove some bogus "is_ipa_abisip_bts(bts) || is_osmobts(bts)".
is_ipa_abisip_bts includes osmobts.

Change-Id: I31696d9a21a799511741a561085686cfa0728f93
2023-05-08 06:28:52 +02:00
Vadim Yanitskiy c8994ea6f7 doc/{examples,manuals}: remove dummy 'gprs nsvc 1'
Change-Id: I976471ad15dbb7be832dc1a87ca794009ee1aa7c
Related: OS#5979
2023-03-31 14:02:15 +00:00
Philipp Maier 2365db4856 doc: bts-examples: discuss Ericsson RBS EGPRS configuration
Add a configuration file example to illustrate how exactly EGPRS is
configured on ericsson RBS BTSs.

Related: OS#5198
Change-Id: I2fb5b4d9300b16b0fac48f33b5db81442ab25031
2023-03-24 14:20:42 +01:00
Philipp Maier f99952c2b0 examples: update erissson GPRS config files
The example config files that illustrate how to set up GPRS/EGPRS using
a BSC co-located PCU do not have any of the general GPRS parameters set.
Lets add a gprs prameter block to both of them.

Related: OS#5198
Change-Id: Ifc538940fadca08d03a36bf6a28392f22640493d
2023-03-24 14:20:42 +01:00
Philipp Maier ccd69e9b2f doc: running: Describe how to configure a co-located PCU
The manual does not yet mention the possibility to configure a BSC
co-located PCU. Lets add a short description to the chapter
Running OsmoBSC, Configure primary Links that enables users to get an
idea where exactly the BSC co-located PCU has its place in the RAN
infrastructure and which links it is connected with. Also give a short
example how to setup the unix domain socket path.

A more detailed description, especially about the timeslot configuration
will be added with a follow up patch for bts.adoc

Related: OS#5198
Change-Id: I3af3cd8ef7099bb94f4cb25513e9dfdc5fcc1b5a
2023-03-24 14:20:42 +01:00
Philipp Maier 4743ea578c bts: bts: Explain Ericsson's interface switch (IS)
The built in interface switch in ericsson RBS base stations no where
explained. From the example configuration files alone it is not possible
to understand how the IS configuration works. Let's add a chapter that
explains how the IS configuration works.

Related: OS#5198
Change-Id: Ib6ebd7fdfe9063c0d8cacf53ffd27f6099d9038a
2023-03-24 14:20:42 +01:00
Neels Hofmeyr 25bbe8895c add location_services_fsm_bsc.dot
Change-Id: I3bdcc90c59459473a5f2e06d9018a2a98147a6b9
2023-03-22 09:58:47 +00:00
Philipp Maier 64c0e6e11c doc: overview: replace section TRAU mapper / E1 sub-channel muxer
The manual contains a section about a TRAU mapper / E1 sub-channel
muxer. This section seems to be copied from the OsmoNITB manual. In
OsmoNITB everything was integrated in one binary, now dealing with TRAU
frames is the task of the MGW. Let's remove the section but still leave
a word about how Speech traffic is handled/relayed by OsmoBSC.

Change-Id: If33589feb80e1b29b4f841b678fe5329b8c06a76
2023-03-21 15:09:38 +01:00
Philipp Maier 563652890c doc: add sample configuration for GPRS with ericsson RBS
This patch contains a sample configuration for the 64K and the 16K CCU
mode.

Change-Id: I923608d4edc28b02e882c5f04851a29fc11bad4e
Related: OS#5198
2023-03-20 10:44:22 +01:00
Philipp Maier ecf825dc08 pcu_sock: activate/deactivate PDCH on pcu reconnect
When the PCU is disconnected while the BSC keeps running the PDCH should
be closed. Also the PDCH should be reopened when the PCU is
reconnected.

Change-Id: I9ea0c53a5e68a51c781ef43bae71f947cdb95678
Related: OS#5198
2023-03-07 12:54:58 +00:00
Oliver Smith 41ede5345c requires_voice_stream -> ch_indctr
Use the full gsm0808_chan_indicator value throughout the lchan related
structs (assignment_fsm_data, gsm_lchan, lchan_activate_info,
lchan_modify_info) instead of reducing it to the boolean
requires_voice_stream.

This is needed so we don't lose the information whether an lchan was
requested for data or speech (both need an rtp stream).

Add a new bsc_chan_ind_requires_rtp_stream function and use it in
conditionals like the previous requires_voice_stream.

Related: OS#4393
Change-Id: I1538c1e6d5cd61559af7c1e2860afd0269dda367
2023-03-06 10:23:30 +01:00
Neels Hofmeyr 071446d1b0 doc: add codec_resolution.msc
Illustrate the various factors that influence picking a codec for a 2G
voice call in osmo-bsc.

Change-Id: I3d63a0d587a43fc18ea54b3982800b19b4d50a08
2023-03-04 22:44:10 +00:00
Neels Hofmeyr 7214e56b49 VTY,CTRL: add pchan dynamic/{osmocom,ipaccess}
We already use "OSMO_DYN" as C name for "fully dynamic" timeslot config,
when working with osmo-bsc.cfg I dearly miss this short name, it is a
pain / has become ridiculous to write 'tch/f_tch/h_sdcch8_pdch'.

Introduce 'dynamic/osmocom' and 'dynamic/ipaccess' as default names for
our dynamic timeslots on VTY and CTRL. The old 'tch/f_tch/h_sdcch8_pdch'
and 'tch/f_pdch' are still supported.

Change-Id: I37719edd867c777d1ce944b8e2f1efffac38f00e
2023-03-04 22:44:10 +00:00
Neels Hofmeyr 7747fecdbe examples: osmo-bsc-minimal.cfg: drop codec-list
A new VTY test is coming up that includes testing the default codec-list
setting. The VTY tests are using osmo-bsc-minimal.cfg, so let's not
overwrite the compile time default for codec-list.

Also, there is no need to define a codec-list, so it is actually minimal
to omit it.

Change-Id: I01bee711f21023e2eab0688f45ff68f81afe1831
2023-03-01 22:03:41 +00:00
Neels Hofmeyr fa5a5f050b doc: add mscpool-attach.dot
Change-Id: I4ffe0997be3d91a2a1d84998c56cba1c4eb30852
2023-02-02 10:20:39 +00:00
Pau Espin 02ec227b1f doc: running.adoc: Fix typo in MGW pinning section
Change-Id: If6651bea097790bbf4b536e762ce55ed3dcc9d75
2022-10-20 16:34:29 +02:00
Pau Espin fa3260fcf9 doc: Use mgwpool.adoc from osmo-gsm-manuals.git
The adoc file has been moved to osmo-gsm-manuals.git so that it can be
included by other apps supporting MGW pooling from libosmo-mgcp-client,
such as osmo-msc and osmo-hnbgw.

Related: SYS#5987
Depends: osmo-gsm-manuals.git Change-Id Ieda0d4bfe6fc90da6e19c791d8ec2da89427ba3b
Change-Id: Icaee61905fbefe4632b562603fce393b70a114b1
2022-10-20 16:16:51 +02:00
Pau Espin 2e38ec231e doc: Generalize mgwpool.adoc and move BSC-specific sections to runnning.adoc
This is a preparation commit before moving mgwpool.adoc to a share place
(osmo-gsm-manuals.adoc) so that other apps like osmo-msc and osmo-hnbgw
can also include this section.

Related: SYS#5987
Change-Id: Id0d292506e8b2a888c8d7a682a38db80e9d0933a
2022-10-20 16:09:43 +02:00
Pau Espin dc2f4f9bbe Use new mgcp-client VTY commands under mgw node
New VTY commands have been added recently to the "mgw" node which drop
the redundant "mgw" prefix on each fo them.

Depends: osmo-mgw.git Change-Id: Id55af13d2ecde49d968b9dca6a2f8108a17ec484
Related: SYS#5987
Change-Id: I71e49cb4d6c2fe54a895aab0b0ba5acc4e57c253
2022-10-19 13:17:29 +02:00
Pau Espin a02d780ffd Update examples to use mgw pooling VTY commands
Let's avoid guiding users towards the old deprecated VTY interface.

Line "mgw endpoint-range" is removed since it's nowadays deprected and
implemented as a NOOP.

Related: SYS#5987
Change-Id: Iff74a9efca2a0a2c38d5ac39df704b2b211fd906
2022-10-19 12:59:39 +02:00
Pau Espin 0690c5bc75 Introduce support for MGW-pinning per BTS
This feature allows pinning each BTS to a specific MGW from the
configured pool. The pinning can be soft or hard (strict). If strict
pinning is not set, the configured MGW is selected with priority, but
other MGWs can still be selected during each call setup if the
preferred MGW is found not available at that time, hence avoiding denial
of service for the entire BTS if that MGW goes down.
If strict mode is selected, the call will be refused if the configured
preferred MGW is not available at the time the call is set up.

It is useful to use this feature when Osmux is configured between
the BTS and the BSC and an MGW pool is in use. This way the BSC is
capable of grouping all the calls of a BTS towards one MGW, hence taking
advantage of the Osmux trunking optimizations to reduce link data usage
(AMR payload of several concurrent calls ending up sharing the same
underlaying UPD packet).
Furthermore, this allows the operator to intelligently spread load over
the MGW pool in order to avoid ending up with more than 256 concurrent
Osmux circuits on any of the co-located MGWs in the pool (maximum supported
at the moment).

Related: SYS#5987
Depends: osmo-mgw.git 5d8b5b093595e1203e288c3175c163c0994b1102
Change-Id: I9a7a5af72795faed0d12d9d73b59951b6a0e9c7d
2022-10-16 22:21:17 +02:00
Vadim Yanitskiy 8631189d9e power_control: add CTRL command for sending default params
There exists a VTY command for sending default power control params,
but so far there was no CTRL counterpart for it.  This patch adds a
SET command 'send-power-control-defaults':

  $ osmo_ctrl.py \
	--host 127.0.0.1 -p 4249 \
	--set "bts.0.send-power-control-defaults" 1

Similar to 'send-new-system-informations', this command takes an
arbitrary dummy value (required for SET), which is simply ignored.

Change-Id: Ib370bd97ee2d9f72f8bec553550b1792d1345387
Related: SYS#6138
2022-09-30 01:02:57 +07:00
Pau Espin 3dca75e1e2 doc: Document use of Osmux in IPA Abis against OsmoBTS
Related: SYS#5987
Change-Id: I41788f8d3bc29735cc30516f429311b73ba71910
2022-09-19 08:45:24 +00:00
Pau Espin 57c2e68da2 vty: Allow setting LAC as hexadecimal value
The LAC value currently configured is now printed as hexadecimal value
too.
It can still be entered as a decimal value in order to keep backward
compatibility, though the hexadecimal one is now preferred.

Related: OS#5631
Depends: libosmocore.git Ia2b7fbbf5502c28374c21dbff548232680da27d4
Change-Id: I9090d73ae9d39244b79b9dbafa1b164faebabc52
2022-09-19 08:44:25 +00:00
Pau Espin 82b69d831b doc: Fix typo in several diagrams
Change-Id: Iba99c106703a00b85ed54028ff1b398ea513d62d
2022-08-08 13:10:01 +02:00
Vadim Yanitskiy a019e9af8b lchan_select: implement dynamic selection mode for assignment
This change implements an additional channel allocation mode, which
can be employed during a TCH channel allocation for assignment.
Selection between ascending and descending order is performed
depending on pre-configured parameters:

* Uplink RxLev threshold and number of samples for averaging,
* C0 (BCCH carrier) channel load threshold.

This is useful in setups where Tx power of the RF carriers cannot be
adjusted +dynamically at run-time and thus BS Power Control cannot
be performed.  In such setups the BCCH carrier is transmitting at
relatively higher power than the other RF carriers.  The key idea
is to allocate channels in a smarter way, so that UEs with poor signal
would get channels on carriers with high Tx power, while UEs with good
signal could use carriers with lower Tx power.

Change-Id: I1b7a0d706976b73cc5c30a8714b830811addfe8d
Related: osmo-ttcn3-hacks.git Ia522f37c1c001b3a36f5145b8875fbb88311c2e5
Related: SYS#5460
2022-06-30 16:36:55 +00:00
Vadim Yanitskiy c2928ac269 lchan_select: allow different alloc order for assignment and handover
A follow-up patch implements a special channel allocation mode, which is
only working for assignment (basically TCH selection for a voice call).
This mode cannot be employed for initial CHANNEL REQUEST or handover due
to the absence of an already established lchan.

Adding this mode to the existing VTY command syntax would be confusing:

  channel allocator (ascending|desscending|dynamic)
                                           ^^^^^^^

so this patch extends the VTY syntax in a way that it becomes possible
to configure different channel allocator modes for different cases:

  OsmoBSC(config-net-bts)# channel allocator mode ?
    set-all     Set a single mode for all variants
    chan-req    Channel allocation for CHANNEL REQUEST (RACH)
    assignment  Channel allocation for assignment
    handover    Channel allocation for handover

The old command syntax, which is basically 'set-all', is kept for
backwards compatibility, but marked as deprecated.

Change-Id: I3ae73b36ee9433cc768376b56f0765e5f416162f
Related: SYS#5460
2022-06-30 16:36:41 +00:00
Vadim Yanitskiy ff9d3a64dc lchan_select: prepare a list of timeslots once, iterate over it
The lchan_avail_by_type() attempts to find an unused lchan for the
given GSM_LCHAN_* value: TCH/F, TCH/H, or SDCCH.  This is achieved
by looking up timeslots with compatible GSM_PCHAN_* values.

For instance, finding an unused SDCCH lchan may involve:

* attempt to find a timeslot with pchan=GSM_PCHAN_CCCH_SDCCH4,
* attempt to find a timeslot with pchan=GSM_PCHAN_CCCH_SDCCH4_CBCH,
* attempt to find a timeslot with pchan=GSM_PCHAN_SDCCH8_SACCH8C,
* attempt to find a timeslot with pchan=GSM_PCHAN_SDCCH8_SACCH8C_CBCH,
* attempt to find a timeslot with pchan=GSM_PCHAN_OSMO_DYN (switched),
* attempt to find a timeslot with pchan=GSM_PCHAN_OSMO_DYN (not switched).

Each attempt involves iterating over all timeslots of each TRX,
either in ascending or in descending order (see _lc_dyn_find_bts()
and _lc_find_trx()).

This patch simplifies the lookup logic by preparing a monolithic
array of timeslot pointers once, and then using that array for
each GSM_PCHAN_* lookup attempt.  This change is required for the
upcoming dynamic channel allocation mode, which is fa more complex
than the existing ascending/descending ones.

A side effect of this change is that the interference aware mode
of allocation is not limited by the scope of a single TRX anymore.
Interference levels are now compared within the scope of the whole
BTS, so that lchans on the other TRXes may be picked if they are
better according to the interference reports from the BTS.

Change-Id: I7ccc56856bfd40fd7c63b7437736de60c2b516ff
Related: SYS#5460
2022-06-30 16:36:41 +00:00
Vadim Yanitskiy b06fc25539 doc/manuals: document channel allocation parameters
Change-Id: Ib77eb3d4ad896f1e37b52e549ca3c24f4980240b
Related: SYS#5460
2022-06-23 05:48:04 +07:00
Harald Welte 80cd4555b0 Add new Manual "OsmoBSC CBSP Protocol Specification"
This document decribes the level of CBSP support in the codebase.

Related: SYS#5945

Change-Id: I2e18e167281fac3abaf380089ff883738ebaa0a0
2022-05-15 10:11:28 +02:00
Oliver Smith 159246f94f Check VTY config against features reported by BTS
* Don't copy features for osmo-bts and nanobts initially, wait until
  BTS reported its features
* Checks for BTS features in VTY cmds: pass if features are not known
  (not yet reported by the BTS), fail if the feature is missing
* Once BTS reports its features, check relevant VTY config parts again

Related: SYS#5922, OS#5538
Change-Id: I7fca42a39a4bc98a6ea8b9cfab28c4bad3a6a0aa
2022-05-02 15:21:28 +02:00
Vadim Yanitskiy a41573994c doc/examples: add a confmerge file with example hopping parameters
This file was taken from docker-playground.git, and this is basically
what we use when running the ttcn3-bts-test with hopping enabled.

Change-Id: I205eb53901e06ee52dc64e050cfe2374cb9c771e
2022-04-01 06:33:42 +03:00
Vadim Yanitskiy caf091f465 doc/examples: add a multi-trx config config example
So far we had no multi-trx config examples at all.  Let's add one.
Use unique 'RSL TEI' for each TRX, as this simplifies analyzing the
Abis protocol traces.  Also use the new 'TCH/F_TCH/H_SDCCH8_PDCH'.

Change-Id: I20f86fa74dc4bd71538627ec59c5d2cd3678a089
Fixes: OS#4748
2022-04-01 06:05:36 +03:00
Vadim Yanitskiy 97ea5cb506 doc/examples: avoid using deprecated configuration commands
Change-Id: Id29fae10ec17eb3d0ac8534d8aebd7251a17577d
2022-04-01 06:05:36 +03:00
Pau Espin beed1365fa doc: bsc.adoc: Update timer info from code (gsm_network_T_defs)
Change-Id: I1652e6d53f568f606b692b16d4198d5209df2d9c
2022-03-02 17:34:43 +01:00
Philipp Maier 5cebdefed6 bts-examples: add example for E1 connected BTS
The manual lacks an example on how to set up an E1 connected BTS.
Especially the relation between trunk number and E1 line number is not
obvious.

Change-Id: I02f5d4fe059e5cc9c3ffc2e3636d812532c09239
Related: OS#5308
2021-12-06 19:03:37 +01:00
Vadim Yanitskiy c122c10f34 [overpower] By default, permit only for speech channels using AMR
Change-Id: I087025f9db59348f2f70d4a291f8d887644d6b17
Related: SYS#5319
2021-11-15 11:59:03 +00:00
Vadim Yanitskiy 335361fbeb [overpower] Allow configuring specific channel mode(s)
Change-Id: I34d29d7d0f66c629367f3d6e8a660e199ecbe080
Related: SYS#5319
2021-11-15 11:59:03 +00:00
Vadim Yanitskiy fa3c917bb1 doc/manuals: fix wrong CI in the inter-BSC handover diagram
The 'bts0' in BSS 'Beta' has LAC=42/CI=3.  There is no LAC=42/CI=6.

Change-Id: I0f2e351e802311d4601579c2e755ca13a9056348
2021-11-14 19:35:00 +03:00
Vadim Yanitskiy a507875ae7 doc/manuals: add documentation for Temporary ACCH Overpower
Change-Id: Ie995dac6c7083a2b0b4d582f71f55b3736381edb
Related: SYS#5319
2021-11-12 22:52:02 +03:00
Vadim Yanitskiy 5944ff07a8 gsm_data: use ascending order for interference boundaries
It's more logical to have the boundaries sorted in ascending order:

  * band 1 represents lowest interference levels,
  * band 5 represents highest interference levels.

Change-Id: Ie9bf4bf0c89418685b8ea5096332d22cfba7c521
Related: SYS#5313
2021-11-10 14:45:12 +03:00
Vadim Yanitskiy dd0dabbffc doc/manuals: add documentation for interference reporting
Change-Id: I3c15b11bbcba0811e3a15fe64365067bf8ad0dae
Related: SYS#5313
2021-11-10 14:42:17 +03:00
Philipp Maier 9cb639daad control.adoc: comment out fixme note
The fixme note:
"FIXME: add variables defined in src/ctrl/control_if.c?"

is not directed at the reader of the manual. It should stay in the
source, but it should not be visible in the pdf. Lets comment it out.

Change-Id: Id68f53d18f0873af3c07a0ae52cd12bc94bc0b96
2021-11-03 17:25:28 +00:00