#!/bin/bash . test.common test_start "pmc" limit=51 jitter=0.0 subnets="1 2 | 2 3" pmc_node=3 requests_replies=( "GET USER_DESCRIPTION" "sending: GET USER_DESCRIPTION 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT USER_DESCRIPTION userDescription " "GET DEFAULT_DATA_SET" "sending: GET DEFAULT_DATA_SET 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT DEFAULT_DATA_SET twoStepFlag 1 slaveOnly 0 numberPorts 2 priority1 128 clockClass 248 clockAccuracy 0xfe offsetScaledLogVariance 0xffff priority2 128 clockIdentity 123456\.fffe\.780102 domainNumber 0" "GET CURRENT_DATA_SET" "sending: GET CURRENT_DATA_SET 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT CURRENT_DATA_SET stepsRemoved 1 offsetFromMaster -?[0-9]+\.[0-9]+ meanPathDelay [0-9]+\.[0-9]+" "GET PARENT_DATA_SET" "sending: GET PARENT_DATA_SET 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT PARENT_DATA_SET parentPortIdentity 123456\.fffe\.780101-1 parentStats 0 observedParentOffsetScaledLogVariance 0xffff observedParentClockPhaseChangeRate 0x7fffffff grandmasterPriority1 128 gm\.ClockClass 248 gm\.ClockAccuracy 0xfe gm\.OffsetScaledLogVariance 0xffff grandmasterPriority2 128 grandmasterIdentity 123456\.fffe\.780101" "GET TIME_PROPERTIES_DATA_SET" "sending: GET TIME_PROPERTIES_DATA_SET 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT TIME_PROPERTIES_DATA_SET currentUtcOffset 3[567] leap61 0 leap59 0 currentUtcOffsetValid 0 ptpTimescale 1 timeTraceable 0 frequencyTraceable 0 timeSource 0xa0" "GET PRIORITY1" "sending: GET PRIORITY1 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT PRIORITY1 priority1 128" "GET PRIORITY2" "sending: GET PRIORITY2 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT PRIORITY2 priority2 128" "GET DOMAIN" "sending: GET DOMAIN 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT DOMAIN domainNumber 0" "GET SLAVE_ONLY" "sending: GET SLAVE_ONLY 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT SLAVE_ONLY slaveOnly 0" "GET CLOCK_ACCURACY" "sending: GET CLOCK_ACCURACY 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT CLOCK_ACCURACY clockAccuracy 0xfe" "GET TRACEABILITY_PROPERTIES" "sending: GET TRACEABILITY_PROPERTIES 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT TRACEABILITY_PROPERTIES timeTraceable 0 frequencyTraceable 0" "GET TIMESCALE_PROPERTIES" "sending: GET TIMESCALE_PROPERTIES 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT TIMESCALE_PROPERTIES ptpTimescale 1" "GET TIME_STATUS_NP" "sending: GET TIME_STATUS_NP 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT TIME_STATUS_NP master_offset -?[0-9]+ ingress_time 1262304[0-9]+ cumulativeScaledRateOffset \+0\.000000000 scaledLastGmPhaseChange 0 gmTimeBaseIndicator 0 lastGmPhaseChange 0x0000'0000000000000000\.0000 gmPresent true gmIdentity 123456\.fffe\.780101" # SET is allowed only over UDS "GET GRANDMASTER_SETTINGS_NP SET GRANDMASTER_SETTINGS_NP clockClass 6 clockAccuracy 0xfd offsetScaledLogVariance 0xfffe currentUtcOffset 36 leap61 1 leap59 0 currentUtcOffsetValid 1 ptpTimescale 0 timeTraceable 1 frequencyTraceable 1 timeSource 0xa1" "sending: GET GRANDMASTER_SETTINGS_NP sending: SET GRANDMASTER_SETTINGS_NP 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT GRANDMASTER_SETTINGS_NP clockClass 248 clockAccuracy 0xfe offsetScaledLogVariance 0xffff currentUtcOffset 3[567] leap61 0 leap59 0 currentUtcOffsetValid 0 ptpTimescale 1 timeTraceable 0 frequencyTraceable 0 timeSource 0xa0 123456\.fffe\.780102-2 seq 1 RESPONSE MANAGE?MENT_ERROR_STATUS " "GET NULL_MANAGEMENT" "sending: GET NULL_MANAGEMENT 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT " "GET CLOCK_DESCRIPTION" "sending: GET CLOCK_DESCRIPTION 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT CLOCK_DESCRIPTION clockType 0x4000 physicalLayerProtocol IEEE 802\.3 physicalAddress 12:34:56:78:01:02 protocolAddress 1 192\.168\.123\.2 manufacturerId 00:00:00 productDescription ;; revisionData ;; userDescription profileId 00:1b:19:00:01:00 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT CLOCK_DESCRIPTION clockType 0x4000 physicalLayerProtocol IEEE 802\.3 physicalAddress 12:34:56:78:02:02 protocolAddress 1 192\.168\.124\.2 manufacturerId 00:00:00 productDescription ;; revisionData ;; userDescription profileId 00:1b:19:00:01:00" "GET PORT_DATA_SET" "sending: GET PORT_DATA_SET 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT PORT_DATA_SET portIdentity 123456\.fffe\.780102-1 portState SLAVE logMinDelayReqInterval 0 peerMeanPathDelay 0 logAnnounceInterval 1 announceReceiptTimeout 3 logSyncInterval 0 delayMechanism 1 logMinPdelayReqInterval 0 versionNumber 2 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT PORT_DATA_SET portIdentity 123456\.fffe\.780102-2 portState MASTER logMinDelayReqInterval 0 peerMeanPathDelay 0 logAnnounceInterval 1 announceReceiptTimeout 3 logSyncInterval 0 delayMechanism 1 logMinPdelayReqInterval 0 versionNumber 2" "GET LOG_ANNOUNCE_INTERVAL" "sending: GET LOG_ANNOUNCE_INTERVAL 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT LOG_ANNOUNCE_INTERVAL logAnnounceInterval 1 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT LOG_ANNOUNCE_INTERVAL logAnnounceInterval 1" "GET ANNOUNCE_RECEIPT_TIMEOUT" "sending: GET ANNOUNCE_RECEIPT_TIMEOUT 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT ANNOUNCE_RECEIPT_TIMEOUT announceReceiptTimeout 3 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT ANNOUNCE_RECEIPT_TIMEOUT announceReceiptTimeout 3" "GET LOG_SYNC_INTERVAL" "sending: GET LOG_SYNC_INTERVAL 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT LOG_SYNC_INTERVAL logSyncInterval 0 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT LOG_SYNC_INTERVAL logSyncInterval 0" "GET VERSION_NUMBER" "sending: GET VERSION_NUMBER 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT VERSION_NUMBER versionNumber 2 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT VERSION_NUMBER versionNumber 2" "GET DELAY_MECHANISM" "sending: GET DELAY_MECHANISM 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT DELAY_MECHANISM delayMechanism 1 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT DELAY_MECHANISM delayMechanism 1" "GET LOG_MIN_PDELAY_REQ_INTERVAL" "sending: GET LOG_MIN_PDELAY_REQ_INTERVAL 123456\.fffe\.780102-1 seq 0 RESPONSE MANAGE?MENT LOG_MIN_PDELAY_REQ_INTERVAL logMinPdelayReqInterval 0 123456\.fffe\.780102-2 seq 0 RESPONSE MANAGE?MENT LOG_MIN_PDELAY_REQ_INTERVAL logMinPdelayReqInterval 0" # SET is allowed only over UDS "GET PORT_DATA_SET_NP SET PORT_DATA_SET_NP neighborPropDelayThresh 20000000 asCapable 1" "sending: GET PORT_DATA_SET_NP sending: SET PORT_DATA_SET_NP 123456.fffe.780102-1 seq 0 RESPONSE MANAGE?MENT PORT_DATA_SET_NP neighborPropDelayThresh 20000000 asCapable 1 123456.fffe.780102-2 seq 0 RESPONSE MANAGE?MENT PORT_DATA_SET_NP neighborPropDelayThresh 20000000 asCapable 1 123456.fffe.780102-2 seq 1 RESPONSE MANAGE?MENT_ERROR_STATUS " ) for i in $(seq 0 $[${#requests_replies[*]} / 2 - 1]); do pmc_conf=${requests_replies[$[i * 2]]} run_ptp4l || test_fail if ! check_pmc_output "^${requests_replies[$[i * 2 + 1]]}$"; then cat tmp/log.$pmc_node test_fail fi done test_pass