Bryan Biedenkapp
9e68049cd8
ensure first super-frame LDU1 after an HDU sets the encrypt flag;
1 year ago
Bryan Biedenkapp
1b4ea4d8c7
refactor status bit handling slightly;
1 year ago
Bryan Biedenkapp
0304b98fac
backport a change from incall_ctrl to fix issue with the first LDU1 after an HDU being non-standard MFId causing illegal grant demands and/or grants;
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
a015c547d7
ensure TDU is transmitted at end of voice;
1 year ago
W3AXL
340400fab7
fixed wrong MI on start of enc calls
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
dbe1f69071
if the control the beginning of a call has valid crypto data, use the MI for the HDU;
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
Bryan Biedenkapp
d467405a01
ensure TDU preamble is sent before voice for late entry;
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
f23d3931f4
add initial support to process SNDCP control PDU data;
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
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
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
9b6fcdbdf7
fix incorrect assembly of DENY TSDUs for certain services; replace QUEUE TSDUs for grant TSDUs with DENY TSDUs;
2 years ago
Bryan Biedenkapp
cbb0af42ba
fix some minor DVRS/conventional weirdness;
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
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
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
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
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
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
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
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
1379482fcc
reorganize entire codebase structure; move common classes, files into a compile time static library; reorganize CMake files to make use of common static library to reduce compile time;
2 years ago