#!/bin/bash

IFACES=""

for DIR in /sys/class/net/*; do
  if [ -x $DIR/device/driver ] && [[ $( readlink $DIR/device/driver ) ==  *"bnxt_en" ]] && ! [ -x $DIR/device/physfn ]; then
    IFACES="$IFACES $( basename $DIR )"
  fi
done

rm -rf /tmp/bcm_sosreport_dscdumps
mkdir /tmp/bcm_sosreport_dscdumps

for IFACE in $IFACES; do
  FILE="/tmp/bcm_sosreport_dscdumps/${IFACE}.$( date '+%Y.%m.%d.%H.%M.%S' ).dscdump.core"

  if which niccli > /dev/null; then
    PCI=$( basename $(readlink /sys/class/net/${IFACE}/device))

    niccli -pci $PCI dscdump -lane 65535 | tee /tmp/${IFACE}.dscdump.log
    TMPFILE=$( cat /tmp/${IFACE}.dscdump.log | grep 'Generated dscdump file' | cut -d' ' -f 4 )

    rm /tmp/${IFACE}.dscdump.log

    if [ ! -z "$TMPFILE" ] && [ -f "$TMPFILE" ]; then
      mv $TMPFILE $FILE
    fi
  fi
done
