dcavalca / rpms / linuxptp

Forked from rpms/linuxptp 2 years ago
Clone
1a36a3
commit 3399fa15ae28610c1b288b573c4233a42c48f762
1a36a3
Author: Amar Subramanyam via Linuxptp-devel <linuxptp-devel@lists.sourceforge.net>
1a36a3
Date:   Wed May 26 12:24:06 2021 +0300
1a36a3
1a36a3
    Log optimization for ptp4l in jbod and client only mode (clientOnly=1 and boundary_clock_jbod=1)
1a36a3
    
1a36a3
    The LISTENING port prints continuously
1a36a3
    "selected best master clock 000000.0000.000003
1a36a3
    updating UTC offset to 37"
1a36a3
    
1a36a3
    We limited the log such that now it prints only when there is a
1a36a3
    change in the best-master clock.
1a36a3
    
1a36a3
    Signed-off-by: Amar Subramanyam <asubramanyam@altiostar.com>
1a36a3
    Signed-off-by: Karthikkumar Valoor <kvaloor@altiostar.com>
1a36a3
    Signed-off-by: Ramana Reddy <rreddy@altiostar.com>
1a36a3
1a36a3
diff --git a/clock.c b/clock.c
1a36a3
index e545a9b..d428ae2 100644
1a36a3
--- a/clock.c
1a36a3
+++ b/clock.c
1a36a3
@@ -705,7 +705,8 @@ static void clock_update_slave(struct clock *c)
1a36a3
 	if (c->tds.currentUtcOffset < c->utc_offset) {
1a36a3
 		pr_warning("running in a temporal vortex");
1a36a3
 	}
1a36a3
-	if ((c->tds.flags & UTC_OFF_VALID && c->tds.flags & TIME_TRACEABLE) ||
1a36a3
+	if (((c->tds.flags & UTC_OFF_VALID && c->tds.flags & TIME_TRACEABLE) &&
1a36a3
+	    (c->tds.currentUtcOffset != c->utc_offset)) ||
1a36a3
 	    (c->tds.currentUtcOffset > c->utc_offset)) {
1a36a3
 		pr_info("updating UTC offset to %d", c->tds.currentUtcOffset);
1a36a3
 		c->utc_offset = c->tds.currentUtcOffset;
1a36a3
@@ -1939,14 +1940,6 @@ static void handle_state_decision_event(struct clock *c)
1a36a3
 		best_id = c->dds.clockIdentity;
1a36a3
 	}
1a36a3
 
1a36a3
-	if (cid_eq(&best_id, &c->dds.clockIdentity)) {
1a36a3
-		pr_notice("selected local clock %s as best master",
1a36a3
-			  cid2str(&best_id));
1a36a3
-	} else {
1a36a3
-		pr_notice("selected best master clock %s",
1a36a3
-			  cid2str(&best_id));
1a36a3
-	}
1a36a3
-
1a36a3
 	if (!cid_eq(&best_id, &c->best_id)) {
1a36a3
 		clock_freq_est_reset(c);
1a36a3
 		tsproc_reset(c->tsproc, 1);
1a36a3
@@ -1957,6 +1950,13 @@ static void handle_state_decision_event(struct clock *c)
1a36a3
 		c->master_local_rr = 1.0;
1a36a3
 		c->nrr = 1.0;
1a36a3
 		fresh_best = 1;
1a36a3
+		if (cid_eq(&best_id, &c->dds.clockIdentity)) {
1a36a3
+			pr_notice("selected local clock %s as best master",
1a36a3
+					cid2str(&best_id));
1a36a3
+		} else {
1a36a3
+			pr_notice("selected best master clock %s",
1a36a3
+					cid2str(&best_id));
1a36a3
+		}
1a36a3
 	}
1a36a3
 
1a36a3
 	c->best = best;
1a36a3
1a36a3
commit 766baf345cd4fb025d186f9c9bea5276aba398bc
1a36a3
Author: Amar Subramanyam via Linuxptp-devel <linuxptp-devel@lists.sourceforge.net>
1a36a3
Date:   Wed May 26 12:24:07 2021 +0300
1a36a3
1a36a3
    Log optimization for ptp4l in jbod and client only mode (clientOnly=1 and boundary_clock_jbod=1)
1a36a3
    
1a36a3
    The port other than SLAVE (LISTENING port) prints an error
1a36a3
    "port 1: master state recommended in slave only mode
1a36a3
    ptp4l[1205469.356]: port 1: defaultDS.priority1 probably misconfigured"
1a36a3
    for every ANNOUNCE RECEIPT Timeout.
1a36a3
    
1a36a3
    This log is printed when the event EV_RS_MASTER is thrown
1a36a3
    in clientOnly mode. But single port clientOnly mode will never
1a36a3
    hit this event instead EV_RS_GRAND_MASTER will be hit.
1a36a3
    EV_RS_MASTER is thrown when clientOnly=1 and boundary_clock_jbod=1
1a36a3
    which results in continuous printing. So EV_RS_MASTER check when
1a36a3
    clientOnly=1 to print this error can be avoided.
1a36a3
    
1a36a3
    Signed-off-by: Amar Subramanyam <asubramanyam@altiostar.com>
1a36a3
    Signed-off-by: Karthikkumar Valoor <kvaloor@altiostar.com>
1a36a3
    Signed-off-by: Ramana Reddy <rreddy@altiostar.com>
1a36a3
1a36a3
diff --git a/port.c b/port.c
1a36a3
index 250d46d..b5b775f 100644
1a36a3
--- a/port.c
1a36a3
+++ b/port.c
1a36a3
@@ -2536,7 +2536,7 @@ void port_dispatch(struct port *p, enum fsm_event event, int mdiff)
1a36a3
 static void bc_dispatch(struct port *p, enum fsm_event event, int mdiff)
1a36a3
 {
1a36a3
 	if (clock_slave_only(p->clock)) {
1a36a3
-		if (event == EV_RS_MASTER || event == EV_RS_GRAND_MASTER) {
1a36a3
+		if (event == EV_RS_GRAND_MASTER) {
1a36a3
 			port_slave_priority_warning(p);
1a36a3
 		}
1a36a3
 	}