Skip to content

Commit f52fe6e

Browse files
vladimirolteankuba-moo
authored andcommitted
selftests: net: tsn_lib: add window_size argument to isochron_do()
Make out-of-band testing (send a packet when its traffic class gate is closed, expecting it to be delayed) more predictable by allowing the window size to be customized by isochron_do(). From man isochron-send, the window size alters the advance time (the delta between the transmission time of the packet, and its expected TX time when using SO_TXTIME or tc-taprio on the sender). In absence of the argument, isochron-send defaults to maximizing the advance time (making it equal to the cycle length). The default behavior is exactly what is problematic. An advance time that is too large will make packets intended to be out-of-band still be potentially in-band with an open gate from the schedule's previous cycle. We need to allow that advance time to be reduced. Perhaps a bit confusingly, isochron_do() has a shift_time argument currently, but that does not help here. The shift time shifts both the user space wakeup time and the expected TX time by equal amounts, it is unable of bringing them closer to one another. Set the window size properly for the Ocelot PSFP selftest as well. That used to work due to a very carefully chosen SHIFT_TIME_NS. I've re-tested that the test still works properly. Signed-off-by: Vladimir Oltean <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent efa6eb7 commit f52fe6e

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

tools/testing/selftests/drivers/net/ocelot/psfp.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ run_test()
266266
"${base_time}" \
267267
"${CYCLE_TIME_NS}" \
268268
"${SHIFT_TIME_NS}" \
269+
"${GATE_DURATION_NS}" \
269270
"${NUM_PKTS}" \
270271
"${STREAM_VID}" \
271272
"${STREAM_PRIO}" \

tools/testing/selftests/net/forwarding/tsn_lib.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ isochron_do()
182182
local base_time=$1; shift
183183
local cycle_time=$1; shift
184184
local shift_time=$1; shift
185+
local window_size=$1; shift
185186
local num_pkts=$1; shift
186187
local vid=$1; shift
187188
local priority=$1; shift
@@ -212,6 +213,10 @@ isochron_do()
212213
extra_args="${extra_args} --shift-time=${shift_time}"
213214
fi
214215

216+
if ! [ -z "${window_size}" ]; then
217+
extra_args="${extra_args} --window-size=${window_size}"
218+
fi
219+
215220
if [ "${use_l2}" = "true" ]; then
216221
extra_args="${extra_args} --l2 --etype=0xdead ${vid}"
217222
receiver_extra_args="--l2 --etype=0xdead"

0 commit comments

Comments
 (0)