On Mon, Dec 05, 2022 at 02:44:07AM EST, Geva, Erez wrote:
>On Fri, 2022-12-02 at 15:33 -0500, vincent.cheng...@renesas.com wrote:
>> From: Vincent Cheng <vincent.cheng...@renesas.com>
>> 
>> 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.

>
>
>> +       }
>> +}
>> +
>>  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


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

Reply via email to