Commit Graph

8682 Commits

Author SHA1 Message Date
Pau Espin d7afb4341e lb: Log name of unhandled sigtran primitive
Change-Id: I2d71fd347af404c025fc6b13e96f1964e685db05
2024-04-16 21:32:05 +02:00
Harald Welte 829986e06a README.md Add Forum + Issue Tracker sections
Change-Id: I0e9fc221fdf78ad94de7713b62473680ee7d58c2
2024-03-23 16:47:20 +01:00
Harald Welte 8c8e920eb7 README.md: Overhaul (more links, fix markdown formatting)
Change-Id: Id1e320439c052797cb9c6cda51b65cd2b9e9a3c4
2024-03-23 16:47:20 +01:00
Harald Welte bd3583ffbd Add funding link to github mirror
see https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository

Change-Id: I754edea2ed122b6056e0fc94056ec6d509299067
2024-03-23 16:47:20 +01:00
Harald Welte 85687bf176 CBSP: Port over to use osmo_io via libosmo-netif
Change-Id: Icce412e6ee69366c7b131c9bc1d51e8d44204917
Depends: libosmocore.git Change-Id I5e922c54b3431d759b38e81e55076125c5a34008
Related: OS#5755
2024-03-04 19:16:14 +00:00
Matan Perelman cc1ac21671 ctrl: Add lchan show to all ctrl levels
This new commands show information about logical channels:
    net.btsN.trxM.tsI.show-lchan.full
    net.btsN.trxM.show-lchan.full
    net.btsN.show-lchan.full
    net.show-lchan.full

Change-Id: I23c1a7e6f6679e3964e359fb202ffe6781a07e8a
2024-02-24 16:44:30 +02:00
Matan Perelman a5249dd96c ctrl: Add lchan show
This new command shows information about a logical channel using
net.btsN.trxM.tsI.lchanL.show.full

Change-Id: I5432800eae452b6df71a151a7649f228704ed0da
2024-02-20 12:41:07 +02:00
Harald Welte ea42371454 bsc_ctrl_lookup.c: Use AGPLv3, not GPLv2
I guess it must have been a mistake when introducing this file.
The entire project is under AGPLv3, it doesn't make sense to have
one single file under GPLv2.

As th entire git commit history only contains sysmocom employees,
I have the authority to re-license it even if GPLv2 was done
intentionally at the time. Let's change it.

Change-Id: I5e5385f7630b41f1c4ad9534dbb4551e597ad596
2024-02-19 20:47:27 +00:00
Harald Welte 3f1b81bcf4 Fix license header in various source code files.
IF we say "... under the terms of the GNU Affero General Public License"
then we cannot say "see the GNU General Public license" later on, that's
misleading and likely a copy+paste error somewhere.

The project license has always been AGPLv3-or-later.

Change-Id: I6b8ad5147ca76052213809e67856dcb80bff2b93
2024-02-19 20:47:27 +00:00
Matan Perelman d399e0c927 ctrl: Add ms power
This new command allows to control MS power level for a specific
logical channel using net.btsN.trxM.tsI.lchanL.ms-power

This patch also adds a lchan node to the ctrl interface.

Depends: libosmocore.git Ibf2786f668ee7e4f5b6a9ef43f2141cd2d79b4e2
Change-Id: I6f556b66011be6126d6bac31a14101ba37f81cc4
2024-02-17 11:07:46 +02:00
Matan Perelman 6b6714ba13 ctrl: Split bts_trx_ts_ctrl from bts_trx_ctrl
Besides from making the ts ctrl interface follow the convention
of being in its own file, it will be used in the next patch to add
a ctrl interface for lchan.

Change-Id: I9840bddd4eae409bc8373912d54b6bbfc9fc1c1a
2024-02-08 20:30:51 +00:00
Matan Perelman 88c051447a ctrl: Remove unused vty includes
Change-Id: Ib464d0be9df839740a648ff6747130c18d33455d
2024-02-07 15:28:45 +00:00
Vadim Yanitskiy a14b4a7379 abis_nm: fix -Wunused-but-set-variable (bug)
clang warns us about 'len' being set, but not used:  And this is

  abis_nm.c:2172:10: warning: variable 'len' set but not used [-Wunused-but-set-variable]
        uint8_t len = attr_len;
                ^

