Skip to content

pmc_protocol

PMC (PTP Management Client) protocol dataclasses for parsing PTP management messages.

This module defines dataclasses that correspond to PTP management TLV (Type-Length-Value) types. Each dataclass uses the @regex_from_tlv decorator to automatically generate a regex pattern for parsing PMC output.

Classes:

Functions:

AlternateTimeOffsetEnable dataclass

AlternateTimeOffsetEnable(keyField: int, enable: int)

PTP alternate time offset enable TLV.

AlternateTimeOffsetName dataclass

AlternateTimeOffsetName(keyField: int, displayName: str)

PTP alternate time offset name TLV.

AlternateTimeOffsetProperties dataclass

AlternateTimeOffsetProperties(
    keyField: int,
    currentOffset: int,
    jumpSeconds: int,
    timeOfNextJump: int,
)

PTP alternate time offset properties TLV.

AnnounceReceiptTimeout dataclass

AnnounceReceiptTimeout(announceReceiptTimeout: int)

PTP announce receipt timeout TLV.

ClockAccuracy dataclass

ClockAccuracy(clockAccuracy: int)

PTP clock accuracy TLV.

ClockDescription dataclass

ClockDescription(
    clockType: int,
    physicalLayerProtocol: str,
    physicalAddress: str,
    protocolAddress: str,
    manufacturerId: str,
    productDescription: str,
    revisionData: str,
    userDescription: str,
    profileId: str,
)

PTP clock description TLV.

CmldsInfoNp dataclass

CmldsInfoNp(
    meanLinkDelay: int,
    scaledNeighborRateRatio: int,
    as_capable: int,
)

LinuxPTP CMLDS info TLV.

CurrentDataSet dataclass

CurrentDataSet(
    stepsRemoved: int,
    offsetFromMaster: float,
    meanPathDelay: float,
)

PTP current data set TLV.

DefaultDataSet dataclass

DefaultDataSet(
    twoStepFlag: int,
    slaveOnly: int,
    numberPorts: int,
    priority1: int,
    clockClass: int,
    clockAccuracy: int,
    offsetScaledLogVariance: int,
    priority2: int,
    clockIdentity: str,
    domainNumber: int,
)

PTP default data set TLV.

DelayMechanism dataclass

DelayMechanism(delayMechanism: int)

PTP delay mechanism TLV.

Domain dataclass

Domain(domainNumber: int)

PTP domain TLV.

Empty dataclass

Empty()

Empty TLV placeholder.

GrandmasterSettingsNp dataclass

GrandmasterSettingsNp(
    clockClass: int,
    clockAccuracy: int,
    offsetScaledLogVariance: int,
    currentUtcOffset: int,
    leap61: int,
    leap59: int,
    currentUtcOffsetValid: int,
    ptpTimescale: int,
    timeTraceable: int,
    frequencyTraceable: int,
    timeSource: int,
)

LinuxPTP grandmaster settings TLV.

LogAnnounceInterval dataclass

LogAnnounceInterval(logAnnounceInterval: int)

PTP log announce interval TLV.

LogMinPdelayReqInterval dataclass

LogMinPdelayReqInterval(logMinPdelayReqInterval: int)

PTP log min pdelay request interval TLV.

LogSyncInterval dataclass

LogSyncInterval(logSyncInterval: int)

PTP log sync interval TLV.

ManagementErrorStatusTlv dataclass

ManagementErrorStatusTlv()

PMC management error status TLV.

ManagementTlv dataclass

ManagementTlv(payload: ManagementTlvPayload)

PMC management TLV wrapper.

MasterOnly dataclass

MasterOnly(masterOnly: int)

PTP master-only TLV.

NullManagement dataclass

NullManagement()

Null management TLV.

ParentDataSet dataclass

ParentDataSet(
    parentPortIdentity: PortIdentity,
    parentStats: int,
    observedParentOffsetScaledLogVariance: int,
    observedParentClockPhaseChangeRate: int,
    grandmasterPriority1: int,
    gm__ClockClass: int,
    gm__ClockAccuracy: int,
    gm__OffsetScaledLogVariance: int,
    grandmasterPriority2: int,
    grandmasterIdentity: str,
)

PTP parent data set TLV.

PortDataSet dataclass

PortDataSet(
    portIdentity: PortIdentity,
    portState: str,
    logMinDelayReqInterval: int,
    peerMeanPathDelay: int,
    logAnnounceInterval: int,
    announceReceiptTimeout: int,
    logSyncInterval: int,
    delayMechanism: int,
    logMinPdelayReqInterval: int,
    versionNumber: int,
)

PTP port data set TLV.

PortDataSetNp dataclass

PortDataSetNp(neighborPropDelayThresh: int, asCapable: int)

LinuxPTP port data set TLV.

PortHwclockNp dataclass

PortHwclockNp(
    portIdentity: PortIdentity, phcIndex: int, flags: int
)

LinuxPTP port hardware clock TLV.

PortIdentity dataclass

