Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: move macsec offload tests from net/rtnetlink to drivers/net/netdvesim

We're going to expand this test, and macsec offload is only lightly
related to rtnetlink.

Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/a1f92c250cc129b4bb111a206c4b560bab4e24a5.1730929545.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Sabrina Dubroca and committed by
Jakub Kicinski
415b7cef de187a39

+65 -68
+1
tools/testing/selftests/drivers/net/netdevsim/Makefile
··· 11 11 fib.sh \ 12 12 fib_notifications.sh \ 13 13 hw_stats_l3.sh \ 14 + macsec-offload.sh \ 14 15 nexthop.sh \ 15 16 peer.sh \ 16 17 psample.sh \
+1
tools/testing/selftests/drivers/net/netdevsim/config
··· 1 1 CONFIG_DUMMY=y 2 2 CONFIG_GENEVE=m 3 3 CONFIG_IPV6=y 4 + CONFIG_MACSEC=m 4 5 CONFIG_NETDEVSIM=m 5 6 CONFIG_NET_SCH_MQPRIO=y 6 7 CONFIG_NET_SCH_MULTIQ=y
+63
tools/testing/selftests/drivers/net/netdevsim/macsec-offload.sh
··· 1 + #!/bin/bash 2 + # SPDX-License-Identifier: GPL-2.0-only 3 + 4 + source ethtool-common.sh 5 + 6 + NSIM_NETDEV=$(make_netdev) 7 + MACSEC_NETDEV=macsec_nsim 8 + 9 + set -o pipefail 10 + 11 + if ! ethtool -k $NSIM_NETDEV | grep -q 'macsec-hw-offload: on'; then 12 + echo "SKIP: netdevsim doesn't support MACsec offload" 13 + exit 4 14 + fi 15 + 16 + if ! ip link add link $NSIM_NETDEV $MACSEC_NETDEV type macsec offload mac 2>/dev/null; then 17 + echo "SKIP: couldn't create macsec device" 18 + exit 4 19 + fi 20 + ip link del $MACSEC_NETDEV 21 + 22 + # 23 + # test macsec offload API 24 + # 25 + 26 + ip link add link $NSIM_NETDEV "${MACSEC_NETDEV}" type macsec port 4 offload mac 27 + check $? 28 + 29 + ip link add link $NSIM_NETDEV "${MACSEC_NETDEV}2" type macsec address "aa:bb:cc:dd:ee:ff" port 5 offload mac 30 + check $? 31 + 32 + ip link add link $NSIM_NETDEV "${MACSEC_NETDEV}3" type macsec sci abbacdde01020304 offload mac 33 + check $? 34 + 35 + ip link add link $NSIM_NETDEV "${MACSEC_NETDEV}4" type macsec port 8 offload mac 2> /dev/null 36 + check $? '' '' 1 37 + 38 + ip macsec add "${MACSEC_NETDEV}" tx sa 0 pn 1024 on key 01 12345678901234567890123456789012 39 + check $? 40 + 41 + ip macsec add "${MACSEC_NETDEV}" rx port 1234 address "1c:ed:de:ad:be:ef" 42 + check $? 43 + 44 + ip macsec add "${MACSEC_NETDEV}" rx port 1234 address "1c:ed:de:ad:be:ef" sa 0 pn 1 on \ 45 + key 00 0123456789abcdef0123456789abcdef 46 + check $? 47 + 48 + ip macsec add "${MACSEC_NETDEV}" rx port 1235 address "1c:ed:de:ad:be:ef" 2> /dev/null 49 + check $? '' '' 1 50 + 51 + for dev in ${MACSEC_NETDEV}{,2,3} ; do 52 + ip link del $dev 53 + check $? 54 + done 55 + 56 + 57 + if [ $num_errors -eq 0 ]; then 58 + echo "PASSED all $((num_passes)) checks" 59 + exit 0 60 + else 61 + echo "FAILED $num_errors/$((num_errors+num_passes)) checks" 62 + exit 1 63 + fi
-68
tools/testing/selftests/net/rtnetlink.sh
··· 21 21 kci_test_vrf 22 22 kci_test_encap 23 23 kci_test_macsec 24 - kci_test_macsec_offload 25 24 kci_test_ipsec 26 25 kci_test_ipsec_offload 27 26 kci_test_fdb_get ··· 557 558 fi 558 559 559 560 end_test "PASS: macsec" 560 - } 561 - 562 - kci_test_macsec_offload() 563 - { 564 - sysfsd=/sys/kernel/debug/netdevsim/netdevsim0/ports/0/ 565 - sysfsnet=/sys/bus/netdevsim/devices/netdevsim0/net/ 566 - probed=false 567 - local ret=0 568 - run_cmd_grep "^Usage: ip macsec" ip macsec help 569 - if [ $? -ne 0 ]; then 570 - end_test "SKIP: macsec: iproute2 too old" 571 - return $ksft_skip 572 - fi 573 - 574 - if ! mount | grep -q debugfs; then 575 - mount -t debugfs none /sys/kernel/debug/ &> /dev/null 576 - fi 577 - 578 - # setup netdevsim since dummydev doesn't have offload support 579 - if [ ! -w /sys/bus/netdevsim/new_device ] ; then 580 - run_cmd modprobe -q netdevsim 581 - 582 - if [ $ret -ne 0 ]; then 583 - end_test "SKIP: macsec_offload can't load netdevsim" 584 - return $ksft_skip 585 - fi 586 - probed=true 587 - fi 588 - 589 - echo "0" > /sys/bus/netdevsim/new_device 590 - while [ ! -d $sysfsnet ] ; do :; done 591 - udevadm settle 592 - dev=`ls $sysfsnet` 593 - 594 - ip link set $dev up 595 - if [ ! -d $sysfsd ] ; then 596 - end_test "FAIL: macsec_offload can't create device $dev" 597 - return 1 598 - fi 599 - run_cmd_grep 'macsec-hw-offload: on' ethtool -k $dev 600 - if [ $? -eq 1 ] ; then 601 - end_test "FAIL: macsec_offload netdevsim doesn't support MACsec offload" 602 - return 1 603 - fi 604 - run_cmd ip link add link $dev kci_macsec1 type macsec port 4 offload mac 605 - run_cmd ip link add link $dev kci_macsec2 type macsec address "aa:bb:cc:dd:ee:ff" port 5 offload mac 606 - run_cmd ip link add link $dev kci_macsec3 type macsec sci abbacdde01020304 offload mac 607 - run_cmd_fail ip link add link $dev kci_macsec4 type macsec port 8 offload mac 608 - 609 - msname=kci_macsec1 610 - run_cmd ip macsec add "$msname" tx sa 0 pn 1024 on key 01 12345678901234567890123456789012 611 - run_cmd ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" 612 - run_cmd ip macsec add "$msname" rx port 1234 address "1c:ed:de:ad:be:ef" sa 0 pn 1 on \ 613 - key 00 0123456789abcdef0123456789abcdef 614 - run_cmd_fail ip macsec add "$msname" rx port 1235 address "1c:ed:de:ad:be:ef" 615 - # clean up any leftovers 616 - for msdev in kci_macsec{1,2,3,4} ; do 617 - ip link del $msdev 2> /dev/null 618 - done 619 - echo 0 > /sys/bus/netdevsim/del_device 620 - $probed && rmmod netdevsim 621 - 622 - if [ $ret -ne 0 ]; then 623 - end_test "FAIL: macsec_offload" 624 - return 1 625 - fi 626 - end_test "PASS: macsec_offload" 627 561 } 628 562 629 563 #-------------------------------------------------------------------