Bryan Biedenkapp
d8efc3e29d
validate the state of the audio device, and attempt to reinit if its not running (and die in a panic if it can't be reinited);
1 year ago
Bryan Biedenkapp
92070b77db
setup preferred backends for miniaudio;
1 year ago
Bryan Biedenkapp
35cf087b33
ensure redundant terminators aren't logged (rxStartTime should be zeroed after the first terminator for a call is received, all others after that shouldn't make a log entry based on zeroed rxStartTime);
1 year ago
Bryan Biedenkapp
89a1d4bde9
peekFrameLength() should abide by mutex locks on txQueue's;
2 years ago
Bryan Biedenkapp
c60f418ddc
correct issue with thread-safety when writing network queues for bridge;
2 years ago
Bryan Biedenkapp
e81e7752ed
allow hasP25Space() to be overriden by derived classes [for possible future use];
2 years ago
Bryan Biedenkapp
849d54976b
fix file spacing;
2 years ago
Bryan Biedenkapp
14b880b708
add some mutex locking for thread safety, ensure addFrame and getFrame cannot happen simultaneously;
2 years ago
W3AXL
6ddec3c641
typo mistake whoops
2 years ago
W3AXL
d3aede7f1f
added sytem information to host status response
2 years ago
Bryan Biedenkapp
f5c5748789
increase modem read delay to 1ms;
2 years ago
W3AXL
8c836ec336
whoops, put this in the right place
2 years ago
W3AXL
babfdeb4f3
fixed U: log messages causing journalctl spam
2 years ago
Bryan Biedenkapp
043f6a73ae
add support for always send list;
2 years ago
Bryan Biedenkapp
dd31260ded
i'm an idiot;
2 years ago
Bryan Biedenkapp
7d582138aa
properly respect N(S)/N(R);
2 years ago
Bryan Biedenkapp
f4291f9235
ignore PDUs who claim to have PDU data but really don't;
2 years ago
Bryan Biedenkapp
d106fbb062
add some extra length documentation for RTP packets; make network ringbuffer initialized value a constant; continue logic implementation for P25 data; correct buffer issue on P25 data;
2 years ago
Bryan Biedenkapp
52e3677270
fix problem with ULL for 32-bit, on 64-bit this wasn't a problem as the numbers were all treated as 8 bytes wide (on Linux anyway), but for 32-bit this truncated the numbers and caused weird problems;
2 years ago
Bryan Biedenkapp
7a7dff3388
report now value in PONG response;
2 years ago
Bryan Biedenkapp
f6f7a70757
add debug trace for PONG messages;
2 years ago
Bryan Biedenkapp
1d760e0489
update debian package version;
2 years ago
Bryan Biedenkapp
260f4ed6d4
when a LOC_REG comes in ensure group affiliations are updated as well;
2 years ago
Bryan Biedenkapp
a880d2734e
implement call collision timeouts; fix GRP_VCH_GRANT_UPD allow it to carry 2 channels per spec;
2 years ago
Bryan Biedenkapp
a45d180c23
ensure if run in the foreground logs never goto syslog;
2 years ago
Bryan Biedenkapp
5aaad9c2fb
add support to suppress diagnostic messages from the bridges to the FNE;
2 years ago
Bryan Biedenkapp
3edab9f384
fix idiotic non-sense with MDC decoding, the logic here is if the MDC ID has no hex values to translate 1:1, if it contains hex values convert the hex value to a decimal value;
2 years ago
Bryan Biedenkapp
8ba2528533
bump overall version number with release of dvmbridge C++ alpha and Win32 support;
2 years ago
Bryan Biedenkapp
65fa91b7cb
[THIS MAY BREAK THINGS, BE AWARE] Merge Win32 support and C++ dvmbridge into master. ( #67 )
...
* experimental support for WIN32 compilation (tested only with VS2022);
* fix up incorrect return;
* make debug compile verbose; ensure ws2_32.lib is included;
* initial commit of vocoder library to main source tree; initial commit of C++ port of bridge (non-functional);
* calculate the length of the preamble tone and properly write it;
* implement MDC callback to detect MDC unit ID; implement UDP audio reception; implement local audio reception;
* very alpha working verison;
* correct buffer size;
* correct issue with enabled Tx mode not properly being set on the network; correct issue with DMR not setting the appropriate frame length after packing AMBE bits; correct false call starts by faking the txStreamId (this isn't correct but works for now); fix issue with P25 non-GROUP LCOs causing audio breaks; correct bad logic for call lockup thread;
* cleanup and properly align log messages;
* implement missing Rx/Tx manual gain control; fix missing srcId overrides;
* eliminate the __ALLOC_VLA macro (this really only works on VS2022, GCC explodes in a fit of horror);
* fix missing comment;
* fix bad CFLAGS; correct missing dl library when linking dvmbridge on linux; fix various typos and bad variable types in bridge;
* fix some bad memset calls not taking array size into account; fix some missing parens;
* implement missing cal options;
* don't start the timer till the first LDU1 for cal mode;
* I'm just full of bad mistakes today;
* ignore logging excessive sync frame errors;
* update modem submodule;
* Add DVM-V24 Firmware Submodule And Enable Building It (#66 )
* Added v24 firmware as a submodule
* Added v24 firmware compilation
* V24 doesn't have make clean, so remove it from cmake
* Added V24 firmware to tarballs
* Fix my 1D107 error...
---------
Co-authored-by: faulty <faulty@evilcomputing.net>
* correct compilation flags for Win32; add support to dump sample levels on bridge (this is useful for tuning the vox level); add various fixes for local audio flag; add various fixes for not starting loops until completely running; ensure audio input/output device settings are output to the log; fix issue with Rx and Tx gain controls not being applied appropriately;
* fix compilation issues for RPI_ARM; ensure math constants are defined; remove unused command line arguments;
---------
Co-authored-by: Jim <25770089+faultywarrior@users.noreply.github.com>
Co-authored-by: faulty <faulty@evilcomputing.net>
2 years ago
Bryan Biedenkapp
37e058731c
update submodules;
2 years ago
Bryan Biedenkapp
26457d7d85
implement support to software reboot into the system bootloader for flashing (using stm32flash); update modem and hotspot submodules;
2 years ago
Bryan Biedenkapp
6542443ca7
add support to transmit dynamic regroup IR extended commands;
2 years ago
W3AXL
f0d7ecb021
removed individual RID lookup prints
2 years ago
Jim
748a40590f
Add DVM-V24 Firmware Submodule And Enable Building It ( #66 )
...
* Added v24 firmware as a submodule
* Added v24 firmware compilation
* V24 doesn't have make clean, so remove it from cmake
* Added V24 firmware to tarballs
* Fix my 1D107 error...
---------
Co-authored-by: faulty <faulty@evilcomputing.net>
2 years ago
Bryan Biedenkapp
31d5371765
update modem submodule;
2 years ago
Bryan Biedenkapp
958c33c65a
ignore logging excessive sync frame errors;
2 years ago
Bryan Biedenkapp
2b20a509cb
I'm just full of bad mistakes today;
2 years ago
Bryan Biedenkapp
cda8427c6c
don't start the timer till the first LDU1 for cal mode;
2 years ago
Bryan Biedenkapp
5b6d10d517
implement missing cal options;
2 years ago
Bryan Biedenkapp
325e9776e2
update modem submodule;
2 years ago
firealarmss
e031b2bb8f
Add support for GRP UNAFFIL opcode. ( #65 )
...
* Add support for GRP UNAFFIL opcode
* Fix line spacing
2 years ago
Bryan Biedenkapp
95ea46d7d5
update hotspot firmware; update modem firmware; allow FIFO sizes sent to modem to be zeroed if a digital mode is not enabled;
2 years ago
Bryan Biedenkapp
7cf37e0e21
fix incorrect log messages (find and replace typo);
2 years ago
Bryan Biedenkapp
093f8dd6e8
more warning cleanups;
2 years ago
Bryan Biedenkapp
27452f935d
cleanup some warnings;
2 years ago
Bryan Biedenkapp
34855aed70
fix incorrect macro;
2 years ago
Bryan Biedenkapp
10232d2f9b
OSP_TIME_DATE_ANN fix variable size;
2 years ago
Bryan Biedenkapp
3bc8e73560
update modem submodule; fix error with NXDN addFrame calls;
2 years ago
Bryan Biedenkapp
1bada70ca4
better fix then the previous commit, flag a LC decode from an LDU1 as "raw only", use raw RS bytes always for a ModemV24 convertFromAir;
2 years ago
Bryan Biedenkapp
c8a60af83c
attempt to add pass thru support for some LCs;
2 years ago
Bryan Biedenkapp
59a5482473
silence "Failed writing data to the network" messages; silence out-of-sequence warnings if the pktSeq is 0; when the master reports it is closing, have peers restart their connection states;
2 years ago
Bryan Biedenkapp
34e6e1dc38
ensure the time delay calculation is always an absolute value;
2 years ago
W3AXL
340400fab7
fixed wrong MI on start of enc calls
2 years ago
W3AXL
e7bec0504f
corrected V24 TSBK offset
2 years ago
Bryan Biedenkapp
38bce6de04
fixup V.24 TSBK data offset; correct situation where ACL lists for a host would repeatedly be sent because the last update time was never changed (this could happen if the peer is in progress for traffic, if thats the case just ignore sending updates and wait till next interval to send them);
2 years ago
Bryan Biedenkapp
4f55a89201
implement some changes suggested by CLang; fix writePeerStatus() not using RTP_END_OF_CALL_SEQ;
2 years ago
Bryan Biedenkapp
ec1cf8c87e
drop dvmdfsi as a standalone application (this functionality has been entirely rolled into dvmhost); update README.md;
2 years ago
Bryan Biedenkapp
617c889d1a
Merge DFSI host changes into master ( #63 )
...
* begin implementing support for the V.24 modem as a regular modem dvmhost can utilize;
* add Tx support (maybe);
* theoretical TSBKs via V.24?;
* set start of stream correctly;
* ensure stream frame type is set correctly; send start of stream and end of stream correctly for TSBK (hopefully);
* fix variable naming; ensure voice frames aren't repeated back to the V.24 source;
* document configuration changes;
* add framework for eventual V.24 UDP support;
* correct issue not handling regular modem commands;
* fix up issue writing V.24 data to the modem buffers;
* initial working V24 modem implementation
* update commenting/documentation;
* reorganize configuration parameters and documentation;
* whoops forgot comment;
* ensure TSDU MBF is disabled for DFSI modems; tag DFSI parameters in log output proper for clarity; ensure P25 fixed mode is forced for DFSI modems;
* fixup V.24 UDP port, properly fake certain modem responses, fix bad RTP transmissions; add STT_NON_IMBE_NO_JITTER message type for ignoring message jitter;
* fix data offsets;
* ensure DFSI's internal call timeout is settable;
* bump version numbers;
* use LOG_MODEM not LOG_SERIAL;
* correct issue with PING/PONG resetting pktSeq incorrectly; add metric calculation for determining RTT for a PING/PONG;
* use milliseconds instead of seconds for delta clocking on the FNE and host for networking; correct several issues with incorrect packet sequences being sent for some control packets; correct issue with tracked packet sequence possibly being incorrectly reset;
---------
Co-authored-by: W3AXL <29879554+W3AXL@users.noreply.github.com>
2 years ago
Bryan Biedenkapp
2c640a53c4
allow OSP_TSBK_RAW to allocate and decode a raw unknown TSBK;
2 years ago
Bryan Biedenkapp
eae8923227
various cleanups; correct incorrect implementation for copy constructors on DFSI FSC messages;
2 years ago
Bryan Biedenkapp
cd579eeabf
add virtual flag to some routines;
2 years ago
Bryan Biedenkapp
e0ea19b350
move dvmdfsi/frames into common; make host Modem class inheritable;
2 years ago
Bryan Biedenkapp
fb0bb665eb
fix issue where SIGTERM or SIGINT was not properly stopping the process;
2 years ago
Bryan Biedenkapp
9205f514a1
increase time between modem polls to 750us;
2 years ago
Bryan Biedenkapp
abe45a1d53
fix up file headers;
2 years ago
W3AXL
34d17d961a
added DVMV24 board info reporting
2 years ago
Bryan Biedenkapp
8ba9e5c846
fix up Catch2 tests (these are woefully maintained...); add support for RC4-type encryption;
2 years ago
Bryan Biedenkapp
cb5329b2ca
simplify poll implementation;
2 years ago
Bryan Biedenkapp
dbe1f69071
if the control the beginning of a call has valid crypto data, use the MI for the HDU;
2 years ago
Bryan Biedenkapp
47d89febdf
fix various valgrind reports;
2 years ago
Bryan Biedenkapp
22d13e4c77
decrease the modem status polling delays to 125ms idle, 75ms active;
2 years ago
Bryan Biedenkapp
355db0c9cc
[This commit contains highly-experimental and possibly unstable alterations to core archeitcture on dvmhost] deprecate ThreadFunc (using C++ lambda's was a bad idea to begin with); refactor some startup messages; refactor use of ThreadFunc in FNE; refactor how threads were created in the FNE; [EXPERIMENTAL] refactor the host architecture to use threading for modem clocking and protocol readers;
2 years ago
Bryan Biedenkapp
4ba65c5bab
fix issue where when *decoding* a EXT_FNCT the src and dst would be inverted resulting in bad logging;
2 years ago
Bryan Biedenkapp
89f255d8e3
fix issue with P25 packet lengths being potentially truncated;
2 years ago
Bryan Biedenkapp
e66365f3f4
add support to sleep for shorter periods of time;
2 years ago
Bryan Biedenkapp
7ec138ed13
hide debug messages unless DEBUG_P25_PDU_DATA is set;
2 years ago
Bryan Biedenkapp
07d6d3c91f
fix issue where next MI wouldn't be calculated from the HDU MI if we received a valid HDU; fix issue with first superframe LDU1 containing a non-standard MFID resulting in incorrect destination IDs (if this happens and we've received a valid HDU, attempt to use the HDUs destination ID);
2 years ago
Bryan Biedenkapp
da2f6130a8
[NOTICE: this commit is *EXPERIMENTAL* and implements *very* early data support, it is expected to be buggy, incomplete or broken] implement VTUN interface (fne0) on the dvmfne (this requires dvmfne to be run as root on Linux system [untested on non-Linux] to create the tun interface); implement VIFace random MAC generation; implement P25 TIA-102.BAEB SCEP ARP (SCEP is always used for conventional data) on dvmfne; refactor P25 packet status bits (this may break things else where, beware!); properly implement P25 status bit flipping on inbound channel activity; implement functionality in the P25 and DMR DataHeader classes to calculate the proper raw PDU frame length; implement dvmfne ARP table creation and maintainence (this is buggy and requires more implementation and test); implement dvmfne VTUN -> PDU and PDU -> VTUN IP traffic forwarding (this is incomplete and requires more implementation and test); correct several issues on dvmhost p25::packet::Data with overlapped buffers;
2 years ago
W3AXL
ac64946b3f
added late call start on VHDR if no start ICW was received
2 years ago
jsb5151
9a214b683a
set shortened frame length to 14 bytes ( #61 )
2 years ago
Bryan Biedenkapp
eb093b3f5f
use epoll for VIFace;
2 years ago
Bryan Biedenkapp
d32e62e3cf
add virtual interface support class;
2 years ago
Bryan Biedenkapp
98f620e48b
split dispatch functions into dispatch and dispatchToFNE; correct variable shadowing in DMRPacketData::processFrame();
2 years ago
Bryan Biedenkapp
dc29208e70
refactor DMR PDU processing to be more in-line with how P25 PDU processing is done; implement support on the FNE to inspect and dispatch DMR PDUs properly;
2 years ago
W3AXL
b343473a87
initial fix to handle non-standard MFID LDU1s
2 years ago
Bryan Biedenkapp
806f950665
add disablePacketData flag to disable the FNE passing packet data;
2 years ago
Bryan Biedenkapp
c9e7dcc11f
make LC_CALL_TERM use dstId;
2 years ago
Bryan Biedenkapp
d467405a01
ensure TDU preamble is sent before voice for late entry;
2 years ago
Bryan Biedenkapp
98ded890f0
more cleanup; fix accidental change for block counting that broke things;
2 years ago
Bryan Biedenkapp
825aaeee06
remove more debug trace;
2 years ago
Bryan Biedenkapp
369c3bee25
remove debug trace log messages (whoops); fix edge case situation where the modem may stop reading because the response state machine is stuck;
2 years ago
Bryan Biedenkapp
0e43cf8918
add logic check to timeout a data call after 60 seconds;
2 years ago
Bryan Biedenkapp
2be4ca2bec
log ARP requests;
2 years ago
Bryan Biedenkapp
c4147ecc5b
ensure exSAP is reset properly;
2 years ago
Bryan Biedenkapp
f3c3cc95ce
refactor P25 PDU extended address handling (this loosely gets a lot of conventional data things working, Moto TMS for example will pass in conventional [although buggy]); pass PDU response data headers (with no block followers) across the network;
2 years ago
Bryan Biedenkapp
197ce833ac
correct Trellis symbol skipping logic for DMR for 3/4 Trellis; enhance DMR short LC bits; correctly identify short LC for data and CSBK; correct buffered PDU repeat logic (when header has no blocks following);
2 years ago
Bryan Biedenkapp
1e25fff1ed
send these packets in the immediate queue;
2 years ago
Bryan Biedenkapp
88b619c71f
implement initial logic to provide PDU processing on the FNE;
2 years ago
Bryan Biedenkapp
96ea9269be
don't transmit trailing TDUs;
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
93e1531308
whoops confirmed packets always require acknowledgement;
2 years ago
Bryan Biedenkapp
d281844c74
byte reverse IP addresses returned for P25's OTA; fix conventional registration packets not properly transmitting; continued work on P25 data refactoring;
2 years ago
Bryan Biedenkapp
6dad7186c4
don't make *all* AMBT's goto the immediate queue, only do this for AUTH_DMD;
2 years ago
Bryan Biedenkapp
ca3fc407c0
add helper to convert an IP in std::string to a uint32_t; add calculateLength() function to P25 PDU DataHeader to more easily calculate data header fields for a packet; correct missing DAC and MDPCO fields on SNDCPCtxActAccept; correct missing MDPCO field on SNDCPCtxActRequest; implement support for Control::writeRF_TDU to be sent to the immediate queue; implement support for Data::writeRF_PDU and Data::writeRF_PDU_User to send data to the immediate queue; add some TDU leader and trialers to PDU handling; enhance the AUTH_DMD by forcing the AMBTs to the immediate queue; continued enhancements to the SNDCP support;
2 years ago
Bryan Biedenkapp
345231fcf6
update hotspot and modem submodules;
2 years ago
Bryan Biedenkapp
5db4f58ab6
update hotspot and modem firmware submodules; fix some bad commenting;
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
5159c6f8c7
convert monitor to Doxygen;
2 years ago
Bryan Biedenkapp
d9c6447563
fire off a U_REG_CMD when performing stale unit deregistration to force a SU to re-register itself when the inactivity timer is hit;
2 years ago
Bryan Biedenkapp
580f26a478
convert dfsi to Doxygen documentation format;
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
4137db2399
remove AUTHORS.md; update README.md to reflect dvmdfsi; fix spacing issue for dvmdfsi command line help; update hotspot and modem submodules;
2 years ago
Bryan Biedenkapp
3861559f87
add support to send SNDCP disabled annoucement messages properly;
2 years ago
Bryan Biedenkapp
dc0838e0c3
whoops swapped reject values;
2 years ago
Bryan Biedenkapp
f23d3931f4
add initial support to process SNDCP control PDU data;
2 years ago
Bryan Biedenkapp
d18b4c2b4e
fix issue with SNDCP packets not having the site IDEN table set;
2 years ago
Bryan Biedenkapp
e90350d350
begin implementing some basic SNDCP handling logic (this isn't complete, and this doesn't make SNDCP work *yet*), however until the implementation is complete, this should prevent channels from becoming grant locked (hopefully);
2 years ago
W3AXL
6b8e889ea6
debug cleanup
2 years ago
Bryan Biedenkapp
63f3f9e499
fix oopsie copy and paste error;
2 years ago
Bryan Biedenkapp
1388863371
ensure the host doesn't attempt to retransmit rogue OSP_SNDCP_CH_GNT;
2 years ago
Bryan Biedenkapp
45efd99801
support decoding rogue OSP_SNDCP_CH_GNT (even tho on DVM you can *enable* this you shouldn't because there's no SNDCP application that will respond);
2 years ago
Bryan Biedenkapp
ecda6b13d3
cowardly refuse to transmit OSP_SNDCP_CH_GNT across the network;
2 years ago
Bryan Biedenkapp
35c07715bc
don't use HUGE as a SiteModel because certain versions of GCC are awful;
2 years ago
Bryan Biedenkapp
9050ad7885
this should address the issues with #53 , dvmhost and dvmdfsi *should* transparently pass unknown non-standard MFId LCs in the voice LDU1 frames; correct some logging irregularities in dvmdfsi;
2 years ago
Bryan Biedenkapp
55b1670121
update copyright dates;
2 years ago
Bryan Biedenkapp
673289c764
add more constant/enum documentation from specification documents;
2 years ago
Bryan Biedenkapp
eacbc27143
add marking of whether an inbound CAC is long or short; fix issue with short CAC not properly building a puncturing buffer (even tho short CAC doesn't do puncturing, its needed for NXDN convolution); correct CAC getData() return; remove deprecated code causing decoding offsets to be wrong resulting in invalid RCCHs;
2 years ago
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
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
Bryan Biedenkapp
856fa98357
make the REST response wait time variable; use a quick response time of 150ms when using REST API during real-time OTA packet processing; add extra logging messages for UDP;
2 years ago
Bryan Biedenkapp
1632019650
port and implement /dmr/rid and /p25/rid REST APIs on the CFNE;
2 years ago
W3AXL
9675f42db5
added ability to save RID/TGID lookups from the FNE to local files
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
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
b7c6282767
fix for possible race condition (that shouldn't have happened in the first place), if writeMaster is being used in queueOnly = false, do an immediate network socket write without attempting to enqueue a message;
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
f000639c7f
ensure m_forceHotspot is initialized to a sane default;
2 years ago
Bryan Biedenkapp
e2514c1f8f
mild include reorg;
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
cda6b5965f
add support for optional TCP SSL/TLS sockets;
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
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
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
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
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
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
Bryan Biedenkapp
7d1c233875
I'm a moron;
2 years ago
Bryan Biedenkapp
a4ec7fbfa8
add a check for RTP payload type $57 (which we deprecated) so that its essentially ignored, so people on older versions can abuse the newer software; ensure we don't try to transmit terminators for calls that didn't exist on the first place;
2 years ago
Bryan Biedenkapp
e75caf0337
correct some edge case issues with nullptrs at inappropriate times; check for error condition trying to transmit encrypted network frames with no key;
2 years ago
Bryan Biedenkapp
9e27875bb8
ensure network is a valid instantiation before trying to run;
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
3e5fe8b349
update submodules;
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
0687b1da80
include TCP headers;
2 years ago
Bryan Biedenkapp
bad8129d7d
file header updates;
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
68bfae72bb
remove unused variable;
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
5ed3d79a0b
fix inversion of MINOR_VERSION; fix missing HOST_SW_API markers;
2 years ago
Bryan Biedenkapp
1447d9dbe0
fix bad C++14 handling of overrides (forgot the override keyword);
2 years ago
Bryan Biedenkapp
f0be2e0079
fix incorrect variable set in P25 SiteData; add VIM YouCompleteMe project configuration;
2 years ago
Bryan Biedenkapp
051dc0eb7f
allow overriding of group voice channel data in IOSP_GRP_VCH; make sure to instantiate values to sane defaults;
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
1c28bed062
fixup log messages; allow special CRC bypass conditions; add roamer reaccess flag to OSP_RFSS_STS_BCAST;
2 years ago
Bryan Biedenkapp
7513bccf52
refactor PROPERTY_PLAIN and READONLY_PROPERTY_PLAIN;
2 years ago
Bryan Biedenkapp
c94ddc3421
remove unused macros; use __SET_UINT16B for some BaseNetwork values;
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
Bryan Biedenkapp
f7ecb54b86
during shutdown ensure the log network pointer is cleared (prevents a shutdown/exit SEGFAULT);
2 years ago
Bryan Biedenkapp
98cf9513ba
correct badness when dealing with ISSI peers;
2 years ago
Bryan Biedenkapp
d0e4e08b31
allow some BaseNetwork functions to be overridden by inheriting classes; allow extension payload header length to be modified by the user;
2 years ago
Bryan Biedenkapp
926c9f0c77
better comment these buffer value helpers;
2 years ago
Bryan Biedenkapp
6c3735befe
make hex2Bin and bin2Hex util functions;
2 years ago
Bryan Biedenkapp
9fb2201139
code cleanup; some minor modifications for out-of-band software;
2 years ago
Bryan Biedenkapp
140b4ecd3c
further cleanup/rework of CMake scripts;
2 years ago
Bryan Biedenkapp
1e4bdbd1fa
typo;
2 years ago
Bryan Biedenkapp
7b95ddff95
refactor and rework the CMake build system slightly (so it behaves better when compiled out-of-tree, shhh);
2 years ago
Bryan Biedenkapp
bde6284308
ensure FNE software reports itself differently; make host Network class private section protected so the FNE codebase can inherit from it; create PeerNetwork inherited class on FNE;
2 years ago
Bryan Biedenkapp
cf0d8bb430
port RTP header changes from fnecore for better handling the RTP timestamp; relabel conference FNE to converged FNE; refactor version slightly so that the running DVM host version is properly reported to the FNE and when saved to modem configuration area;
2 years ago
Bryan Biedenkapp
abbe6cd41c
properly queue FNE peer messages (these are distinct from peers connected *to* the FNE, FNE peer messages are messages sent to FNE masters that are "ISSI"ed); better handle logging activity logging;
2 years ago
Bryan Biedenkapp
c60b69b54e
add conference FNE REST API to report the currently configured TGID list;
2 years ago
Bryan Biedenkapp
9bd06b916a
use better terminology for FNE peer TGID rewriting;
2 years ago
Bryan Biedenkapp
2226e1e6f7
implement confernece FNE API to force list updates on demand; better organize FNE dvmcmd commands;
2 years ago
Bryan Biedenkapp
bf72dcbee8
add support to picojson for uint64_t; correct issue with conference bridge FNE never incrementing a connections ping counter; implement /status and /peerlist APIs for conference bridge REST API; implement support for /peerlist in dvmcmd;
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
1766121686
fix issue with dvmmon not properly initializing;
2 years ago
Bryan Biedenkapp
0e705f74a6
report whether or not the host is transmitting CW;
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
bd3a947964
enhancement for better dealing with voice in unsupported modes;
2 years ago
Bryan Biedenkapp
d8dec70665
fix missing foreground option on dvmfne; add extra CC halt cases; correct bad check for enable control for conventional grant demand; fix incorrect creation og control byte for grant demand; add clear log message that a grant demand is being generated;
2 years ago
Bryan Biedenkapp
19465cb6b3
add DVMV1 firmware compile options; update dvmfirmware submodule;
2 years ago
Bryan Biedenkapp
d2968d63f4
add logic check for VOC to ensure network grants are always allowed;
2 years ago
Bryan Biedenkapp
506c59c52b
fix range for softpots in TUI to be 0 thru 255;
2 years ago
Bryan Biedenkapp
73e32df310
ensure DMR doesn't try to perform supervisory control for the opposing slot on a CC instance; correct TSBK ToString();
2 years ago
Bryan Biedenkapp
479c472694
add firmware as submodules to host; add support to compile firmware using CMake, adds make targets "dvmfw" and "dvmfw-clean" to compile and/or clean after compile;
2 years ago
Bryan Biedenkapp
6a2e9f8876
whoops used wrong boolean for DMR TSCC dedicated check;
2 years ago
Bryan Biedenkapp
71f28d13a7
split DMR writers into separate threads, one for slot 1 and one for slot 2 so they can write independantly; fix issue with cuts in Tx due to the DMR Tx timer not being properly canceled for TSCC enabled hosts;
2 years ago
Bryan Biedenkapp
2d809e0a61
complete the job Faulty started and remove remnants of deprecated ENABLE_DMR, ENABLE_P25 and ENABLE_NXDN compiler options;
2 years ago
Bryan Biedenkapp
ddfb6aaedc
properly handle swapping between Rx and Tx antennas for BER operations on hotspots (this requires updated firmware);
2 years ago
Jim
105b0d1e7d
Removes support for selectively enabling or disabling protocols via CMake arguments. ( #45 )
...
Co-authored-by: faulty <faulty@evilcomputing.net>
2 years ago
Bryan Biedenkapp
5748420055
apply proper clamping to DMR network ID;
2 years ago
Bryan Biedenkapp
a4ffa1d164
fix issue with local asio::asio not being properly used when compiling libcommon;
2 years ago
Bryan Biedenkapp
97af96a6ad
be verbose in cmake output when enabling various debugs; correct issue with startup messages;
2 years ago
Bryan Biedenkapp
0f770462b7
update headers to properly reflect which module/package the file belongs;
2 years ago
Bryan Biedenkapp
2150b69137
move AMBT packets into their own directory; create common static library CMakeLists;
2 years ago