This is actually a bug, because in the case of NACK we append 2 more
bytes {NM_ATT_NACK_CAUSES, NM_NACK_OBJCLASS_NOTSUPP}, and we need to
pass the final length to fill_om_fom_hdr(), including those optional
two bytes.  Passing 'attr_len' (length of 'attr') is wrong.

Change-Id: I3ca8e761fdf99dd498a979ccc9d53c6c3e03e2cc
2024-02-05 14:45:09 +01:00
Pau Espin 0368a9e815 abis_nm_sw_act_req_ack: attr_len should be unsigned
Change-Id: I5c0ba76b5cc2464c7e362a850325c94770f38397
2024-02-05 14:45:04 +01:00
Vadim Yanitskiy 11d7ed2d9f abis_nm: misc/cosmetic changes to abis_nm_sw_act_req_ack()
Change-Id: I2849a22647805e7477d66055c18614a3a9f80748
2024-02-03 06:38:45 +07:00
Vadim Yanitskiy a885a77a1e lchan_fsm: fix -Wgnu-designator warnings printed by clang
Change-Id: I48baef2e2b31f639281a455b2c3b07fd4f7af591
2024-02-03 04:20:15 +07:00
Vadim Yanitskiy 08042c3b8a bsc_ctrl: do not overwrite rc in bsc_base_ctrl_cmds_install()
Change-Id: Ie4242be1d3e58d7e37938d9ccbeffcb2b442632f
2024-02-03 04:20:15 +07:00
Vadim Yanitskiy 3c92391c9d build: include README.md into the release tarball
Change-Id: I1dc8e6c4faca2761ae8caf73b1ee83233ed2c1e1
2024-01-26 23:30:27 +07:00
Andreas Eversberg 0c1ab7d82f Add vty commands "no gprs nsvc ..."
A switch (bool) is used to enable or disable NSVC 0 or 1. It is enabled
via any "gprs nsvc 0|1" command and disabled via "no gprs nsvc 0|1"
command. If it is disabled, it is treated as unconfigured, similar when
no remote IP or port has been defined.

Related: OS#6006
Change-Id: Ia112e86aa35f6a245d98ef1b3720c18835faeda6
2024-01-24 08:52:55 +00:00
Andreas Eversberg 9a730ee2d4 VTY: Add command `show bts brief`
This line shows all BTS an their OML states in a single line.
Additionally the uptime or downtime is displayed, if there was a connect
or disconnect of the OML link.

Related: OS#6018
Change-Id: I003fd32e589ddf53b7dd42089f904cfb598e3625
2024-01-24 08:52:55 +00:00
Andreas Eversberg f405db793e Also track downtime when OML link is lost
This will be used in a later patch to dertemine when a BTS became
offline.

Related: OS#6018
Change-Id: I1776099cbfef51af1d5a3a056fb0654abd7366a9
2024-01-24 08:52:55 +00:00
Vadim Yanitskiy b2f11dbcae Remove unused OpenBSC leftover 'openbscdefines.h'
Change-Id: Iafc9f387a07f1eba66d291a84017e7dee56c4cb7
2024-01-22 19:52:27 +07:00
Oliver Smith dea9921e28 vty: show mscs: add BSSMAP state
New output:
  OsmoBSC> show mscs
  MSC 0: RI=SSN_PC,PC=0.23.3,SSN=BSSAP <-> RI=SSN_PC,PC=0.23.1,SSN=BSSAP
         ASP protocol: m3ua
         BSSMAP state: CONNECTED

Closes: OS#6741
Change-Id: I23ddba7d935e5cc5dae041458207c674ccb9d013
2024-01-16 19:01:54 +01:00
Oliver Smith fb23879651 vty: show mscs: tweak output
Make the output more readable and split it over two lines, in
preparation to add more information in the next patch.

Before:

  OsmoBSC> show mscs
  0 m3ua RI=SSN_PC,PC=0.23.3,SSN=BSSAP RI=SSN_PC,PC=0.23.1,SSN=BSSAP

After:

  OsmoBSC> show mscs
  MSC 0: RI=SSN_PC,PC=0.23.3,SSN=BSSAP <-> RI=SSN_PC,PC=0.23.1,SSN=BSSAP
         ASP protocol: m3ua

