On Mon, 2022-12-05 at 12:52 -0500, [email protected] wrote:
> On Mon, Dec 05, 2022 at 02:44:07AM EST, Geva, Erez wrote:
> > On Fri, 2022-12-02 at 15:33 -0500,
> > [email protected] wrote:
> > > From: Vincent Cheng <[email protected]>
> > >
> > > In handle_state_decision_event(), the update of the clock's
> > > parent
> > > pid after
> > > best master change is non-deterministic. It depends on the port
> > > processing
> > > order and bmc_state_decision() results.
> > >
> > > +static void clock_update_parent_identity(struct clock *c)
> > > +{
> > > + struct parentDS *pds = &c->dad.pds;
> > > +
> > > + if (c->best) {
> > > + pds->parentPortIdentity = c->best-
> > > >dataset.sender;
> > > + } else {
> > > + pds->parentPortIdentity.clockIdentity = c-
> > > > dds.clockIdentity;
> > > + pds->parentPortIdentity.portNumber = 0;
> >
> > Why is the port 0?
> > It make sense that defaultDS do not have port as we work in the
> > context
> > of the clock.
> > Is it make sense to use port ID here?
>
> I would like to say it is port 0 because I consulted 1588-2019.pdf
> and found the
> requirement in "Table 30 - Updates for state decision code M1 and
> M2".
>
> parentDS.clockIdentity member set to the value of
> defaultDS.clockIdentity field.
> parentDS.parentPortIdentity.portNumber member is 0
>
> However, realistically speaking, I copied the logic from
> clock_update_grandmaster()
> and clock_update_slave() first and then looked it up afterwards.
Make sense, please live a comment on the value assignment :-)
Something like ~ "follow IEEE table 30 updates for M1".
No need for a long one, just a short reference.
Erez
>
> >
> >
> > > + }
> > > +}
> > > +
> > > static int clock_utc_correct(struct clock *c, tmv_t ingress)
> > > {
> > > struct timespec offset;
> > > @@ -2015,6 +2027,8 @@ static void
> > > handle_state_decision_event(struct
> > > clock *c)
> > > c->best = best;
> > > c->best_id = best_id;
> > >
> > > + clock_update_parent_identity(c);
> > > +
> > > LIST_FOREACH(piter, &c->ports, list) {
> > > enum port_state ps;
> > > enum fsm_event event;
> >
> >
> > P.S.
> > All patches should be on top of master, no need to comment on
> > obvious.
>
> Ok, will leave out commit next time if it's not needed. Thanks.
>
> Vincent
--
Erez Geva
Siemens AG
www.siemens.com
_______________________________________________
Linuxptp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel