Skip to content

Loading builds...

Changes

#22076 (May 27, 2026, 7:19:18 PM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22075 (May 27, 2026, 7:19:09 PM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22074 (May 27, 2026, 7:19:08 PM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22073 (May 27, 2026, 7:19:06 PM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22072 (May 27, 2026, 7:19:05 PM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22071 (May 27, 2026, 7:19:04 PM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22070 (May 27, 2026, 7:11:56 PM)

vty-tests: remove help from expected output

Until the vty tests support regex, remove the help message
as it depends on the compile option TCAP Routing and can't
handle both compile options.

It will be re-introduced later

Change-Id: I0d8141c00525f49c0a9f9f63b73fee531f591e5c
lynxis at

#22069 (May 27, 2026, 7:11:56 PM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22068 (May 27, 2026, 7:11:55 PM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22067 (May 27, 2026, 7:11:55 PM)

vty-tests: remove help from expected output

Until the vty tests support regex, remove the help message
as it depends on the compile option TCAP Routing and can't
handle both compile options.

It will be re-introduced later

Change-Id: I0d8141c00525f49c0a9f9f63b73fee531f591e5c
lynxis at

#22066 (May 27, 2026, 7:11:55 PM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22065 (May 27, 2026, 7:11:55 PM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22064 (May 27, 2026, 7:11:54 PM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22063 (May 27, 2026, 7:11:53 PM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22062 (May 27, 2026, 6:13:39 PM)

osmo_interact: improve vty transcript language by a regular rexex

Currently the transcript language understand 3 different tokens:
... (ignore all lines until the following line matches)
... !REGEX (ignore all lines except REXEX)

But to support osmo-stp with different compile options, the
vty help is indented with different amount of spaces depending on the compile options.
To support those add a regular regex using the prefix !r!

E.g.
```
OsmoSTP(config-cs7-as)# ?
-  description       Save human-readable description of the object
vs
+  description               Save human-readable description of the object
```

To use the new regex, the line would be:
```
!r!  description[ ]+Save human-readable description of the object
```

Further all regex special characters needs to be escaped.
```
  description   Save human-readable description of the object (for humans)

!r!  description[ ]+Save human-readable description of the object \(for humans\)
```

Change-Id: Iadcd7a8c3677548a6405e098fe53d0614ef2012c
lynxis at

#22061 (May 27, 2026, 6:13:39 PM)

osmo_interact: improve vty transcript language by a regular rexex

Currently the transcript language understand 3 different tokens:
... (ignore all lines until the following line matches)
... !REGEX (ignore all lines except REXEX)

But to support osmo-stp with different compile options, the
vty help is indented with different amount of spaces depending on the compile options.
To support those add a regular regex using the prefix !r!

E.g.
```
OsmoSTP(config-cs7-as)# ?
-  description       Save human-readable description of the object
vs
+  description               Save human-readable description of the object
```

To use the new regex, the line would be:
```
!r!  description[ ]+Save human-readable description of the object
```

Further all regex special characters needs to be escaped.
```
  description   Save human-readable description of the object (for humans)

!r!  description[ ]+Save human-readable description of the object \(for humans\)
```

Change-Id: Iadcd7a8c3677548a6405e098fe53d0614ef2012c
lynxis at

#22060 (May 27, 2026, 12:13:55 PM)

firmware: replace libnewlib with picolibc

libnewlib-arm-none-eabi has been removed in debian unstable, build the
firmware with picolibc instead.

Fixes: OS#7017
Change-Id: If136397b71435ea0850002ef6406067962e8d4d7
Oliver Smith at

#22059 (May 27, 2026, 12:13:55 PM)

firmware/Makefile: remove -Wredundant-decls

picolibc has redundant declarations of free and strdtold, which results
in lots of warnings with -Wredundant-decls. Adjust CFLAGS to remove
-Wredundant-decls to make the compiler log more readable.

  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:147:9: warning: redundant redeclaration of 'free' [-Wredundant-decls]
    147 | void    free (void *) __nothrow;
        |         ^~~~
  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:99:9: note: previous declaration of 'free' with type 'void(void *)'
     99 | void    free (void *) __nothrow;
        |         ^~~~
  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:307:9: warning: redundant redeclaration of 'strtold' [-Wredundant-decls]
    307 |         strtold (const char *__restrict, char **__restrict);
        |         ^~~~~~~
  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:286:9: note: previous declaration of 'strtold' with type 'long double(const char * restrict,  char ** restrict)'
    286 |         strtold (const char *__restrict __n, char **__restrict __end_PTR);
        |         ^~~~~~~

Change-Id: I32ff78f2a27191d1c6e114429d2e0713674732fe
Oliver Smith at

#22058 (May 27, 2026, 12:13:54 PM)

firmware: replace libnewlib with picolibc

libnewlib-arm-none-eabi has been removed in debian unstable, build the
firmware with picolibc instead.

Fixes: OS#7017
Change-Id: If136397b71435ea0850002ef6406067962e8d4d7
Oliver Smith at

#22057 (May 27, 2026, 12:13:53 PM)

firmware/Makefile: remove -Wredundant-decls

picolibc has redundant declarations of free and strdtold, which results
in lots of warnings with -Wredundant-decls. Adjust CFLAGS to remove
-Wredundant-decls to make the compiler log more readable.

  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:147:9: warning: redundant redeclaration of 'free' [-Wredundant-decls]
    147 | void    free (void *) __nothrow;
        |         ^~~~
  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:99:9: note: previous declaration of 'free' with type 'void(void *)'
     99 | void    free (void *) __nothrow;
        |         ^~~~
  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:307:9: warning: redundant redeclaration of 'strtold' [-Wredundant-decls]
    307 |         strtold (const char *__restrict, char **__restrict);
        |         ^~~~~~~
  /usr/lib/picolibc/arm-none-eabi/include/stdlib.h:286:9: note: previous declaration of 'strtold' with type 'long double(const char * restrict,  char ** restrict)'
    286 |         strtold (const char *__restrict __n, char **__restrict __end_PTR);
        |         ^~~~~~~

Change-Id: I32ff78f2a27191d1c6e114429d2e0713674732fe
Oliver Smith at

#22056 (May 26, 2026, 11:44:24 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22055 (May 26, 2026, 11:44:20 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22054 (May 26, 2026, 11:39:35 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22053 (May 26, 2026, 11:39:34 AM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22052 (May 26, 2026, 11:39:32 AM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22051 (May 26, 2026, 11:39:32 AM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22050 (May 26, 2026, 11:39:30 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22049 (May 26, 2026, 11:39:28 AM)

vty-tests: remove help from expected output

Until the vty tests support regex, remove the help message
as it depends on the compile option TCAP Routing and can't
handle both compile options.

It will be re-introduced later

Change-Id: I0d8141c00525f49c0a9f9f63b73fee531f591e5c
lynxis at

#22048 (May 26, 2026, 11:39:28 AM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22047 (May 26, 2026, 11:39:27 AM)

vty-tests: remove help from expected output

Until the vty tests support regex, remove the help message
as it depends on the compile option TCAP Routing and can't
handle both compile options.

It will be re-introduced later

Change-Id: I0d8141c00525f49c0a9f9f63b73fee531f591e5c
lynxis at

#22046 (May 26, 2026, 10:12:23 AM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22045 (May 26, 2026, 10:12:19 AM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22044 (May 26, 2026, 10:12:19 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22043 (May 26, 2026, 10:12:18 AM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with udts
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-udts | load-share-over-as)
```
Defaults to reject-udts.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22042 (May 26, 2026, 10:12:18 AM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22041 (May 26, 2026, 10:12:17 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22040 (May 26, 2026, 10:02:20 AM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22039 (May 26, 2026, 10:01:41 AM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with UTDS
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-utds | load-share-over-as)
```
Defaults to reject-utds.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22038 (May 26, 2026, 10:01:28 AM)

tcap loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22037 (May 26, 2026, 10:01:24 AM)

vty-tests: remove help from expected output

Until the vty tests support regex, remove the help message
as it depends on the compile option TCAP Routing and can't
handle both compile options.

It will be re-introduced later

Change-Id: I0d8141c00525f49c0a9f9f63b73fee531f591e5c
lynxis at

#22036 (May 26, 2026, 10:01:24 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22035 (May 26, 2026, 10:01:23 AM)

