10#ifndef FLEXPTP_PTP_DEFS_H_
11#define FLEXPTP_PTP_DEFS_H_
15#include <flexptp_options.h>
18#define PTP_IGMP_DEFAULT_STR ("224.0.1.129")
19#define PTP_IGMP_PEER_DELAY_STR ("224.0.0.107")
29#define PTP_ETHERTYPE (0x88F7)
30#define ETHERTYPE_PTP (PTP_ETHERTYPE)
37#define PTP_PORT_EVENT (319)
38#define PTP_PORT_GENERAL (320)
40#define PTP_HEADER_LENGTH (34)
41#define PTP_TIMESTAMP_LENGTH (10)
42#define PTP_PORT_ID_LENGTH (10)
43#define PTP_ANNOUNCE_BODY_LENGTH (20)
45#define PTP_PCKT_SIZE_SYNC (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH)
46#define PTP_PCKT_SIZE_FOLLOW_UP (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH)
47#define PTP_PCKT_SIZE_DELAY_REQ (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH)
48#define PTP_PCKT_SIZE_DELAY_RESP (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH + PTP_PORT_ID_LENGTH)
49#define PTP_PCKT_PDELAY_RESERVED_END (10)
50#define PTP_PCKT_SIZE_PDELAY_REQ (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH + PTP_PCKT_PDELAY_RESERVED_END)
51#define PTP_PCKT_SIZE_PDELAY_RESP (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH + PTP_PORT_ID_LENGTH)
52#define PTP_PCKT_SIZE_PDELAY_RESP_FOLLOW_UP (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH + PTP_PORT_ID_LENGTH)
53#define PTP_PCKT_SIZE_ANNOUNCE (PTP_HEADER_LENGTH + PTP_TIMESTAMP_LENGTH + PTP_ANNOUNCE_BODY_LENGTH)
57#define PTP_MAX_PROFILE_NAME_LENGTH (7)
58#define PTP_MAX_TLV_PRESET_NAME_LENGTH PTP_MAX_PROFILE_NAME_LENGTH
62#define PTP_CLOCK_TICK_FREQ_HZ (1000000000 / PTP_INCREMENT_NSEC)
63#define PTP_ADDEND_INIT (((double)(0x100000000)) / (((double)(PTP_MAIN_OSCILLATOR_FREQ_HZ)) / ((double)(PTP_CLOCK_TICK_FREQ_HZ))))
64#define PTP_ADDEND_CORR_PER_PPB_F (((double)0x100000000) / ((double)PTP_INCREMENT_NSEC * PTP_MAIN_OSCILLATOR_FREQ_HZ))
68#ifndef PTP_HEARTBEAT_TICKRATE_MS
69#define PTP_HEARTBEAT_TICKRATE_MS (125)
73#define PTP_PORT_ID (1)
76#ifndef PTP_ACCURACY_LIMIT_NS
77#define PTP_ACCURACY_LIMIT_NS (100)
80#ifndef PTP_DEFAULT_SERVO_OFFSET
81#define PTP_DEFAULT_SERVO_OFFSET (0)
84#ifndef PTP_DEFAULT_COARSE_TRIGGER_NS
85#define PTP_DEFAULT_COARSE_TRIGGER_NS (20000000)
88#ifndef PTP_BMCA_LISTENING_TIMEOUT_MS
89#define PTP_BMCA_LISTENING_TIMEOUT_MS (3000)
92#ifndef PTP_MASTER_QUALIFICATION_TIMEOUT
93#define PTP_MASTER_QUALIFICATION_TIMEOUT (4)
96#ifndef PTP_ANNOUNCE_RECEIPT_TIMEOUT
97#define PTP_ANNOUNCE_RECEIPT_TIMEOUT (3)
100#ifndef PTP_ENABLE_MASTER_OPERATION
101#define PTP_ENABLE_MASTER_OPERATION (0)
104#ifndef PTP_CLOCK_PRIORITY1
105#define PTP_CLOCK_PRIORITY1 (128)
108#ifndef PTP_CLOCK_PRIORITY2
109#define PTP_CLOCK_PRIORITY2 (128)
114#ifndef PTP_BEST_CLOCK_CLASS
115#define PTP_BEST_CLOCK_CLASS (PTP_CC_DEFAULT)
118#ifndef PTP_WORST_ACCURACY
119#define PTP_WORST_ACCURACY (PTP_CA_UNKNOWN)
122#ifndef PTP_TIME_SOURCE
123#define PTP_TIME_SOURCE (PTP_TSRC_INTERNAL_OSCILLATOR)
126#ifndef PTP_FALLBACK_UTC_OFFSET
127#define PTP_FALLBACK_UTC_OFFSET (37)
132#ifndef PTP_PDELAY_SLAVE_QUALIFICATION
133#define PTP_PDELAY_SLAVE_QUALIFICATION (3)
136#ifndef PTP_PDELAY_DROPOUT
137#define PTP_PDELAY_DROPOUT PTP_PDELAY_SLAVE_QUALIFICATION
144#ifndef PTP_CUSTOM_COLORS
145#define PTP_COLOR_RED "\x1b[31m"
146#define PTP_COLOR_BRED "\x1b[91m"
147#define PTP_COLOR_GREEN "\x1b[32m"
148#define PTP_COLOR_BGREEN "\x1b[92m"
149#define PTP_COLOR_YELLOW "\x1b[33m"
150#define PTP_COLOR_BYELLOW "\x1b[93m"
151#define PTP_COLOR_BLUE "\x1b[34m"
152#define PTP_COLOR_MAGENTA "\x1b[35m"
153#define PTP_COLOR_BMAGENTA "\x1b[95m"
154#define PTP_COLOR_CYAN "\x1b[36m"
155#define PTP_COLOR_RESET "\x1b[0m"
163#define FLEXPTP_htonl(a) \
164 ((((a) >> 24) & 0x000000ff) | \
165 (((a) >> 8) & 0x0000ff00) | \
166 (((a) << 8) & 0x00ff0000) | \
167 (((a) << 24) & 0xff000000))
169#define FLEXPTP_ntohl(a) FLEXPTP_htonl((a))
171#define FLEXPTP_htons(a) \
172 ((((a) >> 8) & 0x00ff) | \
173 (((a) << 8) & 0xff00))
175#define FLEXPTP_ntohs(a) FLEXPTP_htons((a))
const ip_addr_t PTP_IGMP_PRIMARY
Primary IGMP address.
const uint8_t PTP_ETHERNET_PEER_DELAY[6]
PTP's L2 Peer_Delay Ethernet address.
const uint8_t PTP_ETHERNET_PRIMARY[6]
PTP's L2 Primary Ethernet address.
const ip_addr_t PTP_IGMP_PEER_DELAY
Peer_Delay IGMP address.