This repository contains various programs I wrote to measure the TSN capabilities
of three OLinuXino LIME2 boards I have.
## cyclictest like programs
clockres, latency-measure and packet-exchange are C programs wrote using
clockres, latency-measure and packet-exchange are C programs wrote using
the same structure as cyclictest, and borrows large portions of the cyclictest
the same structure as cyclictest, and borrows large portions of the cyclictest
code:
code:
...
@@ -12,8 +17,29 @@ can have it's priority set as an option, default is to 99. It writes results in
...
@@ -12,8 +17,29 @@ can have it's priority set as an option, default is to 99. It writes results in
* clockres is used to determine the resolution of the clock (CLOCK_MONOTONIC), by doing successive
* clockres is used to determine the resolution of the clock (CLOCK_MONOTONIC), by doing successive
calls to clock_gettime
calls to clock_gettime
* latency-measure is used to determine the maximum wakeup latency of a real-time thread. It is
* latency-measure is used to determine the maximum wakeup latency of a real-time thread. It is
a simplified version of cyclictest I wrote to have a better understanding and more control.
a simplified version of cyclictest I wrote to have a better understanding and more control.
* packet-exchange has a client and a server, which exchange UDP ethernet packets using real-time threads,
* packet-exchange has a client and a server, which exchange UDP ethernet packets using real-time threads,
and can send them on a ETF qdisc by setting a txtime timestamp.
and can send them on a ETF qdisc by setting a txtime timestamp. software timestamps can be generated using
* scripts contain useful bash scripts to be used on the boards
the SO_TIMESTAMPING option, and timestamps inside the userspace program, for measuring purposes. A RTT
option also exists to measure RTT of an UDP packet.
## Scripts
The scripts folder contains various useful bash scripts to avoid
typing long commands on the boards
## Measure analysis
The measure-analysis folder contains an automatically generated report with tables and
graphs of all measures done, which can be found in measure-analysis/measure-report.md
The report is generated by a python script on which json formatted sets of
measures can be imported (it can also parse and import cyclictest output)
The imported sets of measures are then stored in the measure folders, and the report
can then be generated with these measures.
Metadatas are included with the measures, such as the kernel version used, the boot parameters passed, various others parameters specific to the measure, etc... Measures measuring the same propriety are grouped together in tables and graphs, and are identified by their diverging metadatas. This is useful to analyse the effect of specific parameters on the measured propriety.