tcap loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with UTDS
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-utds | load-share-over-as)
```
Defaults to reject-utds.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22034 (May 26, 2026, 10:01:23 AM)

vty-tests: remove help from expected output

Until the vty tests support regex, remove the help message
as it depends on the compile option TCAP Routing and can't
handle both compile options.

It will be re-introduced later

Change-Id: I0d8141c00525f49c0a9f9f63b73fee531f591e5c
lynxis at

#22033 (May 26, 2026, 10:01:22 AM)

vty-tests: Re-introduce the check on the help

With the support of regex within vty tests,
the help message can be checked again.

Depends-on: Iadcd7a8c3677548a6405e098fe53d0614ef2012c (osmo-python-tests)
Change-Id: I3fad268b7a8925f378f6331fcab073637bd80e08
lynxis at

#22032 (May 26, 2026, 8:00:27 AM)

Bump version: 1.1.3 → 1.2.0

Change-Id: Icee7895ada6551f4805fc3da114655360698617e
lynxis at

#22031 (May 26, 2026, 8:00:26 AM)

Bump version: 1.1.3 → 1.2.0

Change-Id: Icee7895ada6551f4805fc3da114655360698617e
lynxis at

#22030 (May 22, 2026, 1:28:59 PM)

osmo_interact: improve vty transcript language by a regular rexex

Currently the transcript language understand 3 different tokens:
... (ignore all lines until the following line matches)
... !REGEX (ignore all lines except REXEX)

But to support osmo-stp with different compile options, the
vty help is indented with different amount of spaces depending on the compile options.
To support those add a regular regex using the prefix !r!

E.g.
OsmoSTP(config-cs7-as)# ?
-  description       Save human-readable description of the object
vs
+  description               Save human-readable description of the object

Change-Id: Iadcd7a8c3677548a6405e098fe53d0614ef2012c
lynxis at

#22029 (May 22, 2026, 1:28:58 PM)

osmo_interact: improve vty transcript language by a regular rexex

Currently the transcript language understand 3 different tokens:
... (ignore all lines until the following line matches)
... !REGEX (ignore all lines except REXEX)

But to support osmo-stp with different compile options, the
vty help is indented with different amount of spaces depending on the compile options.
To support those add a regular regex using the prefix !r!

E.g.
OsmoSTP(config-cs7-as)# ?
-  description       Save human-readable description of the object
vs
+  description               Save human-readable description of the object

Change-Id: Iadcd7a8c3677548a6405e098fe53d0614ef2012c
lynxis at

#22028 (May 22, 2026, 1:27:53 PM)

TCAP loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22027 (May 22, 2026, 1:27:53 PM)

TCAP loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with UTDS
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-utds | load-share-over-as)
```
Defaults to reject-utds.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22026 (May 22, 2026, 1:27:52 PM)

TCAP loadshare: move last_asp_idx_sent from cfg to runtime struct

The last_asp_idx_sent is a runtime information and not configurable.
Move it to the other runtime state.

Change-Id: Id52bb0f6c67949b5e03f7ad36996f37a0d25214a
lynxis at

#22025 (May 22, 2026, 1:27:52 PM)

TCAP loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with UTDS
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-utds | load-share-over-as)
```
Defaults to reject-utds.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22024 (May 22, 2026, 1:00:06 PM)

TCAP loadshare: Rework initial selection of a node

The original TCAP loadshare plan was to used the OTID of a TCAP Begin to select
the node.
However this should not be used anymore. Instead the correct one would be to
do a load-sharing across all available ASP and keep this relation ("sticky" sessions).

The counter SS7_AS_CTR_TCAP_ASP_FALLBACK will be re-used by a later patch.

Related: SYS#5432
Change-Id: I151e6acb59e1f3c481487e76d2b01236fcee755f
lynxis at

#22023 (May 22, 2026, 12:59:17 PM)

TCAP loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with UTDS
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-utds | load-share-over-as)
```
Defaults to reject-utds.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22022 (May 22, 2026, 12:59:17 PM)

ss7_as: fix indention

Related: SYS#5432
Change-Id: Id006f4fcbf9ae6b5b50be3d41fb216c7f9bb2dfb
lynxis at

#22021 (May 22, 2026, 12:59:15 PM)

TCAP loadshare: Add session miss counter

When a non-starting TCAP message (Continue, End, Abort) is received,
the no session could be associated with it, count these as session miss.

Those should not appear under normal operation, except after a restart of osmo-stp.

Related: SYS#5432
Change-Id: I23319294e899e6acb6421d89675ce456048f7475
lynxis at

#22020 (May 22, 2026, 12:59:15 PM)

TCAP loadshare: count all ENOKEY as a FAILED

The ASP should count all message which couldn't routed as failed.

Related: SYS#5432
Change-Id: I8bee6db5c75195855a3d378579e30886cd4d6fa8
lynxis at

#22019 (May 22, 2026, 12:59:11 PM)

TCAP loadshare: allow to define the fallback mechanism for unroutable TCAP messages

When a TCAP Continue/End/Abort message is received, but no TCAP session entry can be found
and no valid TCAP range is available for the dtid, the message can be either:

- rejected by returning an error with UTDS
- routed by round robin to all available ASP of this AS

To define the behaviour, a new vty option is introduced:
```
   tcap-unroutable-sessions (reject-utds | load-share-over-as)
```
Defaults to reject-utds.

Related: SYS#5432
Change-Id: Ic1c876da30b05065a476d3a7c1bbf0680adf55bd
lynxis at

#22018 (May 22, 2026, 12:59:11 PM)

TCAP loadshare: Rework initial selection of a node

The original TCAP loadshare plan was to used the OTID of a TCAP Begin to select
the node.
However this should not be used anymore. Instead the correct one would be to
do a load-sharing across all available ASP and keep this relation ("sticky" sessions).

The counter SS7_AS_CTR_TCAP_ASP_FALLBACK will be re-used by a later patch.

Related: SYS#5432
Change-Id: I151e6acb59e1f3c481487e76d2b01236fcee755f
lynxis at

#22017 (May 22, 2026, 12:59:10 PM)

ss7_as: fix indention

Related: SYS#5432
Change-Id: Id006f4fcbf9ae6b5b50be3d41fb216c7f9bb2dfb
lynxis at

#22016 (May 22, 2026, 12:59:10 PM)

TCAP loadshare: Add session miss counter

When a non-starting TCAP message (Continue, End, Abort) is received,
the no session could be associated with it, count these as session miss.

Those should not appear under normal operation, except after a restart of osmo-stp.

Related: SYS#5432
Change-Id: I23319294e899e6acb6421d89675ce456048f7475
lynxis at

#22015 (May 22, 2026, 12:59:09 PM)

TCAP loadshare: count all ENOKEY as a FAILED

The ASP should count all message which couldn't routed as failed.

Related: SYS#5432
Change-Id: I8bee6db5c75195855a3d378579e30886cd4d6fa8
lynxis at

#22014 (May 22, 2026, 12:41:05 PM)

tcap_as_loadshare: improve log lines

Change-Id: Idffe9a02127c587aca4123f12f74b657d6911a80
lynxis at

#22013 (May 22, 2026, 12:41:05 PM)

tcap_as_loadshare: improve logging of lookup failures

Change-Id: I80878dfd080c705de28175260cb392186dafed6a
lynxis at

#22012 (May 22, 2026, 12:41:02 PM)

tcap_as_loadshare: improve log lines

Change-Id: Idffe9a02127c587aca4123f12f74b657d6911a80
lynxis at

#22011 (May 22, 2026, 12:41:02 PM)

tcap_as_loadshare: improve logging of lookup failures

Change-Id: I80878dfd080c705de28175260cb392186dafed6a
lynxis at

#22010 (May 21, 2026, 10:37:55 AM)

Fix unhandled (un)mapping events

If a mapping event (create slotmap) and an unmapping event (delete
slotmap) exists at the same time, none of these events were handled.
These mappings stayed in 'NEW' state. Subsequent mappings of different
slots were then ignored.

This issue has been reproduced and is fixed with this patch.

Related: SYS#8032
Change-Id: I38da61cd8e9ccd5c79798bdd2196d39dfda8ebed
Andreas Eversberg at

#22009 (May 21, 2026, 10:37:52 AM)

Fix unhandled (un)mapping events

If a mapping event (create slotmap) and an unmapping event (delete
slotmap) exists at the same time, none of these events were handled.
These mappings stayed in 'NEW' state. Subsequent mappings of different
slots were then ignored.

This issue has been reproduced and is fixed with this patch.

Related: SYS#8032
Change-Id: I38da61cd8e9ccd5c79798bdd2196d39dfda8ebed
Andreas Eversberg at

#22008 (May 19, 2026, 3:55:43 PM)

