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>
34 lines
1.1 KiB
Diff
34 lines
1.1 KiB
Diff
From: Miroslav Lichvar <mlichvar@redhat.com>
|
|
Date: Mon, 31 May 2021 11:07:54 +0200
|
|
Subject: [PATCH 03/61] port: Don't check timestamps from non-slave ports.
|
|
|
|
Don't perform the sanity check on receive timestamps from ports in
|
|
non-slave states to avoid false positives in the jbod mode, where
|
|
the timestamps can be generated by different clocks.
|
|
|
|
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
|
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
|
[commit e117e37e379556fa23337db2518bb44d8793e039 upstream]
|
|
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
|
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
|
|
---
|
|
port.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/port.c b/port.c
|
|
index fa49663..8cf3f59 100644
|
|
--- a/port.c
|
|
+++ b/port.c
|
|
@@ -2714,7 +2714,10 @@ static enum fsm_event bc_event(struct port *p, int fd_index)
|
|
}
|
|
if (msg_sots_valid(msg)) {
|
|
ts_add(&msg->hwts.ts, -p->rx_timestamp_offset);
|
|
- clock_check_ts(p->clock, tmv_to_nanoseconds(msg->hwts.ts));
|
|
+ if (p->state == PS_SLAVE) {
|
|
+ clock_check_ts(p->clock,
|
|
+ tmv_to_nanoseconds(msg->hwts.ts));
|
|
+ }
|
|
}
|
|
|
|
switch (msg_type(msg)) {
|