Commit Graph

1230 Commits (r05a06_dev)

Author SHA1 Message Date
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)
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
Bryan Biedenkapp b13f127036 expand previous PR to cover all RS decode functions; implement fecErr returns for P2 LC handlers; update tests;
3 months ago
Tim WD6AWP a4f8829b45
R05a06 dev (#126)
3 months ago
Bryan Biedenkapp 3c3dc871af correct double free;
3 months ago
Bryan Biedenkapp c2a59ef14e bump major version number;
3 months ago
Bryan Biedenkapp 794e8b71e5 replace UDPSockets preshared AES-ECB implementation with a AES-CBC implementation;
3 months ago
Bryan Biedenkapp ac9eaa90c4 Dev_Ranger was slightly overzealous in his match and replace;
3 months ago
Dev_Ranger f309a782de = Update Influx metrics config field names
3 months ago
Bryan Biedenkapp 4840c2d4c5 log an error when we try to push an event and there is no more room because we have reached max queue depth;
3 months ago
Bryan Biedenkapp 2657edcecf for backcompat reasons support announce frames on the traffic port (this really should be extremely short term);
3 months ago
Bryan Biedenkapp 74f23f7459 bring calls processed numeric metric in lock-step with a call_event log (originally calls processed was keyed off the start of a call, which can have misleading consequences about the true count of calls);
3 months ago
Bryan Biedenkapp fdaaff2c56 sqlite3 writer should check g_killed to keep loop alive;
3 months ago
Bryan Biedenkapp 0dc2c37056 thread must die if g_killed set;
3 months ago
Bryan Biedenkapp b609bcc843 properly label sqlite thread;
3 months ago
Bryan Biedenkapp ead43239ef add some logging around queue depth size;
3 months ago
Bryan Biedenkapp 07116a378d remove remaining mutex locking, this is dangerous but necessary so metrics never causes deadlock;
3 months ago
Bryan Biedenkapp bcb37cc4a9 remove mutex locking infavor of atomics which should prevent deadlock scenarios (hopefully);
3 months ago
Bryan Biedenkapp 805df02ba0 report call switches in stats API;
3 months ago
Bryan Biedenkapp c9bb239771 begin metric counting call switch events;
3 months ago
Bryan Biedenkapp 9ef9ba34f4 implement support to log collision events to the metrics DB;
3 months ago
Bryan Biedenkapp 268e5b6f7f increment total call processed counters when a data call starts;
3 months ago
Bryan Biedenkapp 5e75b6b9e1 replace mutex locking with lock-free atomics instead;
3 months ago
Bryan Biedenkapp dea6d400db implement SQLite metrics DB table pruning; cleanup code;
3 months ago
Bryan Biedenkapp 6bfbb03cec relabel some define constants;
3 months ago
Bryan Biedenkapp 94ad2de4f4 implement support to send logging and metrics to an SQLite DB; refactor how metrics and DB logging are handled;
3 months ago
Bryan Biedenkapp 6c0db3da8a remove networkWatchdog stop from resetNet(); properly start network watchdog for voice or data frames, but not for TDU or TSDUs;
3 months ago
Bryan Biedenkapp c3f337489f always reset states regardless of RS_NET_IDLE when performing a netTGHang resolution; be more verbose about network watchdog timeouts;
3 months ago
Bryan Biedenkapp 3324b67bc8 properly log a TOT state;
3 months ago
Bryan Biedenkapp 4e7a08ea18 refactor base Network class to follow same packet processing refactor that TrafficNetwork and MetadataNetwork did;
3 months ago
Bryan Biedenkapp a5bebe87f8 refactor how TrafficNetwork and MetadataNetwork handle packet NET_FUNC opcodes;
3 months ago
Bryan Biedenkapp 66aa15ef53 continue adding code tests;
3 months ago
Bryan Biedenkapp f0f35b59c9 refactor how MetadataNetwork handles the packet buffer maps, this should hopefully correct instability;
3 months ago
Bryan Biedenkapp 0dc6e2bf41 during active RF collision defer stale stream reset;
3 months ago
Bryan Biedenkapp 5321821490 fix incorrect assumptions by some HostControl tests; correct HostControl class name collisions that would cause strange link time errors; correct intermittent CRC-6 test failure;
3 months ago
Bryan Biedenkapp 39a7730484 extra parity alignment with P25 for frame loss handling;
3 months ago
Bryan Biedenkapp d72b604aa9 implement the same fix for DMR and NXDN;
3 months ago
Bryan Biedenkapp 7cc073b3f0 disabling rfTalkgroupHang (setting to 0) can cause a situation where a abrupt call stop from a subscriber can cause the RF state to hang, this implements a fix where by it forces the rfLossWatchdog to run to terminate a call that abruptly ends;
3 months ago
Bryan Biedenkapp 399992fec9 correct possible edge case causing the Rx P25 stream ID to become stuck; build and implement a test harness against the host controller paths to validate logic where possible;
3 months ago
Bryan Biedenkapp 26f9f3019d after review, because of how higher-level call handling works, and how ultimately LC metadata corruption from a DFSI source will be hidden, perform similar LC recovery attempts in the ModemV24 class;
4 months ago
Bryan Biedenkapp 9508ce9404 expand on and better handle frame sequencing from a V.24 source;
4 months ago
Bryan Biedenkapp d05088da57 corrections from cherrypicked code;
4 months ago
Bryan Biedenkapp 0d45869bc4 cherrypick changes from tsawyer/dvmhost/p25-consolidation into ModemV24;
4 months ago
Bryan Biedenkapp aea826fcbf minor jitter buffer alteration to properly drop the oldest frame vs the last frame;
4 months ago
Bryan Biedenkapp 8b96163d6e cleanup call states better when receiving illegal terminators (this should not happen normally unless you have very unstable internet that corrupts frames, but the hardening is better then not);
4 months ago
Bryan Biedenkapp 8fcd066c02 correct 3-bit error handling for Golay(24,12,8); add tests against network engine code; correct sendmmsg implementation against documentation for sendmmsg to better handle partially sent queues instead of discarding;
4 months ago
Bryan Biedenkapp 03068fe382 code cleanup;
4 months ago
Bryan Biedenkapp 191153d3c1 code cleanup;
4 months ago
Bryan Biedenkapp b4fae1f39a do not allow non-call RF terminators to be silent, be noisy about the fact that a non-call TDU was received;
4 months ago
developer 6691e2aa77
p25: fix extended-address PDU CRC-32 scope and outbound status bits (#125)
4 months ago
Bryan Biedenkapp 82f0c0c375 implement support to encrypt any TEK data with a preshared key;
4 months ago
Bryan Biedenkapp 562fb3cc67 internally generate a GRP_VCH grant demand message for a net event when encountering a grant demand TDU;
4 months ago
Bryan Biedenkapp f3698cbe86 encode the raw CSBK/TSBK/RCCH data in the control net event data; decode and send net_event for NXDN RCCH data;
4 months ago
Bryan Biedenkapp 0db63a6534 fix missing stream ID for call events; add call duration on call end event;
4 months ago
Bryan Biedenkapp c299d812e9 add support for call start/end WebSocket events;
4 months ago
Bryan Biedenkapp 7342f69fb9 whoops we were not clamping the jitter buffer size or max wait for peers to internal minimums/maximums;
4 months ago
Bryan Biedenkapp 7c5df8abed add possible protective controls around RPTL/RPTK/RPTC/RPT_DISC to mitigate multi-threaded race condition from rapid disconnect/connection scenarios;
4 months ago
Bryan Biedenkapp a7c7c3f330 correct possible null reference during disconnectPeer callback;
4 months ago
Bryan Biedenkapp f72fc5a1b3 corrections for failing NXDN tests;
4 months ago
Bryan Biedenkapp e16685fc4a add rudimentary experimental support for NXDN to dvmbridge; correct a few issues with trunked voice handling for NXDN, when a VC is a trunked participant the outgoing voice frames are RTCH vs RDCH;
4 months ago
Bryan Biedenkapp c76b417082 correct some minor NXDN issues;
4 months ago
Bryan Biedenkapp 689243e099 source code organization and cleanup;
4 months ago
Bryan Biedenkapp 2d5e307fd8 disable frameQueue debug;
4 months ago
Bryan Biedenkapp 8784e06e3b EXPERIMENTAL: implement new stream rejection logic when a call collision occurs, this is smarter then the existing logic in that a stream will fail processing validation and be rejected once identified as a collider;
4 months ago
Bryan Biedenkapp d29ce3c74f source code commenting cleanup;
4 months ago
Bryan Biedenkapp 54b2a41ec0 increase the base network buffer size from 8192 -> 16384, this is doubly as large, some transfer frames to sysview can reach the 8k boundary and become truncated, this increase in buffer size should allievate that issue;
5 months ago
Bryan Biedenkapp efedd6a53c disable accidentally enabled debug trace;
5 months ago
Bryan Biedenkapp ae93c4cb27 throw errors about writing buffers >8192;
5 months ago
Bryan Biedenkapp 36ab54e120 make oversized packet warning verbose;
5 months ago
Bryan Biedenkapp 082dbcde81 make oversized packet warning verbose;
5 months ago
Bryan Biedenkapp 4883e78065 report IP and port for oversized packet warning;
5 months ago
Bryan Biedenkapp 1a13d736f2 report IP and port for oversized packet warning;
5 months ago
Bryan Biedenkapp 5e3524dfef updates to various PDU handling functionality;
5 months ago
Bryan Biedenkapp e983b1a812 correct OTAR UDP encrypted detect (was looking at the wrong field); fix DLD ACK to post-valiation;
5 months ago
Bryan Biedenkapp 5b3433a3f3 whoops, add missing files, this time really add P25P2 MAC scrambling support;
5 months ago
Bryan Biedenkapp 391e0068af add proper support for P25 P2 MAC scrambling; fix and enhance message number following for KMM frames; correct and fix CMAC rekey calculations;
5 months ago
Bryan Biedenkapp f4154c462e store the grant elapsed time; update peer status with grant elapsed time;
5 months ago
Bryan Biedenkapp 04ecac8e79 cleanup a couple of warnings;
5 months ago
Bryan Biedenkapp 075f0dbda2 use the last HDU for the encryption flag;
5 months ago
Bryan Biedenkapp 6284f05386 make strapping check ICCs system requests so they are always actively sent; remove debug text; refactor how P25 call handler handles verifying TG strapping;
5 months ago
Bryan Biedenkapp 24a573fec3 fix typo for clear bit setting on the FNE; properly annotate if a TG is selectable/secure/clear strapped;
5 months ago
Bryan Biedenkapp 27ed5fc15f remove m_peers lock around peer update in erasePeer(); add hacky fuzzy matching logic to allow up to 3 bit errors for a CRC-CCITT162 (this better helps some P25 conditions where a TSBK may fault with a CRC-CCITT error, usually while enc enabled); implement support for selectively setting talkgroup encryption modes, selectable, strapped or clear (note due to how both DVMs implementation and how the protocols work there are some limitations, for example in DMR the FNE cannot reliably prevent calls from flowing to the network based on the selective talkgroup encryption modes, NXDN cannot reliably prevent a call grant because the encryption state isn't known at grant time, dvmhost provides no network-sourced traffic protection for clear or strapped as the assumption is the FNE will not allow a call to flow to begin with);
5 months ago
Bryan Biedenkapp 895f5c8df7 when updating peers from erasePeer() lock the map before mutating;
5 months ago
Bryan Biedenkapp 55bef73a5b tighten up how the shared maps and vectors lock themselves during certain operations; implement some critical changes to the REST API to help prevent and log on stuck REST API calls; correct some lock order issues within the FNE REST API;
5 months ago
Bryan Biedenkapp 45c0661723 for control channel dvmhost peers, report the known peerId of voice channels via the TRANSFER_SUBFUNC_STATUS; update sysview to properly expire peers from the peer status list after 10 seconds of no updates from the FNE about that peer;
5 months ago
Bryan Biedenkapp 6d15d94379 ensure stale peer status entries are erased after a period of inactivity;
5 months ago
Bryan Biedenkapp 6c9883a084 return a internal server error when a exception is thrown during the read() operation for REST API calls;
5 months ago
Bryan Biedenkapp 3c85caa482 surprising news to me the V.24 modem FW does not actually set byte 5 of the GET_STATUS opcode, so will never properly flag transmit status, as such I have implemented some faux handling in the host itself to emulate the behavior, this is done by flagging Tx once we start successfully writing data over V.24 (this can be misleading if the data is sent to our V.24 modem but the V.24 modem never sends it to a Quantar);
5 months ago
Bryan Biedenkapp e550b46c4b fix issue with SysView in WebSocket mode dieing and not starting network services;
5 months ago
Bryan Biedenkapp 86db348956 when the Network rotates HA IP, log the new connect IP for clarity;
5 months ago
Bryan Biedenkapp 2df9a36522 file cleanup;
5 months ago
Bryan Biedenkapp da4669659a now that we have proper UKEK and LLA FNE-side in the crypto container, implement proper per RID LLA support;
5 months ago
Bryan Biedenkapp 7885ecc151 implement some grant demand hardening; implement network watchdog hardening for NXDN;
5 months ago
Bryan Biedenkapp d8a65dc766 perform network watchdog handling in a more centralized manner in Voice::processNetwork(); fix condition where remote grant demands may happen even though TG hangtimers are running;
5 months ago
Bryan Biedenkapp 9449de77d4 more hardening, when a net talkgroup hand releases if the state is non idle reset the state;
5 months ago
Bryan Biedenkapp 6cd4b36446 add more netState handling hardening to ensure the state is returned to a default idle state;
5 months ago
Bryan Biedenkapp cf96c35758 apply network watchdog logic to data packets as well as voice;
5 months ago
Bryan Biedenkapp 05d939027b during network P25 voice calls, instead of dvmhost resetting the network watchdog every network frame only reset it when valid LDUs are processed, this should have the appropriate affect of applying the network watchdog and preventing a netState hang in a non-RS_NET_IDLE state if we never receive a network TDU to properly end a call;
5 months ago
Bryan Biedenkapp 35de68b7c7 minor HA logging enhancement and fix (we were counting the HA IP count wrong);
5 months ago
Bryan Biedenkapp 4641040d45 neighbor FNEs are always allowed to request keys with RID 0;
5 months ago
Bryan Biedenkapp 7a9f7a0ef8 bridge should send the srcId in the KEY_REQ;
5 months ago
Bryan Biedenkapp b83a2f2d9b allow RID 0 KEY_REQ override optionally (this maintains older behavior where KEY_REQs are gated by PEER ID);
5 months ago

Powered by TurnKey Linux.