ss7_as: fix indention

Related: SYS#5432
Change-Id: Id006f4fcbf9ae6b5b50be3d41fb216c7f9bb2dfb
lynxis at

#22007 (May 19, 2026, 3:55:41 PM)

TCAP loadshare: Rework initial selection of a node

The TCAP loadshare original used the OTID of a TCAP Begin to select
the node. To improve the load share across the nodes,
use a round robin as initial selection, but "stick" the session
on the particular node.

Related: SYS#5432
Change-Id: I151e6acb59e1f3c481487e76d2b01236fcee755f
lynxis at

#22006 (May 19, 2026, 3:55:41 PM)

TCAP loadshare: count all ENOKEY as a FAILED

The ASP should count all message which couldn't routed as failed.

Related: SYS#5432
Change-Id: I8bee6db5c75195855a3d378579e30886cd4d6fa8
lynxis at

#22005 (May 19, 2026, 3:55:39 PM)

TCAP loadshare: Add session miss counter

When a non-starting TCAP message (Continue, End, Abort) is received,
the no session could be associated with it, count these as session miss.

Those should not appear under normal operation, except after a restart of osmo-stp.

Related: SYS#5432
Change-Id: I23319294e899e6acb6421d89675ce456048f7475
lynxis at

#22004 (May 19, 2026, 3:55:38 PM)

ss7_as: fix indention

Related: SYS#5432
Change-Id: Id006f4fcbf9ae6b5b50be3d41fb216c7f9bb2dfb
lynxis at

#22003 (May 19, 2026, 3:55:38 PM)

TCAP loadshare: Rework initial selection of a node

The TCAP loadshare original used the OTID of a TCAP Begin to select
the node. To improve the load share across the nodes,
use a round robin as initial selection, but "stick" the session
on the particular node.

Related: SYS#5432
Change-Id: I151e6acb59e1f3c481487e76d2b01236fcee755f
lynxis at

#22002 (May 19, 2026, 3:55:38 PM)

TCAP loadshare: Add session miss counter

When a non-starting TCAP message (Continue, End, Abort) is received,
the no session could be associated with it, count these as session miss.

Those should not appear under normal operation, except after a restart of osmo-stp.

Related: SYS#5432
Change-Id: I23319294e899e6acb6421d89675ce456048f7475
lynxis at

#22001 (May 19, 2026, 3:55:38 PM)

TCAP loadshare: count all ENOKEY as a FAILED

The ASP should count all message which couldn't routed as failed.

Related: SYS#5432
Change-Id: I8bee6db5c75195855a3d378579e30886cd4d6fa8
lynxis at

#22000 (May 19, 2026, 12:52:48 PM)

tcap_as_loadshare: improve logging of lookup failures

Change-Id: I80878dfd080c705de28175260cb392186dafed6a
lynxis at

#21999 (May 19, 2026, 12:52:48 PM)

tcap_as_loadshare: improve log lines

Change-Id: Idffe9a02127c587aca4123f12f74b657d6911a80
lynxis at

#21998 (May 19, 2026, 12:52:43 PM)

tcap_as_loadshare: improve logging of lookup failures

Change-Id: I80878dfd080c705de28175260cb392186dafed6a
lynxis at

#21997 (May 19, 2026, 12:52:43 PM)

tcap_as_loadshare: improve log lines

Change-Id: Idffe9a02127c587aca4123f12f74b657d6911a80
lynxis at

#21996 (May 19, 2026, 12:37:28 PM)

tests: split tests into own functions

To improve the overview.

Related: SYS#5432
Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21995 (May 19, 2026, 12:37:22 PM)

tests: improve test infrastructure to support multiple test vectors

Related: SYS#5432
Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21994 (May 19, 2026, 12:37:00 PM)

asn1: remove wireshark sepcific parts

The asn1 file was original copied from the wireshark
dissector.
Remove the wireshark specific parts.

Change-Id: Ie585c71fc14a20f609fa116b6858b9ca538054f5
lynxis at

#21993 (May 19, 2026, 12:36:58 PM)

tests: decoding: print the half decoded structure

When the decoding fails, the half decoded structure
also helps understanding the issue.

Realted: SYS#5432
Change-Id: I8f7ff9a8e457395aa12d1c7175f56cfdc5529590
lynxis at

#21992 (May 19, 2026, 12:36:57 PM)

tests: add decode tests for TCAP End tests

Related: SYS#5432
Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21991 (May 19, 2026, 12:36:56 PM)

tests: split tests into own functions

To improve the overview.

Related: SYS#5432
Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21990 (May 19, 2026, 12:36:56 PM)

tests: improve test infrastructure to support multiple test vectors

Related: SYS#5432
Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21989 (May 19, 2026, 12:36:55 PM)

asn1: remove wireshark sepcific parts

The asn1 file was original copied from the wireshark
dissector.
Remove the wireshark specific parts.

Change-Id: Ie585c71fc14a20f609fa116b6858b9ca538054f5
lynxis at

#21988 (May 19, 2026, 12:36:54 PM)

tests: decoding: print the half decoded structure

When the decoding fails, the half decoded structure
also helps understanding the issue.

Realted: SYS#5432
Change-Id: I8f7ff9a8e457395aa12d1c7175f56cfdc5529590
lynxis at

#21987 (May 19, 2026, 12:36:54 PM)

tests: add decode tests for TCAP End tests

Related: SYS#5432
Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21986 (May 19, 2026, 10:13:34 AM)

tests: split tests into own functions

To improve the overview.

Related: SYS#5432
Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21985 (May 19, 2026, 10:13:30 AM)

asn1: remove wireshark sepcific parts

The asn1 file was original copied from the wireshark
dissector.
Remove the wireshark specific parts.

Change-Id: Ie585c71fc14a20f609fa116b6858b9ca538054f5
lynxis at

#21984 (May 19, 2026, 10:13:09 AM)

tests: add decode tests for TCAP End tests

Related: SYS#5432
Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21983 (May 19, 2026, 10:13:07 AM)

tests: decoding: print the half decoded structure

When the decoding fails, the half decoded structure
also helps understanding the issue.

Realted: SYS#5432
Change-Id: I8f7ff9a8e457395aa12d1c7175f56cfdc5529590
lynxis at

#21982 (May 19, 2026, 10:13:07 AM)

tests: improve test infrastructure to support multiple test vectors

Related: SYS#5432
Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21981 (May 19, 2026, 10:13:06 AM)

tests: add decode tests for TCAP End tests

Related: SYS#5432
Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21980 (May 19, 2026, 10:13:06 AM)

asn1: remove wireshark sepcific parts

The asn1 file was original copied from the wireshark
dissector.
Remove the wireshark specific parts.

Change-Id: Ie585c71fc14a20f609fa116b6858b9ca538054f5
lynxis at

#21979 (May 19, 2026, 10:13:03 AM)

tests: split tests into own functions

To improve the overview.

Related: SYS#5432
Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21978 (May 19, 2026, 10:13:03 AM)

tests: decoding: print the half decoded structure

When the decoding fails, the half decoded structure
also helps understanding the issue.

Realted: SYS#5432
Change-Id: I8f7ff9a8e457395aa12d1c7175f56cfdc5529590
lynxis at

#21977 (May 19, 2026, 10:13:02 AM)

tests: improve test infrastructure to support multiple test vectors

Related: SYS#5432
Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21976 (May 19, 2026, 10:08:41 AM)

tests: split tests into own functions

To improve the overview.

Related: SYS#5432
Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21975 (May 19, 2026, 10:08:41 AM)

asn1: remove wireshark sepcific parts

The asn1 file was original copied from the wireshark
dissector.
Remove the wireshark specific parts.

Change-Id: Ie585c71fc14a20f609fa116b6858b9ca538054f5
lynxis at

#21974 (May 19, 2026, 10:08:41 AM)

tests: improve test infrastructure to support multiple test vectors

Related: SYS#5432
Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21973 (May 19, 2026, 10:07:35 AM)

tests: add decode tests for TCAP End tests

Related: SYS#5432
Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21972 (May 19, 2026, 10:07:35 AM)

tests: decoding: print the half decoded structure

When the decoding fails, the half decoded structure
also helps understanding the issue.

Realted: SYS#5432
Change-Id: I8f7ff9a8e457395aa12d1c7175f56cfdc5529590
lynxis at

#21971 (May 19, 2026, 10:07:32 AM)

asn1: Decode ErrorCode as Integer

The ErrorCode is an application 2 tag.

Related: SYS#5432
Change-Id: Ib8afe0dbe8d4436b80c71048f3b572fcda6cd33e
lynxis at

