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 <asubraman...@altiostar.com>
Signed-off-by: Miroslav Lichvar <mlich...@redhat.com>
---
 port.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/port.c b/port.c
index fb420fb..6bf0684 100644
--- a/port.c
+++ b/port.c
@@ -1806,6 +1806,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);
-- 
2.26.3



_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to