integ/base/linuxptp/debian/patches/0004-port-Don-t-renew-raw-transport.patch
Yue Tao 753c2fe35c linuxptp: add debian package
Porting all patches from CentOS.

Using the version 3.1.1-2 to align with CentOS version rather than
the default version 3.1-2.1 of Debian Bullseye.

Test Plan: building, install and booting

Pass: build test
Pass: install image
Pass: boot up on qemu

Story: 2009221
Task: 44053

Signed-off-by: Yue Tao <yue.tao@windriver.com>
Change-Id: I599f9244efe405a8b477d266696f4ac734aef6b5
2021-12-02 09:15:26 +08:00

46 lines
1.6 KiB
Diff

From 5caa4d0a9161e6a33e269c8e445b322e4437e6b3 Mon Sep 17 00:00:00 2001
Message-Id: <5caa4d0a9161e6a33e269c8e445b322e4437e6b3.1630418391.git.Jim.Somerville@windriver.com>
In-Reply-To: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
References: <0389752e3aecf8d2b2743f16ce1408a58088bea9.1630418391.git.Jim.Somerville@windriver.com>
From: Miroslav Lichvar <mlichvar@redhat.com>
Date: Mon, 31 May 2021 11:07:55 +0200
Subject: [PATCH 4/6] 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>
---
port.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/port.c b/port.c
index 387d5a2..d26b87f 100644
--- a/port.c
+++ b/port.c
@@ -1805,6 +1805,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.29.2