Commit Graph

1230 Commits (r05a06_dev)

Author SHA1 Message Date
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
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
Bryan Biedenkapp 3551e7c7d7 don't allow source or destination ID's to become 0 at startup; ensure destination ID is range checked at startup;
2 years 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;
2 years ago
Bryan Biedenkapp e6188b21aa instead of using a while loop, just block based on whether or not another thread is holding the queue mutex;
2 years ago
Bryan Biedenkapp 774558ebd7 add better locking around frame queue flushing and enqueuing; make peer ACK messages direct writes (don't queue them);
2 years 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];
2 years ago
Bryan Biedenkapp 26aafbe1dd live long and oopsie;
2 years ago
Bryan Biedenkapp 6690098a1c do not announce data services when set for trunking and SNDCP is disabled;
2 years ago
Bryan Biedenkapp 89fe5bc1dc yet again make Win32 compiles work correctly;
2 years ago
Bryan Biedenkapp 209bf40fb8 add better support for timing out a InfluxDB connection; add TCP timeout so that request() calls don't hang indefinitely;
2 years 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;
2 years ago
Bryan Biedenkapp fb0e51f36a make Win32 compiles work again; correct incorrect behavior handling try_lock_for;
2 years ago
Bryan Biedenkapp 4fc8990d16 make InfluxDB queries async (non-blocking);
2 years ago
Bryan Biedenkapp d669410e46 whoops no drunk programming allowed;
2 years 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;
2 years 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);
2 years ago
Bryan Biedenkapp 6e589d9665 add peer connect and disconnect callbacks (for future use);
2 years 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;
2 years 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);
2 years 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;
2 years ago

Powered by TurnKey Linux.