Bryan Biedenkapp
5f601247b7
add zlib 1.3.1 dep (included in common); implement Peer-Link feature, this allows a master CFNE, when configured by peer list, to transmit complete talkgroup, RID and peer list data to subordinate CFNEs;
1 year ago
Bryan Biedenkapp
ff6658cae7
how did no one find this, like how was this missed? add missing affiliated flag being sent from FNE to host;
1 year ago
Bryan Biedenkapp
8f6319d15e
refactor SysView and more tightly integrate with the DVM stack; add CC voice channel reporting in the peer status message; add support on the FNE to report activity log and peer status to SysView instances;
1 year ago
Bryan Biedenkapp
ce008197fd
bug fixes for tged;
1 year ago
Bryan Biedenkapp
582629c395
add rule name alias for future use;
1 year ago
W3AXL
f0d7ecb021
removed individual RID lookup prints
2 years ago
Bryan Biedenkapp
093f8dd6e8
more warning cleanups;
2 years ago
Bryan Biedenkapp
27452f935d
cleanup some warnings;
2 years ago
Bryan Biedenkapp
9205f514a1
increase time between modem polls to 750us;
2 years ago
Bryan Biedenkapp
a9bc150da7
add IP address column to RID tables (this is *NOT* used yet, and is for future use);
2 years ago
Bryan Biedenkapp
6a040b6bec
correct issue with P25 deregistrations always generating a U_REG_CMD instead of only generating a U_REG_CMD for registration timeouts;
2 years ago
Bryan Biedenkapp
882c2564ca
correct double spaced formatting of CPP files in common; convert dvmhost to Doxygen documentation format; convert dvmfne to Doxygen documentation format; convert dvmcmd to Doxygen documentation format;
2 years ago
Bryan Biedenkapp
10e1e12be0
add doxygen configuration for dvmhost project; add doxygen output directory; convert common static library to use doxygen style commenting and documentation;
2 years ago
Bryan Biedenkapp
cb0500b2e7
treewide: refactor constant variables into proper enumerations where appropriate (this applies to DMR, P25 and NXDN, and may introduce gremlins);
2 years ago
Bryan Biedenkapp
f39e8de0e1
refactor PR#55's peer list implementation to utilize a lookup table; add support to peer list implementation, when in whitelist mode to support per peer passwords (techincally this works in blacklist mode but is ... well irrelevant as blacklist mode *rejects* connections from peers in the list file); correct a few issues regarding how NAKs are returned early in the authentication handshake; reformat log messages; fix issue in host voice when regular conventional traffic is sent to a DVRS-enabled channel and legacy group grant is disabled;
2 years ago
Bryan Biedenkapp
7840f6ebe8
cleanup some log messaging for the peer lookup table handler;
2 years ago
firealarmss
bd3e737adf
REST Additions and added NAK reasons ( #56 )
...
* 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
* Add support for disconnecting a peer via the REST API; Add NAK reason for a peer ACL violation and for a peer reset; Add a REST endpoint for getting the current mode of peer ACL
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
3335f7be39
add support to reload TG and RID lists via REST API for the FNE;
2 years ago
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
f60ac33a34
add log messages for always being used;
2 years ago
Bryan Biedenkapp
c8eb52a57d
add try {} catch {} around some critical ASIO read calls to prevent application crash (this won't resolve the errors but should prevent application crash); implement support for peer ID list that *always* receives traffic for a TGID regardless of affiliation rules;
2 years ago
Bryan Biedenkapp
9b828fe7a4
ensure the lookup table thread is named; don't display the not transmitting CC messages unless the test timer is not paused; add aggressive watchdog logging for when timers exceed 1s intervals; split adj. site and affiliation updating into a separate thread (huge adj. site updates could be the cause of main loop processing delays); ensure threads are properly shutdown; increase P25 adj site update timer from 30 seconds to 60 seconds (5 minutes of no updates will now FAIL an adj. site);
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
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
W3AXL
9675f42db5
added ability to save RID/TGID lookups from the FNE to local files
2 years ago
W3AXL
01bd534c8f
fixed RID alias updates not working via REST
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
86d736b0bb
revert change from 0ea6ee0 that changed the RingBuffer const char* to std::string to correct issue where the RingBuffer name is being copied incorrectly; change method for copying name std::string passed to AffiliationLookup; remove accidentally committed debug code;
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
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
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
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
49343917d6
add copyright lines for Patrick;
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
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
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
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
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
7513bccf52
refactor PROPERTY_PLAIN and READONLY_PROPERTY_PLAIN;
2 years ago
Bryan Biedenkapp
9611af1374
reorganize utility macros from Defines.h to Utils.h; cleanup unneeded includes in some places; cleanup files;
2 years ago