Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Testing
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Testing
Commits
75823d50
Commit
75823d50
authored
Mar 20, 2014
by
Grzegorz Daniluk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testDoc: adding functional and performance synchronization tests
parent
3a8006b5
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
408 additions
and
3 deletions
+408
-3
switch-release-tests.tex
doc/spec/switch-release-tests/src/switch-release-tests.tex
+6
-2
synchronization-functional.tex
...c/switch-release-tests/src/synchronization-functional.tex
+179
-1
synchronization-performance.tex
.../switch-release-tests/src/synchronization-performance.tex
+223
-0
No files found.
doc/spec/switch-release-tests/src/switch-release-tests.tex
View file @
75823d50
...
...
@@ -66,7 +66,7 @@
{
0.0001pt
\@
plus .2ex
}
%
{
\normalfont\normalsize\bfseries
}}
%\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\renewcommand
{
\thefootnote
}{
\alph
{
footnote
}}
%
\renewcommand{\thefootnote}{\alph{footnote}}
\counterwithin
{
paragraph
}{
subsubsection
}
\counterwithin
{
subparagraph
}{
paragraph
}
...
...
@@ -86,7 +86,7 @@
\title
{
White Rabbit Switch
\\
pre-release tests
}
\author
{
Grzegorz
e
Daniluk, Maciej Lipinski
\\
CERN
}
\author
{
Grzegorz Daniluk, Maciej Lipinski
\\
CERN
}
% \date
\maketitle
% \thispagestyle{empty}
...
...
@@ -147,6 +147,10 @@
2008.
\\
\vspace*
{
-2em
}
\bibitem
{
WRCalib
}
Grzegorz Daniluk
\emph
{
White Rabbit calibration proposal
}
\\
\vspace*
{
-2em
}
\end{thebibliography}
...
...
doc/spec/switch-release-tests/src/synchronization-functional.tex
View file @
75823d50
\section
{
Synchronization functional
}
\label
{
chap:synch-functional
}
\ No newline at end of file
\label
{
chap:synch-functional
}
The purpose of these tests is to verify the basic synchronization capabilities
of the switch.
{
\bf
Note:
}
Ports of WR Switch are numbered in tests below starting from 0 as in
configuration files, while ports on a front panel of a switch are numbered
starting from 1.
\paragraph
{
Hardware requirements
}
\vspace
{
12pt
}
\begin{itemize}
\item
WR Switch under test
\item
3x Simple PCIe FMC Carrier (SPEC) with FMC DIO 5-channel module
\item
1x 4-channel oscilloscope (e.g. 200MHz, 2GS/s)
\item
1x non-WR, PTP (IEEE1588-2008) Switch
\item
1x clock reference producing 10MHz and 1-PPS signal (e.g. GPSDO or
Cesium atomic clock)
\end{itemize}
\paragraph
{
Default Switch Configuration
}
\begin{table}
[ht!]
\begin{tabular}
{
l l l
}
PPSI
&
port 0:
&
slave
\\
&
other ports:
&
master
\\
\end{tabular}
\end{table}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
WR synchronization
}
These tests verify the synchronization between White Rabbit devices and the
switch under test.
%\newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection
{
Master and Slave mode
}
\paragraph
{
Description
}
The test verifies whether the switch is capable of synchronizing to another WR
Master device and provide synchronization to WR Slave devices.
\paragraph
{
Test setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch:
&
{
\bf
port 0
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Master
}
mode
\\
WR Switch:
&
{
\bf
port 2
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
WR Switch:
&
{
\bf
port 18
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
Master SPEC:
&
{
\bf
1-PPS out
}
&
-- channel 1 of the oscilloscope
\\
WR Switch:
&
{
\bf
1-PPS out
}
&
-- channel 2 of the oscilloscope
\\
Slave SPECs:
&
{
\bf
1-PPS out
}
&
-- channels 3 and 4 of the oscilloscope
\\
\end{tabular}
\end{table}
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
\emph
{
wrsw
\_
pstats
}
tool on WR Switch reports frames flow on ports 0, 2,
18
\item
\emph
{
wr
\_
mon
}
tool on WR Switch reports
\emph
{
TRACK
\_
PHASE
}
servo state
and
\emph
{
0 ns
}
clock offset
\item
\emph
{
gui
}
or
\emph
{
stat
}
command on slave SPECs reports
\emph
{
TRACK
\_
PHASE
}
servo state and
\emph
{
0 ns
}
clock offset
\item
Oscilloscope triggered on a rising edge of 1-PPS output of the Master
SPEC shows stable 1-PPS signals generated by the Switch and 2 Slave SPECs
\end{itemize*}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection
{
GrandMaster mode
}
\paragraph
{
Description
}
The test verifies whether the switch is capable of locking to external 10MHz and
1-PPS from reference clock like GPSDO or Cesium.
\paragraph
{
Switch Configuration
}
\begin{table}
[ht!]
\begin{tabular}
{
l l
}
\emph
{
wrsw
\_
hal.conf
}
&
mode = "GrandMaster"
\\
\end{tabular}
\end{table}
\paragraph
{
Test setup
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch:
&
{
\bf
port 2
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
WR Switch:
&
{
\bf
port 18
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
WR Switch:
&
{
\bf
1-PPS in
}
&
-- 1-PPS signal from external atomic clock
\\
WR Switch:
&
{
\bf
10 MHz in
}
&
-- 10 MHz signal from external atomic clock
\\
WR Switch:
&
{
\bf
1-PPS out
}
&
-- channel 1 of the oscilloscope
\\
Slave SPECs:
&
{
\bf
1-PPS out
}
&
-- channels 2 and 3 of the oscilloscope
\\
\end{tabular}
\end{table}
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
\emph
{
lm32-vuart
}
tool on WR Switch reports that device is locked to
external clock:
\\
\texttt
{
Sequencer
\_
state 8 mode 1 Alignment
\_
state 7 HL1 EL1 ML0
}
\item
\emph
{
gui
}
or
\emph
{
stat
}
command on slave SPECs reports
\emph
{
TRACK
\_
PHASE
}
servo state and
\emph
{
0 ns
}
clock offset
\item
Oscilloscope triggered on a rising edge of 1-PPS output of the WR Switch
shows stable skew between 1-PPS signals generated by the Switch and 2 Slave SPECs
\end{itemize*}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
IEEE-1588 synchronization
}
These tests verify the ability of WR Switch to synchronize also non-WR (regular
IEEE1588-2008) devices.
\subsubsection
{
Master for non-WR IEEE-1588 device
}
\paragraph
{
Description
}
The test verifies if regular IEEE-1588 device is able to synchronize to a WR
Master port of the WR Switch under test.
\paragraph
{
Test setup
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch:
&
{
\bf
port 2
}
&
-- non-WR IEEE1588-2008 slave device
\\
WR Switch:
&
{
\bf
1-PPS out
}
&
-- channel 1 of the oscilloscope
\\
non-WR device:
&
{
\bf
1-PPS out
}
&
-- channel 2 of the oscilloscope
\\
\end{tabular}
\end{table}
{
\bf
Note:
}
If non-WR slave device has only 10/100 Mbps Ethernet port you have
to connect it through 10/100/1000 Mbps Ethernet switch since WR Switch is able
to work only with 1 Gbps Ethernet.
\\
You should connect 1-PPS outputs to the oscilloscope only if your non-WR
IEEE1588 device is able to produce 1-PPS signal.
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
non-WR IEEE-1588 device reports it managed to synchronize to WR Switch
\item
Oscilloscope triggered on a rising edge of 1-PPS output of the WR Switch
shows stable skew between 1-PPS signals generated by the Switch and non-WR
device.
\end{itemize*}
%\newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\subsubsection{Slaving to non-WR IEEE-1588 device}
%
%\paragraph{Description}
%
%\paragraph{Test setup}
%
%\paragraph{Test passed if}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
Getting initial time from NTP server
}
\paragraph
{
Description
}
The test verifies if WR Switch under test is able to get its initial time on
boot time from an NTP server.
\paragraph
{
Switch Configuration
}
\begin{table}
[ht!]
\begin{tabular}
{
l l
}
\emph
{
/wr/etc/wr
\_
date.conf
}
&
ntpserver
$
<
$
your NTP server address
$
>
$
\\
\end{tabular}
\end{table}
\paragraph
{
Test setup
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch:
&
{
\bf
port 2
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
\end{tabular}
\end{table}
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
After rebooting the switch and letting Slave SPEC to synchronize,
\emph
{
gui
}
command on SPEC reports date and time consistent with NTP server
time.
\end{itemize*}
doc/spec/switch-release-tests/src/synchronization-performance.tex
View file @
75823d50
\section
{
Synchronization performance
}
\label
{
chap:synch-performance
}
The purpose of these tests if to verify the performance of WR synchronization on
the WR Switch under test.
\paragraph
{
Hardware requirements
}
\vspace
{
12pt
}
\begin{itemize}
\item
2x WR Switch under test (calibrated according to WR calibration document
\cite
{
WRCalib
}
)
\item
3x Simple PCIe FMC Carrier (SPEC) with FMC DIO 5-channel module
(calibrated according to WR calibration document
\cite
{
WRCalib
}
)
\item
1x 4-channel oscilloscope (e.g. 200MHz, 2GS/s)
\item
1x clock reference producing 10MHz and 1-PPS signal (e.g. GPSDO or
Cesium atomic clock)
\item
1x Link breaker device (to be built from fiber switches)
\item
1x Networking performance tester (the same used in forwarding tests,
sections
\ref
{
chap:fwd-functional
}
,
\ref
{
chap:fwd-performance
}
)
\end{itemize}
\paragraph
{
Default Switch Configuration
}
\begin{table}
[ht!]
\begin{tabular}
{
l l l
}
PPSI
&
port 0:
&
slave
\\
&
other ports:
&
master
\\
\end{tabular}
\end{table}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
Long term synchronization
}
These tests verify if the WR Switch under test is able to perform a long term
synchronization without becoming unlocked and without any time jumps.
\\
\noindent
Tests should be run over a period of several days/weeks.
\subsubsection
{
Master and Slave mode
}
\paragraph
{
Description
}
The test verifies whether the switch will be constantly synchronized to another
WR Master over long period of time and if it will provide stable timing to other
WR Slaves in the hierarchy.
\paragraph
{
Test setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch:
&
{
\bf
port 0
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Master
}
mode
\\
WR Switch:
&
{
\bf
port 2
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
WR Switch:
&
{
\bf
port 18
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
Master SPEC:
&
{
\bf
1-PPS out
}
&
-- channel 1 of the oscilloscope
\\
WR Switch:
&
{
\bf
1-PPS out
}
&
-- channel 2 of the oscilloscope
\\
Slave SPECs:
&
{
\bf
1-PPS out
}
&
-- channels 3 and 4 of the oscilloscope
\\
\end{tabular}
\end{table}
\paragraph
{
Oscilloscope setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
l l
}
{
\bf
channels 1,3,4
}
&
200mV/div, offset 1.25V, DC 50 Ohm
\\
{
\bf
channel 2
}
&
200mV/div, offset 800mV, DC 50 Ohm
\\
{
\bf
timescale
}
&
1ns/div
\\
{
\bf
persistent mode
}
&
ON
\\
\end{tabular}
\end{table}
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
Oscilloscope in persistent mode shows stable 1-PPS relation between all
devices - i.e. each of the device produces a single, blurred trace on the
screen
\item
\emph
{
wr
\_
mon
}
tool on WR Switch reports through the whole test period:
\begin{itemize}
\item
\emph
{
lock
}
always 1
\item
\emph
{
servo state
}
always
\emph
{
TRACK
\_
PHASE
}
\item
\emph
{
mu
}
changes without any sudden, few-ns jumps
\item
\emph
{
cko
}
always in a range -50ps; +50ps
\end{itemize}
\end{itemize*}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection
{
GrandMaster mode
}
\paragraph
{
Description
}
The test verifies whether the switch under test is able to work stable in a
GrandMaster mode being locked to an external clock (e.g. GPSDO or Cesium)
\paragraph
{
Test setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch:
&
{
\bf
port 2
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
WR Switch:
&
{
\bf
port 18
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Slave
}
mode
\\
WR Switch:
&
{
\bf
1-PPS in
}
&
-- 1-PPS signal from external atomic clock
\\
WR Switch:
&
{
\bf
10 MHz in
}
&
-- 10 MHz signal from external atomic clock
\\
WR Switch:
&
{
\bf
1-PPS out
}
&
-- channel 1 of the oscilloscope
\\
ext clock:
&
{
\bf
1-PPS out
}
&
-- channel 2 of the oscilloscope
\\
\end{tabular}
\end{table}
\paragraph
{
Oscilloscope setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
l l
}
{
\bf
channel 1
}
&
200mV/div, offset 800mV, DC 50 Ohm
\\
{
\bf
channel 2
}
&
setting dependent on external clock device
\\
{
\bf
persistent mode
}
&
ON
\\
\end{tabular}
\end{table}
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
Oscilloscope in persistent mode shows stable 1-PPS relation between the
external clock and the WR Switch under test
\item
\emph
{
lm32-vuart
}
tool on WR Switch reports through the whole test
period that device is locked to external clock:
\\
\texttt
{
Sequencer
\_
state 8 mode 1 Alignment
\_
state 7 HL1 EL1 ML0
}
\item
\emph
{
stat
}
command on slave SPECs reports through the whole test
period:
\begin{itemize}
\item
\emph
{
lock
}
always
\emph
{
1
}
\item
\emph
{
servo state
}
always
\emph
{
TRACK
\_
PHASE
}
\item
\emph
{
mu
}
changes without any sudden, few-ns jumps
\item
\emph
{
cko
}
always in a range -50ps; +50ps
\end{itemize}
\end{itemize*}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
Locking on link up
}
The test verifies if the switch under test always locks with sub-nanosecond
offset to another WR Master device when the physical link is established.
\paragraph
{
Test setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch:
&
{
\bf
port 0
}
&
-- SPEC running WR PTP Core in
\emph
{
WR Master
}
mode
\\
Master SPEC:
&
{
\bf
1-PPS out
}
&
-- channel 1 of the oscilloscope
\\
WR Switch:
&
{
\bf
1-PPS out
}
&
-- channel 2 of the oscilloscope
\\
\end{tabular}
\end{table}
\paragraph
{
Oscilloscope setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
l l
}
{
\bf
channel 1
}
&
200mV/div, offset 1.25V, DC 50Ohm
\\
{
\bf
channel 2
}
&
200mV/div, offset 800mV, DC 50Ohm
\\
{
\bf
persistent mode
}
&
ON
\\
\end{tabular}
\end{table}
\paragraph
{
Link breaker testing device setup
}
\vspace
{
12pt
}
Program infinite loop:
\\
\texttt
{
Link down
}
\\
\texttt
{
sleep 10s
}
\\
\texttt
{
Link up
}
\\
\texttt
{
sleep 50s
}
\\
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
Oscilloscope in persistent mode shows stable 1-PPS relation between the
Master SPEC and the WR Switch under test - i.e. each of the devices produces
a single, blurred trace on the screen
\end{itemize*}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection
{
Synchronization with background traffic
}
The test verifies if two WR Switches are able to perform stable, sub-nanosecond
synchronization when a background, non-PTP traffic of various loads is present.
\paragraph
{
Test setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
r l l
}
WR Switch 1:
&
{
\bf
port 17
}
&
-- Networking tester device
\\
WR Switch 1:
&
{
\bf
port 2
}
&
-- port 0 of WR Switch 2
\\
WR Switch 2:
&
{
\bf
port 0
}
&
-- port 2 of WR Switch 1
\\
WR Switch 2:
&
{
\bf
port 17
}
&
-- Networking tester device
\\
WR Switch 1:
&
{
\bf
1-PPS out
}
&
-- channel 1 of the oscilloscope
\\
WR Switch 2:
&
{
\bf
1-PPS out
}
&
-- channel 2 of the oscilloscope
\\
\end{tabular}
\end{table}
\paragraph
{
Oscilloscope setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
l l
}
{
\bf
channel 1, 2
}
&
200mV/div, offset 800mV, DC 50Ohm
\\
{
\bf
timescale
}
&
1ns/div
\\
{
\bf
persistent mode
}
&
ON
\\
\end{tabular}
\end{table}
\paragraph
{
Networking tester setup
}
\vspace
{
12pt
}
\begin{table}
[ht!]
\begin{tabular}
{
l l l
}
{
\bf
Traffic
}
&
send to:
&
WR Switch 1, port 17
\\
&
receive on:
&
WR Switch 2, port 17
\\
{
\bf
Frames
}
&
broadcast
&
dstMAC =
\emph
{
FF:FF:FF:FF:FF:FF
}
\\
&
size [bytes]
&
64
\\
&
loads [
\%
]
&
10, 20, 30, 40, 50, 60, 70, 80, 90, 100
\\
&
time of burst per load
&
5 min
\\
\end{tabular}
\end{table}
\paragraph
{
Test passed if
}
\begin{itemize*}
\item
For each load of non-PTP frames Oscilloscope in persistent mode shows
stable 1-PPS relation between two WR Switches
\\
\item
\emph
{
wr
\_
mon
}
tool on WR Switch 2 reports through the test period for
each frames load:
\begin{itemize}
\item
\emph
{
lock
}
always 1
\item
\emph
{
servo state
}
always
\emph
{
TRACK
\_
PHASE
}
\item
\emph
{
mu
}
changes without any sudden, few-ns jumps
\item
\emph
{
cko
}
always in a range -50ps; +50ps
\end{itemize}
\end{itemize*}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment