Bryan Biedenkapp
b555b2a4f0
add synthetic U2U call tests;
6 days ago
Bryan Biedenkapp
ab348543cf
do not start RF TG hangtimer for U2U calls;
6 days ago
Bryan Biedenkapp
7bbb6ade1b
do not check unit registration for U2U calls if unitToUnitAvail check is disabled;
6 days ago
Bryan Biedenkapp
df800c2998
add guard check to prevent null dereference;
6 days ago
Bryan Biedenkapp
b08629a896
support Linux versions of the AMBE library as well;
6 days ago
Bryan Biedenkapp
38604c34f2
correct runtime issue grabbing talkgroups that could cause a crash;
7 days ago
Bryan Biedenkapp
fc59f50680
file cleanup;
7 days ago
Bryan Biedenkapp
048de3ab55
add per-stream ordered FNE traffic dispatching; route DMR, P25P1, P25P2, and NXDN traffic through a common receive validation and protocol dispatch path before enqueuing frames for processing; add a shared ordred frame queue model that preserves arrival order within each peer/SSRC/stream/direction keyh while allowing parallel calls to run concurrently on a single existing FNE worker pool, frames are scheduled immediately without waiting for headers or missing seq numbers; apply ordering model to direct and upstream traffic; add regression coverate for same-stream FIFO behavior, concurrent calls, burst traffic, stream reuse, key isolation, late-entry and duplicate seq;
7 days ago
Dev_Ranger
c68149421f
= Fix NXDN receive ordering in FNE
...
- Dispatch local NXDN packets through a dedicated single-worker queue
- Prevent voice frames overtaking their preceding call header
- Preserve existing dispatch for other protocols
1 week ago
Dev_Ranger
3ba67a1506
= Fix Bridge vocoder integration, framing, and buffer bounds
...
- Fix half-rate encoder input overread
- Bound NXDN FACCH1 and UDCH puncture-table access
- Fix P25 receive buffer bounds
- Correct NXDN transmit buffer strides and SACCH fragment assembly
- Fix DMR sync, burst sequencing, call termination, and buffer cleanup
- Add focused regression tests and correct static vocoder linkage
- Rename packet-state enum value to avoid a Windows macro collision
1 week ago
Bryan Biedenkapp
54cee44381
fixes for REST API handling, correct bad condition where TLS handshakes could leave dangling sockets, add deadlines for various operations to prevent deadlock scenarios, REST handlers operate async to prevent blocking ASIO event loop;
1 week ago
Bryan Biedenkapp
a5e0f0f315
parrot playback should also properly adhere to inclusion peer list rules; add more robust peer traffic routing tests;
2 weeks ago
Bryan Biedenkapp
944a434db3
add better handling for parrot playback to do typical eligibility checks; add testcases to test these conditions;
2 weeks ago
Bryan Biedenkapp
7fa3c16fe1
better handle logging grant failures on the host for network traffic in certain conditions (like TGs that are sent always regardless of aff status); correct parrot playback thread not testing if affiliations were present before repeating parrot frames;
2 weeks ago
Bryan Biedenkapp
a67733c671
add some lifecycle tests for telephone interconnect;
2 weeks ago
Bryan Biedenkapp
ffaf2ff88b
correct issue with direct literal assignment to the JSON structure (you cannot do this); correct LC_TEL_INT_VCH_USER reading data from an incorrect offset; correct a bad testcase assumption;
2 weeks ago
majmongoose
c0f4b89f6e
P25 telephone interconnect (TIA-102 PSTN calls) for trunked systems via a gateway peer ( #133 )
...
* add P25 telephone interconnect TSBKs (TELE_INT_VCH_GRANT, TELE_INT_PSTN_REQ, TELE_INT_ANS) and decode them in TSBKFactory;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* add telephoneInterconnect control channel option; forward P25 telephone interconnect PSTN requests, answer responses and interconnect cancels to the network, and only transmit network answer requests for units registered to the site;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* add contributor copyright for P25 telephone interconnect control channel changes;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* add telephone interconnect gateway peer flag (peer list, REST API, peered); route P25 telephone interconnect voice and signalling only between gateway peers and the peer the unit is registered to, and validate interconnect calls against the RID ACL instead of talkgroup rules;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* route gateway telephone interconnect traffic to the voice channel peers of the site the unit is registered to;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* add P25 telephone interconnect channel grants; grant interconnect calls on network grant demand, hold the grant for the whole call (message trunking) with grant demand keepalives, release it on the terminating TDULC or a unit cancel, and deny on network grant denial;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* handle P25 telephone interconnect calls on voice channels; decode the TEL_INT_VCH_USER address as the call dstId and encode dstId as the address, correct the TEL_INT_VCH_USER LC and TDULC encoders, hold telephone interconnect permits through TG hang, and attribute talkgroup-less HDUs to the permitted unit;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* add the explicit channel form of the P25 telephone interconnect channel grant (MBT_OSP_TELE_INT_VCH_GRANT, AMBT); grant telephone interconnect calls on explicit channel sites with the AMBT grant instead of refusing them;
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2 weeks ago
Bryan Biedenkapp
cfc036ca38
add support for C++ peers to trigger a radio alias sync request;
2 weeks ago
Bryan Biedenkapp
9e25bb8fbf
remove DMR disable network grant demand options (it made no sense);
4 weeks ago
Bryan Biedenkapp
56c35c21e1
refactor P25 RF grant steering when in enhanced conventional; add option to hide remote grant demand messaging;
4 weeks ago
Bryan Biedenkapp
067b622fe9
aggregate peer affiliations and unit registrations upstream;
4 weeks ago
Bryan Biedenkapp
b231a2f0fc
prevent peer replication traffic worker deadlocks; replace raw peer pointers with shared ownership and use short-lived peer registry locks with stable snapshots; avoid holding peer locks during traffic queue writes, metadata updates, replication, and REST serialization, while keeping connections alive during concurrent disconnects;
4 weeks ago
Bryan Biedenkapp
9c66e6b8db
correct possible replication-based metadata worker deadlock;
4 weeks ago
Bryan Biedenkapp
32b8e625e5
add RF talkgroup steering and preemption coverage for P25 enhanced conventional grants;
4 weeks ago
Bryan Biedenkapp
b68fadb533
correct file formatting and style;
1 month ago
Bryan Biedenkapp
3b1d249dd9
support standard unconfirmed P25 MBT packets; implement TELE_INT_DIAL_REQ encoding and decoding; add factory routing and unit tests;
1 month ago
Bryan Biedenkapp
55b7570701
implement Change-RSI KMM encoding/decoding; recover from authenticated invalid-MN rekey NAKs using Change-RSI; resume rekeying after successful message-number resynchronization; optionally issue keyset changeover after rekey completion;
1 month ago
Bryan Biedenkapp
f68bc9fb67
allow disabling KMF UDP DLI by setting otarPort to 0;
1 month ago
Bryan Biedenkapp
04d12f154e
reorganize and cleanup FNE configuration (this was overdue sorry everyone be sure you COMPARE YOUR CONFIGURATION TO THE EXAMPLE); correct conventional reg requesting 0.0.0.0, this allocates an IP and responds to the radio; reimplement the all-peer broadcast of data packets with a "broadcast" option under packetData in the FNE config; allow OTAR DLD KMMs without conventional registration;
1 month ago
Bryan Biedenkapp
042c6986d8
enhance PacketBuffer to support extended PacketBuffer delivery;
1 month ago
Bryan Biedenkapp
b7ec27d93b
correct issue where P25 OTAR KMF RSI is fixed to 16777212 and not configurable;
1 month ago
Bryan Biedenkapp
fd0426814d
correct crash condition that can be caused by retrieving KMF keys;
1 month ago
Bryan Biedenkapp
d07deb8280
correct formatting;
1 month ago
Bryan Biedenkapp
a1315ee82e
remove the STP from health it has no good use;
1 month ago
Bryan Biedenkapp
6e0f7c7c05
unify strings;
1 month ago
Bryan Biedenkapp
30e7099971
implement GET /health FNE API that can be used to fetch a snapshot of the current FNE health;
1 month ago
Bryan Biedenkapp
6c8becc8a6
correct some STP edge case failures; implement STP unit tests proper;
1 month ago
Bryan Biedenkapp
97208efc43
implement some PacketBuffer bounds and order fixes;
1 month ago
Bryan Biedenkapp
536997ac10
add Tier III UDT and registration authentication;
1 month ago
Bryan Biedenkapp
dbc30e97b4
correct DMR ACK_RSP dstId truncation;
1 month ago
Bryan Biedenkapp
b533ea178b
file cleanup;
1 month ago
Bryan Biedenkapp
33b9e25f55
recover Tier III grants for payload-channel re-key;
1 month ago
Bryan Biedenkapp
25dfc17d44
correct Tier III call teardown and slot allocation;
1 month ago
Bryan Biedenkapp
35a2716c07
add AACA Warm-Start Command encoding, CBC-MAC authentication, and temporary TEK handling; begin rekey immediately after a valid Warm-Start acknowledgment or after the response timeout; add upstream UKEK resolution through replica masters; rename LLA key request/response packets to generalized KEK exchanges; include algorithm metadata in KEK responses and network callbacks; improve KMM validation, MAC handling, and encrypted DLD/DLI processing; advertise idle inbound-channel status symbols on outbound P25 PDUs; add Warm Start configuration, test hooks, and expanded KMM/OTAR coverage;
1 month ago
Bryan Biedenkapp
5d32e6fe70
implement support to send the KMM changeover;
1 month ago
Bryan Biedenkapp
87b347ba02
send complete KMM key request and response frames, use fullLength() when transmitting KMM Modify Key messages because length() excludes the three-byte message ID and length prefix;
1 month ago
Bryan Biedenkapp
aba9c330ef
pace complete PDU transactions for air and hotspot modems; correct TIA-102 enhanced AES CBC-MAC generation; start outbound KMM message numbering at one; clear completed FNE response state before the next PDU; decode and log authenticated and invalid-MAC KMM NACKs; add KMM changeover command/response support;
1 month ago
Bryan Biedenkapp
cd4496b56c
correct OTAR response encryption and ACK ordering;
1 month ago
Bryan Biedenkapp
1cb1281839
harden PDU delivery and batch OTAR rekey commands;
1 month ago
Bryan Biedenkapp
c59e93199c
fix up ModemV24 to handle PDUs better;
1 month ago
Bryan Biedenkapp
ce57f48302
corrected short/long modem frame serialization without mutating source lengths or overrunning buffers; removed double-counted PDU padding in common and V.24 assembly; added checked native-modem size enforcement before transmitting oversized PDUs; fixed exact-boundary padding calculations for P25 DataHeader; corrected unconfirmed Auxiliary ES handling, including the 13th-byte EXSAP field; removed incorrect test-side padding-length workarounds that caused tests to pass when they should not have; added exact-boundary and Auxiliary ES regression assertions;
1 month ago
Bryan Biedenkapp
4d1300826c
reorganize source files; add mirror functionality for data router and packet scheduler from P25 to DMR; add tests;
1 month ago
Bryan Biedenkapp
3060769f9b
add better handling for ARP and data packet routing;
1 month ago
Bryan Biedenkapp
b0e2903fb6
perform refactor for how convential CAI P25 Data and SCEP is handled;
1 month ago
Bryan Biedenkapp
10e681d87f
harden OTAR KMM handling and add bearer integration tests;
1 month ago
Bryan Biedenkapp
0bdac24d07
correct KMM NACK responses where necessary;
1 month ago
Bryan Biedenkapp
808aa8b70f
correct bad KMM authentication and replay protection; correctly negotiate proper response authentication; correct key-format semantics (there was a serious mismatch in P25Defines causing incorrect handling of values); harden KMM parsing and framing; fix PDU AES OFB processing; expand the P25 OTAR and crypto tests;
1 month ago
Bryan Biedenkapp
e7fdaed775
correct issue handling HA IP rotation;
1 month ago
Bryan Biedenkapp
99038b07ec
EXPERIMENTAL: add experimental support for NXDN encrypt/decrypt on bridge;
1 month ago
Bryan Biedenkapp
adefbeba89
correct P25 ACK_RSP ISP decode;
1 month ago
Bryan Biedenkapp
ce8b7a7ea7
add similar support from TSBK to CSBK to treat CRC errors as warnings;
1 month ago
Bryan Biedenkapp
d098001076
correct bad logging information;
1 month ago
Bryan Biedenkapp
72b7ba4b58
EXPERIMENTAL: add support to bridge to duplicate traffic to analog when encoding digital audio;
1 month ago
Bryan Biedenkapp
5c5016b623
implement NXDN crypto support; code cleanup;
2 months ago
Bryan Biedenkapp
44b5042c35
begin some corrective work for bridge NXDN support;
2 months ago
Bryan Biedenkapp
4774bb94af
minor source cleanup and annotation;
2 months ago
Lorenzo L. Romero
1040ba35e8
Add FNE console patch status registry service ( #121 )
2 months ago
Bryan Biedenkapp
e4bc909972
correct bad LICH handling for RCCH type packets; correct some bad PacketInformation handling;
2 months ago
Bryan Biedenkapp
9662385249
correct various P25P2 issues; correct bad P25P1 bit additions from network TSDUs;
2 months ago
Bryan Biedenkapp
5091225a9f
correct DMR PDU handling;
2 months ago
Bryan Biedenkapp
a27e87ede1
correct FACCH buffer overflow;
2 months ago
Bryan Biedenkapp
2662dbcf19
correct some DMR OTA late entry issues; correct missing NXDN packet length checks (should be similar to DMR);
2 months ago
Bryan Biedenkapp
e9815ea8b9
correct FNE transport for NXDN to handle 48-byte CAI frames (as intended); correct NXDN bridge issues not properly handling the VCALL header and not handling the SACCH voice superframes correctly; correct NXDN bridge not properly handling NXDN FACCH TX_REL; correct FNE grant using VCALL instead of VCALL_CONN; correct memory handling for NXDN VCALL_IV MI handling; correct dvmhost TX_REL handling to use message type instead of depending on the modem tags alone; correct FACCH LC handling, this was handling incorrect lengths; expand NXDN unit tests;
2 months ago
Bryan Biedenkapp
5bd770a4dd
update submodules;
2 months ago
J. Chang
a4f14606f2
Fix analog and NXDN parrot playback intervals ( #129 )
2 months ago
Bryan Biedenkapp
ccad1479af
correct issue where FNE might be a replica and the radio alias sync command is being used, but because the FNE is a replica there may not be on disk saved radio alias, so save it to disk then read it like other sync operations;
2 months ago
Bryan Biedenkapp
cb390aa0cd
correct packetbuffer issues;
2 months ago
Bryan Biedenkapp
fc23017cf2
P25 OTAR unit tests;
2 months ago
Bryan Biedenkapp
93876e6ab7
enhance LDU1 logs to include the current LCO;
2 months ago
Bryan Biedenkapp
0776f91ba8
correct issue where GROUP_UPDT would incorrectly override the currently active dstId;
2 months ago
Bryan Biedenkapp
e47524a21c
correct heap use-after-free in ServerConnectionManager during stopAll();
2 months ago
Bryan Biedenkapp
5e2356162c
correct some infinte loop conditions due to bad loop variable sizes; correct missing error handling for zlib during decompression;
2 months ago
Bryan Biedenkapp
c701b8e131
correct use-after-free crash for Replication, NetworkTree and KeysUpdate packets;
2 months ago
Bryan Biedenkapp
5e684228f5
add APIs for managing the separate RID alias data; add Catch2 tests;
3 months ago
Bryan Biedenkapp
0e1d45716f
correct shared DLL compilation on Win32;
3 months ago
Bryan Biedenkapp
69aaced3cf
implement build system support for non-static linking;
3 months ago
Bryan Biedenkapp
d736e7b598
implement FNE REST API tests;
3 months ago
Tim WD6AWP
b90cfb8d85
log corrected MI bytes in V.24/TIA DFSI LDU2 FEC-correction warning ( #128 )
...
The Enc Sync content warning only printed algId/kId, but its trigger
condition also fires on an MI-only change (memcmp against LDULC),
making the log show no apparent difference when only the MI changed.
3 months ago
Bryan Biedenkapp
fb6a8089ea
start plumbing for Harris RF OTA User Alias (this is not wired yet...);
3 months ago
Bryan Biedenkapp
193055330a
handle replicating radio aliases from FNE to FNE; implement RADIO_ALIAS_SYNC for fnecore consoles to be able to request the radio alias list from the core;
3 months ago
Bryan Biedenkapp
f5f86ef9c7
add separate radio alias lookup for the purposes of serving non-ACL connected radio ID aliasing in the future;
3 months ago
Bryan Biedenkapp
6b29648e8b
add missing comments/documentation somehow this got clobbered between commits;
3 months ago
Bryan Biedenkapp
f3652d39a7
correct a regression with HTTP GET due to previous HTTP hardening;
3 months ago
Bryan Biedenkapp
47fff42173
add support for FNE tests via dvmtests harness;
3 months ago
Bryan Biedenkapp
6cbcd4240c
perform packet length validations;
3 months ago
Bryan Biedenkapp
5e15e26547
correct a out-of-bounds read error in the HTTP server;
3 months ago
Bryan Biedenkapp
2b3276f3d0
add FNE support to transmit P25 Phase 2 traffic; ensure critical Phase 2 data (such as scrambler offset and MAC PDU Opcode) are sent in P25 Phase 2 frames;
3 months ago
Bryan Biedenkapp
e9dc058704
baseline implementation of host-only P25 Phase 2 implementation (this creates the plumbing required later once the SDR modems have support for Phase 2);
3 months ago
Bryan Biedenkapp
56bff0489b
correct EKC container loading while file is being changes;
3 months ago
Bryan Biedenkapp
18a4a9b18d
correct condition where multiple Key Updates could clobber each other in a race condition;
3 months ago