Commit Graph

1049 Commits (0dc6e2bf41366e2623affc5a3e7eebde5dd49be2)

Author SHA1 Message Date
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
Bryan Biedenkapp 61638ad740 simplify how LDU voice vectors are recovered from network packed DFSI frames (this reduces code duplication across the project; correct bad length being used for P25 causing PDU data to be unintentionally truncated;
5 months ago
Bryan Biedenkapp 054f157096 fix some issues with double-length DVM frames ($FD) where sometimes the serial port would still be buffering data and would return 0 bytes when the packet length was attempted to be read;
5 months ago
Bryan Biedenkapp 5d7de897f3 initial support for adding KID ACLs per RID, this change allows the RID ACL list to contain whether or not a RID can request keys from the FNE KMF and wwhether it can request a OTAR rekey (future), it additionally adds a pipe delimited list of KIDs the RID is allowed to request;
6 months ago
Bryan Biedenkapp 493ef2a728 process UKEKs and LLA keys from EKC file;
6 months ago
Bryan Biedenkapp ec91c0fcad allow EKC container remote access to be disabled; add some extra documentation around dvmhost voice channels in the config stanza;
6 months ago
Bryan Biedenkapp 1d8b31f6ea correct issue with PacketBuffer that could cause a potential crash when data alignment is incorrect;
6 months ago
Bryan Biedenkapp e9597e336e use the metadata socket to report key inventory otherwise fnecore gets big sad;
6 months ago
Bryan Biedenkapp 67ec2b5f6d fix KEYS_UPDATE to properly be two-phased so the packet buffer works properly;
6 months ago
Bryan Biedenkapp 7d5db97449 add support for handling remote EKC management via new metadata traffic opcodes;
6 months ago
Bryan Biedenkapp 74473bb6ad bump default nakFallOver count from 10 to 50 to decrease NAK fallover sensitivity;
6 months ago
Bryan Biedenkapp 5a0ae176c3 do not reset nakFallOverCount ever, this is a fatal accumulation, if we accumulate NAKs then are suddenly fine, this can cause a situation where the NAK fallover logic never activates;
6 months ago
Bryan Biedenkapp 6fca7c8d99 minor code cleanup to fix initialization order;
6 months ago
Bryan Biedenkapp 55cb814a16 fix table lookup crash condition;
6 months ago
Bryan Biedenkapp 48d3a07a1c correct potential heap corruption issue within Socket, which could cause strange failure behavior;
6 months ago
Bryan Biedenkapp 608a7a5b48 move metadata updates into their own thread pool to prevent traffic thread pool exhaustion from failed metadata updates; add better logic around checking in-flight and pending metadata announcements to peers; add checking to drop an update entirely if the peer disappears;
6 months ago
Bryan Biedenkapp 739c8bbf85 allow configuration of the logging for RID ACL list, TGID ACL list, and FNE peer list;
6 months ago
Bryan Biedenkapp a5bd449761 prevent ICC self-deadlock;
6 months ago
Bryan Biedenkapp 2c7ddb5285 correct possible infinite lock during replication updates;
6 months ago
Bryan Biedenkapp 03eb962d6c remove extra pointer writes that should not be necessary;
6 months ago
Bryan Biedenkapp cbc4a6848a during RPTL of a peer that is already connected, use disconnectPeer instead of trying to directly delete the connection, although this may cause problems of its own...;
6 months ago
Bryan Biedenkapp 616b6c730a fix the shared_from_this lifetime in for ServerConnection and SecureServerConnection;
6 months ago
Bryan Biedenkapp 90ca8f1a6a still not prime-time ready for anyone to use -- but I am over here implementing some fixes because my testcases are blowing up;
6 months ago
Bryan Biedenkapp fe0350473b make metadata unknown opcodes for transfer and announce non-fatal and do not NAK;
6 months ago
Bryan Biedenkapp 06df86e713 add support for group affiliation timeout similar to unit registration timeout (should handle #122); add support for bulk announcement of peer unit registration data to the FNE; move announcement handling from main traffic port to metadata port (for now there is a code redirect on the traffic port that will be maintained for a few versions before being deprecated;
6 months ago
Bryan Biedenkapp 3d6a196ea8 correct serious issue with affiliation REST API lockup, in some cases the way locking was being done on the REST API could cause it to become deadlocked when querying affils; correct issue with auth token length in REST API;
6 months ago
Bryan Biedenkapp 03a5e6a1db unless specifically set, if a TG is granted, we should *always* be doing the source ID check and denying the grant to a source RID that is different from the originator, the purpose behind this logic is to allow the source RID that is currently holding the grant to grant retry;
6 months ago
Bryan Biedenkapp 8bf2bf16d3 EXPERIMENTAL: this is a fundamental change to the function of ChannelLookup, instead of maintaining a list in which we add or remove elements as they are available or in use, we will maintain a mapped channel ID to index bit array, where each bit index within the array of bits represents the availability state of the channel, this should make it far more stable to mark a channel as free or allocated instead of manipulating an array everytime;
6 months ago
Bryan Biedenkapp 436bbf634e slight adjustments to cal and setup for dvmbbsdr support;
6 months ago
Bryan Biedenkapp 12d8d5f313 add support for DMR reverse-channel data in the EMB field;
6 months ago
Bryan Biedenkapp 07b0ebaf85 correct missing handling of MBC_DATA for DMR;
6 months ago
Bryan Biedenkapp 64529052ff refactor how the P25 voice handler gets the currently active TGs, this is in effort to hopefully remove the crash condition by the use of the old at() code in the m_activeTG vector;
6 months ago
Bryan Biedenkapp 60ecade84b update submodules;
6 months ago
Bryan Biedenkapp 93482dd2c2 support cal mode on PTY devices;
6 months ago
Bryan Biedenkapp b7f55d9323 couple more code fixes, fix REST API initialization on FNE to prevent early REST calls from crashing the FNE; add locking support for network internals when REST APIs are called; fix memory leak for failed network logins;
6 months ago
Bryan Biedenkapp c3c34018fd some minor code cleanups to handled unchecked thread locking;
6 months ago
Bryan Biedenkapp ed028fdb94 add experimental NAK fallover logic, this is intended for use in situations where excess NAKs from an upstream master can be used to trigger a shutdown of the FNE, intentionally, this requires external scripts or systemd/init system to then restart the process after it automatically shuts down, the intention here is to very heavy handedly force a full state reset of the FNE in a case where it is unable to reconnect properly through other means;
7 months ago
Bryan Biedenkapp 20f5a45cfe add support for parsing $A4 extended functions;
8 months ago
Bryan Biedenkapp c8fd69d450 fix nullptr check (thx Cole);
8 months ago
Bryan Biedenkapp 7c8effeaea do not transmit radio monitor packets from the network handler, the TSBK will be sent as is normally;
8 months ago
Bryan Biedenkapp a703d4efbc add option to disallow radio monitor at the FNE;
8 months ago
Bryan Biedenkapp 417ec174b9 for people using log files vs syslog, attempt to format the timestamp in a reasonable format (like RFC3339);
8 months ago
Bryan Biedenkapp aa2fc994c6 implement using a global affiliations table to globally track grants and unit registrations at the FNE; implement REST APIs to report granted talkgroups and registered units;
8 months ago
Bryan Biedenkapp 25386ec8f6 because the new peerClass system removes the flags from the peer configuration, we will ensure they remain populated for REST API users;
8 months ago
Bryan Biedenkapp 7981a0a517 whoops typo;
8 months ago
Bryan Biedenkapp ec3c027e97 in an attempt to prevent the FNE upstream peer connection from becoming brain dead, use the new mechanism to handle NAKs and properly reset our connection on reception of one;
8 months ago
Bryan Biedenkapp 9d0d1f221d fix issue with HTTP ClientConnection and SecureClientConnection not properly handling responses >65K bytes; add missing backward compat flags (for now, after R05A06 these will be removed); update copyright headers properly in modified files;
8 months ago
Bryan Biedenkapp 3595819cc8 bump version number;
8 months ago
Bryan Biedenkapp 8f0ba24059 you know how some parents need to best effort child proof electrical sockets to prevent shocks? yea lets at least *try* to child proof 700mhz;
8 months ago
Bryan Biedenkapp 79e2da156c ensure SysView always is permitted and violatess even inclusion rules;
8 months ago
Bryan Biedenkapp 3033a5889c because we are now getting varying types of peer connection classes, lets properly change the growing list of booleans to a proper class value and perform logic based on that instead; begin adding support for a console connection class (this operatess ssimilarly to sysview with validation freedoms, but does not get diagnostic messaging;
8 months ago
Bryan Biedenkapp d40b833286
V.24 Corrects for Call Stability (#117)
8 months ago
Bryan Biedenkapp d05a593b36 BUGFIX: when bridge is receiving local or UDP audio, ignore all FNE network traffic in its entirety (this has the affect of making local audio and UDP audio priority over FNE audio);
9 months ago
Bryan Biedenkapp 2b2bce1ff8 CLEANUP: correct some -wreorder warnings; CLEANUP: correct some type conversion warnings;
9 months ago
Bryan Biedenkapp 274b805517
Merge R05A04 (r05a04_dev) into master (#114)
9 months ago
W3AXL 49ff1a461b
ensure DTR/RTS logic matches between normal host startup and cal/boot modes (#112)
10 months ago
Bryan Biedenkapp b35a2f5c60 BUGFIX: fix issue with CTS COR blocking VOX audio even when not enabled;
10 months ago
Bryan Biedenkapp 274a8f23fc
Merge R05A02 (r04k32_dev branch) into Master (#110)
12 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;
1 year ago
Bryan Biedenkapp 236073a2d3 BUGFIX: null reference when trying to perform old style lookup of timestamp when debugging is enabled;
1 year ago
Bryan Biedenkapp 7c2bfb3914
R04J32 Merge to Master (#95)
1 year 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;
1 year 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;
1 year ago
Bryan Biedenkapp 51bf65775a BUGFIX: site data was not being set on the RCCH for NXDN;
1 year ago
Bryan Biedenkapp 5010fda595
deprecate Peer ACL blacklist mode; (#91)
1 year 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;
1 year 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!);
1 year 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);
1 year 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;
1 year ago
Bryan Biedenkapp 1bf33a2055 update modem submodule;
1 year ago
Bryan Biedenkapp 5b6cc228ae update modem submodule;
1 year ago
Bryan Biedenkapp 738ee918d1
R04H31 Merge to Master (#89)
1 year ago
Bryan Biedenkapp 5e31e9a642 file cleanups;
2 years ago
Bryan Biedenkapp af2e7c9c8d
R04H30 Merge to Master (#88)
2 years ago
Bryan Biedenkapp c10087e6cd correct some minor errors;
2 years ago
Bryan Biedenkapp ac0cc2cf90 change locking mechanism for lookup tables;
2 years ago
Bryan Biedenkapp 10f6514c55 automatically enable SSL support if we detect libssl-dev;
2 years ago
Bryan Biedenkapp 030a09ebe9 change ENABLE_TCP_SSL to just ENABLE_SSL;
2 years ago
Bryan Biedenkapp b21f956bf9 fix incorrect variable type (this should have been a signed int);
2 years ago
Bryan Biedenkapp 2b8c7d4c91 partially revert 9ed3312, don't perform locking on isGranted(), isGroup() and isNetGranted();
2 years ago
Bryan Biedenkapp 9ed3312438 properly mutex lock in AffiliationLookup; add more mutex locking in ChannelLookup;
2 years ago
Bryan Biedenkapp 9af5c6b2bc ensure during encode we never allow a source ID of 0;
2 years ago

Powered by TurnKey Linux.