#21970 (May 19, 2026, 10:07:32 AM)

tests: improve test infrastructure to support multiple test vectors

Related: SYS#5432
Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21969 (May 19, 2026, 10:07:31 AM)

tests: split tests into own functions

To improve the overview.

Related: SYS#5432
Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21968 (May 19, 2026, 10:07:30 AM)

tests: add decode tests for TCAP End tests

Related: SYS#5432
Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21967 (May 19, 2026, 10:07:30 AM)

asn1: remove wireshark sepcific parts

The asn1 file was original copied from the wireshark
dissector.
Remove the wireshark specific parts.

Change-Id: Ie585c71fc14a20f609fa116b6858b9ca538054f5
lynxis at

#21966 (May 19, 2026, 10:07:27 AM)

tests: decoding: print the half decoded structure

When the decoding fails, the half decoded structure
also helps understanding the issue.

Realted: SYS#5432
Change-Id: I8f7ff9a8e457395aa12d1c7175f56cfdc5529590
lynxis at

#21965 (May 19, 2026, 10:07:27 AM)

asn1: Decode ErrorCode as Integer

The ErrorCode is an application 2 tag.

Related: SYS#5432
Change-Id: Ib8afe0dbe8d4436b80c71048f3b572fcda6cd33e
lynxis at

#21964 (May 15, 2026, 4:29:40 PM)

contrib: extend wireshark lua dissector

Still no reassembly, but enough to work with bug report pcaps

Change-Id: Ic78824d6122191c7d16152cea643a238c33f49b1
ewild at

#21963 (May 15, 2026, 4:29:38 PM)

contrib: extend wireshark lua dissector

Still no reassembly, but enough to work with bug report pcaps

Change-Id: Ic78824d6122191c7d16152cea643a238c33f49b1
ewild at

#21962 (May 13, 2026, 4:03:54 PM)

tests: add decode tests for TCAP End tests

Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21961 (May 13, 2026, 4:03:34 PM)

tests: split tests into own functions

To improve overview.

Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21960 (May 13, 2026, 4:03:33 PM)

Radical reduce the asn1 code to the essential parts

Previous it would try to parse the whole message including
the dialog and component.
But the tcap asn1 decode only needs to decode the otid, dtid
and the message type.

Currently the only user is osmo-stp, which doens't need
any other information.

Change-Id: Ib8afe0dbe8d4436b80c71048f3b572fcda6cd33e
lynxis at

#21959 (May 13, 2026, 4:03:30 PM)

tests: improve test infrastructure to support multiple test vectors

Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21958 (May 13, 2026, 4:03:30 PM)

tests: add decode tests for TCAP End tests

Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21957 (May 13, 2026, 4:03:28 PM)

tests: split tests into own functions

To improve overview.

Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21956 (May 13, 2026, 4:03:28 PM)

Radical reduce the asn1 code to the essential parts

Previous it would try to parse the whole message including
the dialog and component.
But the tcap asn1 decode only needs to decode the otid, dtid
and the message type.

Currently the only user is osmo-stp, which doens't need
any other information.

Change-Id: Ib8afe0dbe8d4436b80c71048f3b572fcda6cd33e
lynxis at

#21955 (May 13, 2026, 4:03:27 PM)

tests: improve test infrastructure to support multiple test vectors

Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21954 (May 13, 2026, 3:55:03 PM)

tests: split tests into own functions

To improve overview.

Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21953 (May 13, 2026, 3:55:03 PM)

tests: improve test infrastructure to support multiple test vectors

Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21952 (May 13, 2026, 3:55:03 PM)

tests: add decode tests for TCAP End tests

Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21951 (May 13, 2026, 3:55:00 PM)

tests: split tests into own functions

To improve overview.

Change-Id: If9db94d17e288875fdaed52ec95b3785a78d5fa6
lynxis at

#21950 (May 13, 2026, 3:55:00 PM)

tests: improve test infrastructure to support multiple test vectors

Change-Id: I4a69167647dd0a8eb650b4c7cc47fd97928ebf5d
lynxis at

#21949 (May 13, 2026, 3:54:59 PM)

tests: add decode tests for TCAP End tests

Change-Id: I5679c4a873176d73e973f5cfccff796fe6dbd941
lynxis at

#21948 (May 10, 2026, 12:55:23 AM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21947 (May 10, 2026, 12:55:18 AM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21946 (May 10, 2026, 12:55:18 AM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21945 (May 10, 2026, 12:55:15 AM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21944 (May 8, 2026, 8:26:13 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21943 (May 8, 2026, 8:26:09 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21942 (May 8, 2026, 8:25:43 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21941 (May 8, 2026, 8:25:37 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21940 (May 6, 2026, 4:18:39 PM)

vty: update help string for nokia_site model

Original Nokia BTS support in OsmoBSC was limited to MetroSite,
UltraSite and InSite, aka the Site family.  After the recent series
of fixes, the same code also supports Flexi Multiradio (actively
used in the present) and will most likely also work on Flexi EDGE
(intermediate between UltraSite and Flexi MR), although that model
is currently untested.

