Commit Graph

990 Commits (4bc3376faa4dea6e6ec6c5f2ca09ebb1e8005525)

Author SHA1 Message Date
Bryan Biedenkapp c3677e08e0 WIN32: fix ctime_r and add Win32 compat for ctime_s so we can compile on Win32 again;
2 months ago
Bryan Biedenkapp 230f6c5358 add fne-stats; add reload peers and crypto;
2 months ago
Bryan Biedenkapp 7d15834462 add prereq logging of last load time for various lookup tables;
2 months ago
Bryan Biedenkapp 4f5051e8b6 better implement V(R) V(S) checking;
2 months ago
Bryan Biedenkapp ce6f04e6eb add some extra logging for VTUN PDU;
2 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);
2 months ago
Bryan Biedenkapp cbb494cde3 use 3/4 rate instead of 1 rate; add some dev notes future me;
2 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);
2 months ago
Bryan Biedenkapp 9bad51784e BUGFIX: correct similar ip struct casting problem;
2 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;
2 months ago
Bryan Biedenkapp aab56fe0a2 properly move hastily erected debug YAML config to the peer ACL file instead;
2 months ago
Bryan Biedenkapp b936e6b7cb remove unnecessary garbage in AI generated doc; use references for autos when looping peers; normalize jitter buffer log messages;
2 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;
2 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);
2 months ago
Bryan Biedenkapp 463bdee4bf BUGFIX: fix some unbounded array checking;
2 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;
2 months ago
Bryan Biedenkapp 274a8f23fc
Merge R05A02 (r04k32_dev branch) into Master (#110)
2 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;
4 months ago
Bryan Biedenkapp 236073a2d3 BUGFIX: null reference when trying to perform old style lookup of timestamp when debugging is enabled;
5 months ago
Bryan Biedenkapp 7c2bfb3914
R04J32 Merge to Master (#95)
5 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;
8 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;
8 months ago
Bryan Biedenkapp 51bf65775a BUGFIX: site data was not being set on the RCCH for NXDN;
8 months ago
Bryan Biedenkapp 5010fda595
deprecate Peer ACL blacklist mode; (#91)
8 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;
8 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!);
8 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);
8 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;
8 months ago
Bryan Biedenkapp 1bf33a2055 update modem submodule;
8 months ago
Bryan Biedenkapp 5b6cc228ae update modem submodule;
8 months ago
Bryan Biedenkapp 738ee918d1
R04H31 Merge to Master (#89)
9 months ago
Bryan Biedenkapp 5e31e9a642 file cleanups;
9 months ago
Bryan Biedenkapp af2e7c9c8d
R04H30 Merge to Master (#88)
9 months ago
Bryan Biedenkapp c10087e6cd correct some minor errors;
10 months ago
Bryan Biedenkapp ac0cc2cf90 change locking mechanism for lookup tables;
10 months ago
Bryan Biedenkapp 10f6514c55 automatically enable SSL support if we detect libssl-dev;
10 months ago
Bryan Biedenkapp 030a09ebe9 change ENABLE_TCP_SSL to just ENABLE_SSL;
10 months ago
Bryan Biedenkapp b21f956bf9 fix incorrect variable type (this should have been a signed int);
10 months ago
Bryan Biedenkapp 2b8c7d4c91 partially revert 9ed3312, don't perform locking on isGranted(), isGroup() and isNetGranted();
10 months ago
Bryan Biedenkapp 9ed3312438 properly mutex lock in AffiliationLookup; add more mutex locking in ChannelLookup;
10 months ago
Bryan Biedenkapp 9af5c6b2bc ensure during encode we never allow a source ID of 0;
10 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;
10 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;
10 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;
10 months ago
Bryan Biedenkapp 774558ebd7 add better locking around frame queue flushing and enqueuing; make peer ACK messages direct writes (don't queue them);
10 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];
10 months ago
Bryan Biedenkapp 26aafbe1dd live long and oopsie;
10 months ago
Bryan Biedenkapp 6690098a1c do not announce data services when set for trunking and SNDCP is disabled;
10 months ago
Bryan Biedenkapp 89fe5bc1dc yet again make Win32 compiles work correctly;
10 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;
10 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;
10 months ago
Bryan Biedenkapp fb0e51f36a make Win32 compiles work again; correct incorrect behavior handling try_lock_for;
10 months ago
Bryan Biedenkapp 4fc8990d16 make InfluxDB queries async (non-blocking);
10 months ago
Bryan Biedenkapp d669410e46 whoops no drunk programming allowed;
10 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;
10 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);
10 months ago
Bryan Biedenkapp 6e589d9665 add peer connect and disconnect callbacks (for future use);
10 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;
10 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);
10 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;
10 months ago
Bryan Biedenkapp 5ecfc58300 permitted TG RPCs shouldn't test for m_enableControl;
10 months 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;
10 months ago
Bryan Biedenkapp 81d4a40d24 do our best to attempt to warn on possible misconfiguration of channel RPC configuration;
11 months ago
Bryan Biedenkapp 202f3e57f8 make validate() TDU handling more similar to isPeerPermitted();
11 months ago
Bryan Biedenkapp 559647a28f we didn't have TDU filtering in validate(), just isPeerPermitted() this would let errant TDUs pass in some cases;
11 months ago
Bryan Biedenkapp b86a5ce939 add some mutex locking around modification of the channel lookup table;
11 months ago
Bryan Biedenkapp 3da4eb2d40
REST -> RPC Migration (#84)
11 months ago
Bryan Biedenkapp a242369496 flag the inbound channel as busy for DFSI messages;
11 months 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);
11 months 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;
11 months ago
Bryan Biedenkapp c3b31d241e hide the excessive noise during isPeerPermitted() where the FNE will complain of a peer with a uninitialized affiliations lookup;
11 months ago
Bryan Biedenkapp 6b4d7c5539 piss everyone off and properly relabel "enabled" options to "enable" to keep project consistency;
11 months ago
Bryan Biedenkapp ff3733ffef starting offset for ARC4 is 0;
11 months 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;
11 months ago
Bryan Biedenkapp 2258e3a065 correct issue with passing a key request to the upstream master; comment on self-delete operations, stop() for lookup tables;
11 months 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;
11 months 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);
11 months 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;
11 months ago
Bryan Biedenkapp 6927ea284c add preliminary support for forwarding a key request up to the next FNE (if we are Peer Linked);
11 months ago
Bryan Biedenkapp ea8699e03f add some guard rails around when batch operations add/remove;
11 months ago
Bryan Biedenkapp 231b829660 add batch manipulation operations for adding a peer to inclusion and always lists for all TGs;
11 months ago
Bryan Biedenkapp 2d3aeb5307 reorganize code make things cleaner -- move P25 crypto into its own common class for reuse purposes;
11 months 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);
11 months ago
Bryan Biedenkapp cacec1fe8a apparently Windows CPP is a pain in the ass, make it happy;
11 months 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;
11 months ago
Bryan Biedenkapp 1c85e35ba2 correct possible buffer cleanup issues;
11 months ago
Bryan Biedenkapp 33d6c919d7 runAsThread should not automatically cleanup the passed thread_t, this should be done by the caller;
11 months ago
Bryan Biedenkapp ba23d0250d instead of assert return false; better handle buffer init;
11 months ago
Bryan Biedenkapp 861a608bca add some more debug trace while in TIA mode;
11 months 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;
11 months ago
Bryan Biedenkapp 8883feba9c Revert "payload flag should be set false for ACK block type DFSI messages;"
11 months ago
Bryan Biedenkapp ca09893970 payload flag should be set false for ACK block type DFSI messages;
11 months ago
Bryan Biedenkapp db5a2310a4 send a return ACK on reception of a Start of Stream;
11 months ago
Bryan Biedenkapp de02fdd445 [EXPERIMENTAL] experimental change for @faultywarrior, make V24 UDP respond back to whatever the source port that sent a request was;
11 months ago
Bryan Biedenkapp 3798c52b54 reorganize SIP handler code slighty;
11 months ago
Bryan Biedenkapp cf2dee95d2 code cleanup; add SIP lexer and data handlers;
11 months ago
Bryan Biedenkapp 07edd0dbff handle illegal call end properly;
11 months 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);
11 months 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);
11 months ago
Bryan Biedenkapp 9806ece4f5 add KMM opcodes for dereg, reg, NACK, no service, and zeroize;
11 months ago

Powered by TurnKey Linux.