Files | |
file | gptpbasetypes.h |
File contains base datatypes used, as per IEEE 802.1AS Standard Documentation. | |
file | gptpmasterclock.h |
file contains gptp master clock related functions. | |
Data Structures | |
struct | PortIdentity |
The portIdentity identifies a port of a time-aware system. More... | |
struct | ClockQuality |
The clock quality represents quality of clock. More... | |
struct | UInteger48 |
48bit variable, lsb is 32 bits More... | |
struct | UInteger48m32 |
48bit variable, msb is 32 bits More... | |
struct | UInteger112 |
UInteger112 (802.1AS, 10.3.2 systemIdentity) More... | |
struct | UInteger224 |
UInteger224 (802.1AS, 10.3.4 time-synchronization spanning tree priority vectors ) More... | |
struct | ScaledNs |
The ScaledNs type represents signed values of time and time interval in units of 2e-16 ns. More... | |
struct | UScaledNs |
The ScaledNs type represents unsigned values of time and time interval in units of 2^-16 ns. More... | |
struct | TimeInterval |
struct | Timestamp |
The Timestamp type represents a positive time with respect to the epoch. More... | |
struct | ExtendedTimestamp |
802.1AS-rev ExtendedTimestamp More... | |
Functions | |
struct UInteger112 | __attribute__ ((packed, aligned(1))) UInteger112 |
UInteger112 (802.1AS, 10.3.2 systemIdentity) More... | |
int | gptpmasterclock_init (const char *shmem_name) |
initialize to get gptp clock from tsn_gptp daemon. if previously initialized, it will simply return 0. More... | |
int | gptpmasterclock_close (void) |
close gptpmasterclcock More... | |
int | gptpmasterclock_gm_domainIndex (void) |
return the domainIndex which is currently used as systeme wide gptp clock. More... | |
int64_t | gptpmasterclock_getts64 (void) |
get 64-bit nsec unit ts of system wide gptp clock More... | |
int | gptpmasterclock_wait_until_ts64 (int64_t tts, int64_t vclose, int64_t toofar) |
Wait until tts comes. More... | |
uint64_t | gptpmasterclock_expand_timestamp (uint32_t timestamp) |
expand 32-bit nsec time to 64 bit with aligning to gptp clock. More... | |
uint64_t | gptpmasterclock_expand_timestamp_ts64 (uint32_t timestamp, int64_t ts64) |
expand 32-bit nsec time to 64 bit with aligning to gptp clock at the time ts64 . More... | |
int | gptpmasterclock_gmchange_ind (void) |
get GM change indicator, the number is incremented whenever GM is changed More... | |
int | gptpmasterclock_get_max_domains (void) |
get maximum number of domains More... | |
int | gptpmasterclock_get_domain_ts64 (int64_t *ts64, int domainIndex) |
get a synchronized clock value on specific domain More... | |
void | gptpmasterclock_dump_offset (void) |
print phase offset for all domains More... | |
Typedefs | |
typedef uint8_t | ClockIdentity[CLOCK_IDENTITY_LENGTH] |
typedef uint8_t | Nibble |
Primitive data types specifications for IEEE 802.1AS. All non-primitive data types are derived from the primitive types, signed integers are represented as two's complement form. More... | |
typedef uint8_t | Octet |
typedef uint8_t | Octet2[2] |
typedef uint8_t | Octet3[3] |
typedef uint8_t | Octet4[4] |
typedef uint8_t | Enumeration2 |
typedef uint8_t | Enumeration4 |
typedef uint8_t | Enumeration8 |
typedef uint16_t | Enumeration16 |
typedef uint32_t | Enumeration24 |
typedef uint8_t | UInteger4 |
Enumerations | |
enum | TimeSource { ATOMIC_CLOCK = 0x10, GPS = 0x20, TERRESTRIAL_RADIO = 0x30, PTP = 0x40, NTP = 0x50, HAND_SET = 0x60, OTHER = 0x90, INTERNAL_OSCILLATOR = 0xA0 } |
the type of source of time used by a ClockMaster(802.1AS, 8.6.2.7 timeSource) More... | |
enum | PTPPortState { DisabledPort = 3, MasterPort = 6, PassivePort = 7, SlavePort = 9 } |
value of the port state (802.1AS 14.8.3 portState) More... | |
enum | gmsync_status_t { GMSYNC_UNSYNC =0, GMSYNC_SYNC, GMSYNC_SYNC_STABLE } |
Macros | |
#define | MAX_PATH_TRACE_N 179 |
Macro to define maximum path trace. More... | |
#define | CLOCK_IDENTITY_LENGTH 8 |
Macro which defines Clock Identity Length. More... | |
#define | SCALEDNS_FACTOR 0x10000 |
#define | VALUE_DISABLED 0u |
#define | VALUE_ENABLED 1u |
#define MAX_PATH_TRACE_N 179 |
Macro to define maximum path trace.
#define CLOCK_IDENTITY_LENGTH 8 |
Macro which defines Clock Identity Length.
#define SCALEDNS_FACTOR 0x10000 |
#define VALUE_DISABLED 0u |
#define VALUE_ENABLED 1u |
typedef uint8_t ClockIdentity[CLOCK_IDENTITY_LENGTH] |
typedef uint8_t Nibble |
Primitive data types specifications for IEEE 802.1AS. All non-primitive data types are derived from the primitive types, signed integers are represented as two's complement form.
See the following Table
Data Types | Definition |
---|---|
EnumerationN | N-bit enumerated value |
UIntegerN | N-bit unsigned integer |
Nibble | 4-bit field not interpreted as a number |
Octet | 8-bit field not interpreted as a number |
OctetN | N-octet fiels not interpreted as a number |
Double | Double precision (64-bit) floating-point vlaue |
typedef uint8_t Octet |
typedef uint8_t Octet2[2] |
typedef uint8_t Octet3[3] |
typedef uint8_t Octet4[4] |
typedef uint8_t Enumeration2 |
typedef uint8_t Enumeration4 |
typedef uint8_t Enumeration8 |
typedef uint16_t Enumeration16 |
typedef uint32_t Enumeration24 |
typedef uint8_t UInteger4 |
enum TimeSource |
enum PTPPortState |
enum gmsync_status_t |
struct UInteger112 __attribute__ | ( | (packed, aligned(1)) | ) |
UInteger112 (802.1AS, 10.3.2 systemIdentity)
UInteger224 (802.1AS, 10.3.4 time-synchronization spanning tree priority vectors )
int gptpmasterclock_init | ( | const char * | shmem_name | ) |
initialize to get gptp clock from tsn_gptp daemon. if previously initialized, it will simply return 0.
shmem_name | shared memory node name. set NULL to use the default |
int gptpmasterclock_close | ( | void | ) |
close gptpmasterclcock
int gptpmasterclock_gm_domainIndex | ( | void | ) |
return the domainIndex which is currently used as systeme wide gptp clock.
int64_t gptpmasterclock_getts64 | ( | void | ) |
get 64-bit nsec unit ts of system wide gptp clock
int gptpmasterclock_wait_until_ts64 | ( | int64_t | tts, |
int64_t | vclose, | ||
int64_t | toofar | ||
) |
Wait until tts comes.
tts | target time in nano second unit |
vclose | nano second unit; treated as very close, and stop waiting even ttv is still in future |
toofar | nano second unit; treated as too far, and stop waiting |
uint64_t gptpmasterclock_expand_timestamp | ( | uint32_t | timestamp | ) |
expand 32-bit nsec time to 64 bit with aligning to gptp clock.
timestamp | timestamp which we are going to convert into 32bit to 64 bit. |
uint64_t gptpmasterclock_expand_timestamp_ts64 | ( | uint32_t | timestamp, |
int64_t | ts64 | ||
) |
expand 32-bit nsec time to 64 bit with aligning to gptp clock at the time ts64
.
timestamp | timestamp which we are going to convert into 32bit to 64 bit. |
ts64 | the gptp clock time that the timestamp will be aligned to. |
int gptpmasterclock_gmchange_ind | ( | void | ) |
get GM change indicator, the number is incremented whenever GM is changed
int gptpmasterclock_get_max_domains | ( | void | ) |
get maximum number of domains
int gptpmasterclock_get_domain_ts64 | ( | int64_t * | ts64, |
int | domainIndex | ||
) |
get a synchronized clock value on specific domain
ts64 | pointer to return clock value |
domainIndex | domain index number |
void gptpmasterclock_dump_offset | ( | void | ) |
print phase offset for all domains