xref: /illumos-gate/usr/src/test/os-tests/tests/mac/mac_ktest.ksh (revision 1f8b8a0145321ca42ee324565958ceb82a14ee7a)
13d6ee46bSPatrick Mooney#!/usr/bin/ksh
23d6ee46bSPatrick Mooney#
33d6ee46bSPatrick Mooney# This file and its contents are supplied under the terms of the
43d6ee46bSPatrick Mooney# Common Development and Distribution License ("CDDL"), version 1.0.
53d6ee46bSPatrick Mooney# You may only use this file in accordance with the terms of version
63d6ee46bSPatrick Mooney# 1.0 of the CDDL.
73d6ee46bSPatrick Mooney#
83d6ee46bSPatrick Mooney# A full copy of the text of the CDDL should have accompanied this
93d6ee46bSPatrick Mooney# source.  A copy of the CDDL is also available via the Internet at
103d6ee46bSPatrick Mooney# http://www.illumos.org/license/CDDL.
113d6ee46bSPatrick Mooney#
123d6ee46bSPatrick Mooney
133d6ee46bSPatrick Mooney#
143d6ee46bSPatrick Mooney# Copyright 2025 Oxide Computer Company
153d6ee46bSPatrick Mooney#
163d6ee46bSPatrick Mooney
173d6ee46bSPatrick Mooneyunalias -a
183d6ee46bSPatrick Mooney
193d6ee46bSPatrick Mooneymac_test_dir="$(dirname $0)"
203d6ee46bSPatrick Mooneymac_data_dir="$mac_test_dir/data"
213d6ee46bSPatrick Mooneymac_cksum="$mac_test_dir/mac_cksum"
223d6ee46bSPatrick Mooneymac_exit=0
233d6ee46bSPatrick Mooney
24*1f8b8a01SPatrick Mooneyrun_one()
253d6ee46bSPatrick Mooney{
263d6ee46bSPatrick Mooney	typeset input="$mac_data_dir/$1"
273d6ee46bSPatrick Mooney	shift
283d6ee46bSPatrick Mooney
293d6ee46bSPatrick Mooney	echo "$mac_cksum $* $input"
303d6ee46bSPatrick Mooney	$mac_cksum $* $input
313d6ee46bSPatrick Mooney	if (( $? != 0 )); then
323d6ee46bSPatrick Mooney		mac_exit=1
333d6ee46bSPatrick Mooney	fi
34*1f8b8a01SPatrick Mooney}
353d6ee46bSPatrick Mooney
36*1f8b8a01SPatrick Mooneyrun_test()
37*1f8b8a01SPatrick Mooney{
38*1f8b8a01SPatrick Mooney	# Run with and without 2-byte padding for offset reasons
39*1f8b8a01SPatrick Mooney	run_one $*
40*1f8b8a01SPatrick Mooney	run_one $* -b 2
41*1f8b8a01SPatrick Mooney
42*1f8b8a01SPatrick Mooney	# Try some various mblk split combinations
43*1f8b8a01SPatrick Mooney	run_one $* -e
44*1f8b8a01SPatrick Mooney	run_one $* -s 20
45*1f8b8a01SPatrick Mooney	run_one $* -e -s 8
463d6ee46bSPatrick Mooney}
473d6ee46bSPatrick Mooney
483d6ee46bSPatrick Mooney# The bad-L4-proto case should only try getting a IPv4 checksum.
493d6ee46bSPatrick Mooney# It would fail to get an L4 checksum
503d6ee46bSPatrick Mooneyrun_test ipv4_bad_proto.snoop -4
513d6ee46bSPatrick Mooney
52*1f8b8a01SPatrick Mooneyipv4_cases="ipv4_icmp.snoop ipv4_tcp.snoop ipv4_udp.snoop"
533d6ee46bSPatrick Mooneyfor c in $ipv4_cases; do
543d6ee46bSPatrick Mooney	run_test $c -4 -p
553d6ee46bSPatrick Mooney	run_test $c -4 -f
563d6ee46bSPatrick Mooneydone
573d6ee46bSPatrick Mooney
583d6ee46bSPatrick Mooneyipv6_cases="ipv6_icmp.snoop ipv6_tcp.snoop ipv6_udp.snoop ipv6_eh_udp.snoop"
593d6ee46bSPatrick Mooneyfor c in $ipv6_cases; do
603d6ee46bSPatrick Mooney	run_test $c -p
613d6ee46bSPatrick Mooney	run_test $c -f
623d6ee46bSPatrick Mooneydone
633d6ee46bSPatrick Mooney
643d6ee46bSPatrick Mooney# Only full checksums are supported for SCTP
653d6ee46bSPatrick Mooneyrun_test "ipv4_sctp.snoop" -4 -f
663d6ee46bSPatrick Mooneyrun_test "ipv6_sctp.snoop" -f
673d6ee46bSPatrick Mooney
683d6ee46bSPatrick Mooneyexit $mac_exit
69