-
Notifications
You must be signed in to change notification settings - Fork 213
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
P25Gateway Static Reflectors - Switching due to network activity on heartbeats not voice traffic #584
Comments
This has been a problem for a long time. There are some other old old builds floating around the internet that don't suffer from this. |
Some further testing with armv7l aarch64 builds (in case this was somehow a base architecture difference) is showing the same behaviour. It is constantly reconnecting back to valid reflectors in the The only working platform/build where this is functioning as expected so far, is armhf and I have also tried dropping in a binary copied from one of those working systems. Unfortunately that is getting old and technologies are moving away from that platform, so it is worth reviewing the code to see why it is doing this when built on 64-bit or other modern kernels. Also further testing may be done on multiarch or virtualizing the functional environment, but those add extra layers which should not be needed for some fairly lightweight software like this. Old builds prior to having the multiple static reflector connection capability are fine, and a workaround by leaving the This issue, along with the other long standing issue for several years with "canned" P25 HDU headers (specifically, the talkgroup ID which is not synthetically generated, and therefore does not always match the LDU1 link control parameters in accordance with TIA-102.BAAA) which I have described in much greater detail elsewhere, and along with the incorrect generation and insertion of Status Symbols which need to reflect the actual state of duplex operation (impacting functionality of busy channel lockout) is detrimental to the effective use of multiple talkgroups and especially for those who are experiencing P25 for their first or only time via the MMDVM implementation, are getting a poor first impression of what is otherwise a highly robust and production-grade radio protocol. |
With the last release of P25Gateway (20240831) compiled on an amd64 (x86_64)/EL9 platform and when 1 or more static reflector talkgroups are specified in the P25Gateway.ini file, this version constantly switches back and forth between one or more of those reflector(s) "due to network activity" even when there is actually no network activity, it was just a periodic heartbeat response at around 5 second intervals from the reflector. The expectation (and the observed behaviour with an armhf/Debian build of the same code) is that the P25Gateway only switches to a reflector carrying valid voice traffic activity, and ignores regular heartbeat activity approximately at intervals of every 5 seconds.
This code was make compiled on both the system it is operating on (AlmaLinux 9.4) as well as also attempted on WSL (Windows Subsystem for Linux) and then the binary transferred over and executed with the same result. It appears that upon a cursory review of the source code, that reflector supervisory control traffic received is specifically meant to be excluded from consideration as "network activity" however this case it is not, is causing P25Gateway to constantly switch, and also miss or late enter to actual voice traffic occurring on other reflectors, with the side effect of also filling up log files.
Since the same code compiles on armhf and does not exhibit this behaviour could there be potential that there is somehow a difference between the compilers between these architectures causing the reflector heartbeats to be erroneously considered as valid voice traffic activity. A roll back was also attempted to the 20201105 version of P25Gateway source, with the same result but again only on amd64 build.
See below excerpt from the log files with the reflector debug enabled. Debug hex has been intentionally truncated for this posting, but it is the timestamps that are of interest. This is with
NetHangTime
parameter set to an intentionally short duration of 1 second to demonstrate that P25Gateway is constantly reconnecting every heartbeat interval.The text was updated successfully, but these errors were encountered: