1#!/bin/ksh
2#
3# This file and its contents are supplied under the terms of the
4# Common Development and Distribution License ("CDDL"), version 1.0.
5# You may only use this file in accordance with the terms of version
6# 1.0 of the CDDL.
7#
8# A full copy of the text of the CDDL should have accompanied this
9# source.  A copy of the CDDL is also available via the Internet at
10# http://www.illumos.org/license/CDDL.
11#
12
13#
14# Copyright (c) 2017, Joyent, Inc.
15# Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
16#
17
18soe_arg0="$(basename $0)"
19
20soe_overlay="soe_overlay$$"
21soe_dummy_ip="169.254.0.0"
22
23soe_port="2000"
24soe_vnetid=20
25soe_encap="vxlan"
26soe_search="direct"
27
28soe_etherstub="soe_teststub$$"
29
30function fatal
31{
32	typeset msg="$*"
33	[[ -z "$msg" ]] && msg="failed"
34	echo "TEST_FAIL: $vt_arg0: $msg" >&2
35	dladm delete-overlay $soe_overlay
36	dladm delete-etherstub $soe_etherstub
37	exit 1
38}
39
40function setup
41{
42	dladm create-overlay -t -v $soe_vnetid -e $soe_encap -s $soe_search \
43	    -p vxlan/listen_ip=$soe_dummy_ip -p direct/dest_ip=$soe_dummy_ip \
44	    -p direct/dest_port=$soe_port $soe_overlay || \
45	    fatal "failed to create overlay"
46
47	dladm create-etherstub $soe_etherstub || \
48	    fatal "failed to create etherstub"
49}
50
51function cleanup
52{
53	dladm delete-overlay $soe_overlay || \
54	    fatal "failed to remove overlay"
55	dladm delete-etherstub $soe_etherstub || \
56	    fatal "failed to remove etherstub"
57}
58
59function runtest
60{
61	dladm show-overlay $* > /dev/null 2>&1
62}
63
64function epass
65{
66	runtest $* || fatal "show-overlay=$* failed, expected success\n"
67}
68
69function efail
70{
71	runtest $* && fatal "show-overlay=$* succeeded, expected failure\n"
72}
73
74setup
75
76epass $soe_overlay
77efail $soe_etherstub
78efail $soe_etherstub $soe_overlay
79efail $soe_overlay $soe_etherstub
80
81cleanup
82
83print "TEST PASS: $soe_arg0"
84