Commit 3d6a992d authored by Adam Wujek's avatar Adam Wujek

commit with files present on 2021_09_27 on xena tester at CERN

It looks like the ptp-ha tests were not updated to the latest version.
Signed-off-by: 's avatarAdam Wujek <dev_public@wujek.eu>
parent 5a58eefc
ATTEST(TM) PTP-HA Version 1.1 Release 1.7
================================================
Copyright (c) 2018 - 2019 CERN. All rights reserved.
Date of release: 15-Apr-2019
A1. What's New?
===============
None.
A2. Recent Changes
==================
1) Below changes are implemented in PAG_004, PAG_005 and PAG_006 test cases,
- Fixed errors while comparing negative values of meanDelay and
delayAsymmetry with margin of error.
- Implemented conversion of correctionField to signed nanoseconds.
- Initialized egressLatency and ingressLatency values to -4 000 000 000 ns.
- Removed comparison of meanDelay values.
2) Resolved script error in PAG_005.
3) Added 2 seconds delay in PEG_002 before verifying PASSIVE state.
4) To help debugging, support added in PAG_005 to proceed test execution
till last step by ignoring validation of intermediate steps.
5) To help debugging, support added in PAG_005 to stop the test execution
at any step.
6) Made two supports for debugging (4) and (5) as configurable in CLI
integration file. This can be used in PAG_002, PAG_003, PAG_004, PAG_005,
PAG_006, PAG_007, PAG_008 and PAG_011.
A3. Dependent Packages
======================
This release is compatible with the following packages
ATTEST Framework : Attest 6.2R4.2 and higher versions
ATTEST Common : Attest Common 2.0R4.3 and higher versions
A4. Known Issues in this Release
================================
None.
ATTEST(TM) PTP-HA Version 1.1 Release 1.6
================================================
Copyright (c) 2018 - 2019 CERN. All rights reserved.
......@@ -564,7 +516,6 @@ Releases - History
-----------------------------------------------------------------------------------
Version Release Type Release Date
-----------------------------------------------------------------------------------
1.1R1.7 Patch Release 15-Apr-2019
1.1R1.6 Patch Release 04-Feb-2019
1.1R1.5 Patch Release 23-Jan-2019
1.1R1.4 Patch Release 18-Jan-2019
......
......@@ -21,12 +21,12 @@ proto raw
iface wri1
profile ha
constantAsymmetry 0
delayCoefficient 0.000267869999999987
delayCoefficient 0
announceReceiptTimeout 3
asymmetryCorrectionEnable y
desiredState master
egressLatency 223897
ingressLatency 226273
asymmetryCorrectionEnable n
desiredState passive
egressLatency 0
ingressLatency -4294967296000
l1SyncCongruencyIsRequired y
l1SyncEnabled y
l1SyncOptParamsEnabled n
......@@ -39,7 +39,7 @@ logSyncInterval 0
logL1SyncInterval 0
logMinDelayReqInterval 0
logMinPDelayReqInterval 0
mechanism e2e
mechanism p2p
masterOnly n
#vlan is not set
......
################################################################################
# File Name : ptp_ha.tcl #
# File Version : 1.1 #
# File Version : 1.0 #
# Component Name : ATTEST Packet Library #
# Module Name : Precision Time Protocol - High Accuracy #
################################################################################
# History Date Author Addition/ Alteration #
# #
# 1.0 Apr/2018 CERN Initial #
# 1.1 Apr/2019 CERN Added conversion of Time Interval to #
# Nanoseconds and vice-versa for #
# correctionField. #
# #
################################################################################
# Copyright (C) 2018 - 2019 CERN #
# Copyright (C) 2018 CERN #
################################################################################
############################# LIST OF PROCEDURES ###############################
......@@ -2058,8 +2055,8 @@ proc pbLib::decode_arp_pkt {args} {
# -leap59 $leap59\ #
# -current_utc_offset_valid $current_utc_offset_valid\#
# -ptp_timescale $ptp_timescale\ #
# -time_traceable $time_traceable\ #
# -freq_traceable $freq_traceable\ #
# -time_traceable $time_traceable\ #
# -freq_traceable $freq_traceable\ #
# -sync_uncertain $sync_uncertain\ #
# -correction_field $correction_field\ #
# -message_type_specific $message_type_specific\ #
......@@ -2372,7 +2369,7 @@ proc pbLib::encode_ptp_ha_common_header {args} {
set hdr::domainNumber [dec2hex $domain_number 2]
set hdr::minorSdoId [dec2hex $minor_sdo_id 2]
set hdr::flagField $flag_field
set hdr::correctionField [dec2hex [expr round($correction_field * pow(2,16))] 16]
set hdr::correctionField [dec2hex $correction_field 16]
set hdr::messageTypeSpecific [dec2hex $message_type_specific 8]
set hdr::sourcePortIdentity $source_port_identity
set hdr::sequenceId [dec2hex $sequence_id 4]
......@@ -5564,7 +5561,8 @@ proc pbLib::decode_ptp_ha_common_header {args} {
set time_traceable $flag::timeTraceable
set freq_traceable $flag::frequencyTraceable
set sync_uncertain $flag::synchronizationUncertain
set correction_field [format "%.3f" [expr [format %i 0x$hdr::correctionField] / pow(2,16)]]
set correction_field [hex2dec $hdr::correctionField]
set message_type_specific [hex2dec $hdr::messageTypeSpecific]
ptp_ha_port_identity port_identity = $hdr::sourcePortIdentity
......
################################################################################
# File Name : ptp_ha.tcl #
# File Version : 1.5 #
# File Version : 1.4 #
# Component Name : ATTEST Platform Library #
# Module Name : Precision Time Protocol - High Accuracy #
################################################################################
......@@ -19,11 +19,9 @@
# b) Added below procedures, #
# - ptp-ha_transmission_sequencing #
# - ptp-ha_transmission_queueing #
# 1.5 Apr/2019 CERN Added queueing support for One-Step #
# clock. #
# #
################################################################################
# Copyright (C) CERN 2018 - 2019 #
# Copyright (C) CERN 2018 #
################################################################################
#########################PROCEDURES USED########################################
......@@ -8401,84 +8399,38 @@ proc pltLib::ptp-ha_transmission_queueing { args } {
array set param $args
set instance $param(-instance)
if {$::ptp_dut_clock_step == "Two-Step"} {
set two_step_flag 1
} else {
set two_step_flag 0
if {$instance == 1} {
set ::ok_to_send_1 0
set ::ok_to_send_5 1
}
if {$two_step_flag == 1} {
if {$instance == 1} {
set ::ok_to_send_1 0
set ::ok_to_send_5 1
}
if {$instance == 4} {
set ::ok_to_send_4 [expr $::ok_to_send_4 + 1]
}
if {$instance == 5} {
set ::ok_to_send_1 1
set ::ok_to_send_5 0
}
if {$instance == 7} {
set ::ok_to_send_7 0
set ::ok_to_send_8 1
}
if {$instance == 8} {
set ::ok_to_send_7 1
set ::ok_to_send_8 0
}
if {$instance == 12} {
set ::ok_to_send_12 0
set ::ok_to_send_13 1
}
if {$instance == 13} {
set ::ok_to_send_12 1
set ::ok_to_send_13 0
}
} else {
if {$instance == 1} {
set ::ok_to_send_1 1
set ::ok_to_send_5 1
}
if {$instance == 4} {
set ::ok_to_send_4 [expr $::ok_to_send_4 + 1]
}
if {$instance == 4} {
set ::ok_to_send_4 [expr $::ok_to_send_4 + 1]
}
if {$instance == 5} {
set ::ok_to_send_1 1
set ::ok_to_send_5 1
}
if {$instance == 5} {
set ::ok_to_send_1 1
set ::ok_to_send_5 0
}
if {$instance == 7} {
set ::ok_to_send_7 1
set ::ok_to_send_8 1
}
if {$instance == 7} {
set ::ok_to_send_7 0
set ::ok_to_send_8 1
}
if {$instance == 8} {
set ::ok_to_send_7 1
set ::ok_to_send_8 1
}
if {$instance == 8} {
set ::ok_to_send_7 1
set ::ok_to_send_8 0
}
if {$instance == 12} {
set ::ok_to_send_12 1
set ::ok_to_send_13 1
}
if {$instance == 12} {
set ::ok_to_send_12 0
set ::ok_to_send_13 1
}
if {$instance == 13} {
set ::ok_to_send_12 1
set ::ok_to_send_13 1
}
if {$instance == 13} {
set ::ok_to_send_12 1
set ::ok_to_send_13 0
}
return 1
......
......@@ -10695,7 +10695,6 @@ proc ptp_ha::dut_configure_setup_009 {args} {
}
################################################################################
# DUT SETUP CLEANUP FUNCTIONS #
################################################################################
......
......@@ -45,30 +45,24 @@ set dut_log_msg(CALCULATE_TIME_DIFF_TD3) "Calculate time difference TD3.\
set dut_log_msg(CF1_F) "CF1 is not equal to 0.\n"
set dut_log_msg(CF5_F) "CF5 is not equal to 0.\n"
set dut_log_msg(CF1_V) "Check whether CF1 = 0.\n"
set dut_log_msg(CF2_DA2_F) "CF2 is not equal to (-1) * DA2.\n"
set dut_log_msg(CF2_DA2_V) "Check whether CF2 = (-1) * DA2.\n"
set dut_log_msg(CF3_DA3_F) "CF3 is not equal to (-1) * DA3.\n"
set dut_log_msg(CF3_DA3_V) "Check whether CF3 = (-1) * DA3.\n"
set dut_log_msg(CF4_DA4_F) "CF4 is not equal to (-1) * DA4.\n"
set dut_log_msg(CF4_DA4_V) "Check whether CF4 = (-1) * DA4.\n"
set dut_log_msg(CF5_DA5_F) "CF5 is not equal to (-1) * DA5.\n"
set dut_log_msg(CF5_DA5_V) "Check whether CF5 = (-1) * DA5.\n"
set dut_log_msg(CF2_DA2_F) "CF2 is not equal to -DA2.\n"
set dut_log_msg(CF2_DA2_V) "Check whether CF2 = -DA2.\n"
set dut_log_msg(CF3_DA3_F) "CF3 is not equal to -DA3.\n"
set dut_log_msg(CF3_DA3_V) "Check whether CF3 = -DA3.\n"
set dut_log_msg(CF4_DA4_F) "CF4 is not equal to -DA4.\n"
set dut_log_msg(CF4_DA4_V) "Check whether CF4 = -DA4.\n"
set dut_log_msg(CF5_0_V) "Verify whether CF5 = 0.\n"
set dut_log_msg(CHECK_EXPR) "Verify whether ((Tb - Ta) + (Tc - Tb))/2 is satisfied.\n"
set dut_log_msg(CHECK_EXPR_DA2) "Check whether DA2 = (1/3) * MD2.\n"
set dut_log_msg(CHECK_EXPR_DA2) "Check whether DA2 = (1/3)*MD2.\n"
set dut_log_msg(CHECK_EXPR_DA2_F) "Value of delayAsymmetry is not as expected in DUT.\n"
set dut_log_msg(CHECK_EXPR_DA3) "Check whether DA3 = (1/3) * MD2 + 2^(32+16).\n"
set dut_log_msg(CHECK_EXPR_DA3) "Check whether DA3 = (1/3)*MD2 + 2^(32+16).\n"
set dut_log_msg(CHECK_EXPR_DA3_F) "Value of delayAsymmetry is not as expected in DUT.\n"
set dut_log_msg(CHECK_EXPR_DA4) "Check whether DA4 = (-1) * MD4.\n"
set dut_log_msg(CHECK_EXPR_DA4) "Check whether DA4 = (-1)*MD4.\n"
set dut_log_msg(CHECK_EXPR_DA4_F) "Value of delayAsymmetry is not as expected in DUT.\n"
set dut_log_msg(CHECK_EXPR_DA5) "Check whether DA5 = (-1) * MD5.\n"
set dut_log_msg(CHECK_EXPR_DA5_F) "Value of delayAsymmetry is not as expected in DUT.\n"
set dut_log_msg(CHECK_EXPR_DA5_MLD) "Check whether DA5 = (-1) * MLD5.\n"
set dut_log_msg(CHECK_EXPR_DA5_MLD_F) "Value of delayAsymmetry is not as expected in DUT.\n"
set dut_log_msg(CHECK_EXPR_F) "((Tb - Ta) + (Tc - Tb))/2 is not satisfied to the expected value.\n"
set dut_log_msg(CHECK_EXPRESSION_DA2) "Check whether DA2 = (1/3) * MLD2.\n"
set dut_log_msg(CHECK_EXPRESSION_DA3) "Check whether DA3 = (1/3) * MLD2 + 2^(32+16).\n"
set dut_log_msg(CHECK_EXPRESSION_DA4) "Check whether DA4 = (-1) * MLD4.\n"
set dut_log_msg(CHECK_EXPRESSION_DA2) "Check whether DA2 = (1/3)*MLD2.\n"
set dut_log_msg(CHECK_EXPRESSION_DA3) "Check whether DA3 = (1/3)*MLD2 + 2^(32+16).\n"
set dut_log_msg(CHECK_EXPRESSION_DA4) "Check whether DA4 = (-1)*MLD4.\n"
set dut_log_msg(CHECK_EXPRESSION_F) "Check for the expression has failed.\n"
set dut_log_msg(CHECK_MD2_MD1) "Check whether MD2 = MD1.\n"
set dut_log_msg(CHECK_MD2_MD1_F) "MD2 is not equal to MD1.\n"
......
################################################################################
# File Name : tee_ptp_ha_functions.tcl #
# File Version : 1.11 #
# File Version : 1.10 #
# Component Name : ATTEST TEST EXECUTION ENGINE (TEE) #
# Module Name : Precision Time Protocol - High Accuracy #
################################################################################
......@@ -46,7 +46,6 @@
# 1.10 Feb/2019 CERN Updated ptp_ha::stop_at_step to work #
# based on configuration in CLI #
# integration file. #
# 1.11 Apr/2019 CERN Added ptp_ha::value_range. #
# #
################################################################################
# Copyright (c) 2018 - 2019 CERN #
......@@ -17211,56 +17210,3 @@ proc ptp_ha::stop_at_step {} {
return 1
}
################################################################################
# #
# PROCEDURE NAME : ptp_ha::value_range #
# #
# INPUT PARAMETERS : #
# #
# value : (Mandatory) Value for which range to be calculated.#
# #
# tolerance : (Mandatory) Tolerance for the range. #
# #
# OUTPUT PARAMETERS : #
# #
# minimum : (Mandatory) Minimum value. #
# #
# maximum : (Mandatory) Maximum value. #
# #
# RETURNS : 1 on success #
# #
# : 0 on failure #
# #
# #
# DEFINITION : This function calculates and gives minimum and #
# maximum for the given value with tolerance limit. #
# #
# USAGE : #
# #
# ptp_ha::value_range 10 1 minimum maximum #
# #
################################################################################
proc ptp_ha::value_range {value tolerance minimum maximum} {
set min_multiplier [format "%0.2f" [expr 1 - (($tolerance * 1.0) / 100)]]
set max_multiplier [format "%0.2f" [expr 1 + (($tolerance * 1.0) / 100)]]
upvar $minimum lminimum
upvar $maximum lmaximum
if {$value > 0} {
set lminimum [expr $value * $min_multiplier]
set lmaximum [expr $value * $max_multiplier]
} else {
set lminimum [expr $value * $max_multiplier]
set lmaximum [expr $value * $min_multiplier]
}
set lminimum [format "%.3f" $lminimum]
set lmaximum [format "%.3f" $lmaximum]
return 1
}
################################################################################
# File Name : tee_ptp_session.tcl #
# File Version : 1.2 #
# File Version : 1.1 #
# Component Name : ATTEST TEST EXECUTION ENGINE (TEE) #
# Module Name : Precision Time Protocol - High Accuracy #
################################################################################
......@@ -11,8 +11,6 @@
# 1.1 Jan/2019 CERN a) Added dut_close_session. #
# b) Handled locking mechanism for #
# closing TEE session. #
# 1.2 Mar/2019 CERN Stopped sending of messages before #
# disconnecting Xena chassis. #
# #
################################################################################
# Copyright (c) 2018 - 2019 CERN #
......@@ -153,18 +151,6 @@ proc ptp_ha::tee_close_session {args} {
set session_id ${::session_id}
}
set instance 0
while {$instance <= 17} {
if [info exists ::_status_$instance] {
#stop running instance
pltLib::cancel_send_periodic\
-instance $instance
}
incr instance
}
#Resource is in-use
if { $::semlock == "LOCKED" } {
......
Test Case : tc_conf_ptp-ha_pag_002
Test Case Version : 1.6
Test Case Version : 1.5
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP Accuracy Group (PAG)
......
Test Case : tc_conf_ptp-ha_pag_003
Test Case Version : 1.2
Test Case Version : 1.1
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP Accuracy Group (PAG)
......
Test Case : tc_conf_ptp-ha_pag_004
Test Case Version : 1.9
Test Case Version : 1.8
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP Accuracy Group (PAG)
......
Test Case : tc_conf_ptp-ha_pag_005
Test Case Version : 1.5
Test Case Version : 1.3
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP Accuracy Group (PAG)
......
Test Case : tc_conf_ptp-ha_pag_006
Test Case Version : 1.4
Test Case Version : 1.3
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP Accuracy Group (PAG)
......
Test Case : tc_conf_ptp-ha_pag_007
Test Case Version : 1.1
Test Case Version : 1.0
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP Accuracy Group (PAG)
......
Test Case : tc_conf_ptp-ha_pag_011
Test Case Version : 1.2
Test Case Version : 1.1
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP Accuracy Group (PAG)
......
Test Case : tc_conf_ptp-ha_peg_002
Test Case Version : 1.3
Test Case Version : 1.2
Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE
Module Name : PTP ExternalPortConfiguration Group (PEG)
......
......@@ -49,9 +49,6 @@
| |
| <Check L1SYNC port status - L1_SYNC_UP> | P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD1)> |
| |
| <Configure timestampCorrectionPortDS.egressLatency |
......@@ -59,9 +56,6 @@
| |
| DELAY_REQ [MSG_TYPE = 0x01, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD2)> |
| |
......@@ -72,9 +66,6 @@
| |
| DELAY_REQ [MSG_TYPE = 0x01, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD3)> |
| |
......
......@@ -50,9 +50,6 @@
| |
| <Check L1SYNC port status - L1_SYNC_UP> | P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD1)> |
| |
| <Configure timestampCorrectionPortDS.egressLatency |
......@@ -60,9 +57,6 @@
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD2)> |
| |
......@@ -73,9 +67,6 @@
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD3)> |
| |
......
......@@ -14,19 +14,12 @@
| <Enable L1SYNC> | P1
| <Configure L1SyncInterval, L1SyncReceiptTimeout> | P1
| <Disable L1SynOptParams option> | P1
| <Enable asymmetryCorrectionPortDS.enable> | P1
| <Configure timestampCorrectionPortDS.egressLatency, | P1
| timestampCorrectionPortDS.ingressLatency, |
| asymmetryCorrectionPortDS.constantAsymmetry, |
| asymmetryCorrectionPortDS.scaledDelayCoefficient> |
| |
| <Configure timestampCorrectionPortDS.egressLatency |
| value to -4 000 000 000 ns> |
| |
| <Configure timestampCorrectionPortDS.ingressLatency |
| value to -4 000 000 000 ns> |
| |
| <Enable asymmetryCorrectionPortDS.enable> | P1
| |
| ANNOUNCE [MSG_TYPE = 0x0B, |
| DN = DN1, PRI1 = X] |
T1 |-------------------------------------------------<<--| P1
......@@ -81,10 +74,12 @@
| |
| <Check DA2 = (1/3) * MD2> |
| |
| <Check MD2 = MD1> |
| |
| DELAY_REQ [MSG_TYPE=0X01, DN = DN1, CF = CF2] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF2 = (-1) * DA2> |
| <Check CF2 = -DA2> |
| |
| <Configure asymmetryCorrectionPortDS. |
| constantAsymmetry |
......@@ -102,10 +97,12 @@
| |
| <Check DA2 = (1/3) * MD3 + 2^(32+16)> |
| |
| <Check MD3 = MD1> |
| |
| DELAY_REQ [MSG_TYPE=0X01, DN = DN1, CF = CF3] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF3 = (-1) * DA3> |
| <Check CF3 = -DA3> |
| |
| <Configure asymmetryCorrectionPortDS. |
| scaledDelayCoefficient |
......@@ -125,12 +122,14 @@
| |
| <Get delayAsymmetry (DA4)> |
| |
| <Check DA4 = (-1) * MD4> |
| <Check DA4 = (-1)*MD4> |
| |
| <Check MD4 = MD1> |
| |
| DELAY_REQ [MSG_TYPE=0X01, DN = DN1, CF = CF4] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF4 = (-1) * DA4> |
| <Check CF4 = -DA4> |
| |
| <Disable asymmetryCorrectionPortDS.enable> | P1
| |
......@@ -144,12 +143,14 @@
| |
| <Get delayAsymmetry (DA5)> |
| |
| <Check DA5 = (-1) * MD5> |
| <Check DA5 = 0> |
| |
| <Check MD5 = MD1> |
| |
| DELAY_REQ [MSG_TYPE=0X01, DN = DN1, CF = CF5] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF5 = (-1) * DA5> |
| <Check CF5 = 0> |
| |
Legends :
......
......@@ -21,14 +21,6 @@
| asymmetryCorrectionPortDS.constantAsymmetry, |
| asymmetryCorrectionPortDS.scaledDelayCoefficient> |
| |
| <Configure timestampCorrectionPortDS.egressLatency |
| value to -4 000 000 000 ns> |
| |
| <Configure timestampCorrectionPortDS.ingressLatency |
| value to -4 000 000 000 ns> |
| |
| <Enable asymmetryCorrectionPortDS.enable> | P1
| |
| ANNOUNCE [MSG_TYPE = 0x0B, |
| DN = DN1, PRI1 = X] |
T1 |-------------------------------------------------<<--| P1
......@@ -51,8 +43,8 @@
| |
| <Check L1SYNC port status - L1_SYNC_UP> | P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| <Check absolute value of currentDS.offsetFromMaster |
| is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD1)> |
| |
......@@ -72,8 +64,8 @@
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| <Check absolute value of currentDS.offsetFromMaster |
| is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD2)> |
| |
......@@ -81,10 +73,12 @@
| |
| <Check DA2 = (1/3) * MD2> |
| |
| <Check MD2 = MD1> |
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF2] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF2 = (-1) * DA2> |
| <Check CF2 = -DA2> |
| |
| <Configure asymmetryCorrectionPortDS. |
| constantAsymmetry |
......@@ -93,8 +87,8 @@
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| <Check absolute value of currentDS.offsetFromMaster |
| is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD3)> |
| |
......@@ -102,10 +96,12 @@
| |
| <Check DA2 = (1/3) * MD3 + 2^(32+16)> |
| |
| <Check MD3 = MD1> |
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF3] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF3 = (-1) * DA3> |
| <Check CF3 = -DA3> |
| |
| <Configure asymmetryCorrectionPortDS. |
| scaledDelayCoefficient |
......@@ -118,8 +114,8 @@
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| <Check absolute value of currentDS.offsetFromMaster |
| is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD4)> |
| |
......@@ -127,29 +123,33 @@
| |
| <Check DA4 = (-1)*MD4> |
| |
| <Check MD4 = MD1> |
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF4] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF4 = (-1) * DA4> |
| <Check CF4 = -DA4> |
| |
| <Disable asymmetryCorrectionPortDS.enable> | P1
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| <Check absolute value of currentDS.offsetFromMaster |
| is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD5)> |
| |
| <Get delayAsymmetry (DA5)> |
| |
| <Check DA5 = (-1) * MD5> |
| <Check DA5 = 0> |
| |
| <Check MD5 = MD1> |
| |
| PDELAY_REQ [MSG_TYPE=0X02, DN = DN1, CF = CF5] |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF5] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF5 = (-1) * DA5> |
| <Check CF5 = 0> |
| |
Legends :
......
......@@ -21,14 +21,6 @@
| asymmetryCorrectionPortDS.constantAsymmetry, |
| asymmetryCorrectionPortDS.scaledDelayCoefficient> |
| |
| <Configure timestampCorrectionPortDS.egressLatency |
| value to -4 000 000 000 ns> |
| |
| <Configure timestampCorrectionPortDS.ingressLatency |
| value to -4 000 000 000 ns> |
| |
| <Enable asymmetryCorrectionPortDS.enable> | P1
| |
| ANNOUNCE [MSG_TYPE = 0x0B, |
| DN = DN1, PRI1 = X] |
T1 |-------------------------------------------------<<--| P1
......@@ -66,10 +58,12 @@
| |
| <Check DA2 = (1/3) * MLD2> |
| |
| <Check MLD2 = MLD1> |
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF2] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF2 = (-1) * DA2> |
| <Check CF2 = -DA2> |
| |
| <Configure asymmetryCorrectionPortDS. |
| constantAsymmetry |
......@@ -84,10 +78,12 @@
| |
| <Check DA2 = (1/3) * MLD3 + 2^(32+16)> |
| |
| <Check MLD3 = MLD1> |
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF3] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF3 = (-1) * DA3> |
| <Check CF3 = -DA3> |
| |
| <Configure asymmetryCorrectionPortDS. |
| scaledDelayCoefficient |
......@@ -104,12 +100,14 @@
| |
| <Get delayAsymmetry (DA4)> |
| |
| <Check DA4 = (-1) * MLD4> |
| <Check DA4 = (-1)*MLD4> |
| |
| <Check MLD4 = MLD1> |
| |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF4] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF4 = (-1) * DA4> |
| <Check CF4 = -DA4> |
| |
| <Disable asymmetryCorrectionPortDS.enable> | P1
| |
......@@ -120,12 +118,14 @@
| |
| <Get delayAsymmetry (DA5)> |
| |
| <Check DA5 = (-1) * MLD5> |
| <Check DA5 = 0> |
| |
| <Check MLD5 = MLD1> |
| |
| PDELAY_REQ [MSG_TYPE=0X02, DN = DN1, CF = CF5] |
| PDELAY_REQ [MSG_TYPE = 0x02, DN = DN1, CF = CF5] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check CF5 = (-1) * DA5> |
| <Check CF5 = 0> |
| |
Legends :
......
......@@ -47,9 +47,6 @@
| PDELAY_RESP [MSG_TYPE = 0x09, |
| DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Calculate meanDelay (MD1)> |
| |
......@@ -62,9 +59,6 @@
| PDELAY_RESP [MSG_TYPE = 0x09, |
| DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Calculate meanDelay (MD2)> |
| |
......@@ -79,9 +73,6 @@
| PDELAY_RESP [MSG_TYPE = 0x09, |
| DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Calculate meanDelay (MD3)> |
| |
......
......@@ -56,7 +56,7 @@
| |
| <Get DUT's time (DTS1)> |
| |
| DTS1 - SEET1 < 1 |
| DTS1 - SEET1 > 0 |
| |
| <Configure timestampCorrectionPortDS.ingressLatency |
| value to 2^(32+16)> |
......@@ -80,7 +80,7 @@
| |
| <Get DUT's time (DTS2)> |
| |
| DTS2 - SEET2 > 1 |
| DTS2 - SEET2 < 0 |
| |
| <Configure timestampCorrectionPortDS.ingressLatency |
| value to -2^(32+16)> |
......@@ -104,7 +104,7 @@
| |
| <Get DUT's time (DTS3)> |
| |
| SEET3 - DTS3 > 1 |
| SEET3 - DTS3 < 0 |
| |
Legends :
......
......@@ -45,9 +45,6 @@
| |
| <Check L1SYNC port status - L1_SYNC_UP> | P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD1)> |
| |
| <Configure timestampCorrectionPortDS.ingressLatency |
......@@ -55,9 +52,6 @@
| |
| PDELAY_REQ [MSG_TYPE = 0x01, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD2)> |
| |
......@@ -68,9 +62,6 @@
| |
| PDELAY_REQ [MSG_TYPE = 0x01, DN = DN1] |
T1 |-------------------------------------------------<<--| P1
| |
| <Check non-zero absolute value of currentDS. |
| offsetFromMaster is lowest as possible> |
| |
| <Get currentDS.meanDelay (MD3)> |
| |
......
......@@ -86,17 +86,13 @@
Step 10: Observe that the DUT's L1SYNC port status of P1 is L1_SYNC_UP.
Step 11: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 11: Get currentDS.meanDelay (MD1) of DUT.
Step 12: Get currentDS.meanDelay (MD1) of DUT.
Step 13: Configure egressLatency on port P1 by setting egressLatency to
Step 12: Configure egressLatency on port P1 by setting egressLatency to
4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.egressLatency = 2^48).
Step 14: Observe that the DUT transmits DELAY_REQ message on port P1 with
Step 13: Observe that the DUT transmits DELAY_REQ message on port P1 with
following parameters to ensure the DUT is ready with configured
asymmetryCorrectionPortDS.egressLatency value.
......@@ -104,19 +100,15 @@
Message Type = 0x01
Domain Number = DN1
Step 15: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 16: Get currentDS.meanDelay (MD2) of DUT.
Step 14: Get currentDS.meanDelay (MD2) of DUT.
Step 17: Observe that MD2 is lesser than MD1.
Step 15: Observe that MD2 is lesser than MD1.
Step 18: Configure egressLatency on port P1 by setting egressLatency to
Step 16: Configure egressLatency on port P1 by setting egressLatency to
-4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.egressLatency = -2^48).
Step 19: Observe that the DUT transmits DELAY_REQ message on port P1 with
Step 17: Observe that the DUT transmits DELAY_REQ message on port P1 with
following parameters to ensure the DUT is ready with configured
asymmetryCorrectionPortDS.egressLatency value.
......@@ -124,11 +116,7 @@
Message Type = 0x01
Domain Number = DN1
Step 20: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 21: Get currentDS.meanDelay (MD3) of DUT.
Step 18: Get currentDS.meanDelay (MD3) of DUT.
Step 22: Verify that MD3 is greater than MD1.
Step 19: Verify that MD3 is greater than MD1.
......@@ -87,17 +87,13 @@
Step 10: Observe that the DUT's L1SYNC port status of P1 is L1_SYNC_UP.
Step 11: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 11: Get currentDS.meanDelay (MD1) of DUT.
Step 12: Get currentDS.meanDelay (MD1) of DUT.
Step 13: Configure egressLatency on port P1 by setting egressLatency to
Step 12: Configure egressLatency on port P1 by setting egressLatency to
4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.egressLatency = 2^48).
Step 14: Observe that DUT transmits PDELAY_REQ message on the port P1 with
Step 13: Observe that DUT transmits PDELAY_REQ message on the port P1 with
following parameters to ensure the DUT is ready with configured
asymmetryCorrectionPortDS.egressLatency value.
......@@ -105,19 +101,15 @@
Message Type = 0x02
Domain Number = DN1
Step 15: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 16: Get currentDS.meanDelay (MD2) of DUT.
Step 14: Get currentDS.meanDelay (MD2) of DUT.
Step 17: Observe that MD2 is lesser than MD1.
Step 15: Observe that MD2 is lesser than MD1.
Step 18: Configure egressLatency on port P1 by setting egressLatency to
Step 16: Configure egressLatency on port P1 by setting egressLatency to
-4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.egressLatency = -2^48).
Step 19: Observe that DUT transmits PDELAY_REQ message on the port P1 with
Step 17: Observe that DUT transmits PDELAY_REQ message on the port P1 with
following parameters to ensure the DUT is ready with configured
asymmetryCorrectionPortDS.egressLatency value.
......@@ -125,11 +117,7 @@
Message Type = 0x02
Domain Number = DN1
Step 20: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 21: Get currentDS.meanDelay (MD3) of DUT.
Step 18: Get currentDS.meanDelay (MD3) of DUT.
Step 22: Verify that MD3 is greater than MD1.
Step 19: Verify that MD3 is greater than MD1.
......@@ -87,61 +87,49 @@
Message Type = 0x09
Domain Number = DN1
Step 10: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 10: Calculate meanDelay (MD1) at TEE.
Step 11: Calculate meanDelay (MD1) at TEE.
Step 12: Configure egressLatency on port P1 by setting egressLatency to
Step 11: Configure egressLatency on port P1 by setting egressLatency to
4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.egressLatency = 2^48).
Step 13: Send periodic PDELAY_REQ message on port T1 with following
Step 12: Send periodic PDELAY_REQ message on port T1 with following
parameters.
PTP Header
Message Type = 0x01
Domain Number = DN1
Step 14: Observe that the DUT transmits PDELAY_RESP message on the port P1
Step 13: Observe that the DUT transmits PDELAY_RESP message on the port P1
with following parameters.
PTP Header
Message Type = 0x09
Domain Number = DN1
Step 15: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 16: Calculate meanDelay (MD2) at TEE.
Step 14: Calculate meanDelay (MD2) at TEE.
Step 17: Observe that MD2 is lesser than MD1.
Step 15: Observe that MD2 is lesser than MD1.
Step 18: Configure egressLatency on port P1 by setting egressLatency to
Step 16: Configure egressLatency on port P1 by setting egressLatency to
-4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.egressLatency = -2^48).
Step 19: Send periodic PDELAY_REQ message on port T1 with following
Step 17: Send periodic PDELAY_REQ message on port T1 with following
parameters.
PTP Header
Message Type = 0x01
Domain Number = DN1
Step 20: Observe that the DUT transmits PDELAY_RESP message on the port P1
Step 18: Observe that the DUT transmits PDELAY_RESP message on the port P1
with following parameters.
PTP Header
Message Type = 0x09
Domain Number = DN1
Step 21: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 22: Calculate meanDelay (MD3) at TEE.
Step 19: Calculate meanDelay (MD3) at TEE.
Step 23: Verify that MD3 is greater than MD1.
Step 20: Verify that MD3 is greater than MD1.
......@@ -234,5 +234,5 @@
Step 26: Get DUT's time and convert it into epoch Timestamp (DTS3).
Step 27: Verify that time difference of SEET3 and DTS3 is greater than 1.
(i.e., SEET3 - DTS3 > 1)
(i.e., SEET3 - DTS3 > 0)
......@@ -78,17 +78,13 @@
Step 9 : Observe that the DUT's L1SYNC port status of P1 is L1_SYNC_UP.
Step 10: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 10: Get currentDS.meanDelay (MD1) of DUT.
Step 11: Get currentDS.meanDelay (MD1) of DUT.
Step 12: Configure ingressLatency on port P1 by setting ingressLatency to
Step 11: Configure ingressLatency on port P1 by setting ingressLatency to
4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.ingressLatency = 2^48).
Step 13: Observe that the DUT transmits PDELAY_REQ message on port P1 with
Step 12: Observe that the DUT transmits PDELAY_REQ message on port P1 with
following parameters to ensure the DUT is ready with configured
asymmetryCorrectionPortDS.ingressLatency value.
......@@ -96,19 +92,15 @@
Message Type = 0x01
Domain Number = DN1
Step 14: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 15: Get currentDS.meanDelay (MD2) of DUT.
Step 13: Get currentDS.meanDelay (MD2) of DUT.
Step 16: Observe that MD2 is lesser than MD1.
Step 14: Observe that MD2 is lesser than MD1.
Step 17: Configure ingressLatency on port P1 by setting ingressLatency to
Step 15: Configure ingressLatency on port P1 by setting ingressLatency to
-4 294 967 296 ns (i.e., the value of dataset expressed in
TimeInterval asymmetryCorrectionPortDS.ingressLatency = -2^48).
Step 18: Observe that the DUT transmits PDELAY_REQ message on port P1 with
Step 16: Observe that the DUT transmits PDELAY_REQ message on port P1 with
following parameters to ensure the DUT is ready with configured
asymmetryCorrectionPortDS.ingressLatency value.
......@@ -116,11 +108,7 @@
Message Type = 0x01
Domain Number = DN1
Step 19: Check whether the non-zero absolute value of currentDS.
offsetFromMaster in DUT becomes lowest as possible to ensure that
the DUT synchronizes it's time with TEE.
Step 20: Get currentDS.meanDelay (MD3) of DUT.
Step 17: Get currentDS.meanDelay (MD3) of DUT.
Step 21: Verify that MD3 is greater than MD1.
Step 18: Verify that MD3 is greater than MD1.
......@@ -81,7 +81,7 @@
# | | #
# | <Get DUT's time (DTS1)> | #
# | | #
# | DTS1 - SEET1 < 1 | #
# | DTS1 - SEET1 > 0 | #
# | | #
# | <Configure timestampCorrectionPortDS.ingressLatency | #
# | value to 2^(32+16)> | #
......@@ -105,7 +105,7 @@
# | | #
# | <Get DUT's time (DTS2)> | #
# | | #
# | DTS2 - SEET2 > 1 | #
# | DTS2 - SEET2 < 0 | #
# | | #
# | <Configure timestampCorrectionPortDS.ingressLatency | #
# | value to -2^(32+16)> | #
......@@ -129,7 +129,7 @@
# | | #
# | <Get DUT's time (DTS3)> | #
# | | #
# | SEET3 - DTS3 > 1 | #
# | SEET3 - DTS3 < 0 | #
# | | #
# #
# Legends : #
......@@ -384,7 +384,7 @@
# Step 26: Get DUT's time and convert it into epoch Timestamp (DTS3). #
# #
# Step 27: Verify that time difference of SEET3 and DTS3 is greater than 1. #
# (i.e., SEET3 - DTS3 > 1) #
# (i.e., SEET3 - DTS3 > 0) #
# #
###############################################################################
# #
......@@ -1038,7 +1038,7 @@ LOG -level 3 -msg "SEET1 = [nano $SEET1] ns"
LOG -level 3 -msg "----------------------------------------------"
LOG -level 0 -msg "DTS1 - SEET1 = [nano [expr $DTS1 - $SEET1]] ns (formula: DTS1 - SEET1)"
if {!([expr $DTS1 - $SEET1] < 1)} {
if {!([expr $DTS1 - $SEET1] < 0)} {
if {$SKIP_VALIDATION != 1} {
......
#! /usr/bin/tclsh
###############################################################################
# Test Case : tc_conf_ptp-ha_peg_002 #
# Test Case Version : 1.3 #
# Test Case Version : 1.2 #
# Component Name : ATTEST PTP-HA CONFORMANCE TEST SUITE #
# Module Name : PTP ExternalPortConfiguration Group (PEG) #
# #
......@@ -159,11 +159,9 @@
# functions. #
# c) Moved timeout calculation to #
# PTP-HA global file. #
# 1.3 Apr/2019 CERN Added sleep before checking PASSIVE#
# state. #
# #
###############################################################################
# Copyright (c) 2018 - 2019 CERN #
# Copyright (c) 2018 CERN #
###############################################################################
global dut_log_msg
......@@ -313,6 +311,7 @@ STEP 3
LOG -level 0 -msg "$dut_log_msg(CHECK_STATE_PASSIVE_P1_V)"
# JCB: Check done too early after the restart of PPSI
sleep 2
if {![ptp_ha::dut_check_ptp_port_state \
......
......@@ -360,7 +360,7 @@ STEP 7
LOG -level 0 -msg "$dut_log_msg(WAIT_ANNOUNCE_RECEIPT_TIMEOUT)"
sleep [expr $::ptp_ha_bmca + 1]
sleep $::ptp_ha_bmca
###############################################################################
# Step 8 : Verify that the port status of P1 in DUT is in MASTER state. #
......
......@@ -348,7 +348,7 @@ STEP 7
LOG -level 0 -msg "$dut_log_msg(WAIT_ANNOUNCE_RECEIPT_TIMEOUT)"
sleep [expr $::ptp_ha_bmca + 1]
sleep $::ptp_ha_bmca
###############################################################################
# Step 8 : Verify that the port status of P1 in DUT is in MASTER state. #
......
......@@ -354,7 +354,7 @@ STEP 7
LOG -level 0 -msg "$dut_log_msg(WAIT_ANNOUNCE_RECEIPT_TIMEOUT)"
sleep [expr $::ptp_ha_bmca + 1]
sleep $::ptp_ha_bmca
###############################################################################
# Step 8 : Verify that the port status of P1 in DUT is in MASTER state. #
......
......@@ -8,7 +8,7 @@
########################################################################################
# File Name : vlan_array.tcl #
# File Version : 1.28 #
# File Version : 1.27 #
# Component Name : NET-O2 ATTEST DUT Command Line Interface (CLI) #
# Module Name : VLAN #
# #
......@@ -81,7 +81,6 @@
# 1.27 Feb/2008 NET-O2 Updated function name #
# convert_macaddress_to_user_dut to #
# vlan_convert_macaddress_to_user_dut #
# 1.28 Apr/2020 NET-O2 Updated calculation of VLAN mask (bug fix) #
########################################################################################
########################################################################################
......
ATTEST(TM) WRPTP Version 1.1 Release 1.3
==========================================
Copyright (c) 2018 - 2019 CERN. All rights reserved.
Date of release: 01-Apr-2019
A1. What's New?
===============
None.
A2. Recent Changes
==================
1) Removed verification of NON_WR in WCG_002 test case.
A3. Dependent Packages
======================
This release is compatible with the following packages
ATTEST Framework : Attest 6.2R4.2 and higher versions
ATTEST Common : Attest Common 2.0R4.3 and higher versions
A4. Known Issues in this Release
================================
None.
ATTEST(TM) WRPTP Version 1.1 Release 1.2
==========================================
Copyright (c) 2018 - 2019 CERN. All rights reserved.
......@@ -271,7 +241,6 @@ Releases - History
-----------------------------------------------------------------------------
Version Release Type Release Date
-----------------------------------------------------------------------------
1.1R1.3 Patch Release 01-Apr-2019
1.1R1.2 Patch Release 30-Jan-2019
1.1R1.1 Patch Release 10-Jan-2019
1.1R1 Minor Release 12-Dec-2018
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment