Bryan Biedenkapp
51bd9e749d
implement CAC long puncturing for NXDN; correct issues with NXDN site information data;
2 years ago
Bryan Biedenkapp
5fde17f879
fix stupid GCC 4.9.3 for ARMHF non-sense;
2 years ago
Bryan Biedenkapp
d702eeae9a
update byte packing documentation on some headers/functions for -- future generations;
2 years ago
Bryan Biedenkapp
67429e3e34
use localtime instead of gmtime for logs;
2 years ago
Bryan Biedenkapp
92e9e2d8b0
correct toString() for CSBK_BROADCAST;
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
41b36a491d
fix issue where parrot originating was not muting the initial call to other peers;
2 years ago
Bryan Biedenkapp
36c04a74ec
move the NET_FUNC* and NET_SUBFUNC* constants into proper namespaced enums;
2 years ago
Bryan Biedenkapp
e512fd388f
add FSC frame classes;
2 years ago
Bryan Biedenkapp
81ef9129b6
cleanup CMakeLists;
2 years ago
Bryan Biedenkapp
f0f1d489d1
add TIA frame types (for future use); remove extraneous handling for DMR and NXDN (these are shut off in the network code, which makes the code in Dfsi pointless to have); remove g_hideMessages and logging from Dfsi class (for P25 this is actually instrumented by the debug flag in the SerialService (and when it exists UDPService) class, no need to duplicate this; add support for "null" modem mode for the SerialService, this allows basic code flow to be tested without any V.24 interface attached to the dvmdfsi instance, a "portType" parameter was added to the configuration file for this, by default it should always be "uart" but for null modem testing it can be set to "null"; add commenting and function definition commenting;
2 years ago
W3AXL
ba8067c55c
fixed deletes on invalid pointers, cleaned up serial initialization, added timeouts for call flags, other small QoL tweaks
2 years ago
Bryan Biedenkapp
e5e5462473
fix #54 , this should fix issue #54 in dealing with segmented/fragemented HTTP requests; enhance debug messaging from REST API server;
2 years ago
Bryan Biedenkapp
ad4aa9ac1f
(lets see if this breaks things and W3AXL yells at me) refactor some of the frame classes to use the __PROPERTY mechanism for building get/set based properties for some class fields vs raw variables; cleanup some cases where we may run afoul heap allocations and get memory leaks;
2 years ago
Bryan Biedenkapp
26f733d8ff
fixup copyright display;
2 years ago
Bryan Biedenkapp
562712f8a6
fixup copyright display;
2 years ago
Bryan Biedenkapp
feb3c84694
remove old dev command line arguments; add missing copyright lines;
2 years ago
Bryan Biedenkapp
dcb25cfb58
fix missing help information for --syslog;
2 years ago
Bryan Biedenkapp
1d0c8da331
bump project version to R04A01; remove extraneous files;
2 years ago
Bryan Biedenkapp
0fc2b0bf59
fix issue with hotspot submodule;
2 years ago
Bryan Biedenkapp
4b24c1e356
fix issue with modem submodule;
2 years ago
Patrick W3AXL
0bbc69d237
Basic implementation of dvmdfsi in dvmhost C++ ecosystem ( #59 )
...
* initial bootstrap of CPP dvmdfsi
* more work on serial service, the basics are there now
* updated TODOs
* more work on dfsi, getting there, just a few more things to implement
* rough code finished, totally untested, hope it works
* fixes for malloc errors, still not totally working
* almost working, P25 voice from FNE is garbled but we're getting there
* verified v24 decode/encode is working, still cleaning up serial TX
* dvmdfsi ready for beta testing! A few gremlins to find but it works.
* added configurable source flag option
* fixed diu source flag config entry name
* small update to Mot VHDR1
* fixed serial initialization, flags work now, config & code cleanup
* log cleanups, added basic call collision logic, fixed kid being truncated to uint8_t
* fixed LDU2 MI not getting copied properly
* bring add-dvmdfsi up-to-date with master;
* Add syslog and some project file cleanup (#58 )
* initial bootstrap of CPP dvmdfsi
* more work on serial service, the basics are there now
* updated TODOs
* more work on dfsi, getting there, just a few more things to implement
* rough code finished, totally untested, hope it works
* fixes for malloc errors, still not totally working
* almost working, P25 voice from FNE is garbled but we're getting there
* verified v24 decode/encode is working, still cleaning up serial TX
* dvmdfsi ready for beta testing! A few gremlins to find but it works.
* added configurable source flag option
* fixed diu source flag config entry name
* small update to Mot VHDR1
* fixed serial initialization, flags work now, config & code cleanup
* log cleanups, added basic call collision logic, fixed kid being truncated to uint8_t
* fixed LDU2 MI not getting copied properly
* add support for syslog logging in dvmdfsi;
* add useSyslog parameter to log section of configuration file;
* project cleanup: split MotRtpFrames.cpp/.h into separate files properly; ensure decode() functions pass the pointer as const to prevent accidental modification of input buffer; move common enums to a separate RtpDefines.h header; reuse MotRtpFrames.h (renamed RtpFrames.h) as a quick way of including all the RTP frames;
---------
Co-authored-by: W3AXL <29879554+W3AXL@users.noreply.github.com>
---------
Co-authored-by: W3AXL <29879554+W3AXL@users.noreply.github.com>
Co-authored-by: Bryan Biedenkapp <gatekeep@gmail.com>
2 years ago
Bryan Biedenkapp
243696855c
make alternate port for diagnostics the default;
2 years ago
Bryan Biedenkapp
e7ddfffed3
add rudimentary support to process NET_FUNC_GRANT_REQ (network grant requests), this is the first step towards eventually supporting non-authorative CCs;
2 years ago
Bryan Biedenkapp
2f918d759d
implement support to send logs to the syslog;
2 years ago
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
3be3366e5f
enhance FNE notification of CC voice channels; implement support to maintain mapping of CC <-> VC relationships at the FNE;
2 years ago
Bryan Biedenkapp
2c560dc3ce
add support to report host status JSON blob to FNE for storage in InfluxDB;
2 years ago
Bryan Biedenkapp
5a3e031247
reset states for DMR and NXDN like previous commit;
2 years ago
Bryan Biedenkapp
424b228c46
fix issue where last ID data wasn't being reset when the VC was done with a call;
2 years ago
Bryan Biedenkapp
f3b7398ebb
(again) update fw/hotspot and fw/modem to master;
2 years ago
Bryan Biedenkapp
22803a857e
update fw/hotspot and fw/modem to latest master; fix issue where block alignment would be lost for P25 PDUs if individual blocks failed to decode;
2 years ago
Bryan Biedenkapp
cae622b898
perform early peer checking during RPTL; if an ACL rejection occurs, straight disable the peer networking;
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
7a6ec842d3
add support for some new REST APIs on the dvmcmd CLI tool;
2 years ago
Bryan Biedenkapp
7840f6ebe8
cleanup some log messaging for the peer lookup table handler;
2 years ago
Bryan Biedenkapp
f4c85e822e
minor fix up for PR#56 (nothing I wanted to prevent merging 56);
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
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
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
0251944438
fix ability to set MFID via REST before issuing P25 commands; implement MBT for GRP_AFF_Q_RSP;
2 years ago
Bryan Biedenkapp
01b92641fd
run the loop watchdog timer properly during CW;
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
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
ce9534b81f
correct a check that determines whether a CC stream should be generated; correct some misleading log messages;
2 years ago
Bryan Biedenkapp
9b6fcdbdf7
fix incorrect assembly of DENY TSDUs for certain services; replace QUEUE TSDUs for grant TSDUs with DENY TSDUs;
2 years ago
Bryan Biedenkapp
864044ff8b
replace sprintf with snprintf;
2 years ago
Bryan Biedenkapp
258feb0173
put the naughty message in the right spot;
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
afa47f4b58
fix bonehead mistake not cleaning up arrays before reallocating them;
2 years ago
Bryan Biedenkapp
a7f9cb93be
fix issue handling $F7E NAC; implement $F7F NAC support;
2 years ago
Bryan Biedenkapp
ae3a03b521
fix LC_GROUP_UPDT using duplicated data;
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
36099367c8
fix condition where the Log and ActivityLog would overflow the character buffer by no properly calculating the length of the va_args string (this should resolve buffer overflow terminations on GCC 13+);
2 years ago
Bryan Biedenkapp
0ad47a1989
be a little less obtuse about the NAK reason in the FNE log;
2 years ago
Bryan Biedenkapp
cbb0af42ba
fix some minor DVRS/conventional weirdness;
2 years ago
Bryan Biedenkapp
a7e727a7ec
ensure we don't end up with badness;
2 years ago
Bryan Biedenkapp
01af69a954
make sure the data length for P25 is twice the PDU length; add support to log if a dedicated CC stops transmitting from the host perspective (the logic for this is: is host in appropriate digital mode for CC, is the modem reporting no Tx, has the modem reported its status initially, and is the CC in a running state);
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
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
c249ee5803
fix offset issue for network generated TSDUs;
2 years ago
Bryan Biedenkapp
5650db1657
for LDU LC's pass thru any non-standard MFIDs without any further processing as-is;
2 years ago
Bryan Biedenkapp
c7b0fc3a9d
add support to encode a GRP_AFF_RSP as an AMBT (this is just the data serialization part and not the actual business logic in the host);
2 years ago
W3AXL
d980da74be
small fix to make preferred sites work via REST
2 years ago
Bryan Biedenkapp
41044d2271
fix a potential situation where we may get a length stuck on the queue (this shouldn't happen but, this is protection logic to ensure it never happens);
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
cf2469a2aa
revert previous change to ControlSignaling that pulled wrong commit from p25_data branch;
2 years ago
Bryan Biedenkapp
137dfbe918
use site data sysId for U_REG_RSP for a successful AUTH_RESP;
2 years ago
Bryan Biedenkapp
be7230d68d
used incorrect variables to set the WACN and system ID for the auth demand OSP (thanks max);
2 years ago
Bryan Biedenkapp
7e3e006fd1
fix comment typo;
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
f5a5d83f4b
fix potential issue with full group affiliation update;
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
6d738432e2
fix missing break for AUTH_RESP case;
2 years ago
Bryan Biedenkapp
f8aa80a63f
continued work on P25 PDU handling (this has a long way to go...);
2 years ago
Bryan Biedenkapp
c99efa1f14
fix issue with bad offsets for AUTH_RESP data (this happened back in Decemeber when the payload array layout was altered);
2 years ago
Bryan Biedenkapp
424c7fa35a
fix missed nullptr checks for if networking is disabled;
2 years ago
Bryan Biedenkapp
7cc2b99000
pass VSELP1/2 frames (this is experimental, in my tests doesn't break anything else, but it could), this will also pass VSELP1/2 frames to the network core but the host doesn't currently carry code to retransmit network VSELP frames over the air [yet];
2 years ago
Bryan Biedenkapp
574ede103e
update hotspot and modem fw submodules;
2 years ago
Bryan Biedenkapp
17fae1d461
fix issue where the timeout timer wasn't running for the network which would never cause the connection to reset after a number of error attempts trying to login to the master;
2 years ago
Bryan Biedenkapp
d5ef9a0cb5
little bit of P25 data work (nothing amazing here yet);
2 years ago
Bryan Biedenkapp
9055e3aaa8
update copyrights;
2 years ago
Bryan Biedenkapp
4d776f6314
add support for DMR T3 adjacent site broadcast;
2 years ago
Bryan Biedenkapp
3d752bc363
add preferred peer ID lists to the REST API;
2 years ago
Bryan Biedenkapp
096efcef1a
ignore affiliation checks for ISSI-type peers, they are excluded from affiliation rule checking;
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
690bac453d
remove clearBeforeWrite function argument for a lot of control singalling (and some data) cases, this was an old method of clearing the Tx packet queue before creating a frame to ensure it went out really fast, but shouldn't be done anymore, so I'm removing this so no one gets any bright ideas;
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
f603949879
make common strings #defines instead of copy and pasted static text;
2 years ago
Bryan Biedenkapp
1341690653
add call error (failed validation) events to InfluxDB logging;
2 years ago