]> git.baikalelectronics.ru Git - kernel.git/commitdiff
NTB: ntb_test: Add ntb_tool port tests
authorSerge Semin <fancer.lancer@gmail.com>
Wed, 6 Dec 2017 14:31:59 +0000 (17:31 +0300)
committerJon Mason <jdmason@kudzu.us>
Mon, 29 Jan 2018 03:17:24 +0000 (22:17 -0500)
Multi-port interface is now available in ntb_tool driver. According
to the new NTB API, there might be more than two devices connected over
NTB. It means each device can have multiple freely enumerated ports.
Each port got index assigned by NTB hardware driver. This test is
performed to determine the local and peer ports as well as their indexes.

Signed-off-by: Serge Semin <fancer.lancer@gmail.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
tools/testing/selftests/ntb/ntb_test.sh

index a8647ad891ebe8fddd28d18ebe5bbaef6a07816c..541ba70ad640ec3b014282ff5a8ae55564e4ba6e 100755 (executable)
@@ -127,6 +127,56 @@ function write_file()
        fi
 }
 
+function check_file()
+{
+       split_remote $1
+
+       if [[ "$REMOTE" != "" ]]; then
+               ssh "$REMOTE" "[[ -e ${VPATH} ]]"
+       else
+               [[ -e ${VPATH} ]]
+       fi
+}
+
+function find_pidx()
+{
+       PORT=$1
+       PPATH=$2
+
+       for ((i = 0; i < 64; i++)); do
+               PEER_DIR="$PPATH/peer$i"
+
+               check_file ${PEER_DIR} || break
+
+               PEER_PORT=$(read_file "${PEER_DIR}/port")
+               if [[ ${PORT} -eq $PEER_PORT ]]; then
+                       echo $i
+                       return 0
+               fi
+       done
+
+       return 1
+}
+
+function port_test()
+{
+       LOC=$1
+       REM=$2
+
+       echo "Running port tests on: $(basename $LOC) / $(basename $REM)"
+
+       LOCAL_PORT=$(read_file "$LOC/port")
+       REMOTE_PORT=$(read_file "$REM/port")
+
+       LOCAL_PIDX=$(find_pidx ${REMOTE_PORT} "$LOC")
+       REMOTE_PIDX=$(find_pidx ${LOCAL_PORT} "$REM")
+
+       echo "Local port ${LOCAL_PORT} with index ${REMOTE_PIDX} on remote host"
+       echo "Peer port ${REMOTE_PORT} with index ${LOCAL_PIDX} on local host"
+
+       echo "  Passed"
+}
+
 function link_test()
 {
        LOC=$1
@@ -327,6 +377,8 @@ function ntb_tool_tests()
 
        _modprobe ntb_tool
 
+       port_test "$LOCAL_TOOL" "$REMOTE_TOOL"
+
        write_file "Y" "$LOCAL_TOOL/link_event"
        write_file "Y" "$REMOTE_TOOL/link_event"