Bryan Biedenkapp
a95f0b30b0
for "cleanliness";
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
Bryan Biedenkapp
fe002b270f
minor cleanups;
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
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
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
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
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
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
e4aca9fc4f
don't register a CC with itself; be more clear in the config YAML that the controlChannel block should be left at defaults for dedicated control channels;
2 years ago
Bryan Biedenkapp
24082b9652
P25 data ( #52 )
...
NOTE: this does not indicate full P25 data support as working yet; this commit refactors a lot of the baseline PDU handling code, and better handles both confirmed and unconfirmed PDU data blocks, there is still some more work to do, I just didn't want p25_data to start getting overly out of sync with master.
* rework modem protocol to support variable length frames up to 64k; refactor P25 PDU handling to support TIA-102 minimum 512 byte frames;
* fix PDU length its 512 bytes not 500; ignore instead of report invalid modem frames; add double length checking to HostSetup;
* add support to send P25 long frames to the modem;
* adjust FIFO size to 522 (fits a single PDU frame); remove extra debug displays; match fixed FIFO sizes between modem and host;
* correct weird inverted CRC-9 that sometimes happen;
* ensure netPDU is reset at the beginning of a network data call; fix lengh used by data block dumping;
* fix some buffer lengths;
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
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
25cb0e7947
fix typo;
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
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
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
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
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
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
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
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
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
49f1b02ccf
add preliminary support for CFNE to have the "affiliated" flag to pass traffic;
2 years ago
Bryan Biedenkapp
8aba76156b
update config naming;
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
9bd06b916a
use better terminology for FNE peer TGID rewriting;
2 years ago
Bryan Biedenkapp
fd29093c33
fix typo;
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
71438abb87
consider peer IDs for systems the conference bridge is peered to for inclusion/exclusion lists;
2 years ago
Bryan Biedenkapp
506c59c52b
fix range for softpots in TUI to be 0 thru 255;
2 years ago
Bryan Biedenkapp
083bfd9bdb
implement support to send network grant demand TDU for conventional stations; bump copyright date to 2024;
2 years ago
Bryan Biedenkapp
685ea4df14
implement partial fix for trunked UU calls (calls can be made now, but operation is still glitchy);
2 years ago
Bryan Biedenkapp
26981f1345
deprecate and remove Voice On Control support (this commit marks end of support for VOC operation); make buffer overflow errors more apparent in the log; increase verbosity of CC notification logging messages;
2 years ago
Bryan Biedenkapp
936402275f
very very preliminary work for U_REG LLA support;
2 years ago
Bryan Biedenkapp
4a764f67df
[EXPERIMENTAL] add support to configure voice channel iden table IDs;
2 years ago
Bryan Biedenkapp
3b3bc884a4
implement parrot grant demand support for FNE conference bridge; correct issue with grant demands appearing as U2U instead of GROUP;
2 years ago
Bryan Biedenkapp
abb57affe2
refactor how GROUP VCH UPDATEs are sent; ensure notifyEnable is set to true by default;
2 years ago
Bryan Biedenkapp
37fe46df12
make redundant immediate an option (for experimentation purposes);
3 years ago
Bryan Biedenkapp
5f7b62ece2
some minor code reorganization for clarity; implement new disableNetworkGrant feature for non-trunk mode P25 operations, this disables network calls from making channel grants that would exclusively lock the channel for the duration of that call (when SUs are utilizing a mode that makes them obey grants), this is useful for systems where RF-only TG steering is required;
3 years ago
Bryan Biedenkapp
ab1c84243e
add support for the control byte on P25 TDUs, this implements a required remote grant demand request allowing remote network applications to get a channel grant before sending traffic;
3 years ago
Bryan Biedenkapp
edb2529f68
allow the frame loss threshold to be configurable (this could help in fringe signal fading situations to prevent premature call termination in some situations);
3 years ago