Commit Graph

50 Commits (ca3fc407c0882df49df602f671adfaa51473a709)

Author SHA1 Message Date
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 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
Bryan Biedenkapp 1388863371 ensure the host doesn't attempt to retransmit rogue OSP_SNDCP_CH_GNT;
2 years ago
Bryan Biedenkapp ecda6b13d3 cowardly refuse to transmit OSP_SNDCP_CH_GNT across the network;
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 424b228c46 fix issue where last ID data wasn't being reset when the VC was done with a call;
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 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 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 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 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 cbb0af42ba fix some minor DVRS/conventional weirdness;
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 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 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 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 d5ef9a0cb5 little bit of P25 data work (nothing amazing here 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 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 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 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 4acb60aeff add more plumbing to the CFNE for future use;
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
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 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 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 eba4db6104 refactor RTP code slightly to better handle tracking the RTP timestamp properly;
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 d2968d63f4 add logic check for VOC to ensure network grants are always allowed;
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

Powered by TurnKey Linux.