Bryan Biedenkapp
6690098a1c
do not announce data services when set for trunking and SNDCP is disabled;
10 months ago
Bryan Biedenkapp
fb0e51f36a
make Win32 compiles work again; correct incorrect behavior handling try_lock_for;
10 months ago
Bryan Biedenkapp
8dd504adea
add support to enable/disable CC message stream debug when a protocol debug is enabled; correct some bad handling of the MESSAGE_TYPE_REG NXDN command;
10 months ago
Bryan Biedenkapp
5ecfc58300
permitted TG RPCs shouldn't test for m_enableControl;
10 months ago
Bryan Biedenkapp
3da4eb2d40
REST -> RPC Migration ( #84 )
...
* migrate away from REST API for inter-dvmhost operations towards a custom UDP RPC framework;
* replace config parameters for REST API in some places with properly named RPC; swap peer Network, FNE DiagNetwork and FNENetwork over from if-else-if ladders to switch statements (switch statements perform logically better after compilation because the compiler tends to optimize these into jump-tables which execute faster);
* continued work on inter-dvmhost REST to RPC transition;
* update build bumper for R04G20 to R04G21;
* cleanup config file;
* clean up doc/commenting;
11 months ago
Bryan Biedenkapp
6812029491
Merge branch 'master' into incall_ctrl
11 months ago
Bryan Biedenkapp
64bcb56228
enhance debug logging to incorporate both file and line numbers (when provided by the compiler) and optionally implement LogDebugEx macro to also incorporate the caller identifying the function name; correct LogDebug uses in some cases that should have been LogMessage;
11 months ago
Bryan Biedenkapp
086730320d
code cleanup;
11 months ago
Bryan Biedenkapp
7063ce36a0
refactor how netLDUx buffers are built, and ensure buffers are filled with appropriate null IMBE frames; add support to remote grant demand to include whether or not the grant should set the encrypted flag; add warning to notify a user that a misconfiguration for a voice channel exists when a dedicated trunked voice channel has control data enabled; fix display of RF power level during startup;
12 months ago
Bryan Biedenkapp
3177d38897
Merge branch 'master' into incall_ctrl
12 months ago
Bryan Biedenkapp
89210c05aa
add support to optionally demand a SU perform a full registration with a site if a affiliation request is refused;
12 months ago
Bryan Biedenkapp
da5cb6eb7d
Merge branch 'master' into incall_ctrl
12 months ago
Bryan Biedenkapp
1b4ea4d8c7
refactor status bit handling slightly;
1 year ago
Bryan Biedenkapp
7faa2743e8
handle grant release and end of call TDU for P25;
1 year ago
Bryan Biedenkapp
0b0dc32c94
refactor call rejection to be timer based to reject a call until incoming data drops; correct bug with non-standard MFId's being used for the first LDU1; implement enforced unknown/undefined RID ACL support;
1 year ago
Bryan Biedenkapp
10f3f35131
add destination ID to ICC messages;
1 year ago
Bryan Biedenkapp
59f85c5976
implement in-call control mechanism (this allows the FNE to command a host to stop transmitting if a ACL check fails);
1 year ago
Bryan Biedenkapp
cc274ba78e
add support to selectively revert to previous logic ignoring affiliation checks;
1 year ago
Bryan Biedenkapp
b0369d272a
if for some reason, you have grant demands, and are a conventional/DVRS site, don't handle any grant demands if traffic is in progress;
1 year ago
Bryan Biedenkapp
7736e03aef
add ability to disable NON-AUTHORITATIVE log warnings (functionality is made optional as it makes diagnostics easier); remove redundant error message from grant demands;
1 year ago
Bryan Biedenkapp
5a972a671c
add some more verbose logging for overflow conditions; correct issue with DMR Tx timer expiring before the call actually ended;
1 year ago
Bryan Biedenkapp
0c247a2b37
make isQueueFull() checking -- less aggressive;
1 year ago
Bryan Biedenkapp
6e9c8837fb
add more verbose logging if the modem reports it does not have space for frames and if the local controller queue is full;
1 year ago
Bryan Biedenkapp
89a1d4bde9
peekFrameLength() should abide by mutex locks on txQueue's;
1 year ago
Bryan Biedenkapp
14b880b708
add some mutex locking for thread safety, ensure addFrame and getFrame cannot happen simultaneously;
2 years ago
Bryan Biedenkapp
958c33c65a
ignore logging excessive sync frame errors;
2 years ago
Bryan Biedenkapp
7cf37e0e21
fix incorrect log messages (find and replace typo);
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
47d89febdf
fix various valgrind reports;
2 years ago
Bryan Biedenkapp
89f255d8e3
fix issue with P25 packet lengths being potentially truncated;
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
Bryan Biedenkapp
d467405a01
ensure TDU preamble is sent before voice for late entry;
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
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
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
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
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
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
424b228c46
fix issue where last ID data wasn't being reset when the VC was done with a call;
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
ce9534b81f
correct a check that determines whether a CC stream should be generated; correct some misleading log messages;
2 years ago
Bryan Biedenkapp
9b828fe7a4
ensure the lookup table thread is named; don't display the not transmitting CC messages unless the test timer is not paused; add aggressive watchdog logging for when timers exceed 1s intervals; split adj. site and affiliation updating into a separate thread (huge adj. site updates could be the cause of main loop processing delays); ensure threads are properly shutdown; increase P25 adj site update timer from 30 seconds to 60 seconds (5 minutes of no updates will now FAIL an adj. site);
2 years ago
Bryan Biedenkapp
e0b6da51fb
make the network presence announcment (VC -> CC and CC -> FNE) timing configurable (this value is in seconds); refactor RF channel enumeration, RF channels are now enumerated in their own class ChannelLookup instead of being integrated into AffiliationLookup, this allows the flexibility to update and change channel information at runtime; add support for VC -> CC presence/registration to tell the CC what the REST information is for that VC, this makes the restAddress and restPort entries for the voiceChNo list in the config.yml optional, the only mandatory fields are channelId, channelNo and restPassword;
2 years ago
Bryan Biedenkapp
f5a5d83f4b
fix potential issue with full group affiliation update;
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
d5ef9a0cb5
little bit of P25 data work (nothing amazing here yet);
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
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
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