Related: OS#6741
Change-Id: I70ad1b0f44f2a923248f4e3259747cb3fec98fd2
2024-01-16 18:25:17 +01:00
Matan Perelman 1cfec9d2c9 ctrl: Add ms max power
Change-Id: I703057b0ad15ca56abf2b6223d5a5f4b33d944d8
2024-01-14 08:32:07 +02:00
Matan Perelman 5e28334fa9 ctrl: Add rach max transmission
Change-Id: I34c92cbbcaa46235481a491f4c6ff723b671fff1
2024-01-14 08:11:17 +02:00
Neels Hofmeyr 2323e577d9 vty: disallow combination of early-IA and frequency hopping
Related: osmo-bts Id9a930e5c67122812b229dc27ea2bfe246b67611
Related: SYS#6655
Change-Id: I8d375e5155be7b53034d5c0be5566d2f33af5db0
2024-01-10 07:59:51 +00:00
Harald Welte f53c5588d2 fix spelling s/omso/osmo/ in bts_variant_names
Change-Id: I37949c286498d99ecfdd3c36961226fefdc000ec
2024-01-08 11:48:19 +01:00
Matan Perelman 126952e203 ctrl: Fix missing reply in set_bts_cell_reselection_offset
Change-Id: Iacdb192dc15ab7e10e06c0dfe0984fc8a5727ecc
2024-01-06 13:04:56 +02:00
Matan Perelman c37fcff9c5 vty: Ensure radio-link-timeout is a multiple of 4
According to Table 10.5.2.3.1 in TS 144.018, radio-link-timeout
values are between 4 to 64 in steps of 4.

Change-Id: I733591d5f72f2e4f822761ca9eda85de7a4c6c81
2024-01-04 18:14:33 +02:00
Matan Perelman 29389bd44a ctrl: Add radio link timeout
Change-Id: Ic9532d4b051d34e71c91aaff545fb3dfa7d7c8b2
2024-01-04 13:56:00 +02:00
Matan Perelman 6f1991fd82 ctrl: Add rach expiry timeout
Change-Id: I74a402a3800d245e4bc3052ccb53d8d2660e9f52
2024-01-02 13:44:28 +02:00
Matan Perelman 40ecc7d538 abis_rsl: Add rach expiry timeout
This allows controlling the RACH DoS attack protection without
increasing call drops rate.

Change-Id: Iff7266672dd8bc9ce2b34b0478d98fb70691f425
2024-01-02 09:14:16 +02:00
Keith Whyte f033c82f54 VTY: fix config indentation for pcu-socket params
osmo-bsc would not start with a config written from the vty due
to incorrect identation on the pcu-socket parameters.

Change-Id: I36a66794e654989b4b8bf54bb3727ccbfc2131fa
2023-12-27 17:26:31 +00:00
Matan Perelman 9579e8337b ctrl: Add rxlev access min control
Change-Id: I25bf4bb11bf8e34e80f740fb89a467fc6e491962
2023-12-27 08:40:13 +02:00
Vadim Yanitskiy 9da6536312 vgcs_fsm: fix NULL pointer dereference in vgcs_call_fsm_busy()
Change-Id: I14ad41bfa1ab3455a6a175cfb05341ca12c8d73e
Fixes: CID#322299
2023-12-12 22:42:18 +07:00
Andreas Eversberg 5dee672e96 Only check for intersecting AMR codec support on matching TS rate
Only check for intersecting full rate AMR codec, if the BTS has at least
one full rate or dynamic time slot configured.

Only check for intersecting half rate AMR codec, if the BTS has at least
one half rate or dynamic time slot configured.

Related: OS#5926
Change-Id: Ia4a8e7f22dc652655ee7c5458624df8ae136dd95
2023-12-11 08:59:46 +00:00
Vadim Yanitskiy 510a868168 gsm_data: use ABIS_RSL_CHAN_NR_CBITS_* in gsm_pchan2chan_nr()
Change-Id: Ic9370d8d7f13cce0f9c6e60a920d04161a7d6844
2023-12-09 01:47:13 +07:00
Vadim Yanitskiy 2376b52da2 gsm_data: fix wrong variable set in gsm_pchan2chan_nr()
I believe the actual intention was to reset the 'lchan_nr' variable,
and not the 'chan_nr'.  The 'lchan_nr' is used to compose the 'cbits':

  cbits = 0x04;
  cbits += lchan_nr;

If the value is 4, then the result is:

  cbits = 0x04 + 4 = 0x08

which corresponds to SDCCH8 (not SDCCH4), and is clearly wrong.

