#!/bin/bash
#
# Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. ALL RIGHTS RESERVED.
#
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES.
# SPDX-License-Identifier: LicenseRef-NVIDIA-Proprietary
#
source "$(dirname "$0")/_lib.sh"
trace "$@"
TARGET="$1"; VALUE="$2"
BDF=""
if [[ "$TARGET" == pci/* ]]; then
    BDF=$(bdf_from_target "$TARGET")
    IFACE=$(iface_from_bdf "$BDF")
else
    IFACE="$TARGET"
fi
[[ -z "$IFACE" ]] && { echo "Error: no interface for ${TARGET}" >&2; exit 1; }
[[ -z "$VALUE" || ! "$VALUE" =~ ^[0-9]+$ ]] && { echo "Error: MTU must be a numeric value: '$VALUE'" >&2; exit 1; }

if ! err=$(ip link set dev "$IFACE" mtu "$VALUE" 2>&1); then
    echo "Error: ip link set dev $IFACE mtu $VALUE failed: $err" >&2
    exit 1
fi

MTU=$(ip -o link show "$IFACE" 2>/dev/null | grep -oP 'mtu \K\d+' | head -1)
echo "mtu=${MTU:-$VALUE}"