BTS model name "nokia_site" is thus outdated and inaccurate now.
It has been decided (see https://gerrit.osmocom.org/c/osmo-bsc/+/42729)
to keep this model name unchanged for now, given the uncertainty
of how Nokia BTS support will evolve in the future if and when
we implement support for IP Abis on Flexi family, potentially
followed by future support for subsequent IP-only models.

In the meantime, change vty help string to reflect current support
for both Site and Flexi families with the same model selection.

Change-Id: I8a2d91aacc984e6a818f9782e728674306f4ebe4
falcon at

#21939 (May 6, 2026, 4:18:39 PM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21938 (May 6, 2026, 4:18:37 PM)

vty: update help string for nokia_site model

Original Nokia BTS support in OsmoBSC was limited to MetroSite,
UltraSite and InSite, aka the Site family.  After the recent series
of fixes, the same code also supports Flexi Multiradio (actively
used in the present) and will most likely also work on Flexi EDGE
(intermediate between UltraSite and Flexi MR), although that model
is currently untested.

BTS model name "nokia_site" is thus outdated and inaccurate now.
It has been decided (see https://gerrit.osmocom.org/c/osmo-bsc/+/42729)
to keep this model name unchanged for now, given the uncertainty
of how Nokia BTS support will evolve in the future if and when
we implement support for IP Abis on Flexi family, potentially
followed by future support for subsequent IP-only models.

In the meantime, change vty help string to reflect current support
for both Site and Flexi families with the same model selection.

Change-Id: I8a2d91aacc984e6a818f9782e728674306f4ebe4
falcon at

#21937 (May 6, 2026, 4:18:36 PM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21936 (May 6, 2026, 8:07:04 AM)

nokia: rename BTS model from nokia_site to nokia-e1

When Nokia BTS support was introduced into Osmocom in 2011, only
{Metro,Ultra,In}Site family was supported, and the name of this
BTS model in OsmoBSC was set to nokia_site.  However, we now
also support Flexi Multiradio in E1 Abis configuration with the
same code, automatically applying Site-specific or Flexi-MR-
specific handling based on the type code returned by the BTS
itself - hence calling the BTS model nokia_site and referring
strictly to *Site in docs and vty help is now misleading.

At the same time, these newer BTS models support both E1 and IP
Abis options, and there is a desire to support IP Abis operation
at some point in the future.  When/if Nokia IP support becomes a
reality, we will certainly need to know upfront which type of Abis
we are working with, similarly to how we currently distinguish
upfront between E1 and IPA types of BTS.  Therefore, the new BTS
model name is set to nokia-e1, rather than just "nokia", with the
expectation that we will also have nokia-ip in the future.

bts_nokia_site.c source file name is deliberately left unchanged.
Source file renames make it difficult to follow changes, hence a
slightly outdated source file name is deemed to be a lesser evil.
This source file may also be split in the future as Nokia BTS
support code grows.

Change-Id: I3e993bda577964922e29dbbaf9554fa53bb2d445
falcon at

#21935 (May 6, 2026, 8:07:02 AM)

nokia: rename BTS model from nokia_site to nokia-e1

When Nokia BTS support was introduced into Osmocom in 2011, only
{Metro,Ultra,In}Site family was supported, and the name of this
BTS model in OsmoBSC was set to nokia_site.  However, we now
also support Flexi Multiradio in E1 Abis configuration with the
same code, automatically applying Site-specific or Flexi-MR-
specific handling based on the type code returned by the BTS
itself - hence calling the BTS model nokia_site and referring
strictly to *Site in docs and vty help is now misleading.

At the same time, these newer BTS models support both E1 and IP
Abis options, and there is a desire to support IP Abis operation
at some point in the future.  When/if Nokia IP support becomes a
reality, we will certainly need to know upfront which type of Abis
we are working with, similarly to how we currently distinguish
upfront between E1 and IPA types of BTS.  Therefore, the new BTS
model name is set to nokia-e1, rather than just "nokia", with the
expectation that we will also have nokia-ip in the future.

bts_nokia_site.c source file name is deliberately left unchanged.
Source file renames make it difficult to follow changes, hence a
slightly outdated source file name is deemed to be a lesser evil.
This source file may also be split in the future as Nokia BTS
support code grows.

Change-Id: I3e993bda577964922e29dbbaf9554fa53bb2d445
falcon at

#21934 (May 6, 2026, 3:05:50 AM)

nokia: rename BTS model from nokia_site to nokia-e1

When Nokia BTS support was introduced into Osmocom in 2011, only
{Metro,Ultra,In}Site family was supported, and the name of this
BTS model in OsmoBSC was set to nokia_site.  However, we now
also support Flexi Multiradio in E1 Abis configuration with the
same code, automatically applying Site-specific or Flexi-MR-
specific handling based on the type code returned by the BTS
itself - hence calling the BTS model nokia_site and referring
strictly to *Site in docs and vty help is now misleading.

At the same time, these newer BTS models support both E1 and IP
Abis options, and there is a desire to support IP Abis operation
at some point in the future.  When/if Nokia IP support becomes a
reality, we will certainly need to know upfront which type of Abis
we are working with, similarly to how we currently distinguish
upfront between E1 and IPA types of BTS.  Therefore, the new BTS
model name is set to nokia-e1, rather than just "nokia", with the
expectation that we will also have nokia-ip in the future.

bts_nokia_site.c source file name is deliberately left unchanged.
Source file renames make it difficult to follow changes, hence a
slightly outdated source file name is deemed to be a lesser evil.
This source file may also be split in the future as Nokia BTS
support code grows.

Change-Id: I3e993bda577964922e29dbbaf9554fa53bb2d445
falcon at

#21933 (May 6, 2026, 3:05:50 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21932 (May 6, 2026, 3:05:46 AM)

nokia: rename BTS model from nokia_site to nokia-e1

When Nokia BTS support was introduced into Osmocom in 2011, only
{Metro,Ultra,In}Site family was supported, and the name of this
BTS model in OsmoBSC was set to nokia_site.  However, we now
also support Flexi Multiradio in E1 Abis configuration with the
same code, automatically applying Site-specific or Flexi-MR-
specific handling based on the type code returned by the BTS
itself - hence calling the BTS model nokia_site and referring
strictly to *Site in docs and vty help is now misleading.

At the same time, these newer BTS models support both E1 and IP
Abis options, and there is a desire to support IP Abis operation
at some point in the future.  When/if Nokia IP support becomes a
reality, we will certainly need to know upfront which type of Abis
we are working with, similarly to how we currently distinguish
upfront between E1 and IPA types of BTS.  Therefore, the new BTS
model name is set to nokia-e1, rather than just "nokia", with the
expectation that we will also have nokia-ip in the future.

bts_nokia_site.c source file name is deliberately left unchanged.
Source file renames make it difficult to follow changes, hence a
slightly outdated source file name is deemed to be a lesser evil.
This source file may also be split in the future as Nokia BTS
support code grows.

Change-Id: I3e993bda577964922e29dbbaf9554fa53bb2d445
falcon at

#21931 (May 6, 2026, 3:05:46 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21930 (May 6, 2026, 2:52:59 AM)

nokia: rename BTS model from nokia_site to nokia-e1

When Nokia BTS support was introduced into Osmocom in 2011, only
{Metro,Ultra,In}Site family was supported, and the name of this
BTS model in OsmoBSC was set to nokia_site.  However, we now
also support Flexi Multiradio in E1 Abis configuration with the
same code, automatically applying Site-specific or Flexi-MR-
specific handling based on the type code returned by the BTS
itself - hence calling the BTS model nokia_site and referring
strictly to *Site in docs and vty help is now misleading.

At the same time, these newer BTS models support both E1 and IP
Abis options, and there is a desire to support IP Abis operation
at some point in the future.  When/if Nokia IP support becomes a
reality, we will certainly need to know upfront which type of Abis
we are working with, similarly to how we currently distinguish
upfront between E1 and IPA types of BTS.  Therefore, the new BTS
model name is set to nokia-e1, rather than just "nokia", with the
expectation that we will also have nokia-ip in the future.

bts_nokia_site.c source file name is deliberately left unchanged.
Source file renames make it difficult to follow changes, hence a
slightly outdated source file name is deemed to be a lesser evil.
This source file may also be split in the future as Nokia BTS
support code grows.

Change-Id: I3e993bda577964922e29dbbaf9554fa53bb2d445
falcon at

#21929 (May 6, 2026, 2:52:59 AM)

gsm_set_bts_type(): fix switch statement

The switch statement on (bts->type) in this function exhibited
two defects:

1) From the beginning, each unhandled BTS type was listed explicitly,
   instead of providing a default case;

2) When Nokia-specific initialization was added in 2015,
   the addition was erroneously applied to GSM_BTS_TYPE_BS11
   and GSM_BTS_TYPE_UNKNOWN cases, besides the intended case
   of GSM_BTS_TYPE_NOKIA_SITE.

Fixes: 56e1766dba1a03e304e51d079e65406542e7887c
Change-Id: Ibf500c373b69a69182885d5e700abc6fb1b03ccd
falcon at

#21928 (May 6, 2026, 2:52:58 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21927 (May 6, 2026, 2:52:58 AM)

nokia: rename vty settings, drop _site

All Nokia-specific vty settings previously had names beginning
with nokia_site, creating needless confusion for operators of
Nokia BTS models that are newer than *Site family.  Rename these
vty settings to begin with just nokia, with nokia_site supported
as a backward compatibility alias.

Change-Id: I807c0ad14f4436a21f0be0a5ed291539cd4af7e8
falcon at

#21926 (May 6, 2026, 2:52:57 AM)

gsm_set_bts_type(): fix switch statement

The switch statement on (bts->type) in this function exhibited
two defects:

1) From the beginning, each unhandled BTS type was listed explicitly,
   instead of providing a default case;

2) When Nokia-specific initialization was added in 2015,
   the addition was erroneously applied to GSM_BTS_TYPE_BS11
   and GSM_BTS_TYPE_UNKNOWN cases, besides the intended case
   of GSM_BTS_TYPE_NOKIA_SITE.

Fixes: 56e1766dba1a03e304e51d079e65406542e7887c
Change-Id: Ibf500c373b69a69182885d5e700abc6fb1b03ccd
falcon at

#21925 (May 6, 2026, 2:52:57 AM)

nokia: rename BTS model from nokia_site to nokia-e1

When Nokia BTS support was introduced into Osmocom in 2011, only
{Metro,Ultra,In}Site family was supported, and the name of this
BTS model in OsmoBSC was set to nokia_site.  However, we now
also support Flexi Multiradio in E1 Abis configuration with the
same code, automatically applying Site-specific or Flexi-MR-
specific handling based on the type code returned by the BTS
itself - hence calling the BTS model nokia_site and referring
strictly to *Site in docs and vty help is now misleading.

At the same time, these newer BTS models support both E1 and IP
Abis options, and there is a desire to support IP Abis operation
at some point in the future.  When/if Nokia IP support becomes a
reality, we will certainly need to know upfront which type of Abis
we are working with, similarly to how we currently distinguish
upfront between E1 and IPA types of BTS.  Therefore, the new BTS
model name is set to nokia-e1, rather than just "nokia", with the
expectation that we will also have nokia-ip in the future.

bts_nokia_site.c source file name is deliberately left unchanged.
Source file renames make it difficult to follow changes, hence a
slightly outdated source file name is deemed to be a lesser evil.
This source file may also be split in the future as Nokia BTS
support code grows.

Change-Id: I3e993bda577964922e29dbbaf9554fa53bb2d445
falcon at

#21924 (May 5, 2026, 9:14:41 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#21923 (May 5, 2026, 9:14:41 PM)

transceiver: add optional Laurent burst LUT modulation (int16)

Introduce an optional Burst LUT optimization for Laurent-based burst
modulation, enabled via --with-burst-lut.