Change-Id: Ic9c7c2e46e24dab0b721221e9adcbbae2ca56d23
Fixes: ec1b5a0e9 "gsm_ts2chan_nr(): add assertions for lchan_nr"
Fixes: CID#336586
2023-12-09 01:47:13 +07:00
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
Andreas Eversberg a4fc35c3b2 ASCI: Repeat notification after assigning MS to VGCS/VBS channel
The assignment is repeated because the calling subscriber may not
receive the notification on the DCCH, during handover process. After the
assignment is complete, the calling subscriber will receive
notification.

This cannot be done automatically by the BTS, because the BTS has no
relation between the notifications and the channels.

The notification is required, so that the MS knows the channel to listen
to when leaving the uplink the first time. If no notification is
received, the MS will abort the call.

Change-Id: Ife568b8c2756be332c0b8de21111f66f6e537c4d
2023-11-27 15:51:40 +01:00
arehbein 252e7f3e91 bsc: Make socket queue max. length configurable
Title refers to the maximum length of the osmo_wqueue used for
the PCU socket connection.

Related: OS#5774
Change-Id: Ic5f19f4613bccaf582997a4d02b689adee083a0b
2023-11-24 10:46:08 +00:00
Neels Hofmeyr e24e8a3389 use X6 timer for REL ACK, not T3111
The lchan FSM timers were originally implemented to model earlier code
as closely as possible. Now it has come up that T3111 is used in the
wrong place:

3GPP TS 44.018 says:

 T3111:
 This timer is used to delay the channel deactivation after
 disconnection of the main signalling link.
 Its purpose is to let some time for possible repetition of the disconnection.
 Its value is equal to the value of T3110.

Before this patch, we use it also to time the RF REL ACK message. That
is pretty bad, because T3111 is only 2 seconds by default, making RF
CHAN REL vulnerable for timeout. When a user increased T3111 to
alleviate the problem, the result is that each lchan also delays its
normal channel release procedure by the configured amount of time. Very
inelegant.

Instead, use the X6 timer for REL ACK, because X6 already times the CHAN
ACTIV ACK, which is semantically identical.

Compatibility / user impact: No negative impact expected.
We can assume that every user out there has X6 configured to work for
CHAN ACTIV ACK. From that logic, switching channel release ACK to the
same timer is guaranteed to be what the user intends. We could instruct
users in the release notes that they may now choose T3111 freely (as
short as 2 seconds) without jeopardising channel release anymore.

Related: SYS#6655
Change-Id: Ibd118fa23e5deb4381bc31b11a7b495f57901d6c
2023-11-22 00:48:10 +01:00
Philipp Maier 647bc1e698 pcuif_proto: signal BTS model via PCUIF
At the moment the PCU has no way of knowing with which BTS model it is
used with. However, some BTS models may require slightly different
behaviour by the PCU, depending on which BTS model is used. So, lets add
an additional bts_model field to struct gsm_pcu_if_info_ind in order to
convey the exact BTS model to the PCU.

Related: OS#6191
Depends: osmo-pcu.git I48eb75f65ab54fdec41ef913e24c1f18cd4a4047
Change-Id: I4b58912ad7be3070829614853901aa19108ba2c0
2023-11-21 09:16:46 +00:00
Matan Perelman 54cc907c97 ctrl: Add cell barred
Change-Id: I6dc45fa1d76707be0d9f9d4391550be598ed0a6d
2023-11-07 19:27:47 +00:00
Andreas Eversberg 9baa065c8d SI10: Fix uninitialized last_i index
Not only l_bts must be declared outside the for-loop, but also last_i.

This is a fixup of I9dbbd066075f9ccb331616a2b59b46b1b44c8b4c.

Related: CID#330311
Change-Id: Ia10c5e68cb2940d9360d78f606af25bb207ee55f
2023-11-06 11:19:07 +01:00
Andreas Eversberg 9b81ef5db8 SI10: Fix uninitialized l_bts pointer
l_bts must be declared outside the for-loop. If the loop is passed with
n_bts set the first time, l_bts is set. If the loop is passed with
n_bts set next time(s), l_bts is used to encode additional neighbor
cell infos.

Related: CID#330310 and CID#330311
Change-Id: I9dbbd066075f9ccb331616a2b59b46b1b44c8b4c
2023-11-01 10:04:11 +01:00
arehbein 50cb01c29f osmo-bsc: Have PCU socket connection use osmo_wqueue
Close PCU socket on write queue overflow.

Related: OS#5774
Change-Id: Ifd9741045a87338e17eec3492590a5de9c308cb5
2023-10-24 19:30:25 +00:00