Blob Blame History Raw
#!/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