- Add precomputed Laurent LUT tables (float and int16 I/Q variants)
- Generate LUT at initialization (prepareBurstLUT)
- Use LUT-based modulation for sps=4 when enabled
- Add configure.ac option and USE_BURST_LUT define

This reduces runtime computation by replacing per-burst Laurent
processing with memcpy-based LUT lookups.

Change-Id: I1715c2d33dc55fe1c7be5c6e7259d378ea5e80b2
dtv.comp at

#21922 (May 5, 2026, 6:43:50 AM)

nokia cosmetic: add bts_is_insite() function

Nokia InSite gets a different config than the larger Nokia BTS models,
and make_bts_config() function checks the BTS type to decide which
config to send.  Change the BTS type check from a long 'if' line that
compares against 3 different InSite BTS type codes to bts_is_insite()
helper function that encapsulates a switch statement.

Upcoming code additions will need to check for Flexi Multiradio BTS
family in a similar manner - so be consistent.

Change-Id: I44bbcd79d9741f1df280b6b2391f04f754598035
falcon at

#21921 (May 5, 2026, 6:43:50 AM)

nokia cosmetic: factor out BTS_CONF_COMPL handling

When the BTS accepts the config sent to it via BTS_CONF_DATA, it
responds with BTS_CONF_COMPL.  Upon receiving the latter message,
we have to send TRX unlock and TRX reset commands, and we have to
start LAPD for RSL.  Factor out this logic into a helper function,
to reduce the level of indentation and make it easier to extend.

Change-Id: I26e9b25ba4e68e945f7dd8a632009cc3683a322c
falcon at

#21920 (May 5, 2026, 6:43:49 AM)

Nokia Flexi Multiradio: reset non-BCCH TRX

In the case of MetroSite and UltraSite BTS, it has been determined
empirically that TRX reset needs to be skipped for non-BCCH TRX.
However, the opposite situation holds on Flexi MR: non-BCCH TRX
do need to be reset, or they fail to come up.  Solution:
conditionalize reset of non-BCCH TRX on Nokia BTS type.

Change-Id: I270c1ffab074c1e5a43ab9dfa103725a1518f718
falcon at

#21919 (May 5, 2026, 6:43:48 AM)

nokia cosmetic: add bts_is_insite() function

Nokia InSite gets a different config than the larger Nokia BTS models,
and make_bts_config() function checks the BTS type to decide which
config to send.  Change the BTS type check from a long 'if' line that
compares against 3 different InSite BTS type codes to bts_is_insite()
helper function that encapsulates a switch statement.

Upcoming code additions will need to check for Flexi Multiradio BTS
family in a similar manner - so be consistent.

Change-Id: I44bbcd79d9741f1df280b6b2391f04f754598035
falcon at

#21918 (May 5, 2026, 6:43:48 AM)

nokia cosmetic: factor out BTS_CONF_COMPL handling

When the BTS accepts the config sent to it via BTS_CONF_DATA, it
responds with BTS_CONF_COMPL.  Upon receiving the latter message,
we have to send TRX unlock and TRX reset commands, and we have to
start LAPD for RSL.  Factor out this logic into a helper function,
to reduce the level of indentation and make it easier to extend.

Change-Id: I26e9b25ba4e68e945f7dd8a632009cc3683a322c
falcon at

#21917 (May 5, 2026, 6:43:47 AM)

Nokia Flexi Multiradio: reset non-BCCH TRX

In the case of MetroSite and UltraSite BTS, it has been determined
empirically that TRX reset needs to be skipped for non-BCCH TRX.
However, the opposite situation holds on Flexi MR: non-BCCH TRX
do need to be reset, or they fail to come up.  Solution:
conditionalize reset of non-BCCH TRX on Nokia BTS type.

Change-Id: I270c1ffab074c1e5a43ab9dfa103725a1518f718
falcon at

#21916 (May 4, 2026, 12:46:50 PM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21915 (May 4, 2026, 12:46:33 PM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21914 (May 4, 2026, 12:46:20 PM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21913 (May 4, 2026, 12:46:09 PM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21912 (May 4, 2026, 12:34:08 PM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21911 (May 4, 2026, 12:34:08 PM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21910 (May 4, 2026, 12:34:04 PM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21909 (May 4, 2026, 12:34:03 PM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21908 (May 1, 2026, 5:11:15 PM)

build: detect pthread_setname_np and sched_* APIs, guard usage

Add configure checks for pthread_setname_np and sched_* functions.
Wrap their usage with HAVE_* guards to avoid build failures on
platforms where they are unavailable.

Return -ENOTSUP for unsupported scheduler operations.

Improves portability across non-Linux and restricted environments
(e.g. WebAssembly).

Change-Id: Ic3f1492544439d88c5e6683330c6696de1c2f85b
dtv.comp at

#21907 (May 1, 2026, 5:11:06 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#21906 (May 1, 2026, 5:10:49 PM)

device: add WebSDR radio backend

Introduce a new optional WebSDR device backend, enabled via
--with-websdr.

Add WebSDRDevice implementation and build integration, providing
a RadioDevice interface backed by callback hooks for control and
sample I/O.

Intended for Web-based deployments where osmo-trx interacts with
SDR hardware via a WebSDR/WebUSB frontend.

Change-Id: Ie459cbd70388dd8ff5b89221d30770bab0bd9014
dtv.comp at

#21905 (May 1, 2026, 5:09:18 PM)

trx: add JSON serialization for 'show trx'

Introduce trx_to_json() helper to serialize the output of
'show trx' into JSON format.

Also initialize talloc/VTY context in websdr entrypoint to
allow accessing TRX configuration programmatically.

Intended for external consumers (e.g. WebSDR frontend).

Change-Id: Icbfb754580daa6db9b5646cc6698a6a6ee1c1610
dtv.comp at

#21904 (May 1, 2026, 5:08:44 PM)

convolve: avoid function pointer casts by adding wrapper functions

Introduce _base_convolve_*_void() wrappers matching the expected
function pointer signatures and use them instead of casting
_base_convolve_* functions to (void *).

This removes unsafe function pointer casts and improves
type safety, which is required for stricter toolchains and
non-native targets (e.g. WebAssembly)

Change-Id: Idecb118be285eb3e4691d1761d0d8fa24fd80c75
dtv.comp at

#21903 (May 1, 2026, 5:08:35 PM)

build: detect pthread_setname_np and sched_* APIs, guard usage

Add configure checks for pthread_setname_np and sched_* functions.
Wrap their usage with HAVE_* guards to avoid build failures on
platforms where they are unavailable.

Return -ENOTSUP for unsupported scheduler operations.

Improves portability across non-Linux and restricted environments
(e.g. WebAssembly).

Change-Id: Ic3f1492544439d88c5e6683330c6696de1c2f85b
dtv.comp at

#21902 (May 1, 2026, 5:08:23 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#21901 (May 1, 2026, 5:08:21 PM)

trx: add JSON serialization for 'show trx'

Introduce trx_to_json() helper to serialize the output of
'show trx' into JSON format.

Also initialize talloc/VTY context in websdr entrypoint to
allow accessing TRX configuration programmatically.

Intended for external consumers (e.g. WebSDR frontend).

Change-Id: Icbfb754580daa6db9b5646cc6698a6a6ee1c1610
dtv.comp at

#21900 (May 1, 2026, 5:08:13 PM)

convolve: avoid function pointer casts by adding wrapper functions

Introduce _base_convolve_*_void() wrappers matching the expected
function pointer signatures and use them instead of casting
_base_convolve_* functions to (void *).

This removes unsafe function pointer casts and improves
type safety, which is required for stricter toolchains and
non-native targets (e.g. WebAssembly)

Change-Id: Idecb118be285eb3e4691d1761d0d8fa24fd80c75
dtv.comp at

#21899 (May 1, 2026, 5:08:06 PM)

device: add WebSDR radio backend

Introduce a new optional WebSDR device backend, enabled via
--with-websdr.

Add WebSDRDevice implementation and build integration, providing
a RadioDevice interface backed by callback hooks for control and
sample I/O.

Intended for Web-based deployments where osmo-trx interacts with
SDR hardware via a WebSDR/WebUSB frontend.

Change-Id: Ie459cbd70388dd8ff5b89221d30770bab0bd9014
dtv.comp at

#21898 (May 1, 2026, 5:01:51 PM)

device: add WebSDR radio backend

Introduce a new optional WebSDR device backend, enabled via
--with-websdr.

Add WebSDRDevice implementation and build integration, providing
a RadioDevice interface backed by callback hooks for control and
sample I/O.

