void issueDelayResp(TimeInternal *time, MsgHeader *header, PtpClock *ptpClock) { TimeRepresentation delayReceiptTimestamp; ++ptpClock->last_general_event_sequence_number; fromInternalTime(time, &delayReceiptTimestamp, ptpClock->halfEpoch); msgPackDelayResp(ptpClock->msgObuf, header, &delayReceiptTimestamp, ptpClock); if(!netSendGeneral(ptpClock->msgObuf, DELAY_RESP_PACKET_LENGTH, ptpClock)) toState(PTP_FAULTY, ptpClock); else DBGV("sent delay response message\n"); }
/*Pack and send on event multicast ip adress a DelayResp message*/ static void issueDelayResp(PtpClock *ptpClock, const TimeInternal *time, const MsgHeader * delayReqHeader) { Timestamp requestReceiptTimestamp; fromInternalTime(time, &requestReceiptTimestamp); msgPackDelayResp(ptpClock, ptpClock->msgObuf, delayReqHeader, &requestReceiptTimestamp); if (!netSendGeneral(&ptpClock->netPath, ptpClock->msgObuf, PDELAY_RESP_LENGTH)) { ERROR("issueDelayResp: can't sent\n"); toState(ptpClock, PTP_FAULTY); } else { DBGV("issueDelayResp\n"); } }
/*Pack and send on event multicast ip adress a DelayResp message*/ void issueDelayResp(TimeInternal *time,MsgHeader *header,RunTimeOpts *rtOpts, PtpClock *ptpClock) { Timestamp requestReceiptTimestamp; fromInternalTime(time,&requestReceiptTimestamp); msgPackDelayResp(ptpClock->msgObuf,header,&requestReceiptTimestamp, ptpClock); Integer32 dst = 0; #ifdef PTP_EXPERIMENTAL if (rtOpts->do_hybrid_mode) { dst = ptpClock->LastSlaveAddr; } #endif if (!netSendGeneral(ptpClock->msgObuf,PDELAY_RESP_LENGTH, &ptpClock->netPath, dst)) { toState(PTP_FAULTY,rtOpts,ptpClock); DBGV("delayResp message can't be sent -> FAULTY state \n"); } else { DBGV("PDelayResp MSG sent ! \n"); } }