Commit c7627fa8 authored by Davide Ciminaghi's avatar Davide Ciminaghi Committed by Alessandro Rubini

compliance, 9.5.2.3: discard announces coming from same clock.

In this case we also possibly have switch to port state to PASSIVE.
parent bbd0e2c1
......@@ -138,6 +138,23 @@ static int pp_packet_prefilter(struct pp_instance *ppi)
return -1;
}
/*
* 9.5.2.3: if an announce message comes from another port of the same
* clock, switch all the ports but the lowest numbered one to
* PASSIVE. Since all involved ports will see each other's announce,
* we just switch __this__ instance's port's status to PASSIVE if we
* need to.
*/
if (hdr->messageType == PPM_ANNOUNCE &&
!memcmp(&hdr->sourcePortIdentity.clockIdentity,
&DSPOR(ppi)->portIdentity.clockIdentity,
sizeof(ClockIdentity))) {
if (hdr->sourcePortIdentity.portNumber <
DSPOR(ppi)->portIdentity.portNumber)
ppi->next_state = PPS_PASSIVE;
return -1;
}
return 0;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment