libptpmgmt 2.0
libptpmgmt library that provides the functionality of linuxptp pmc
Loading...
Searching...
No Matches
mngTlvs.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-3.0-or-later
2 SPDX-FileCopyrightText: Copyright © 2021 Erez Geva <ErezGeva2@gmail.com> */
3
12#ifndef __PTPMGMT_PROC_H
13#define __PTPMGMT_PROC_H
14
15#ifdef __cplusplus
16#include <vector>
17#include <cstdlib>
18#include "types.h"
19
20__PTPMGMT_NAMESPACE_BEGIN
21
40const uint16_t INITIALIZE_EVENT = 0x0000;
42struct INITIALIZE_t : public BaseMngTlv {
44};
46struct FAULT_LOG_t : public BaseMngTlv {
48 std::vector<FaultRecord_t> faultRecords;
49};
153struct SLAVE_ONLY_t : public BaseMngTlv {
158 uint8_t flags;
159 static const uint8_t flagsMask;
160};
203 uint8_t flags;
204 static const uint8_t flagsMask;
205};
213 uint8_t flags;
214 static const uint8_t flagsMask;
215};
222 uint8_t flags;
223 static const uint8_t flagsMask;
225};
232 uint8_t flags;
233 static const uint8_t flagsMask;
234};
239 std::vector<ClockIdentity_t> pathSequence;
240};
247 uint8_t flags;
248 static const uint8_t flagsMask;
249};
277 std::vector<AcceptableMaster_t> list;
278};
285 uint8_t flags;
286 static const uint8_t flagsMask;
287};
315 uint8_t flags;
316 static const uint8_t flagsMask;
317};
382 uint8_t flags;
383 static const uint8_t flagsMask;
384};
386struct MASTER_ONLY_t : public BaseMngTlv {
391 uint8_t flags;
392 static const uint8_t flagsMask;
393};
400 uint8_t flags;
401 static const uint8_t flagsMask;
402};
414const float_nanoseconds P41 = 1ULL << 41;
464const int EVENT_BITMASK_CNT = 64;
466const int NOTIFY_PORT_STATE = 0;
468const int NOTIFY_TIME_SYNC = 1;
472const int NOTIFY_CMLDS = 3;
477 uint16_t duration;
486 void setEvent(int event);
491 void clearEvent(int event);
495 void clearAll();
501 bool getEvent(int event) const;
504 static std::div_t div_event(int event);
506 static bool div_event(int event, std::div_t &d);
507 private:
509 static void div_event_wo(int event, std::div_t &d);
511};
523const int MAX_MESSAGE_TYPES = 16;
525const int STAT_SYNC = 0;
527const int STAT_DELAY_REQ = 1;
529const int STAT_PDELAY_REQ = 2;
531const int STAT_PDELAY_RESP = 3;
533const int STAT_FOLLOW_UP = 8;
535const int STAT_DELAY_RESP = 9;
539const int STAT_ANNOUNCE = 11;
541const int STAT_SIGNALING = 12;
543const int STAT_MANAGEMENT = 13;
555const uint8_t SYNC_UNCERTAIN_FALSE = 0;
557const uint8_t SYNC_UNCERTAIN_TRUE = 1;
559const uint8_t SYNC_UNCERTAIN_DONTCARE = 0xff;
570 uint8_t val;
571};
597 std::vector<LinuxptpUnicastMaster_t> unicastMasters;
598};
642
643__PTPMGMT_NAMESPACE_END
644#else /* __cplusplus */
645#include "c/mngTlvs.h"
646#endif /* __cplusplus */
647
648#endif /* __PTPMGMT_PROC_H */
PTP management TLV structures.
Definition bin.h:27
const float_nanoseconds P41
Definition mngTlvs.h:414
const int NOTIFY_PARENT_DATA_SET
Definition mngTlvs.h:470
const int STAT_SIGNALING
Definition mngTlvs.h:541
const uint16_t INITIALIZE_EVENT
Definition mngTlvs.h:40
const uint8_t SYNC_UNCERTAIN_DONTCARE
Definition mngTlvs.h:559
const int STAT_PDELAY_RESP_FOLLOW_UP
Definition mngTlvs.h:537
const int STAT_MANAGEMENT
Definition mngTlvs.h:543
const int MAX_MESSAGE_TYPES
Definition mngTlvs.h:523
const int EVENT_BITMASK_CNT
Definition mngTlvs.h:464
const int NOTIFY_TIME_SYNC
Definition mngTlvs.h:468
const int NOTIFY_PORT_STATE
Definition mngTlvs.h:466
const int NOTIFY_CMLDS
Definition mngTlvs.h:472
const int STAT_SYNC
Definition mngTlvs.h:525
const uint8_t SYNC_UNCERTAIN_TRUE
Definition mngTlvs.h:557
const uint8_t SYNC_UNCERTAIN_FALSE
Definition mngTlvs.h:555
const int STAT_PDELAY_REQ
Definition mngTlvs.h:529
const int STAT_DELAY_REQ
Definition mngTlvs.h:527
const int STAT_ANNOUNCE
Definition mngTlvs.h:539
const int STAT_FOLLOW_UP
Definition mngTlvs.h:533
const int STAT_DELAY_RESP
Definition mngTlvs.h:535
const int STAT_PDELAY_RESP
Definition mngTlvs.h:531
Definition mngTlvs.h:289
UInteger16_t maxTableSize
Definition mngTlvs.h:292
Definition mngTlvs.h:280
static const uint8_t flagsMask
Definition mngTlvs.h:286
uint8_t flags
Definition mngTlvs.h:285
Definition mngTlvs.h:274
Integer16_t actualTableSize
Definition mngTlvs.h:275
std::vector< AcceptableMaster_t > list
Definition mngTlvs.h:277
Definition mngTlvs.h:295
Integer8_t logAlternateMulticastSyncInterval
Definition mngTlvs.h:304
uint8_t flags
Definition mngTlvs.h:300
static const uint8_t flagsMask
Definition mngTlvs.h:301
UInteger8_t numberOfAlternateMasters
Definition mngTlvs.h:306
Definition mngTlvs.h:309
UInteger8_t keyField
Definition mngTlvs.h:310
uint8_t flags
Definition mngTlvs.h:315
static const uint8_t flagsMask
Definition mngTlvs.h:316
Definition mngTlvs.h:325
UInteger8_t maxKey
Definition mngTlvs.h:326
Definition mngTlvs.h:319
PTPText_t displayName
Definition mngTlvs.h:322
UInteger8_t keyField
Definition mngTlvs.h:320
Definition mngTlvs.h:329
Integer32_t currentOffset
Definition mngTlvs.h:331
Integer32_t jumpSeconds
Definition mngTlvs.h:332
UInteger8_t keyField
Definition mngTlvs.h:330
UInteger48_t timeOfNextJump
Definition mngTlvs.h:333
Definition mngTlvs.h:167
UInteger8_t announceReceiptTimeout
Definition mngTlvs.h:170
Definition types.h:915
Definition mngTlvs.h:191
clockAccuracy_e clockAccuracy
Definition mngTlvs.h:192
Definition mngTlvs.h:23
PortAddress_t protocolAddress
Definition mngTlvs.h:28
PTPText_t physicalLayerProtocol
Definition mngTlvs.h:25
uint16_t clockType
Definition mngTlvs.h:24
PTPText_t revisionData
Definition mngTlvs.h:31
Octet_t profileIdentity[6]
Definition mngTlvs.h:33
Binary physicalAddress
Definition mngTlvs.h:27
PTPText_t productDescription
Definition mngTlvs.h:30
Octet_t manufacturerIdentity[3]
Definition mngTlvs.h:29
UInteger16_t physicalAddressLength
Definition mngTlvs.h:26
PTPText_t userDescription
Definition mngTlvs.h:32
Definition mngTlvs.h:621
TimeInterval_t meanLinkDelay
Definition mngTlvs.h:622
uint32_t as_capable
Definition mngTlvs.h:625
Integer32_t scaledNeighborRateRatio
Definition mngTlvs.h:624
Definition mngTlvs.h:67
TimeInterval_t offsetFromMaster
Definition mngTlvs.h:70
UInteger16_t stepsRemoved
Definition mngTlvs.h:68
TimeInterval_t meanPathDelay
Definition mngTlvs.h:72
Definition types.h:646
Definition types.h:790
Definition mngTlvs.h:51
uint8_t flags
Definition mngTlvs.h:57
ClockQuality_t clockQuality
Definition mngTlvs.h:61
UInteger8_t priority2
Definition mngTlvs.h:62
ClockIdentity_t clockIdentity
Definition mngTlvs.h:63
UInteger16_t numberPorts
Definition mngTlvs.h:59
static const uint8_t flagsMask
Definition mngTlvs.h:58
UInteger8_t domainNumber
Definition mngTlvs.h:64
UInteger8_t priority1
Definition mngTlvs.h:60
Definition mngTlvs.h:370
delayMechanism_e delayMechanism
Definition mngTlvs.h:374
Definition mngTlvs.h:149
UInteger8_t domainNumber
Definition mngTlvs.h:150
Definition mngTlvs.h:638
ClockIdentity_t gmIdentity
Definition mngTlvs.h:639
UInteger16_t stepsRemoved
Definition mngTlvs.h:640
static const uint8_t flagsMask
Definition mngTlvs.h:383
uint8_t flags
Definition mngTlvs.h:382
Definition mngTlvs.h:404
portState_e desiredState
Definition mngTlvs.h:411
static const uint8_t flagsMask
Definition mngTlvs.h:410
uint8_t flags
Definition mngTlvs.h:409
Definition mngTlvs.h:46
UInteger16_t numberOfFaultRecords
Definition mngTlvs.h:47
std::vector< FaultRecord_t > faultRecords
Definition mngTlvs.h:48
Definition mngTlvs.h:251
UInteger8_t actualTableSize
Definition mngTlvs.h:255
std::vector< PortAddress_t > PortAddress
Definition mngTlvs.h:257
Integer8_t logQueryInterval
Definition mngTlvs.h:254
Definition mngTlvs.h:439
Integer16_t currentUtcOffset
Definition mngTlvs.h:441
timeSource_e timeSource
Definition mngTlvs.h:453
static const uint8_t flagsMask
Definition mngTlvs.h:452
uint8_t flags
Definition mngTlvs.h:451
ClockQuality_t clockQuality
Definition mngTlvs.h:440
Definition mngTlvs.h:395
static const uint8_t flagsMask
Definition mngTlvs.h:401
uint8_t flags
Definition mngTlvs.h:400
Definition mngTlvs.h:42
uint16_t initializationKey
Definition mngTlvs.h:43
Definition mngTlvs.h:162
Integer8_t logAnnounceInterval
Definition mngTlvs.h:164
Definition mngTlvs.h:350
Integer8_t logMinPdelayReqInterval
Definition mngTlvs.h:353
Definition mngTlvs.h:173
Integer8_t logSyncInterval
Definition mngTlvs.h:175
Definition mngTlvs.h:386
static const uint8_t flagsMask
Definition mngTlvs.h:392
uint8_t flags
Definition mngTlvs.h:391
Definition mngTlvs.h:75
PortIdentity_t parentPortIdentity
Definition mngTlvs.h:76
static const uint8_t flagsMask
Definition mngTlvs.h:82
UInteger16_t observedParentOffsetScaledLogVariance
Definition mngTlvs.h:85
ClockIdentity_t grandmasterIdentity
Definition mngTlvs.h:93
Integer32_t observedParentClockPhaseChangeRate
Definition mngTlvs.h:88
UInteger8_t grandmasterPriority2
Definition mngTlvs.h:92
uint8_t flags
Definition mngTlvs.h:81
UInteger8_t grandmasterPriority1
Definition mngTlvs.h:89
ClockQuality_t grandmasterClockQuality
Definition mngTlvs.h:91
Definition mngTlvs.h:242
static const uint8_t flagsMask
Definition mngTlvs.h:248
uint8_t flags
Definition mngTlvs.h:247
Definition mngTlvs.h:238
std::vector< ClockIdentity_t > pathSequence
Definition mngTlvs.h:239
Definition mngTlvs.h:630
Integer64_t delayAsymmetry
Definition mngTlvs.h:633
Integer64_t ingressLatency
Definition mngTlvs.h:632
Integer64_t egressLatency
Definition mngTlvs.h:631
Definition mngTlvs.h:458
Integer32_t asCapable
Definition mngTlvs.h:461
UInteger32_t neighborPropDelayThresh
Definition mngTlvs.h:460
Definition mngTlvs.h:112
Integer8_t logMinDelayReqInterval
Definition mngTlvs.h:117
TimeInterval_t peerMeanPathDelay
Definition mngTlvs.h:118
Integer8_t logSyncInterval
Definition mngTlvs.h:125
Integer8_t logAnnounceInterval
Definition mngTlvs.h:120
Integer8_t logMinPdelayReqInterval
Definition mngTlvs.h:132
Nibble_t versionNumber
Definition mngTlvs.h:138
portState_e portState
Definition mngTlvs.h:114
delayMechanism_e delayMechanism
Definition mngTlvs.h:129
UInteger8_t announceReceiptTimeout
Definition mngTlvs.h:123
PortIdentity_t portIdentity
Definition mngTlvs.h:113
Definition mngTlvs.h:602
UInteger8_t flags
Definition mngTlvs.h:605
Integer32_t phc_index
Definition mngTlvs.h:604
PortIdentity_t portIdentity
Definition mngTlvs.h:603
Definition mngTlvs.h:515
linuxptpTimeStamp_e timestamping
Definition mngTlvs.h:519
portState_e portState
Definition mngTlvs.h:517
PortIdentity_t portIdentity
Definition mngTlvs.h:516
PTPText_t interface
Definition mngTlvs.h:520
Definition mngTlvs.h:575
uint64_t qualification_timeout
Definition mngTlvs.h:587
uint64_t unicast_request_timeout
Definition mngTlvs.h:583
uint64_t delay_timeout
Definition mngTlvs.h:579
uint64_t announce_timeout
Definition mngTlvs.h:577
PortIdentity_t portIdentity
Definition mngTlvs.h:576
uint64_t unicast_service_timeout
Definition mngTlvs.h:581
uint64_t master_sync_timeout
Definition mngTlvs.h:586
uint64_t followup_mismatch
Definition mngTlvs.h:589
uint64_t sync_mismatch
Definition mngTlvs.h:588
uint64_t sync_timeout
Definition mngTlvs.h:578
uint64_t master_announce_timeout
Definition mngTlvs.h:585
Definition mngTlvs.h:547
uint64_t rxMsgType[MAX_MESSAGE_TYPES]
Definition mngTlvs.h:550
PortIdentity_t portIdentity
Definition mngTlvs.h:548
uint64_t txMsgType[MAX_MESSAGE_TYPES]
Definition mngTlvs.h:552
Definition mngTlvs.h:610
UInteger16_t grandmasterID
Definition mngTlvs.h:613
UInteger32_t totalTimeInaccuracy
Definition mngTlvs.h:616
UInteger32_t grandmasterTimeInaccuracy
Definition mngTlvs.h:614
UInteger32_t networkTimeInaccuracy
Definition mngTlvs.h:615
linuxptpPowerProfileVersion_e version
Definition mngTlvs.h:612
Definition mngTlvs.h:366
UInteger8_t primaryDomain
Definition mngTlvs.h:367
Definition mngTlvs.h:141
UInteger8_t priority1
Definition mngTlvs.h:142
Definition mngTlvs.h:145
UInteger8_t priority2
Definition mngTlvs.h:146
Definition types.h:801
Definition types.h:744
Definition types.h:701
Definition mngTlvs.h:153
static const uint8_t flagsMask
Definition mngTlvs.h:159
uint8_t flags
Definition mngTlvs.h:158
Definition mngTlvs.h:476
void clearEvent(int event)
uint16_t duration
Definition mngTlvs.h:477
uint8_t bitmask[EVENT_BITMASK_CNT]
Definition mngTlvs.h:478
void setEvent(int event)
bool getEvent(int event) const
Definition mngTlvs.h:563
uint8_t val
Definition mngTlvs.h:570
Definition mngTlvs.h:217
uint8_t flags
Definition mngTlvs.h:222
static const uint8_t flagsMask
Definition mngTlvs.h:223
timeSource_e timeSource
Definition mngTlvs.h:224
Definition mngTlvs.h:96
Integer16_t currentUtcOffset
Definition mngTlvs.h:97
timeSource_e timeSource
Definition mngTlvs.h:109
uint8_t flags
Definition mngTlvs.h:107
static const uint8_t flagsMask
Definition mngTlvs.h:108
Definition mngTlvs.h:418
ClockIdentity_t gmIdentity
Definition mngTlvs.h:434
Integer32_t gmPresent
Definition mngTlvs.h:433
int64_t ingress_time
Definition mngTlvs.h:420
UInteger16_t gmTimeBaseIndicator
Definition mngTlvs.h:426
uint16_t fractional_nanoseconds
Definition mngTlvs.h:432
int64_t master_offset
Definition mngTlvs.h:419
uint16_t nanoseconds_msb
Definition mngTlvs.h:428
uint64_t nanoseconds_lsb
Definition mngTlvs.h:430
Integer32_t cumulativeScaledRateOffset
Definition mngTlvs.h:422
Integer32_t scaledLastGmPhaseChange
Definition mngTlvs.h:424
Definition mngTlvs.h:187
Timestamp_t currentTime
Definition mngTlvs.h:188
Definition mngTlvs.h:207
uint8_t flags
Definition mngTlvs.h:213
static const uint8_t flagsMask
Definition mngTlvs.h:214
Definition mngTlvs.h:356
ClockIdentity_t clockIdentity
Definition mngTlvs.h:357
delayMechanism_e delayMechanism
Definition mngTlvs.h:362
UInteger16_t numberPorts
Definition mngTlvs.h:358
UInteger8_t primaryDomain
Definition mngTlvs.h:363
Definition mngTlvs.h:336
static const uint8_t flagsMask
Definition mngTlvs.h:343
Integer8_t logMinPdelayReqInterval
Definition mngTlvs.h:346
PortIdentity_t portIdentity
Definition mngTlvs.h:337
uint8_t flags
Definition mngTlvs.h:342
TimeInterval_t peerMeanPathDelay
Definition mngTlvs.h:347
Definition types.h:395
Definition types.h:419
Definition mngTlvs.h:269
UInteger16_t maxTableSize
Definition mngTlvs.h:271
Definition mngTlvs.h:594
Integer16_t actualTableSize
Definition mngTlvs.h:595
std::vector< LinuxptpUnicastMaster_t > unicastMasters
Definition mngTlvs.h:597
Definition mngTlvs.h:260
std::vector< PortAddress_t > PortAddress
Definition mngTlvs.h:266
Integer8_t logQueryInterval
Definition mngTlvs.h:263
UInteger16_t actualTableSize
Definition mngTlvs.h:264
Definition mngTlvs.h:227
static const uint8_t flagsMask
Definition mngTlvs.h:233
uint8_t flags
Definition mngTlvs.h:232
Definition mngTlvs.h:36
PTPText_t userDescription
Definition mngTlvs.h:37
Definition mngTlvs.h:195
uint8_t flags
Definition mngTlvs.h:203
Integer16_t currentUtcOffset
Definition mngTlvs.h:196
static const uint8_t flagsMask
Definition mngTlvs.h:204
Definition mngTlvs.h:178
Nibble_t versionNumber
Definition mngTlvs.h:184
Types, enumerators, and structers used by PTP management messages.
clockAccuracy_e
Definition types.h:229
uint16_t UInteger16_t
Definition types.h:40
linuxptpTimeStamp_e
Definition types.h:347
uint64_t UInteger48_t
Definition types.h:44
delayMechanism_e
Definition types.h:299
portState_e
Definition types.h:284
uint8_t Nibble_t
Definition types.h:36
uint8_t UInteger8_t
Definition types.h:38
long double float_nanoseconds
Definition types.h:68
linuxptpPowerProfileVersion_e
Definition types.h:363
uint32_t UInteger32_t
Definition types.h:42
int8_t Integer8_t
Definition types.h:50
uint8_t Octet_t
Definition types.h:62
int16_t Integer16_t
Definition types.h:52
int32_t Integer32_t
Definition types.h:54
int64_t Integer64_t
Definition types.h:60
timeSource_e
Definition types.h:271