Bryan Biedenkapp
|
1de86458a6
|
fix DVRS unit deregistration issue (units weren't registered properly during GRP_AFF because DVRS doesn't do the typical U_REG); implement 12-hour timeout for unit registrations (this is only applied if the SU in question has *NOT* had *ANY* activity within 12 hours);
|
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
|
942a53069b
|
add support to gate GRP_VCH_GRANT messages from going to peers with no affiliations for a TG (if the TG is configured for affiliated only);
|
2 years ago |
Bryan Biedenkapp
|
0ad47a1989
|
be a little less obtuse about the NAK reason in the FNE log;
|
2 years ago |
Bryan Biedenkapp
|
a1a0065a74
|
when logging what the peer reports as identity use 8 character padding;
|
2 years ago |
Bryan Biedenkapp
|
1cdd2aa56d
|
normalize log formatting better;
|
2 years ago |
Bryan Biedenkapp
|
9cfde0e57e
|
report peer identity string in influx data; make sure non-alternate port reporting properly reports peer identity;
|
2 years ago |
Bryan Biedenkapp
|
e57541c135
|
it would help if this was a string...;
|
2 years ago |
Bryan Biedenkapp
|
b1e0058986
|
whoops handle boolean with yes/no output response instead of 0/1;
|
2 years ago |
Bryan Biedenkapp
|
bcd2cf21e7
|
add support to report the textual identity in the logs for a peer along with its peer ID in most cases;
|
2 years ago |
Bryan Biedenkapp
|
75dbc9e025
|
refactor parrot frame storage; add support to allow parrot responses to go only to the peer for which the parrot call originated;
|
2 years ago |
Bryan Biedenkapp
|
e0b6da51fb
|
make the network presence announcment (VC -> CC and CC -> FNE) timing configurable (this value is in seconds); refactor RF channel enumeration, RF channels are now enumerated in their own class ChannelLookup instead of being integrated into AffiliationLookup, this allows the flexibility to update and change channel information at runtime; add support for VC -> CC presence/registration to tell the CC what the REST information is for that VC, this makes the restAddress and restPort entries for the voiceChNo list in the config.yml optional, the only mandatory fields are channelId, channelNo and restPassword;
|
2 years ago |
Bryan Biedenkapp
|
0f7eabff82
|
implement support for peers that identify themselves as "conventional" to ignore affiliated talkgroup rules and be able to receive all traffic if the FNE is configured to allow promiscuous operation; implement extremely preliminary support to allow a CC to claim a VC peer, allowing for appropriate grouping of peers for trunked sites;
|
2 years ago |
Bryan Biedenkapp
|
4d776f6314
|
add support for DMR T3 adjacent site broadcast;
|
2 years ago |
Bryan Biedenkapp
|
94da264f55
|
better handle checking if a peer affiliation table has become invalid (null); better handle cleanup and creation of peer affiliation tables;
|
2 years ago |
Bryan Biedenkapp
|
b19c1d5f6a
|
add support for processing CSBK on the FNE; add support to optionally log TSBK and CSBK network events to InfluxDB;
|
2 years ago |
Bryan Biedenkapp
|
96a9ba1c03
|
implement trunking site preference support for TGIDs, this implements a feature by which TGIDs can be gated to allow affiliation to preferred sites, all other non-preferred sites will DENY affiliation causing the radio to attempt to roam to another site (this is a trunking only feature and does not change conventional operation);
|
2 years ago |
Bryan Biedenkapp
|
7d1af0235b
|
implement support for reporting activity, diagnostic and call events to an InfluxDB instance;
|
2 years ago |
Bryan Biedenkapp
|
a8adeeaad7
|
implement missing parrot delay timer; fix bad implementation where parrot frames were only played if network packets were received (this logic changed when threaded network Rx was implemented);
|
2 years ago |
Bryan Biedenkapp
|
1ef806fef1
|
handle edge-case scenario of RTP packet sequence overrun;
|
2 years ago |
W3AXL
|
b75389cd47
|
simple fix for RID list updates, verified on list sizes of 49, 50, 51, 99, 100, and 101
|
2 years ago |
Bryan Biedenkapp
|
5571a71e4e
|
replace manual lock/unlock with lock_guard to ensure a lock is held in a scope, and released when a scope is closed;
|
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
|
b4f9b2d201
|
fix some issues with the "unsupported no no mode" that people continue to abuse; correct issue with calculating list offsets when announcing RID lists to the host;
|
2 years ago |
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
|
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
|
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
|
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
|
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
|
0ce9a374ee
|
change source file to match configuration file change;
|
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
|
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
|
25d81b93a4
|
make sure the ping response message is displayed when verbose is set to true;
|
2 years ago |
Bryan Biedenkapp
|
80d38ccf3a
|
refactor and reorganize network socket handling classes to be more consistent;
|
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
|
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
|
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
|
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 |
Bryan Biedenkapp
|
6d5e35d361
|
fix issue with net active and roamer reaccess bits in OSP_RFSS_STS_BCAST; add helper function to AffiliationLookup to allow for reverse resolving of grants from source to destination; migrate FNEPeerConnection from a non-pointer reference to a pointer (this allows better tracking of values without copying the connection structure);
|
2 years ago |
Bryan Biedenkapp
|
9fb2201139
|
code cleanup; some minor modifications for out-of-band software;
|
2 years ago |