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