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