14 Commits

Author SHA1 Message Date
Wouter Bokslag
a73ed88fbc Version 0.5.6, final tweaks to new soapy config
Config file should now be version 0.6
Slight tweaks to example config
Program now prints version number on startup
Formatting changes
2026-03-25 19:19:30 +01:00
Wouter Bokslag
fdeabbbf4c MLE and LLC refactors
- MLE now sends TL-UNITDATA for certain unacknowledged frames
- LLC now implements handling of TL-UNITDATA for sending BL-UDATA
- MLE broadcast functionality to separate file
- Various other fixes, cleanups and improvement
2026-03-19 10:05:29 +01:00
Wouter Bokslag
dda4214ccb Removed erroneous config debug print 2026-02-26 15:59:58 +01:00
Wouter Bokslag
52fac5d511 Large config file parsing refactor, also ensured all fields actually affect stack 2026-02-26 00:00:37 +01:00
Wouter Bokslag
d0e306cb78 Optimized out redundant BrewConfig struct
Struct contents were nearly identical to CfgBrew from config.
Removed BrewConfig and updating passing config to Brew entity
2026-02-23 17:15:52 +01:00
Wouter Bokslag
a24b931aff Merge branch 'pr19' of github.com:MidnightBlueLabs/tetra-bluestation into pr19 2026-02-23 17:06:11 +01:00
Wouter Bokslag
34c03bb462 Added config fields for brew white/blacklist 2026-02-23 17:05:55 +01:00
misadeks
cbfd50b79d Dynamic group attachment for Brew subscribers (#19) 2026-02-23 17:03:21 +01:00
Elliott Cooper
ca97b70648 Feature: Adaptive JitterBuffer for Brew Originated Calls (#16)
* brew: replay adaptive jitter buffer and bump v0.4.3
2026-02-21 12:16:44 +01:00
Wouter Bokslag
71caafae96 Standardized code formatting conventions and linting
Added a rustfmt.toml to define code formatting conventions for the project.
Applied said format to entire codebase.
2026-02-19 17:19:44 +01:00
Wouter Bokslag
42bd3fe5eb Refactors in Brew config
- Brew config fields updated:
- Enabled field now removed.
- Internally, map config file to intermediary struct, then to StackConfig to be coherent with other config fields.
- Remove brew user agent field, now derive that from version number + git commit hash: BlueStation/0.x.x/aabbccdd
- Some small tweaks and improvements
2026-02-19 12:30:01 +01:00
proxiboi69
95f2cd61f6 Brew integration and local group calls
- Brew RX/TX: talkgroup subscription, DL voice routing, UL forwarding to TetraPack
- Local group calls: ETSI call setup, floor control, hangtime, late entry
- UL voice: TCH/S decode with continuous Viterbi, ACELP reorder, DL loopback
- Fix MAC fragmenter crash on header exceeding remaining slot capacity
- Fix MLE handle routing for individual call setup responses
- Fix Direction::Both in UMAC circuit manager
- Align circuit expiry with T5m call timeout

- Add DEAFFILIATE → DEREGISTER teardown on Brew worker disconnect
- Implement Drop for BrewEntity to trigger graceful shutdown
- Add Ctrl+C signal handler (ctrlc crate) so main loop exits cleanly
- Extract graceful_teardown() in worker, handle channel disconnect fallback
- Add build_subscriber_deaffiliate/deregister to protocol builders

- Pass target TS via chan_alloc in D-TX CEASED / D-TX GRANTED
- UMAC stealing path uses specified TS instead of always picking first active circuit
- Fixes missing PTT release signaling on TS3+ with multiple concurrent group calls
2026-02-17 18:51:32 +01:00
Wouter Bokslag
11cc45fcef First draft of networked TETRA entity including working tests 2026-02-06 14:47:00 +01:00
Wouter Bokslag
c9c20a9abe Massive restructuring and refactor
Although functional changes are limited, I've massively refactored and restructured the codebase into several separate crates.
- tetra-core features functionality and data that are used throughout the stack
- tetra-saps contains definitions for all SAP message types
- tetra-config contains everything that has to do with toml-based config file parsing and conversion to the internally-used datastructures
- tetra-pdus features entity-related PDU definitions, including field struct types and enums
- tetra-entities features implementations for TETRA entities, split between BS and MS use cases. It also holds subcomponents like schedulers and decoding tools.

A separate bins folder is made, which may hold any current and future binary targets we want to compile. Right now we have:
- tetra-bluestation-bs, which compiles the core base station binary
- pdu-tool, which is a crude, buggy, ad hoc tool to parse certain pdu types for stack debugging purposes
2026-01-17 16:58:09 +01:00