Commit Graph

627 Commits (a677f444d407874b7a8f7ecf968a91c297ec2ebb)

Author SHA1 Message Date
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)
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)
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)
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)
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

Powered by TurnKey Linux.