32 static const std::optional<std::string> s_up =
"up";
33 static const std::optional<std::string> s_down =
"down";
34 static const std::optional<std::string> s_testing =
"testing";
35 static const std::optional<std::string> s_unknown =
"unknown";
36 static const std::optional<std::string> s_dormant =
"dormant";
37 static const std::optional<std::string> s_notPresent =
"not-present";
38 static const std::optional<std::string> s_lowerDown =
"lower-layer-down";
39 static const std::optional<std::string> s_none = std::nullopt;
81 static const std::optional<std::string> s_ethernet =
"iana-if-type:ethernetCsmacd";
82 static const std::optional<std::string> s_bridge =
"iana-if-type:bridge";
83 static const std::optional<std::string> s_lag =
"iana-if-type:ieee8023adLag";
84 static const std::optional<std::string> s_loopback =
"iana-if-type:softwareLoopback";
85 static const std::optional<std::string> s_none = std::nullopt;
300 static const std::optional<std::string> s_oc =
"oc";
301 static const std::optional<std::string> s_bc =
"bc";
302 static const std::optional<std::string> s_p2p_tc =
"p2p-tc";
303 static const std::optional<std::string> s_e2e_tc =
"e2e-tc";
304 static const std::optional<std::string> s_none = std::nullopt;
342 static const std::optional<std::string> s_initializing =
"initializing";
343 static const std::optional<std::string> s_faulty =
"faulty";
344 static const std::optional<std::string> s_disabled =
"disabled";
345 static const std::optional<std::string> s_listening =
"listening";
346 static const std::optional<std::string> s_pre_time_transmitter =
"pre-time-transmitter";
347 static const std::optional<std::string> s_time_transmitter =
"time-transmitter";
348 static const std::optional<std::string> s_passive =
"passive";
349 static const std::optional<std::string> s_uncalibrated =
"uncalibrated";
350 static const std::optional<std::string> s_time_receiver =
"time-receiver";
351 static const std::optional<std::string> s_none = std::nullopt;
355 return s_initializing;
363 return s_pre_time_transmitter;
365 return s_time_transmitter;
369 return s_uncalibrated;
371 return s_time_receiver;
constexpr uint64_t kMbpsToBps
Conversion factor from megabits per second to bits per second.
Definition CncTypes.h:109
const std::optional< std::string > & operStatusToYangString(OperStatus status)
Helper method that maps internal OperStatus to YANG enumeration labels.
Definition CncTypes.h:31
const std::optional< std::string > & ptpInstanceTypeToEnum(PtpInstanceType_t type)
Helper method to convert an PtpInstanceType_t to a string that is valid in the YANG model.
Definition CncTypes.h:298
const std::optional< std::string > & ifTypeToIanaString(IfType type)
Helper method to convert an IfType to a string accepted by a field of type iana-interface-type in a Y...
Definition CncTypes.h:79
OperStatus
Enum that represents the operational status of an interface, as given by the IFLA_OPERSTATE netlink a...
Definition CncTypes.h:15
constexpr uint64_t kInterfaceSpeedUnknown
Constant that represents an unknown interface speed, used as a sentinel value.
Definition CncTypes.h:104
PtpPortState_t
Enum that defines which state a port is in. For gPTP only some of them are used.
Definition CncTypes.h:323
const std::optional< std::string > & portStateToString(PtpPortState_t state)
Helper method to convert an PtpPortState_t to a string that is valid in the YANG model.
Definition CncTypes.h:340
PtpInstanceType_t
Enum that represents the type of a PTP instance, for gPTP either Ordinary Clock or Boundary Clock.
Definition CncTypes.h:284
IfType
Enum that represents the iana-if-type of an interface, interpreted from the IFLA_INFO_KIND netlink at...
Definition CncTypes.h:65
Struct to hold information about and interfaces bridge-port, as defined by the ieee802-dot1q-bridge y...
Definition CncTypes.h:242
GclConfig_t gateParameterTable
Definition CncTypes.h:246
std::string bridgeName
Definition CncTypes.h:243
TrafficClassData_t trafficClassData
Definition CncTypes.h:245
int masterIndex
Definition CncTypes.h:244
This struct is used on the CNC side to represent one host with all its interfaces as well as its PTP ...
Definition CncTypes.h:512
std::string hostName
Definition CncTypes.h:514
uint32_t id
Definition CncTypes.h:513
PtpNode_t ptpAllData
Definition CncTypes.h:517
std::vector< ietfInterface_t > interfaces
Definition CncTypes.h:515
LldpNode_t lldpAllData
Definition CncTypes.h:518
std::string ipAddress
Definition CncTypes.h:516
Struct that represents the fields we use from the "Current data set" of the ieee1588-ptp-tt YANG mode...
Definition CncTypes.h:424
uint16_t stepsRemoved
Definition CncTypes.h:425
int64_t offsetFromTimeTransmitter
Definition CncTypes.h:426
int64_t meanDelay
Definition CncTypes.h:427
Struct that represents the fields we use from the "Default data set" of the ieee1588-ptp-tt YANG mode...
Definition CncTypes.h:413
PtpInstanceType_t instanceType
Definition CncTypes.h:418
uint16_t numPorts
Definition CncTypes.h:414
uint8_t priority1
Definition CncTypes.h:415
std::string clockIdentity
Definition CncTypes.h:416
PtpTime_t currentTime
Definition CncTypes.h:417
Struct to hold information about the gate-parameter-table of an interface, according to the ieee802-d...
Definition CncTypes.h:168
uint32_t supportedCycleMaxNumerator
Definition CncTypes.h:215
uint64_t configChangeError
Definition CncTypes.h:204
RationalTime_t operCycleTime
Definition CncTypes.h:191
bool gateEnabled
Definition CncTypes.h:179
std::vector< queueMaxSduEntry_t > queueMaxSduTable
Definition CncTypes.h:176
uint64_t currentTimeSeconds
Definition CncTypes.h:208
std::vector< GclEntry_t > adminControlList
Definition CncTypes.h:187
uint32_t tickGranularity
Definition CncTypes.h:206
bool configChange
Definition CncTypes.h:198
uint64_t configChangeTimeSeconds
Definition CncTypes.h:200
uint32_t supportedListMax
Definition CncTypes.h:212
uint32_t currentTimeNanoseconds
Definition CncTypes.h:209
PtpTime_t adminBaseTime
Definition CncTypes.h:185
uint32_t configChangeTimeNanoseconds
Definition CncTypes.h:201
uint32_t supportedIntervalMax
Definition CncTypes.h:213
uint8_t adminGateStates
Definition CncTypes.h:180
bool operDataSet
Definition CncTypes.h:171
uint8_t operGateStates
Definition CncTypes.h:189
uint32_t operCycleTimeExtensionNs
Definition CncTypes.h:192
PtpTime_t operBaseTime
Definition CncTypes.h:194
bool configPending
Definition CncTypes.h:203
uint32_t supportedCycleMaxDenominator
Definition CncTypes.h:216
uint32_t adminCycleTimeExtensionNs
Definition CncTypes.h:183
std::vector< GclEntry_t > operControlList
Definition CncTypes.h:196
bool adminDataSet
Definition CncTypes.h:174
RationalTime_t adminCycleTime
Definition CncTypes.h:182
int32_t clockId
Definition CncTypes.h:210
Struct to represent a single gate-control-entry in a base-gate-control-entries grouping (aka the admi...
Definition CncTypes.h:129
uint32_t timeIntervalValue
Definition CncTypes.h:132
uint8_t gateStatesValue
Definition CncTypes.h:131
std::string operationName
Definition CncTypes.h:133
uint32_t index
Definition CncTypes.h:130
Struct that represents the information about the local system, as available to the LLDP agent.
Definition CncTypes.h:476
std::string systemName
Definition CncTypes.h:479
std::string systemCapabilitiesSupported
Definition CncTypes.h:481
std::string chassisIdSubtype
Definition CncTypes.h:477
std::string systemCapabilitiesEnabled
Definition CncTypes.h:482
std::string chassisId
Definition CncTypes.h:478
std::string systemDescription
Definition CncTypes.h:480
Struct that represents the basic information about a system connected to an LLDP-port on a host....
Definition CncTypes.h:223
bool hasNeighbor
Definition CncTypes.h:224
std::string portId
Definition CncTypes.h:226
std::string chassisId
Definition CncTypes.h:225
std::string systemDescription
Definition CncTypes.h:231
std::string address
Definition CncTypes.h:235
uint32_t ttl
Definition CncTypes.h:228
std::string systemCapabilitiesSupported
Definition CncTypes.h:232
std::string systemName
Definition CncTypes.h:227
std::string chassisIdIdSubtype
Definition CncTypes.h:230
std::string addressSubtype
Definition CncTypes.h:234
std::string systemCapabilitiesEnabled
Definition CncTypes.h:233
std::string managementIp
Definition CncTypes.h:229
Represents all LLDP information of a host. Includes the local configuration and system-data and a lis...
Definition CncTypes.h:500
uint32_t messageTxHoldMultiplier
Definition CncTypes.h:502
uint32_t messageTxInterval
Definition CncTypes.h:501
LldpLocalSystemData_t localSystemData
Definition CncTypes.h:504
uint32_t messageFastTx
Definition CncTypes.h:503
std::vector< LldpPort_t > ports
Definition CncTypes.h:505
Struct that represents one "LLDP-port", aka one interface participating in LLDP. Contains a list of L...
Definition CncTypes.h:489
std::string adminStatus
Definition CncTypes.h:492
std::string name
Definition CncTypes.h:490
std::vector< LldpNeighbor_t > neighbors
Definition CncTypes.h:493
std::string destMacAddress
Definition CncTypes.h:491
Struct that represents the fields we use from the "Parent data set" of the ieee1588-ptp-tt YANG model...
Definition CncTypes.h:433
uint16_t parentPortNumber
Definition CncTypes.h:435
std::string parentClockIdentity
Definition CncTypes.h:434
std::string grandParentClockIdentity
Definition CncTypes.h:436
Struct that represents the fields we use from the "Port data set" of the ieee1588-ptp-tt YANG model.
Definition CncTypes.h:442
PtpPortState_t portState
Definition CncTypes.h:445
int64_t meanLinkDelay
Definition CncTypes.h:446
std::string portClockIdentity
Definition CncTypes.h:443
uint16_t portPortNumber
Definition CncTypes.h:444
Struct that represents all the PTP information on one host we use, corresponds to one /ptp/instances/...
Definition CncTypes.h:464
std::vector< PtpPort_t > ports
Definition CncTypes.h:470
ParentDs_t parentDs
Definition CncTypes.h:467
std::vector< PtpPerformanceRecord_t > performanceRecords24h
Definition CncTypes.h:469
DefaultDs_t defaultDs
Definition CncTypes.h:465
CurrentDs_t currentDs
Definition CncTypes.h:466
std::vector< PtpPerformanceRecord_t > performanceRecords15m
Definition CncTypes.h:468
Struct that represents the fields we use from the port element of the ieee1588-ptp-tt YANG model.
Definition CncTypes.h:452
PortDs_t portDs
Definition CncTypes.h:455
std::string underlyingInterface
Definition CncTypes.h:454
std::vector< PtpPortPerformanceRecord_t > portPerformanceRecords24h
Definition CncTypes.h:457
std::vector< PtpPortPerformanceRecord_t > portPerformanceRecords15m
Definition CncTypes.h:456
uint16_t portIndex
Definition CncTypes.h:453
Struct to represent an ieee802:ptp-time-grouping.
Definition CncTypes.h:147
uint32_t nanoseconds
Definition CncTypes.h:149
uint64_t seconds
Definition CncTypes.h:148
Struct to represent an ieee802:rational-grouping.
Definition CncTypes.h:139
uint32_t numerator
Definition CncTypes.h:140
uint32_t denominator
Definition CncTypes.h:141
Struct to represent the traffic-class/traffic-class-table container of the ieee802-dot1q-bridge model...
Definition CncTypes.h:116
std::array< uint8_t, 8 > priorityMap
Definition CncTypes.h:122
uint8_t numTrafficClasses
Definition CncTypes.h:118
bool mapDataSet
Definition CncTypes.h:117
Struct to hold information about an interface, inspired by the ietf-interfaces yang model.
Definition CncTypes.h:256
std::array< uint8_t, 6 > physAddress
Definition CncTypes.h:269
uint32_t numActiveTxQueues
Definition CncTypes.h:275
std::string name
Definition CncTypes.h:258
uint32_t numTxQueues
Definition CncTypes.h:274
bool hasPhysAddr
Definition CncTypes.h:268
uint32_t mtu
Definition CncTypes.h:271
bool adminEnabled
Definition CncTypes.h:265
OperStatus operStatus
Definition CncTypes.h:266
IfType type
Definition CncTypes.h:264
uint32_t lastQdiscUpdateId
Definition CncTypes.h:261
uint32_t lastLinkUpdateId
Definition CncTypes.h:260
BridgePort_t bridgePort
Definition CncTypes.h:278
uint64_t speed
Definition CncTypes.h:276
int ifindex
Definition CncTypes.h:257
Struct to represent a single entry of the queue-max-sdu-table list of the ieee802-dot1q-sched model.
Definition CncTypes.h:155
uint32_t queueMaxSdu
Definition CncTypes.h:157
uint8_t trafficClass
Definition CncTypes.h:156
uint64_t transmissionOverrun
Definition CncTypes.h:158