integ/base/linuxptp/debian/patches/0055-Ignore-interface-in-conf-file-when-HA-is-disabled.patch
Andre Mauricio Zelak 06c396fbe3 Fix HA clock selection algorithm
The issue reported is a particular case of a BC configured with
redundant PTP clocks with same priority. When a clock recovers
from a failure, as both clock were configured with same priority
it's expected the active clock source to remain active. But if
the recovered clock presented a better local clock class than
active, it was being selected active. This specific case was fixed.

Closes-bug: 2084723

Test plan: BC with same priority
PASS: Start the PTP service with all clocks out of requirements,
one is selected, no matter which one.
PASS: Then, when the backup clock recovers from failure it is
selected active.
PASS: Then, when the other clock recovers from failure it remains
as backup, no matter the local clock class.
PASS: Then, when the active goes out of requirement, the backup
is set active.

Test plan: GM with same priority
PASS: Start the PTP service with all clocks out of requirements,
one is selected, no matter which one.
PASS: Then, when the backup clock recovers from failure it is selected
active.
PASS: Then, when the other clock recovers from failure it remains
as backup, no matter the local clock class.
PASS: Then, when the active goes out of requirement, the backup
is set active.

Change-Id: Id2568bc8bbaad4cbf15070314f7904d3c3bbd53d
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
2024-10-16 18:19:55 -03:00

49 lines
1.7 KiB
Diff

From: Andre Mauricio Zelak <andre.zelak@windriver.com>
Date: Thu, 4 Jan 2024 13:27:09 -0300
Subject: [PATCH 55/61] Ignore interface in conf file when HA is disabled
Fixed the behavior when HA is disabled, one interface has been configured and
'-a' autoconfiguration option is enabled. The behavior before HA feature was
to ignore the givven interface. To keep retrocompatibility with earlier
configurations, interfaces in the configuration file are ignored
if HA is disabled.
Test Plan: non HA
PASS: Verify behavior when HA is disabled and interface has been configured
PASS: Verify behavior when HA is ommited and interface has been configured
PASS: Verify behavior when HA is disabled and no interface has been configured
Test Plan: HA
PASS: Verify phc2sys exit with error when HA is enabled and one interface
has been configured.
Closes-bug: 2048085
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
---
phc2sys.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/phc2sys.c b/phc2sys.c
index 4120568..1f6b6c2 100644
--- a/phc2sys.c
+++ b/phc2sys.c
@@ -2236,7 +2236,8 @@ int main(int argc, char *argv[])
return c;
}
- if (src_cnt == 0) {
+ ha_enabled = config_get_int(cfg, NULL, "ha_enabled");
+ if (ha_enabled && src_cnt == 0) {
/* get the source interface list from configuration file */
src_cnt = config_get_interfaces(cfg, src_names, MAX_SRC_CLOCKS);
if (src_cnt == (unsigned int)-1) {
@@ -2297,7 +2298,6 @@ int main(int argc, char *argv[])
goto end;
}
- ha_enabled = config_get_int(cfg, NULL, "ha_enabled");
if (!ha_enabled && src_cnt > 1) {
fprintf(stderr, "too many source clocks\n");
fprintf(stderr, "Use 'ha_enabled 1' to accept more than one source clock\n");