Commit Graph

1041 Commits (24bbfb6d251fea657568042fc6ea13a0a5032e5b)

Author SHA1 Message Date
Bryan Biedenkapp 8163f0c322 Win32: FNE's P25PacketData clock() in its entirety should do nothing on Windows;
4 months ago
Bryan Biedenkapp c3677e08e0 WIN32: fix ctime_r and add Win32 compat for ctime_s so we can compile on Win32 again;
4 months ago
Bryan Biedenkapp 230f6c5358 add fne-stats; add reload peers and crypto;
4 months ago
Bryan Biedenkapp 7d15834462 add prereq logging of last load time for various lookup tables;
4 months ago
Bryan Biedenkapp 4f5051e8b6 better implement V(R) V(S) checking;
4 months ago
Bryan Biedenkapp ce6f04e6eb add some extra logging for VTUN PDU;
4 months ago
Bryan Biedenkapp 4164a12da5 implement preliminary positive response to KMM HELLO (this still will fail with No-Service due to missing implementation for per-SU UKEK implementation from the crypto container);
4 months ago
Bryan Biedenkapp cbb494cde3 use 3/4 rate instead of 1 rate; add some dev notes future me;
4 months ago
Bryan Biedenkapp 2f0c301685 implement a very preliminary DMR to VTUN IP dispatcher based on the P25 implementation (while I am sure this is probably going to be quite iffy, I am quite sure the VTUN TAP interface method we are using *is* the right direction; even though the P25 implementation is iffy, with iteration over time I suspect it is the correct approach, as such I have implemented a DMR equiviliant based on the P25 implementation);
4 months ago
Bryan Biedenkapp 9bad51784e BUGFIX: correct similar ip struct casting problem;
4 months ago
Bryan Biedenkapp d50a3a79a5 BUGFIX: correct naive implementation that did not consider the length of the packet being sent, which could result in a nullptr after casting the ip struct; BUGFIX: send actual bytes read from VTUN vs the default MTU size;
4 months ago
Bryan Biedenkapp aab56fe0a2 properly move hastily erected debug YAML config to the peer ACL file instead;
4 months ago
Bryan Biedenkapp b936e6b7cb remove unnecessary garbage in AI generated doc; use references for autos when looping peers; normalize jitter buffer log messages;
4 months ago
Bryan Biedenkapp 80215c00a1 EXPERIMENTAL: add an adaptive jitter buffer implementation to the FNE to better deal with peers on bad connections that may send packets out-of-sequence;
4 months ago
Bryan Biedenkapp b5d480ed24 enhance InfluxDB implementation: fix bad handling on Windows; fix bad use of free() for address info freeaddrinfo(); fix partial data writes for bigger payloads; enhance getting responses back from InfluxDB (this makes it so that InfluxDB cannot fail silently easily);
4 months ago
Bryan Biedenkapp 463bdee4bf BUGFIX: fix some unbounded array checking;
4 months ago
Bryan Biedenkapp c7b9f80335 rebuild r05a04_dev from nasty Git merge bullshit; implement handling of SNDCP on the FNE instead of dvmhost; add quick sanity Catch2 testcases; BUGFIX: NXDN SACCH was incorrectly handling the RAN and structure causing the structure value to become overwritten; correct badly set example IP range in FNE config; add AI generated documentation for the network statck, FNE REST and DVMHost REST; update version number for next dev version;
4 months ago
Bryan Biedenkapp 274a8f23fc
Merge R05A02 (r04k32_dev branch) into Master (#110)
4 months ago
Bryan Biedenkapp e9abdf63aa BUGFIX: correct scenario where traffic from an upstream master to a downstream peer FNE would lose the RTP sequence numbering;
6 months ago
Bryan Biedenkapp 236073a2d3 BUGFIX: null reference when trying to perform old style lookup of timestamp when debugging is enabled;
6 months ago
Bryan Biedenkapp 7c2bfb3914
R04J32 Merge to Master (#95)
7 months ago
Bryan Biedenkapp fcdec00f32 BUGFIX: correct issue where a completely incorrectly formatted identity table missing the appropriate number of entities would cause a startup crash; minor formatting cleanups for readability;
10 months ago
Bryan Biedenkapp 9fe90d3238 BUGFIX: evaluate the build arch and if we're building arm64 or armhf ensure atomic library is added to the dvmbridge linker stage;
10 months ago
Bryan Biedenkapp 51bf65775a BUGFIX: site data was not being set on the RCCH for NXDN;
10 months ago
Bryan Biedenkapp 5010fda595
deprecate Peer ACL blacklist mode; (#91)
10 months ago
Bryan Biedenkapp baded95e1f BUGFIX: correct issue where the pingTime configurable on the FNE could be greater then the maximum allowable timeout on the peers resulting in highly unstable configurations, the maximum allowable ping time is set to a hardcoded 60 second maximum;
10 months ago
Bryan Biedenkapp f791f9ae58 BUGFIX: if the host retried the login attempt and set WAITING_LOGIN state, it was possible for the connection to become stuck in an endless limbo state resulting in no connection, resolve this by evaluating the retry interval while in WAITING_LOGIN (login attempts to the FNE should not take over 10 seconds to complete!);
10 months ago
Bryan Biedenkapp 4306764819 BUGFIX: report appropriate LLID when responding to a KMM_HELLO (we currently report NO_SERVICE back to the SU for an OTAR request);
10 months ago
Bryan Biedenkapp de2c471cd7 BUGFIX: due to refactor in #88, it is possible for PDUs to arrive simultaneously in a very efficient manner, this confuses the P25 packet data handler logic causing very strange behavior (including a crash), this bugfix corrects that problem by: a) allowing data blocks for a given peer to arrive and be stored in any order (order is defined by the current block number), b) allow the data header to arrive at any time, c) once all blocks have been received and a valid data header is received, then the original PDU dispatch logic may execute;
10 months ago
Bryan Biedenkapp 1bf33a2055 update modem submodule;
10 months ago
Bryan Biedenkapp 5b6cc228ae update modem submodule;
10 months ago
Bryan Biedenkapp 738ee918d1
R04H31 Merge to Master (#89)
10 months ago
Bryan Biedenkapp 5e31e9a642 file cleanups;
11 months ago
Bryan Biedenkapp af2e7c9c8d
R04H30 Merge to Master (#88)
11 months ago
Bryan Biedenkapp c10087e6cd correct some minor errors;
11 months ago
Bryan Biedenkapp ac0cc2cf90 change locking mechanism for lookup tables;
11 months ago
Bryan Biedenkapp 10f6514c55 automatically enable SSL support if we detect libssl-dev;
12 months ago
Bryan Biedenkapp 030a09ebe9 change ENABLE_TCP_SSL to just ENABLE_SSL;
12 months ago
Bryan Biedenkapp b21f956bf9 fix incorrect variable type (this should have been a signed int);
12 months ago
Bryan Biedenkapp 2b8c7d4c91 partially revert 9ed3312, don't perform locking on isGranted(), isGroup() and isNetGranted();
12 months ago
Bryan Biedenkapp 9ed3312438 properly mutex lock in AffiliationLookup; add more mutex locking in ChannelLookup;
12 months ago
Bryan Biedenkapp 9af5c6b2bc ensure during encode we never allow a source ID of 0;
12 months ago
Bryan Biedenkapp 3551e7c7d7 don't allow source or destination ID's to become 0 at startup; ensure destination ID is range checked at startup;
12 months ago
Bryan Biedenkapp 8ebae02615 revert e6188b2, use a loop instead the lock blocking wasn't consistent; fix issue where the FNE wouldn't check the heartbeat state of a peer that wasn't in a complete running state causing the peer to get into weird states; modify peer timeout handler, external peers (i.e. ISSI or upstream) and peer link peers get double the alotted maximum missed before being dropped;
12 months ago
Bryan Biedenkapp e6188b21aa instead of using a while loop, just block based on whether or not another thread is holding the queue mutex;
12 months ago
Bryan Biedenkapp 774558ebd7 add better locking around frame queue flushing and enqueuing; make peer ACK messages direct writes (don't queue them);
12 months ago
Bryan Biedenkapp 68829b17f2 fix issue wehre message field was being incorrectly stored and could be pushed as an incorrect type (i.e. non-string) [NOTE: this could *break* collected Influx data];
12 months ago
Bryan Biedenkapp 26aafbe1dd live long and oopsie;
12 months ago
Bryan Biedenkapp 6690098a1c do not announce data services when set for trunking and SNDCP is disabled;
12 months ago
Bryan Biedenkapp 89fe5bc1dc yet again make Win32 compiles work correctly;
12 months ago
Bryan Biedenkapp 209bf40fb8 add better support for timing out a InfluxDB connection; add TCP timeout so that request() calls don't hang indefinitely;
12 months ago
Bryan Biedenkapp 1c51ff59bd add support to inject silence frames during a hang time when using UDP audio, where UDP audio has ended but the drop timer hasn't timed out;
12 months ago
Bryan Biedenkapp fb0e51f36a make Win32 compiles work again; correct incorrect behavior handling try_lock_for;
12 months ago
Bryan Biedenkapp 4fc8990d16 make InfluxDB queries async (non-blocking);
12 months ago
Bryan Biedenkapp d669410e46 whoops no drunk programming allowed;
12 months ago
Bryan Biedenkapp dbf67a4211 fix SysView shitting the bed when the JSON object for a peer is in an unknown state because it is state transitioning or still connecting;
12 months ago
Bryan Biedenkapp 7d6d4f4134 for peer FNE connections we should never disable network services on ACL NAK (this would result in a condition where the peer FNE would need to be restarted in order to reconnect, which isn't convenient);
12 months ago
Bryan Biedenkapp 6e589d9665 add peer connect and disconnect callbacks (for future use);
12 months ago
Bryan Biedenkapp 8dd504adea add support to enable/disable CC message stream debug when a protocol debug is enabled; correct some bad handling of the MESSAGE_TYPE_REG NXDN command;
12 months ago
Bryan Biedenkapp 27c852e4c2 remove the broken last IMBE logic; add logic to ensure a consistent LDU superframe stream (this will result in in-call garble for the length of a missed LDU, where LDUs are dropped due to extreme call load on the FNE);
12 months ago
Bryan Biedenkapp ecc8bfa32e fix issue where peer identity was being used instead of peer ID for FNE peer network lists; appropriately log blockTrafficTo configurations at startup;
1 year ago
Bryan Biedenkapp 5ecfc58300 permitted TG RPCs shouldn't test for m_enableControl;
1 year ago
Bryan Biedenkapp 63c85f3781 implement proper blocking operations for RPC; don't allow a RPC instance to call itself (i.e. you can't listen on port 127.0.0.1:9890 and then use req() to send an RPC to the listening instance); fix issue with RPC_PERMIT_XXX_TG not being a blocking operation; fix issue with RPC_DMR_TSCC_PAYLOAD_ACT not being a blocking operation;
1 year ago
Bryan Biedenkapp 81d4a40d24 do our best to attempt to warn on possible misconfiguration of channel RPC configuration;
1 year ago
Bryan Biedenkapp 202f3e57f8 make validate() TDU handling more similar to isPeerPermitted();
1 year ago
Bryan Biedenkapp 559647a28f we didn't have TDU filtering in validate(), just isPeerPermitted() this would let errant TDUs pass in some cases;
1 year ago
Bryan Biedenkapp b86a5ce939 add some mutex locking around modification of the channel lookup table;
1 year ago
Bryan Biedenkapp 3da4eb2d40
REST -> RPC Migration (#84)
1 year ago
Bryan Biedenkapp a242369496 flag the inbound channel as busy for DFSI messages;
1 year ago
Bryan Biedenkapp 110824e73b fix implementation for acking Start of Stream (writeImmediate wasn't really necessary using STT_NON_IMBE_NO_JITTER causes queued packets to bypass jitter buffer timing);
1 year ago
Bryan Biedenkapp d7b887a32d implement enhancement/alterations to allow back-to-back configuration of dvmhost in TIA-102 DFSI mode (with FSC enabled); correct minor nullref handling in FSCACK; add writeImmediate() to ModemV24 to support TIA-102's need to immediately ack a Start of Stream block;
1 year ago
Bryan Biedenkapp c3b31d241e hide the excessive noise during isPeerPermitted() where the FNE will complain of a peer with a uninitialized affiliations lookup;
1 year ago
Bryan Biedenkapp 6b4d7c5539 piss everyone off and properly relabel "enabled" options to "enable" to keep project consistency;
1 year ago
Bryan Biedenkapp ff3733ffef starting offset for ARC4 is 0;
1 year ago
Bryan Biedenkapp e533ac495f fix potential nullptr problem with Log when used from multiple threads during shutdown; reduce the intercycle delay to 2ms from 5ms for all main FNE threads;
1 year ago
Bryan Biedenkapp 2258e3a065 correct issue with passing a key request to the upstream master; comment on self-delete operations, stop() for lookup tables;
1 year ago
Bryan Biedenkapp a2fa303217 reorganize code, move Network class from host into common as its being used more as a generic peer network class; add some warning messaging to the FNE when a peer link or external peer (i.e. intra-FNE connection) drops;
1 year ago
Bryan Biedenkapp 0496737d46 late night whoopsie, forgot to add some critical stuff (note to self: don't do programming at near midnight its bad for you);
1 year ago
Bryan Biedenkapp 5a96f10906 add peer ID editor; implement support in the peer lookup and FNE to validate whether or not a peer can perform a encryption key request;
1 year ago
Bryan Biedenkapp 6927ea284c add preliminary support for forwarding a key request up to the next FNE (if we are Peer Linked);
1 year ago
Bryan Biedenkapp ea8699e03f add some guard rails around when batch operations add/remove;
1 year ago
Bryan Biedenkapp 231b829660 add batch manipulation operations for adding a peer to inclusion and always lists for all TGs;
1 year ago
Bryan Biedenkapp 2d3aeb5307 reorganize code make things cleaner -- move P25 crypto into its own common class for reuse purposes;
1 year ago
Bryan Biedenkapp 03de7fdb0b fix range clipping when using rxAudioGain or txAudioGain (previous code would allow a negative gain (to lower amplitude) to allow overflowing sample values);
1 year ago
Bryan Biedenkapp cacec1fe8a apparently Windows CPP is a pain in the ass, make it happy;
1 year ago
Bryan Biedenkapp 727ff3ed7b add preliminary encryption support to dvmbridge (P25-only supports AES256 and ARC4); correct and hide some debug trace for FNE KMM messaging; implement support to generate a ARC4 keystream;
1 year ago
Bryan Biedenkapp 1c85e35ba2 correct possible buffer cleanup issues;
1 year ago
Bryan Biedenkapp 33d6c919d7 runAsThread should not automatically cleanup the passed thread_t, this should be done by the caller;
1 year ago
Bryan Biedenkapp ba23d0250d instead of assert return false; better handle buffer init;
1 year ago
Bryan Biedenkapp 861a608bca add some more debug trace while in TIA mode;
1 year ago
Bryan Biedenkapp d8e6b17fbb okay, because a certain OEM's system does, idiotic things, lets handle a START_OF_STREAM block along side FULLRATE_VOICE blocks;
1 year ago
Bryan Biedenkapp 8883feba9c Revert "payload flag should be set false for ACK block type DFSI messages;"
1 year ago
Bryan Biedenkapp ca09893970 payload flag should be set false for ACK block type DFSI messages;
1 year ago
Bryan Biedenkapp db5a2310a4 send a return ACK on reception of a Start of Stream;
1 year ago
Bryan Biedenkapp de02fdd445 [EXPERIMENTAL] experimental change for @faultywarrior, make V24 UDP respond back to whatever the source port that sent a request was;
1 year ago
Bryan Biedenkapp 3798c52b54 reorganize SIP handler code slighty;
1 year ago
Bryan Biedenkapp cf2dee95d2 code cleanup; add SIP lexer and data handlers;
1 year ago
Bryan Biedenkapp 07edd0dbff handle illegal call end properly;
1 year ago
Bryan Biedenkapp 1e8c266d8a implement support to handle KMMs at the FNE; hardcode the host to ignore repeating KMM frames; implement HELLO KMM support and response with a NO_SERVICE (we don't have OTAR implemented at this time);
1 year ago
Bryan Biedenkapp 3dd7871ee6 ensure FNE key req/rsp handle variable length keys properly (fixes an issue with sending DES and ARC4 keys as 32-byte length keys);
1 year ago
Bryan Biedenkapp 9806ece4f5 add KMM opcodes for dereg, reg, NACK, no service, and zeroize;
1 year ago
Bryan Biedenkapp 79f00524ba add support to KMM factory for inventory lists;
1 year ago
Bryan Biedenkapp 7dc90b577f fix KMM copy issue; implement list key IDs and keysets inventory reponses;
1 year ago
Bryan Biedenkapp c4eefac2c7 typo;
1 year ago
Bryan Biedenkapp df648a2c50 add more KMM frames; implement support in the network core for key request and response (this allows peers to request a encryption key from a EKC file loaded on the FNE to use for encryption/decryption, i.e. peer keyloading);
1 year ago
Bryan Biedenkapp 0fd6758161 allow always send peers to ignore reject unknown RID (always send peers are treated specially);
1 year ago
Bryan Biedenkapp c9c98345b6 refactor forced late ACL updates, the old way was causing erroneous multiple ACL messages to appear in the log giving the impression that the FNE was updating ACL's rapidly;
1 year ago
Bryan Biedenkapp 1afc94931b correct some minor Win32 compilation errors (CryptoContainer isn't supported on Win32 right now);
1 year ago
Bryan Biedenkapp cad8e3e347 add ICC support to bridge (this is a naive approach however...);
1 year ago
Bryan Biedenkapp 27162d197d add key request and response opcodes (not implemented yet);
1 year ago
Bryan Biedenkapp 75a09a375b right align permitted RID count;
1 year ago
Bryan Biedenkapp 0ee2b5c756 bump version to 4.20G (from 4.11G) [THIS MARKS INCLUSION OF IN-CALL CONTROL IN MASTER]; ensure always peers can violate the rules as usual; add permitted RIDs assignment to JSON handling for REST APIs;
1 year ago
Bryan Biedenkapp 6812029491 Merge branch 'master' into incall_ctrl
1 year ago
Bryan Biedenkapp ded260216a implement the beginnings of KMM frame handling (for future use);
1 year ago
Bryan Biedenkapp 676a112313 fix missing check for ENABLE_TCL_SSL compilation directive; properly flag crypto as hard disabled if ENABLE_TCL_SSL isn't set;
1 year ago
Bryan Biedenkapp 78f034511f initial support for loading KFDtool EKC files (this is currently unused but is a future stepping-stone for encryption key handling);
1 year ago
Bryan Biedenkapp 69f8fbe884 add better logic to handle forcing peer-link updates; ensure ACL's go out regardless of stream if too much time has passed;
1 year ago
Bryan Biedenkapp b1f10a87ab add some helper routines to the peer list lookup;
1 year ago
Bryan Biedenkapp cb335cffed add some exception checking around some cases where vector types are used;
1 year ago
Bryan Biedenkapp 4617a817a1 update modem submodule;
1 year ago
Bryan Biedenkapp b9830263db fix dstId not being appropriately set;
1 year ago
Bryan Biedenkapp 8823fc09b6 correct erroneous log messages; fix remote UDP mode handler (this was mishandling frames in some situations); update hotspot and modem submodules;
1 year ago
Bryan Biedenkapp 6fd3c68de3 allow call end to cleanup a stream ID associated to a given call stream;
1 year ago
Bryan Biedenkapp beeebe3587 fix issue with FNE diagnostic logging;
1 year ago
Bryan Biedenkapp 6e551a568a fix incorrect usage of slotNo, in this case slotNo refers to the index into the stream ID array, not the actual slot number;
1 year ago
Bryan Biedenkapp d87c1f76c7 typo;
1 year ago
Bryan Biedenkapp 20a096ab49 remove stream ID handling from DiagNetwork (these are always sent with a stream ID of 0 anyway...); revert Rx stream ID to stream ID validation check in Network;
1 year ago
Bryan Biedenkapp ef1a0df496 refactor FNE RTP packet handling, this change better handles a peer end-point transmitting multiple varied RTP streams; refactor promiscuous handling of RTP streams on the host network API; refactor handling non-promiscuous handling of RTP streams on the host network API; bump project version from 4.11F to 4.11G to reflect these larger changes; correct bad use of magic numbers when dealing with signal values;
1 year ago
Bryan Biedenkapp 4025db8200 clarify more lookup table log entries;
1 year ago
Bryan Biedenkapp f051434e7b adjust lookup table logging slightly;
1 year ago
Bryan Biedenkapp 64bcb56228 enhance debug logging to incorporate both file and line numbers (when provided by the compiler) and optionally implement LogDebugEx macro to also incorporate the caller identifying the function name; correct LogDebug uses in some cases that should have been LogMessage;
1 year ago
Bryan Biedenkapp c68b99dc61 silence frame queue read errors after 5 consecutive errors (this is to prevent log spam);
1 year ago
Bryan Biedenkapp 086730320d code cleanup;
1 year ago
Bryan Biedenkapp e38488f602 fix potential bridge memory leak when using USRP audio; add support for bridge to reset and start a new call when using UDP metadata *and* overriding the source ID;
1 year ago
Bryan Biedenkapp cbce2fbdf0 update copyright dates;
1 year ago
Bryan Biedenkapp 633ff29f55 fix typo;
1 year ago
Bryan Biedenkapp ad8713fbe8 issue a P_CLEAR proper at the end of a network call;
1 year ago
Bryan Biedenkapp 71d55b1645 correct some late night strangeness when handling whether or not a slot is a TSCC for remote grant demand processing (this is what I get for trying to quickly push out decently old branch code);
1 year ago
Bryan Biedenkapp e4d2d677fe last minute fix -- the original implementation was naive and always aborted incorrectly;
1 year ago
Bryan Biedenkapp 172f0f2eb0 missed commit when this was manually merged;
1 year ago
Bryan Biedenkapp 151275ce6f implement initial DMR remote grant demand logic (this is mostly untested);
1 year ago
firealarmss aedabceac7
Add support for USRP (#83)
1 year ago
Bryan Biedenkapp db1d000b21 increase width of "alias" column in tged;
1 year ago
Bryan Biedenkapp 7063ce36a0 refactor how netLDUx buffers are built, and ensure buffers are filled with appropriate null IMBE frames; add support to remote grant demand to include whether or not the grant should set the encrypted flag; add warning to notify a user that a misconfiguration for a voice channel exists when a dedicated trunked voice channel has control data enabled; fix display of RF power level during startup;
1 year ago
Bryan Biedenkapp 3177d38897 Merge branch 'master' into incall_ctrl
1 year ago
Bryan Biedenkapp 89210c05aa add support to optionally demand a SU perform a full registration with a site if a affiliation request is refused;
1 year ago
Bryan Biedenkapp 560ef40dca indicate what slot is ending a call for DMR on the FNE; correct bad end-of-call handling for DMR mode on bridge;
1 year ago
Bryan Biedenkapp f483bbf2ed update commenting;
1 year ago
Bryan Biedenkapp 1e458ce682 don't transmit EXT_FUNC across the network when issued to an individual site, the FNE should be generating network wide EXT_FUNC messages (fixes #62);
1 year ago
Bryan Biedenkapp a2b1367091 fix buffer overrun;
1 year ago

Powered by TurnKey Linux.