Intended for Web-based deployments where osmo-trx interacts with
SDR hardware via a WebSDR/WebUSB frontend.

Change-Id: Ie459cbd70388dd8ff5b89221d30770bab0bd9014
dtv.comp at

#21897 (May 1, 2026, 5:01:50 PM)

trx: add JSON serialization for 'show trx'

Introduce trx_to_json() helper to serialize the output of
'show trx' into JSON format.

Also initialize talloc/VTY context in websdr entrypoint to
allow accessing TRX configuration programmatically.

Intended for external consumers (e.g. WebSDR frontend).

Change-Id: Icbfb754580daa6db9b5646cc6698a6a6ee1c1610
dtv.comp at

#21896 (May 1, 2026, 4:59:16 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#21895 (May 1, 2026, 4:59:15 PM)

build: detect pthread_setname_np and sched_* APIs, guard usage

Add configure checks for pthread_setname_np and sched_* functions.
Wrap their usage with HAVE_* guards to avoid build failures on
platforms where they are unavailable.

Return -ENOTSUP for unsupported scheduler operations.

Improves portability across non-Linux and restricted environments
(e.g. WebAssembly).

Change-Id: Ic3f1492544439d88c5e6683330c6696de1c2f85b
dtv.comp at

#21894 (May 1, 2026, 4:59:15 PM)

convolve: avoid function pointer casts by adding wrapper functions

Introduce _base_convolve_*_void() wrappers matching the expected
function pointer signatures and use them instead of casting
_base_convolve_* functions to (void *).

This removes unsafe function pointer casts and improves
type safety, which is required for stricter toolchains and
non-native targets (e.g. WebAssembly)

Change-Id: Idecb118be285eb3e4691d1761d0d8fa24fd80c75
dtv.comp at

#21893 (May 1, 2026, 4:59:15 PM)

device: add WebSDR radio backend

Introduce a new optional WebSDR device backend, enabled via
--with-websdr.

Add WebSDRDevice implementation and build integration, providing
a RadioDevice interface backed by callback hooks for control and
sample I/O.

Intended for Web-based deployments where osmo-trx interacts with
SDR hardware via a WebSDR/WebUSB frontend.

Change-Id: Ie459cbd70388dd8ff5b89221d30770bab0bd9014
dtv.comp at

#21892 (May 1, 2026, 4:59:15 PM)

trx: add JSON serialization for 'show trx'

Introduce trx_to_json() helper to serialize the output of
'show trx' into JSON format.

Also initialize talloc/VTY context in websdr entrypoint to
allow accessing TRX configuration programmatically.

Intended for external consumers (e.g. WebSDR frontend).

Change-Id: Icbfb754580daa6db9b5646cc6698a6a6ee1c1610
dtv.comp at

#21891 (May 1, 2026, 4:59:14 PM)

transceiver: add optional WebSDR device support

- Add support for WebSDR devices enabled via the --with-websdr
configure flag.
- add libosmo-trx-websdr library and pkg-config file
- update .gitignore for wasm and pkg-config artifacts

Change-Id: Ia0d340c323c2eea28fbe82601ba0af7cfbd68f6d
dtv.comp at

#21890 (May 1, 2026, 4:59:13 PM)

build: detect pthread_setname_np and sched_* APIs, guard usage

Add configure checks for pthread_setname_np and sched_* functions.
Wrap their usage with HAVE_* guards to avoid build failures on
platforms where they are unavailable.

Return -ENOTSUP for unsupported scheduler operations.

Improves portability across non-Linux and restricted environments
(e.g. WebAssembly).

Change-Id: Ic3f1492544439d88c5e6683330c6696de1c2f85b
dtv.comp at

#21889 (May 1, 2026, 4:59:13 PM)

convolve: avoid function pointer casts by adding wrapper functions

Introduce _base_convolve_*_void() wrappers matching the expected
function pointer signatures and use them instead of casting
_base_convolve_* functions to (void *).

This removes unsafe function pointer casts and improves
type safety, which is required for stricter toolchains and
non-native targets (e.g. WebAssembly)

Change-Id: Idecb118be285eb3e4691d1761d0d8fa24fd80c75
dtv.comp at

#21888 (May 1, 2026, 4:34:51 PM)

trx: split TRXD parsing from socket callback

Extract TRXD message parsing into trx_data_read() and
reuse it from trx_data_read_cb()

This decouples parsing from socket I/O and allows reuse
with alternative transports

No functional changes intended

Change-Id: I50ad8b6d2edfd91f2d569cd8badf5c036fbf87ed
dtv.comp at

#21887 (May 1, 2026, 4:34:50 PM)

trx: factor out clock indication handling into helper

Extract clock indication handling logic into trx_clk_phy()
and reuse it from trx_clk_read_cb()

This separates core FN processing from socket-specific code
and prepares for alternative clock sources (e.g. non-UDP /
in-memory callbacks used in WebSDR/WASM builds).

No functional changes intended

Change-Id: I0e6b3e25da14ada4d0ef86fd4c4e6bbc12e447d2
dtv.comp at

#21886 (May 1, 2026, 4:34:50 PM)

trx: factor out burst submission into helper

Extract TRXD burst submission logic from bts_sched_flush_buffers()
into trx_sched_submit_bursts()

No functional changes intended, this prepares for alternative
backends reusing the same scheduling logic

Change-Id: I7ce61bee4ca7ca50ef190982f1a0e4ce57c8c838
dtv.comp at

#21885 (May 1, 2026, 4:34:49 PM)

trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
dtv.comp at

#21884 (May 1, 2026, 4:34:38 PM)

trx: factor out TRXD data submission helper

Extract TRXD data sending into trx_data_submit_msg() and
reuse it from trx_if_send_burst()

This separates transport-specific I/O from message construction
and prepares for alternative backends

No functional changes intended

Change-Id: Ie89ac6efe2f5af0b4cbe5a259a18770b8d2de859
dtv.comp at

#21883 (May 1, 2026, 4:34:32 PM)

build: make sched_* usage optional

Add configure checks for sched_* APIs and guard usage of
sched_setscheduler with HAVE_SCHED_SETSCHEDULER.

This avoids build/runtime issues on platforms without
scheduler support.

Change-Id: I5af357c1e2074fa1e05ac6bc20af8535c474d906
dtv.comp at

#21882 (May 1, 2026, 4:34:30 PM)

abis: add helper to update BTS identity

Introduce abis_update_bts_info() to update site_id and bts_id in
bts_dev_info at runtime

This allows adjusting BTS identity after initialization,
e.g. from external control interfaces

Change-Id: Ibafd66a1e1dc42ad0063c412087bee10d212fe33
dtv.comp at

#21881 (May 1, 2026, 4:34:30 PM)

smux: allow lchan lookup without remote address

Make rem_addr optional in osmux_lchan_find() by skipping
address comparison when it is NULL

This allows callers without socket-based addressing to
locate lchans by CID only (e.g. callback-based transports)

Change-Id: I7a275dad2353241c7b04cdb5d6cc1436a175c1f3
dtv.comp at

#21880 (May 1, 2026, 4:34:26 PM)

bts: guard AMR RTP decoder stub with HAVE_LIBOSMOCODEC_STATIC

Disable dummy osmo_amr_rtp_dec() implementation when
linking against static libosmocodec to avoid symbol
conflicts

Apply to omldummy and virtual BTS models

Change-Id: Ie19ae2013893575a2f74a87af2151034abf57870
dtv.comp at

#21879 (May 1, 2026, 4:34:23 PM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21878 (May 1, 2026, 4:33:37 PM)

trx: factor out TRX ctrl message submission

Extract TRX control message sending logic into
trx_ctrl_submit_msg() and reuse it from trx_ctrl_send()

This separates message construction from transport-specific
submission and prepares for alternative backends

No functional changes intended

Change-Id: Ibbd50117db4531efbc374e43e3802f9f995362cd
dtv.comp at

#21877 (May 1, 2026, 4:33:36 PM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21876 (May 1, 2026, 4:33:35 PM)

trx: split TRX ctrl response parsing from socket callback

Extract TRX control response parsing logic into
trx_ctrl_parse_rsp() and call it from trx_ctrl_read_cb()

This decouples parsing from socket I/O and allows reuse
with alternative transports

No functional changes intended

Change-Id: I255c7d554aad3ac6df2c66716fae1c1fb512110e
dtv.comp at

#21875 (May 1, 2026, 4:33:34 PM)

build: add WebSDR configure option and Emscripten detection

Detect Emscripten toolchain and introduce --with-websdr
configure option

