Bryan Biedenkapp
|
17d69cb950
|
add support to disable *ALL* passing of P25 ADJ_STS_BCAST from a CFNE instance; properly implement processing of TSDU messages from any peer; implement login flag from CFNEs to identify themselves as external when they are peering;
|
2 years ago |
Bryan Biedenkapp
|
ecdce85e8a
|
clean up file;
|
2 years ago |
Bryan Biedenkapp
|
9dadc06130
|
I was asked for ASCII art, and I deliver, thus, ASCII art;
|
2 years ago |
Bryan Biedenkapp
|
c3f9b69454
|
catch and log certain situations where a buffer in a buffer vector may be released (this is likely due to a non-tread safe network flush); expose size of inclusion, exclusion and rewrite lists so we don't need to copy them to know the size;
|
2 years ago |
Bryan Biedenkapp
|
ba785f3d91
|
hide debug here (m_debug/m_verbose should be adhered to in classes as they *optionally* enable debug trace for modules, allowing the LogLevel to be set to 1 and not spam the log/console with unintended debug statements); alter bad handling of a compiler constant string for the Server/User-Agent strings;
|
2 years ago |
Bryan Biedenkapp
|
1e8a842a30
|
document functions in the Thread class; add a helper detach() method for future use;
|
2 years ago |
Bryan Biedenkapp
|
4acb60aeff
|
add more plumbing to the CFNE for future use;
|
2 years ago |
Bryan Biedenkapp
|
e7ce1d1f20
|
report errno errors from pthread_create;
|
2 years ago |
Bryan Biedenkapp
|
92a5bbd580
|
treat threadedNetworkRx and threadedACLUpdate with pthread_detach and ensure they will not retain resources waiting for a pthread_join that'll never happen;
|
2 years ago |
Bryan Biedenkapp
|
d38e8d00da
|
remove accidental debug code left in last commit;
|
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
|
8ca4ed5a40
|
implement a few more CFNE NAK types to notify the peer of invalid conditions; take first steps towards FNE-side authoritative grants by implementing some logic plumbing;
|
2 years ago |
Bryan Biedenkapp
|
b7ebfa43e4
|
reorganize source code slightly, we shouldn't define logic in the CPP files for the talkgroup rules data classes, and instead we should define the logic in the header (since logic for these data classes shouldn't be anything complicated anyway);
|
2 years ago |
Patrick W3AXL
|
d8eff1f1f4
|
got tgid editing via REST mostly working (#49)
|
2 years ago |
Bryan Biedenkapp
|
5d6c99da43
|
add missing mutex unlocks for the lookup tables (I'm not sure how this hasn't caused a problem); reorganize the code in FNENetwork and make threadedNetworkRx private; add some counting logic to ensure the voice tag classes flush voice frames every 5 peers to ensure timely delivery of packets;
|
2 years ago |
Bryan Biedenkapp
|
e348b15d7f
|
for the purpose of performance handle incoming packets in their own threads (NOTE: this commit is *experimental* and may burn your house down and kick your dog, and it most certainly has a memory leak I'm working on somewhere);
|
2 years ago |
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)
* initial RID alias support
* don't use toggle for an RID update from the REST API
|
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 |