#!/bin/sh
#
# Install IGB driver
#

#import common helpers
. /etc/init.d/mod_ins/module-load-functions

case "$1" in

    start)
        boardtype=$(get_cctrl_board_type)
        card_idx=$(get_cmdline_card_index)
        if [ "$boardtype" = "LC" ]; then
            boot_debug "Loading IGB driver on LC ..."
            insmod -f /lib/modules/klm_ins_igb.o card_index=$(get_cmdline_card_index) dis_vlan_filter=Y
            if [ "$card_idx" == 27023 ] || 
               [ "$card_idx" == 27034 ] || 
               [ "$card_idx" == 27035 ] ||
               [ "$card_idx" == 27044 ] ||
               [ "$card_idx" == 27050 ] ||
               [ "$card_idx" == 27046 ] ||
               [ "$card_idx" == 27061 ] ||
               [ "$card_idx" == 27062 ] ||
               [ "$card_idx" == 27063 ] ||
               [ "$card_idx" == 27060 ] ||
               [ "$card_idx" == 27064 ] ||
               [ "$card_idx" == 27055 ] ||
               [ "$card_idx" == 27066 ] ||
               [ "$card_idx" == 27067 ] ||
               [ "$card_idx" == 27068 ]; then
                boot_debug "Loading IXGBE driver on LC with card_index $card_index ..."
                lsmod | grep -q ixgbe || modprobe ixgbe dis_vlan_filter=1,1
            fi
        elif [ "$boardtype" == "FC" ]; then
            boot_debug "Loading IGB driver on FC with Intel processor..."
            if [ "$card_idx" == 27043 ]; then
                boot_debug "Loading IXGBE driver on FC with card_index $card_index ..."
                lsmod | grep -q ixgbe || modprobe ixgbe dis_vlan_filter=1,1
            fi
        else
            if [ "$card_idx" == 27024 ] || 
               [ "$card_idx" == 27065 ] ||
               [ "$card_idx" == 27059 ]; then
                boot_debug "Loading i40e, igb and ixgbe driver on SyncE-RP ..."
                lsmod | grep -q i40e || /sbin/modprobe i40e
                lsmod | grep -q ixgbe || modprobe ixgbe dis_vlan_filter=1,1 RSS=2,2
                lsmod | grep -q klm_ins_igb || insmod -f /lib/modules/klm_ins_igb.o card_index=$(get_cmdline_card_index) RSS=2
            else
                boot_debug "Loading IGB driver on RP ..."
                lsmod | grep -q klm_ins_igb || insmod -f /lib/modules/klm_ins_igb.o card_index=$(get_cmdline_card_index) RSS=2,2,2,2,2,2,2,2
            fi
    fi
        ;;
    stop)
        boot_debug "Unloading IGB driver ..."
        /sbin/rmmod klm_ins_igb
        ;;
esac
