/*Pack and send on event multicast ip adress a PDelayReq message*/ static void issuePDelayReq(PtpClock *ptpClock) { Timestamp originTimestamp; TimeInternal internalTime; getTime(&internalTime); fromInternalTime(&internalTime, &originTimestamp); msgPackPDelayReq(ptpClock, ptpClock->msgObuf, &originTimestamp); if (!netSendPeerEvent(&ptpClock->netPath, ptpClock->msgObuf, PDELAY_REQ_LENGTH, &internalTime)) { ERROR("issuePDelayReq: can't sent\n"); toState(ptpClock, PTP_FAULTY); } else { DBGV("issuePDelayReq\n"); ptpClock->sentPDelayReqSequenceId++; /* Delay req TX timestamp is valid */ if (internalTime.seconds != 0) { addTime(&internalTime, &internalTime, &ptpClock->outboundLatency); ptpClock->pdelay_t1 = internalTime; } } }
/*Pack and send on event multicast ip adress a PDelayReq message*/ void issuePDelayReq(RunTimeOpts *rtOpts,PtpClock *ptpClock) { Timestamp originTimestamp; TimeInternal internalTime; getTime(&internalTime); fromInternalTime(&internalTime,&originTimestamp); msgPackPDelayReq(ptpClock->msgObuf,&originTimestamp,ptpClock); if (!netSendPeerEvent(ptpClock->msgObuf,PDELAY_REQ_LENGTH, &ptpClock->netPath)) { toState(PTP_FAULTY,rtOpts,ptpClock); DBGV("PdelayReq message can't be sent -> FAULTY state \n"); } else { DBGV("PDelayReq MSG sent ! \n"); ptpClock->sentPDelayReqSequenceId++; } }