selftests: net: tsn_lib: allow multiple isochron receivers

Move the PID variable for the isochron receiver into a separate
namespace per stats port, to allow multiple receivers (and/or
orchestration daemons) to be instantiated by the same script.

Preserve the existing behavior by making isochron_do() use the default
stats TCP port of 5000.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Vladimir Oltean 2022-09-24 00:00:14 +03:00 коммит произвёл Jakub Kicinski
Родитель 7ff9396ee8
Коммит a7ce95ac83
1 изменённых файлов: 11 добавлений и 5 удалений

Просмотреть файл

@ -147,7 +147,9 @@ isochron_recv_start()
{
local if_name=$1
local uds=$2
local extra_args=$3
local stats_port=$3
local extra_args=$4
local pid="isochron_pid_${stats_port}"
if ! [ -z "${uds}" ]; then
extra_args="${extra_args} --unix-domain-socket ${uds}"
@ -158,16 +160,20 @@ isochron_recv_start()
--sched-priority 98 \
--sched-fifo \
--utc-tai-offset ${UTC_TAI_OFFSET} \
--stats-port ${stats_port} \
--quiet \
${extra_args} & \
isochron_pid=$!
declare -g "${pid}=$!"
sleep 1
}
isochron_recv_stop()
{
{ kill ${isochron_pid} && wait ${isochron_pid}; } 2> /dev/null
local stats_port=$1
local pid="isochron_pid_${stats_port}"
{ kill ${!pid} && wait ${!pid}; } 2> /dev/null
}
isochron_do()
@ -219,7 +225,7 @@ isochron_do()
cpufreq_max ${ISOCHRON_CPU}
isochron_recv_start "${h2}" "${receiver_uds}" "${receiver_extra_args}"
isochron_recv_start "${h2}" "${receiver_uds}" 5000 "${receiver_extra_args}"
isochron send \
--interface ${sender_if_name} \
@ -240,7 +246,7 @@ isochron_do()
${extra_args} \
--quiet
isochron_recv_stop
isochron_recv_stop 5000
cpufreq_restore ${ISOCHRON_CPU}
}