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