penguin/monok8s

k8s image for Mono Gateway Dev Kit

vpp/start-vpp.sh

raw ยท 1616 bytes

#!/bin/bash
set -e

echo "--- Starting NXP DPAA1 Hardware Initialization ---"

# Only unbind the SFP ports (MAC 9 and 10)
# Leave MAC 3, 4, 5, 6 for Linux (Kubernetes management)
SFP_PORTS="9 10"

echo "Releasing SFP hardware ports from kernel..."
for port in $SFP_PORTS; do
    if [ -e /sys/bus/platform/drivers/fsl-dpa-ethernet/fm0-port.$port ]; then
        echo "fm0-port.$port" > /sys/bus/platform/drivers/fsl-dpa-ethernet/unbind 2>/dev/null || true
        echo "Successfully unbound MAC $port"
    else
        echo "MAC $port already released or not found."
    fi
done

# 1. PRE-REQUISITE: Unbind ports from the kernel
# This frees the hardware so FMC/VPP can claim it.
# MAC 3 usually maps to fm0-port.3 or similar in sysfs.
echo "Releasing hardware ports from kernel..."
for port in 3 4 5 6 9 10; do
    # Try to unbind from the DPAA Ethernet driver if it exists
    if [ -e /sys/bus/platform/drivers/fsl-dpa-ethernet/fm0-port.$port ]; then
        echo "fm0-port.$port" > /sys/bus/platform/drivers/fsl-dpa-ethernet/unbind 2>/dev/null || true
    fi
    # Ensure the interface is DOWN
    # Note: You may need to map MAC numbers to eth names (eth0, eth1, etc.)
done

# 2. Run FMC
if [ -f /etc/fmc/config.xml ]; then
    echo "Applying FMC Configuration..."
    cd /etc/fmc
    # Using -l dbg1 helps see exactly why a port fails if it happens again
    fmc -c /etc/fmc/config.xml -p /etc/fmc/policy.xml -a -l dbg1
    echo "FMC Configuration applied successfully."
else
    echo "ERROR: /etc/fmc/config.xml not found!"
    exit 1
fi

echo "--- Starting VPP Forwarder ---"
exec vpp -c /etc/vpp/startup.conf