When enabled, check for libosmo-trx-websdr and required
symbol modulateBits, failing configure if missing

Change-Id: Iff4b76e339e2873686c8c15885dd498458ceb546
dtv.comp at

#21874 (May 1, 2026, 4:33:33 PM)

trx: handle synchronous TRX control callbacks in provision FSM

Set *_sent flags before issuing TRX control commands to ensure
correct state when responses are delivered synchronously
(e.g. WebUSB callback path)

Also guard FSM state handling in st_open_poweroff() to avoid
duplicate transitions if state was already changed by a
synchronous response

No functional change for asynchronous (socket-based) backends

Change-Id: I50c95e3796839e9fe721bff6f96fed4c490c6018
dtv.comp at

#21873 (May 1, 2026, 4:33:33 PM)

trx: split TRXD parsing from socket callback

Extract TRXD message parsing into trx_data_read() and
reuse it from trx_data_read_cb()

This decouples parsing from socket I/O and allows reuse
with alternative transports

No functional changes intended

Change-Id: I50ad8b6d2edfd91f2d569cd8badf5c036fbf87ed
dtv.comp at

#21872 (May 1, 2026, 4:33:29 PM)

trx: factor out clock indication handling into helper

Extract clock indication handling logic into trx_clk_phy()
and reuse it from trx_clk_read_cb()

This separates core FN processing from socket-specific code
and prepares for alternative clock sources (e.g. non-UDP /
in-memory callbacks used in WebSDR/WASM builds).

No functional changes intended

Change-Id: I0e6b3e25da14ada4d0ef86fd4c4e6bbc12e447d2
dtv.comp at

#21871 (May 1, 2026, 4:33:28 PM)

abis: add helper to update BTS identity

Introduce abis_update_bts_info() to update site_id and bts_id in
bts_dev_info at runtime

This allows adjusting BTS identity after initialization,
e.g. from external control interfaces

Change-Id: Ibafd66a1e1dc42ad0063c412087bee10d212fe33
dtv.comp at

#21870 (May 1, 2026, 4:33:28 PM)

trx: factor out FN timer processing into common helper

Extract core FN timer handling logic into trx_fn_timer_process()
to decouple it from timerfd-specific code.

This allows reusing the same scheduling logic for alternative
timer backends (e.g. WebSDR) while keeping timerfd integration
as a thin wrapper.

No functional changes intended.

Change-Id: Ia28cce57afb3dc97c8655e855ebd5ace7e096648
dtv.comp at

#21869 (May 1, 2026, 4:33:25 PM)

smux: allow lchan lookup without remote address

Make rem_addr optional in osmux_lchan_find() by skipping
address comparison when it is NULL

This allows callers without socket-based addressing to
locate lchans by CID only (e.g. callback-based transports)

Change-Id: I7a275dad2353241c7b04cdb5d6cc1436a175c1f3
dtv.comp at

#21868 (May 1, 2026, 4:32:27 PM)

build: make sched_* usage optional

Add configure checks for sched_* APIs and guard usage of
sched_setscheduler with HAVE_SCHED_SETSCHEDULER.

This avoids build/runtime issues on platforms without
scheduler support.

Change-Id: I5af357c1e2074fa1e05ac6bc20af8535c474d906
dtv.comp at

#21867 (May 1, 2026, 4:32:25 PM)

trx: factor out TRXD data submission helper

Extract TRXD data sending into trx_data_submit_msg() and
reuse it from trx_if_send_burst()

This separates transport-specific I/O from message construction
and prepares for alternative backends

No functional changes intended

Change-Id: Ie89ac6efe2f5af0b4cbe5a259a18770b8d2de859
dtv.comp at

#21866 (May 1, 2026, 4:32:25 PM)

trx: split TRX ctrl response parsing from socket callback

Extract TRX control response parsing logic into
trx_ctrl_parse_rsp() and call it from trx_ctrl_read_cb()

This decouples parsing from socket I/O and allows reuse
with alternative transports

No functional changes intended

Change-Id: I255c7d554aad3ac6df2c66716fae1c1fb512110e
dtv.comp at

#21865 (May 1, 2026, 4:32:23 PM)

trx: factor out burst submission into helper

Extract TRXD burst submission logic from bts_sched_flush_buffers()
into trx_sched_submit_bursts()

No functional changes intended, this prepares for alternative
backends reusing the same scheduling logic

Change-Id: I7ce61bee4ca7ca50ef190982f1a0e4ce57c8c838
dtv.comp at

#21864 (May 1, 2026, 4:32:23 PM)

bts: guard AMR RTP decoder stub with HAVE_LIBOSMOCODEC_STATIC

Disable dummy osmo_amr_rtp_dec() implementation when
linking against static libosmocodec to avoid symbol
conflicts

Apply to omldummy and virtual BTS models

Change-Id: Ie19ae2013893575a2f74a87af2151034abf57870
dtv.comp at

#21863 (May 1, 2026, 4:32:22 PM)

trx: add JSON stats export for WebSDR API

Introduce stats_json.c providing JSON serialization for:
- stats and counters
- rate counters
- BTS state
- TRX/transceiver state
- WebSDR runtime metrics

Add osmobts_get_stats() API to expose these via WebSDR
interface and export it in Emscripten build

This enables programmatic access to data previously available
via VTY (e.g. "show stats", "show bts")

Change-Id: Ifb82adfab879a65ecd222c45e06551983aa90a0f
dtv.comp at

#21862 (May 1, 2026, 4:32:21 PM)

trx: factor out TRX ctrl message submission

Extract TRX control message sending logic into
trx_ctrl_submit_msg() and reuse it from trx_ctrl_send()

This separates message construction from transport-specific
submission and prepares for alternative backends

No functional changes intended

Change-Id: Ibbd50117db4531efbc374e43e3802f9f995362cd
dtv.comp at

#21861 (May 1, 2026, 4:32:21 PM)

trx, bts: add optional WebSDR backend (callback-based transport)

Introduce WebSDR backend enabled via ENABLE_WEBSDR,
adding an alternative callback-based transport alongside
existing socket-based TRX/OSMUX I/O

Implement:
- TRX control via osmotrxlib_process_command()
- TRXD data via apitrx_tx_call()/trx_data_read()
- clock handling via apibts_clock_ind() and external timers
- Osmux integration via ws_osmux_* helpers

Adapt scheduler to support API-based burst submission and
external timer callbacks in WebSDR mode

Disable signal handling, stats and socket I/O when building
with ENABLE_WEBSDR

Add WebSDR API entrypoint, Emscripten build target and
example configuration

Enables running BTS/TRX stack in WebAssembly environments

Change-Id: Idebd588f33afd85021813ad5821391781db683a9
dtv.comp at

#21860 (May 1, 2026, 4:32:21 PM)

build: add WebSDR configure option and Emscripten detection

Detect Emscripten toolchain and introduce --with-websdr
configure option

When enabled, check for libosmo-trx-websdr and required
symbol modulateBits, failing configure if missing

Change-Id: Iff4b76e339e2873686c8c15885dd498458ceb546
dtv.comp at

#21859 (May 1, 2026, 4:32:20 PM)

trx: handle synchronous TRX control callbacks in provision FSM

Set *_sent flags before issuing TRX control commands to ensure
correct state when responses are delivered synchronously
(e.g. WebUSB callback path)

Also guard FSM state handling in st_open_poweroff() to avoid
duplicate transitions if state was already changed by a
synchronous response

No functional change for asynchronous (socket-based) backends

Change-Id: I50c95e3796839e9fe721bff6f96fed4c490c6018
dtv.comp at

#21858 (Apr 30, 2026, 3:52:36 PM)

tcap_as_loadshare: Clarify name of tcap asp selection function

Change-Id: I327ad282d2689be2bcf7d3da23026717923c9325
dwillmann at

#21857 (Apr 30, 2026, 3:52:35 PM)

tcap_as_loadshare: Route msg based on TCAP route if cache lookup fails

Related: SYS#5423
Change-Id: I2fd9068be8a0a512b17c8bd2365aa87c266e5669
dwillmann at

#21856 (Apr 30, 2026, 3:52:30 PM)

tcap_as_loadshare: Route msg based on TCAP route if cache lookup fails

Related: SYS#5423
Change-Id: I2fd9068be8a0a512b17c8bd2365aa87c266e5669
dwillmann at

#21855 (Apr 30, 2026, 3:52:29 PM)

tcap_as_loadshare: Clarify name of tcap asp selection function

Change-Id: I327ad282d2689be2bcf7d3da23026717923c9325
dwillmann at