Home | History | Annotate | Download | only in virt
      1 #!/bin/sh
      2 # SPDX-License-Identifier: GPL-2.0-or-later
      3 # Copyright (c) 2018 Petr Vorel <pvorel (at] suse.cz>
      4 # Copyright (c) 2014-2017 Oracle and/or its affiliates. All Rights Reserved.
      5 # Author: Alexey Kodanev <alexey.kodanev (at] oracle.com>
      6 
      7 virt_type="macsec"
      8 VIRT_PERF_THRESHOLD=${VIRT_PERF_THRESHOLD:-100}
      9 IPSEC_MODE="transport"
     10 
     11 TST_NEEDS_TMPDIR=1
     12 TST_TESTFUNC=virt_netperf_msg_sizes
     13 TST_SETUP=macsec_lib_setup
     14 TST_CLEANUP=macsec_lib_cleanup
     15 TST_NEEDS_DRIVERS="macsec"
     16 . ipsec_lib.sh
     17 . virt_lib.sh
     18 
     19 # MACSEC_LIB_SETUP:
     20 # [ cipher { default | gcm-aes-128 } ] [ encrypt { on | off } ]
     21 # [ protect { on | off } ] [ replay { on | off } ] [ window WINDOW ]
     22 # [ validate { strict | check | disabled } ]
     23 macsec_lib_setup()
     24 {
     25 	local keyid0="01"
     26 	local keyid1="02"
     27 	local sa=0
     28 	local h0=$(tst_hwaddr)
     29 	local h1=$(tst_hwaddr rhost)
     30 	local cmd="ip macsec add ltp_v0"
     31 	local key0="01234567890123456789012345678901"
     32 	local key1="98765432109876543210987612343434"
     33 
     34 	ipsec_lib_setup
     35 
     36 	tst_res TINFO "setup IPsec $IPSEC_MODE/$IPSEC_PROTO $EALGO"
     37 	tst_ipsec lhost $(tst_ipaddr) $(tst_ipaddr rhost)
     38 	tst_ipsec rhost $(tst_ipaddr rhost) $(tst_ipaddr)
     39 
     40 	virt_setup "icvlen 16 encodingsa $sa $MACSEC_LIB_SETUP"
     41 
     42 	ROD $cmd tx sa $sa pn 100 on key $keyid0 $key0
     43 	ROD $cmd rx address $h1 port 1
     44 	ROD $cmd rx address $h1 port 1 sa $sa pn 100 on key $keyid1 $key1
     45 
     46 	tst_rhost_run -s -c "$cmd tx sa $sa pn 100 on key $keyid1 $key1"
     47 	tst_rhost_run -s -c "$cmd rx address $h0 port 1"
     48 	tst_rhost_run -s -c \
     49 		"$cmd rx address $h0 port 1 sa $sa pn 100 on key $keyid0 $key0"
     50 }
     51 
     52 macsec_lib_cleanup()
     53 {
     54 	virt_cleanup
     55 	tst_ipsec_cleanup
     56 }
     57