flexPTP-basic/ptp_defs.h

42 lines
1.3 KiB
C

#ifndef FLEXPTP_PTP_DEFS_H_
#define FLEXPTP_PTP_DEFS_H_
#include "flexptp_options.h"
#include <stdint.h>
// IP address of PTP-IGMP groups
#define PTP_IGMP_DEFAULT_STR ("224.0.1.129")
extern const ip_addr_t PTP_IGMP_PRIMARY;
// Ethernet address of PTP messages
extern const uint8_t PTP_ETHERNET_PRIMARY[6];
// PTP UDP ports
#define PTP_PORT_EVENT (319)
#define PTP_PORT_GENERAL (320)
#define PTP_HEADER_LENGTH (34)
#define PTP_TIMESTAMP_LENGTH (10)
#define PTP_PORT_ID_LENGTH (10)
#define PTP_PCKT_SIZE_SYNC (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH)
#define PTP_PCKT_SIZE_FOLLOW_UP (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH)
#define PTP_PCKT_SIZE_DELAY_REQ (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH)
#define PTP_PCKT_SIZE_DELAY_RESP (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH + PTP_PORT_ID_LENGTH)
// ---- AUTODEFINES ----------
#ifndef PTP_ACCURACY_LIMIT_NS
#define PTP_ACCURACY_LIMIT_NS (100)
#endif
// ---- CALCULATED VALUES ----
#define PTP_CLOCK_TICK_FREQ_HZ (1000000000 / PTP_INCREMENT_NSEC) // clock tick frequency
#define PTP_ADDEND_INIT ((uint32_t)(0x100000000 / (PTP_MAIN_OSCILLATOR_FREQ_HZ / (float)PTP_CLOCK_TICK_FREQ_HZ))) // addend value
#define PTP_ADDEND_CORR_PER_PPB_F ((float)0x100000000 / ((float)PTP_INCREMENT_NSEC * PTP_MAIN_OSCILLATOR_FREQ_HZ)) // addend/ppb
#endif /* FLEXPTP_PTP_DEFS_H_ */