
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>
40 lines
1.3 KiB
Diff
40 lines
1.3 KiB
Diff
From: Miroslav Lichvar <mlichvar@redhat.com>
|
|
Date: Mon, 31 May 2021 11:07:55 +0200
|
|
Subject: [PATCH 04/61] port: Don't renew raw transport.
|
|
|
|
Renewing of the transport on announce/sync timeout is needed in the
|
|
client-only mode to avoid getting stuck with a broken multicast socket
|
|
when the link goes down.
|
|
|
|
This shouldn't be necessary with the raw transport. Closing and binding
|
|
of raw sockets can apparently be so slow that it triggers a false
|
|
positive in the clock check.
|
|
|
|
Reported-by: Amar Subramanyam <asubramanyam@altiostar.com>
|
|
Signed-off-by: Miroslav Lichvar <mlichvar@redhat.com>
|
|
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
|
|
[commit 6df84259647757bc53818a039734f8ff85618c02 upstream]
|
|
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
|
Signed-off-by: Andre Mauricio Zelak <andre.zelak@windriver.com>
|
|
---
|
|
port.c | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
diff --git a/port.c b/port.c
|
|
index 8cf3f59..f22bff4 100644
|
|
--- a/port.c
|
|
+++ b/port.c
|
|
@@ -1796,6 +1796,12 @@ static int port_renew_transport(struct port *p)
|
|
if (!port_is_enabled(p)) {
|
|
return 0;
|
|
}
|
|
+
|
|
+ /* Closing and binding of raw sockets is too slow and unnecessary */
|
|
+ if (transport_type(p->trp) == TRANS_IEEE_802_3) {
|
|
+ return 0;
|
|
+ }
|
|
+
|
|
transport_close(p->trp, &p->fda);
|
|
port_clear_fda(p, FD_FIRST_TIMER);
|
|
res = transport_open(p->trp, p->iface, &p->fda, p->timestamping);
|