Commit Graph

904 Commits (c6c1c72f79db2d0d8fe2a20faeec4bb09075c7d0)
 

Author SHA1 Message Date
Bryan Biedenkapp c6c1c72f79 institute a hard 250 peer cap on the CFNE for performance, stability and call quality reasons; implement support for the user to configure the connection limit on a CFNE; implement support to resolve a master NAK to a reason on the host;
2 years ago
Bryan Biedenkapp b28c685ee3 add missing documentation; properly annotate time value; add missing thread join wait;
2 years ago
W3AXL 4632bfb4b9 updated copyrights
2 years ago
W3AXL 18f5d69a36 implemented RID ACL file save
2 years ago
Bryan Biedenkapp b9c89aebf1 for sanity reasons -- huge RID lists make the log *VERY VERY* noisy, we'll silence this by not logging the toggle events;
2 years ago
Bryan Biedenkapp 86985a5ecc update peer ping time in RID ACL update; move core network process/read into its own thread;
2 years ago
Bryan Biedenkapp 49343917d6 add copyright lines for Patrick;
2 years ago
Bryan Biedenkapp 0ea6ee07ed fix missed change of const char* to std::string (GCC 11+ didn't catch this but 4.9 did? Isn't that something?);
2 years ago
Bryan Biedenkapp eb57f1b5d8 implement functionality to block traffic to specific peers from specific external peers; use std::string over const char* wherever possible to limit pointer passing; implement support in FrameQueue and RawFrameQueue to bypass the queue and directly send messages to specified peers (useful in some situations for packets to be immediately dispatched vs queuing and batching); chunk RID list transmissions to aid in increasing performance (this will likely also need to be done with the TGID lists in the future as well); refactor transmitting ACL lists to peers into its own spun off thread so we don't block the main network processing loop (and infact, this requires documentation; since at a certain peer size DVM network partitioning should be considered to reduce the number of concurrent peers serviced by any given FNE and to better load balance connections across a network, instead of relying on a singular central FNE); implement /peer/count REST API to simply return the known connected count of peers; disable the forced ACL list update functionality (for now);
2 years ago
W3AXL 26940f0187 updated rid_acl.example.dat for RID alias
2 years ago
Patrick W3AXL a279b33876
Add RID alias to RID ACL (#48)
2 years ago
Bryan Biedenkapp 987e944d4b add flag to denote traffic flow for external peers (that is a peer connection the CFNE makes to another CFNE);
2 years ago
Bryan Biedenkapp 7dc850669a reorganize messages for ADJ_STS_BCAST;
2 years ago
Bryan Biedenkapp 0ce9a374ee change source file to match configuration file change;
2 years ago
Bryan Biedenkapp a707106ea5 for sanity reasons, unless *specifically* required disallowing transmission of ADJ_STS_BCAST to external peers is enabled by default;
2 years ago
Bryan Biedenkapp af516f33fd report local and remote peer ID information for peer connection log messages;
2 years ago
Bryan Biedenkapp 98dacab03c refactor RPTL handling slightly to better handle a RPTL condition while the peer state is in connection state 4 (RUNNING); refactor RPTL slightly to better handle non-valid connection states for RPTL (i.e. non-INVALID/CONNECTED, or RUNNING); reword logging messages for clarity; increase default configuration max pings from 5 to 10, this has the effect of making the time out for a peer 50s in total length before the connection is considered stale (for future reference the formula for the timeout is: PingTime * MaxPings = TimeoutInSeconds);
2 years ago
Bryan Biedenkapp 083517326e fix nullptr reference for a non-existent peer affiliation list (can happen if the peer hasn't completed login); slightly reorganize RPTL (this stil has some bizarre problem);
2 years ago
Bryan Biedenkapp e523798e3c log offending PEER IDs for illegal TSDUs, because .. we want to know who these people are...;
2 years ago
Bryan Biedenkapp 34ae323166 implement option to disable the CFNE from sending P25 ADJ_STS_BCAST to external peers (that is CFNE's the CFNE receiving the ADJ_STS_BCAST is connected to via peers list in the configuration file); add logging around the RPTL NAK condition; don't validate the connection state when performing a connection cleanup for an RPTL NAK; attempt to erase a peer ID from the peer table if during an RPTL the connection is null (this should never happen); correct a bunch if TG validation issues; correct condition where the FNE would try to pass traffic with *both* srcId and dstId 0 (this should never happen on any protocol really, and if there is some scenario that requires it, contact me on Discord please); add more processing for TSDUs to perform TGID checks and other validations;
2 years ago
Bryan Biedenkapp 0e20d4fec0 add separate config option for reporting peer pings to the log; add extra logging around an RPTL NAK condition;
2 years ago
Bryan Biedenkapp 64e3e91e2e fix missed message;
2 years ago
Bryan Biedenkapp 25d81b93a4 make sure the ping response message is displayed when verbose is set to true;
2 years ago
Bryan Biedenkapp 6219929cd5 preliminary support for management APIs RID (Query/Add/Delete/Commit), TGID (Query/Add/Delete/Commit) [note: commit doesn't work pending modification to RadioIdLookup and TalkgroupRulesLookup to implement commit/saving to disk];
2 years ago
Bryan Biedenkapp 49f1b02ccf add preliminary support for CFNE to have the "affiliated" flag to pass traffic;
2 years ago
Bryan Biedenkapp 345495076b fix issue with the FNE not properly rewriting TGIDs for configured peers (the original implementation was slighly naive in assumptions, the new implementation techincally allows rewrites to *any* peer *from* any peer not just ISSI peers); perform some minor cleanup of the REST classes; revert change in ClientConnection and ServerConnection initializing the m_buffer class variable (hopefully this may fix some strange issues being seen);
2 years ago
Bryan Biedenkapp af27a13c8c update README.md;
2 years ago
Bryan Biedenkapp b2b2cefb58 update README.md;
2 years ago
Bryan Biedenkapp de6d1e8914 update README.md;
2 years ago
Bryan Biedenkapp bafad81722 fix idiotic issue where armhf for RPI-ARM failed because the 4.9 compiler is garbage;
2 years ago
Bryan Biedenkapp 80d38ccf3a refactor and reorganize network socket handling classes to be more consistent;
2 years ago
Bryan Biedenkapp 8aba76156b update config naming;
2 years ago
Bryan Biedenkapp 6fb3ede4ef whoops inadvertant bad logic;
2 years ago
Bryan Biedenkapp 91a995af43 correct issue where writeMaster wasn't being properly treated as an immediate (we cannot queue peer master packets like we can master peer packets); fix issue with peer title for affiliation lists;
2 years ago
Bryan Biedenkapp 7d1c233875 I'm a moron;
2 years ago
Bryan Biedenkapp a4ec7fbfa8 add a check for RTP payload type $57 (which we deprecated) so that its essentially ignored, so people on older versions can abuse the newer software; ensure we don't try to transmit terminators for calls that didn't exist on the first place;
2 years ago
Bryan Biedenkapp e75caf0337 correct some edge case issues with nullptrs at inappropriate times; check for error condition trying to transmit encrypted network frames with no key;
2 years ago
Bryan Biedenkapp 9e27875bb8 ensure network is a valid instantiation before trying to run;
2 years ago
Bryan Biedenkapp 5b5efcbe9d add support for network announcement of unit registration, deregistration and group affiliation so the FNE can collate the data more accurately; implement REST API on dvmfne to support retreiving the list of known affiliations; correct a bug in enumeration of RID and TGID lists that could cause weirdness; remote unnecessary "control" RTP payload type and just use a singluar payload type;
2 years ago
Bryan Biedenkapp 3e5fe8b349 update submodules;
2 years ago
Bryan Biedenkapp 5a5104ba2f treewide: perform general refactor of file headers, I've modified the file headers to follow rules from: https://www.kernel.org/doc/html/next/process/license-rules.html, this trims/compresses the file header section a bit reducing the number of lines at the top of every file quite a bit, going forward all new files should follow this new format (if its good enough for the Linux kernel, its good enough for me);
2 years ago
Bryan Biedenkapp 0687b1da80 include TCP headers;
2 years ago
Bryan Biedenkapp bad8129d7d file header updates;
2 years ago
Bryan Biedenkapp dabb3c7f00 ignore CLion .idea directory;
2 years ago
Bryan Biedenkapp d9e2458722 implement support for low-level TCP sockets; deprecate and remove new_unique macro and use appropriate std::make_unique; apply various clang linting;
2 years ago
Bryan Biedenkapp 68bfae72bb remove unused variable;
2 years ago
Bryan Biedenkapp 8ff7067eca mplement experimental support to AES-256 encrypt the network connection; cleanup some instances where buffers were not being cleaned up properly; cleanup some of the AESCrypto implementation; remove references to some little used compiler macros;
2 years ago
Bryan Biedenkapp 3e0c5148e4 add FNE start script tools for tarball installs;
2 years ago
Bryan Biedenkapp 9b55c67ac9 fix issue where the converged FNE would continue to update an unauth'ed PEERs ping time resulting in it never timing out properly;
2 years ago
Bryan Biedenkapp eba4db6104 refactor RTP code slightly to better handle tracking the RTP timestamp properly;
2 years ago

Powered by TurnKey Linux.