On Tue, Dec 13, 2022 at 11:11:41AM -0500, vincent.cheng...@renesas.com wrote:
> From: Vincent Cheng <vincent.cheng...@renesas.com>
> 
> Problem
> =======
> Unselected master port may unintentionally continue to request 
> announce/sync/delay_resp packets. Expecting port with unselected master
> to only maintain announce messages.
> 
> Cause
> =====
> In handle_state_decision_event() loop, the update of the clock's parent pid
> to reflect best master change is non-deterministic. It depends on the port
> processing order and bmc_state_decision() results.
> 
> However, port_dispatch() called at the end of each loop iteration will use
> the clock's parent pid in subsequent unicast_client_state_changed() to
> drive the unicast FSM.
> 
> If the clock parent pid is not updated properly prior to
> unicast_client_state_changed(), the unicast FSM may not
> transition properly.
> 
> 
> Solution v2
> ===========
> Refactor port_state_update() to mark unicast_state_dirty instead
> of calling unicast_client_state_changed(). 
> Add new port loop after handle_state_decision_event() port loop
> to call unicast_client_state_changed() after all necessary 
> parent pid has been updated.

Applied.

Thanks,
Richard


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

Reply via email to