Hide the grandmaster port state.
There really is no such state, but there probably should have been one. In any case, we do have one just to make the code simpler, but this should not appear in the management responses. This patch fixes the issue by covering over our tracks before sending a response. Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
1e77af6d21
commit
f530ae9333
2
fsm.h
2
fsm.h
|
@ -28,10 +28,10 @@ enum port_state {
|
||||||
PS_LISTENING,
|
PS_LISTENING,
|
||||||
PS_PRE_MASTER,
|
PS_PRE_MASTER,
|
||||||
PS_MASTER,
|
PS_MASTER,
|
||||||
PS_GRAND_MASTER,
|
|
||||||
PS_PASSIVE,
|
PS_PASSIVE,
|
||||||
PS_UNCALIBRATED,
|
PS_UNCALIBRATED,
|
||||||
PS_SLAVE,
|
PS_SLAVE,
|
||||||
|
PS_GRAND_MASTER, /*non-standard extension*/
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Defines the events for the port state machine. */
|
/** Defines the events for the port state machine. */
|
||||||
|
|
|
@ -383,7 +383,6 @@ static int run_pmc(int wait_sync, int *utc_offset)
|
||||||
|
|
||||||
switch (((struct portDS *)data)->portState) {
|
switch (((struct portDS *)data)->portState) {
|
||||||
case PS_MASTER:
|
case PS_MASTER:
|
||||||
case PS_GRAND_MASTER:
|
|
||||||
case PS_SLAVE:
|
case PS_SLAVE:
|
||||||
ds_done = 1;
|
ds_done = 1;
|
||||||
break;
|
break;
|
||||||
|
|
4
port.c
4
port.c
|
@ -457,7 +457,11 @@ static int port_management_get_response(struct port *target,
|
||||||
case PORT_DATA_SET:
|
case PORT_DATA_SET:
|
||||||
pds = (struct portDS *) tlv->data;
|
pds = (struct portDS *) tlv->data;
|
||||||
pds->portIdentity = target->portIdentity;
|
pds->portIdentity = target->portIdentity;
|
||||||
|
if (target->state == PS_GRAND_MASTER) {
|
||||||
|
pds->portState = PS_MASTER;
|
||||||
|
} else {
|
||||||
pds->portState = target->state;
|
pds->portState = target->state;
|
||||||
|
}
|
||||||
pds->logMinDelayReqInterval = target->logMinDelayReqInterval;
|
pds->logMinDelayReqInterval = target->logMinDelayReqInterval;
|
||||||
pds->peerMeanPathDelay = target->peerMeanPathDelay;
|
pds->peerMeanPathDelay = target->peerMeanPathDelay;
|
||||||
pds->logAnnounceInterval = target->logAnnounceInterval;
|
pds->logAnnounceInterval = target->logAnnounceInterval;
|
||||||
|
|
Loading…
Reference in New Issue