Corrected problem in MS/TP state machine where device was sending PFM frames to itself (destination address same as source address) when solemaster is true (Thank you to John Stachler!).
This commit is contained in:
+1
-1
@@ -845,7 +845,7 @@ bool MSTP_Master_Node_FSM(volatile struct mstp_port_struct_t * mstp_port)
|
|||||||
} else if (next_poll_station == mstp_port->Next_Station) {
|
} else if (next_poll_station == mstp_port->Next_Station) {
|
||||||
if (mstp_port->SoleMaster == true) {
|
if (mstp_port->SoleMaster == true) {
|
||||||
/* SoleMasterRestartMaintenancePFM */
|
/* SoleMasterRestartMaintenancePFM */
|
||||||
mstp_port->Poll_Station = next_poll_station;
|
mstp_port->Poll_Station = next_next_station;
|
||||||
MSTP_Create_And_Send_Frame(mstp_port,
|
MSTP_Create_And_Send_Frame(mstp_port,
|
||||||
FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station,
|
FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station,
|
||||||
mstp_port->This_Station, NULL, 0);
|
mstp_port->This_Station, NULL, 0);
|
||||||
|
|||||||
@@ -925,7 +925,7 @@ static bool MSTP_Master_Node_FSM(void)
|
|||||||
} else if (next_poll_station == Next_Station) {
|
} else if (next_poll_station == Next_Station) {
|
||||||
if (MSTP_Flag.SoleMaster == true) {
|
if (MSTP_Flag.SoleMaster == true) {
|
||||||
/* SoleMasterRestartMaintenancePFM */
|
/* SoleMasterRestartMaintenancePFM */
|
||||||
Poll_Station = next_poll_station;
|
Poll_Station = next_next_station;
|
||||||
MSTP_Send_Frame(
|
MSTP_Send_Frame(
|
||||||
FRAME_TYPE_POLL_FOR_MASTER, Poll_Station,
|
FRAME_TYPE_POLL_FOR_MASTER, Poll_Station,
|
||||||
This_Station, NULL, 0);
|
This_Station, NULL, 0);
|
||||||
|
|||||||
@@ -921,7 +921,7 @@ static bool MSTP_Master_Node_FSM(void)
|
|||||||
} else if (next_poll_station == Next_Station) {
|
} else if (next_poll_station == Next_Station) {
|
||||||
if (MSTP_Flag.SoleMaster == true) {
|
if (MSTP_Flag.SoleMaster == true) {
|
||||||
/* SoleMasterRestartMaintenancePFM */
|
/* SoleMasterRestartMaintenancePFM */
|
||||||
Poll_Station = next_poll_station;
|
Poll_Station = next_next_station;
|
||||||
MSTP_Send_Frame(
|
MSTP_Send_Frame(
|
||||||
FRAME_TYPE_POLL_FOR_MASTER, Poll_Station,
|
FRAME_TYPE_POLL_FOR_MASTER, Poll_Station,
|
||||||
This_Station, NULL, 0);
|
This_Station, NULL, 0);
|
||||||
|
|||||||
@@ -832,7 +832,7 @@ bool MSTP_Master_Node_FSM(volatile struct mstp_port_struct_t * mstp_port)
|
|||||||
} else if (next_poll_station == mstp_port->Next_Station) {
|
} else if (next_poll_station == mstp_port->Next_Station) {
|
||||||
if (mstp_port->SoleMaster == true) {
|
if (mstp_port->SoleMaster == true) {
|
||||||
/* SoleMasterRestartMaintenancePFM */
|
/* SoleMasterRestartMaintenancePFM */
|
||||||
mstp_port->Poll_Station = next_poll_station;
|
mstp_port->Poll_Station = next_next_station;
|
||||||
MSTP_Create_And_Send_Frame(mstp_port,
|
MSTP_Create_And_Send_Frame(mstp_port,
|
||||||
FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station,
|
FRAME_TYPE_POLL_FOR_MASTER, mstp_port->Poll_Station,
|
||||||
mstp_port->This_Station, NULL, 0);
|
mstp_port->This_Station, NULL, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user