PortIdentity(clock_id: str, port_number: int)

PTP port identity consisting of clock ID and port number.

Attributes:

  • clock_id (str) –

    The clock identity string (e.g., '000000.fffe.000000').

  • port_number (int) –

    The port number.

PortPropertiesNp dataclass

PortPropertiesNp(
    portIdentity: PortIdentity,
    portState: str,
    timestamping: str,
    interface: str,
)

LinuxPTP port properties TLV.

PortServiceStatsNp dataclass

PortServiceStatsNp(
    portIdentity: PortIdentity,
    announce_timeout: int,
    sync_timeout: int,
    delay_timeout: int,
    unicast_service_timeout: int,
    unicast_request_timeout: int,
    master_announce_timeout: int,
    master_sync_timeout: int,
    qualification_timeout: int,
    sync_mismatch: int,
    followup_mismatch: int,
)

LinuxPTP port service statistics TLV.

PortStatsNp dataclass

PortStatsNp(
    portIdentity: PortIdentity,
    rx_Sync: int,
    rx_Delay_Req: int,
    rx_Pdelay_Req: int,
    rx_Pdelay_Resp: int,
    rx_Follow_Up: int,
    rx_Delay_Resp: int,
    rx_Pdelay_Resp_Follow_Up: int,
    rx_Announce: int,
    rx_Signaling: int,
    rx_Management: int,
    tx_Sync: int,
    tx_Delay_Req: int,
    tx_Pdelay_Req: int,
    tx_Pdelay_Resp: int,
    tx_Follow_Up: int,
    tx_Delay_Resp: int,
    tx_Pdelay_Resp_Follow_Up: int,
    tx_Announce: int,
    tx_Signaling: int,
    tx_Management: int,
)

LinuxPTP port statistics TLV.

PowerProfileSettingsNp dataclass

PowerProfileSettingsNp(
    version: int,
    grandmasterID: int,
    grandmasterTimeInaccuracy: int,
    networkTimeInaccuracy: int,
    totalTimeInaccuracy: int,
)

LinuxPTP power profile settings TLV.

Priority1 dataclass

Priority1(priority1: int)

PTP priority1 TLV.

Priority2 dataclass

Priority2(priority2: int)

PTP priority2 TLV.

Request dataclass

Request(action: str, tlv_type: str)

A parsed PMC request message.

Response dataclass

Response(
    source_port: PortIdentity,
    seq: int,
    action: str,
    tlv: ResponseTlvPayload,
)

A parsed PMC response message.

SlaveOnly dataclass

SlaveOnly(slaveOnly: int)

PTP slave-only TLV.

SubscribeEventsNp dataclass

SubscribeEventsNp(
    duration: int,
    NOTIFY_PORT_STATE: str,
    NOTIFY_TIME_SYNC: str,
    NOTIFY_PARENT_DATA_SET: str,
    NOTIFY_CMLDS: str,
)

LinuxPTP subscribe events TLV.

SynchronizationUncertainNp dataclass

SynchronizationUncertainNp(uncertain: int)

LinuxPTP synchronization uncertain TLV.

TimePropertiesDataSet dataclass

TimePropertiesDataSet(
    currentUtcOffset: int,
    leap61: int,
    leap59: int,
    currentUtcOffsetValid: int,
    ptpTimescale: int,
    timeTraceable: int,
    frequencyTraceable: int,
    timeSource: int,
)

PTP time properties data set TLV.

TimeStatusNp dataclass

TimeStatusNp(
    master_offset: int,
    ingress_time: int,
    cumulativeScaledRateOffset: float,
    scaledLastGmPhaseChange: int,
    gmTimeBaseIndicator: int,
    lastGmPhaseChange: float,
    gmPresent: str,
    gmIdentity: str,
)

LinuxPTP time status TLV.

TimescaleProperties dataclass

TimescaleProperties(ptpTimescale: int)

PTP timescale properties TLV.

TraceabilityProperties dataclass

TraceabilityProperties(
    timeTraceable: int, frequencyTraceable: int
)

PTP traceability properties TLV.

UnknownTlv dataclass

UnknownTlv()

Unknown TLV placeholder.

UserDescription dataclass

UserDescription(userDescription: str)

PTP user description TLV.

VersionNumber dataclass

VersionNumber(versionNumber: int)

PTP version number TLV.

multiline_regex_from_keys

multiline_regex_from_keys(keys: List[str]) -> str

Generate a multiline regex pattern from dataclass field names.

regex_from_tlv

regex_from_tlv(cls: T) -> T

Decorator that adds a regex attribute to a TLV dataclass.

The dataclass must have a tlv_type class attribute.

Parameters:

  • cls (T) –

    The dataclass to decorate.

Raises:

  • TypeError

    If cls is not a dataclass.

  • KeyError

    If cls has no tlv_type attribute.

Returns:

  • T

    The decorated class with a regex attribute.

regex_from_tlv_union

regex_from_tlv_union(union: UnionType) -> str

Combine regex patterns from a union of TLV types.