Bryan Biedenkapp
9cf87ff00c
reorganize source tree to make class usage more clear (the Tag*Data classes are the call router/data handler classes); enhance logging for call collision to report RxStatus;
2 years ago
Bryan Biedenkapp
12e07a2205
cleanup log output for uniformity; set peer ACL to disabled by default (it is up to the FNE administrator to properly configure and enable this, it should not be enabled by default);
2 years ago
firealarmss
cba48ae54a
Add support for peer blacklist and whitelist ( #55 )
...
* Initial work for a peer whitelist/blacklist
* Remove forgotten debug log
* Remove extra line
* Use a dedicated file for white/blacklists
* Add support to REST for managing the peer white/blacklist
* Fix line spaces
* Move to one example file
2 years ago
Bryan Biedenkapp
6425ec5cd7
add support to properly filter traffic headers and terminators; add support to selectivly block U2U (private) calls from peers;
2 years ago
Bryan Biedenkapp
70600d3fd7
remove deprecated options; ensure we check if a peer is enabled on the FNE before attempting to read/write to it; silence BUGBUG UDP write message;
2 years ago
W3AXL
9675f42db5
added ability to save RID/TGID lookups from the FNE to local files
2 years ago
Bryan Biedenkapp
31ca17449d
*BEWARE* this commit alters the RPI_ARM cross-compiler and may break things *BEWARE*; implement support for HTTPS SSL REST API configuration; add contrib binary overlay for the RPI_ARM compiler (to add libssl-dev dependences);
2 years ago
Bryan Biedenkapp
9dadc06130
I was asked for ASCII art, and I deliver, thus, ASCII art;
2 years ago
Bryan Biedenkapp
c4ca72581f
for performance reasons on very noisy/busy setups that may have *lots* of peers, use of an alternate port to service diagnostic and activity log transfers helps ensure the traffic port doesn't become overloaded with data;
2 years ago
Bryan Biedenkapp
b28c685ee3
add missing documentation; properly annotate time value; add missing thread join wait;
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
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
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
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
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
80d38ccf3a
refactor and reorganize network socket handling classes to be more consistent;
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
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
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
98cf9513ba
correct badness when dealing with ISSI peers;
2 years ago
Bryan Biedenkapp
bde6284308
ensure FNE software reports itself differently; make host Network class private section protected so the FNE codebase can inherit from it; create PeerNetwork inherited class on FNE;
2 years ago
Bryan Biedenkapp
cf0d8bb430
port RTP header changes from fnecore for better handling the RTP timestamp; relabel conference FNE to converged FNE; refactor version slightly so that the running DVM host version is properly reported to the FNE and when saved to modem configuration area;
2 years ago
Bryan Biedenkapp
abbe6cd41c
properly queue FNE peer messages (these are distinct from peers connected *to* the FNE, FNE peer messages are messages sent to FNE masters that are "ISSI"ed); better handle logging activity logging;
2 years ago
Bryan Biedenkapp
bf72dcbee8
add support to picojson for uint64_t; correct issue with conference bridge FNE never incrementing a connections ping counter; implement /status and /peerlist APIs for conference bridge REST API; implement support for /peerlist in dvmcmd;
2 years ago
Bryan Biedenkapp
6b18089d75
implement REST API stub for conference bridge FNE;
2 years ago
Bryan Biedenkapp
21a4a97ec3
ensure if the network changes the destination ID for P25 and NXDN in-flight the LC data is properly replaced; implement talkgroup mutation by peer on conference bridge FNE;
2 years ago
Bryan Biedenkapp
2d809e0a61
complete the job Faulty started and remove remnants of deprecated ENABLE_DMR, ENABLE_P25 and ENABLE_NXDN compiler options;
2 years ago
Bryan Biedenkapp
97af96a6ad
be verbose in cmake output when enabling various debugs; correct issue with startup messages;
2 years ago
Bryan Biedenkapp
0f770462b7
update headers to properly reflect which module/package the file belongs;
2 years ago
Bryan Biedenkapp
1379482fcc
reorganize entire codebase structure; move common classes, files into a compile time static library; reorganize CMake files to make use of common static library to reduce compile time;
2 years ago