#!/bin/bash
#
# Start the iSCSI Enterprise Target.
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin
MEM_SIZE=1048576

configure_memsize()
{
    if [ -e /proc/sys/net/core/wmem_max ]; then
        echo ${MEM_SIZE} > /proc/sys/net/core/wmem_max
    fi

    if [ -e /proc/sys/net/core/rmem_max ]; then
        echo ${MEM_SIZE} > /proc/sys/net/core/rmem_max
    fi

    if [ -e /proc/sys/net/core/wmem_default ]; then
        echo ${MEM_SIZE} > /proc/sys/net/core/wmem_default
    fi

    if [ -e /proc/sys/net/core/rmem_default ]; then
        echo ${MEM_SIZE} > /proc/sys/net/core/rmem_default
    fi

    if [ -e /proc/sys/net/ipv4/tcp_mem ]; then
        echo "${MEM_SIZE} ${MEM_SIZE} ${MEM_SIZE}" > /proc/sys/net/ipv4/tcp_mem
    fi

    if [ -e  /proc/sys/net/ipv4/tcp_rmem ]; then
        echo "${MEM_SIZE} ${MEM_SIZE} ${MEM_SIZE}" > /proc/sys/net/ipv4/tcp_rmem
    fi

    if [ -e /proc/sys/net/ipv4/tcp_wmem ]; then
        echo "${MEM_SIZE} ${MEM_SIZE} ${MEM_SIZE}" > /proc/sys/net/ipv4/tcp_wmem
    fi
}

start_server()
{
	configure_memsize
	modprobe -q crc32c
	modprobe iscsi_trgt
	/usr/sbin/ietd
}
	
stop_server()
{
	ietadm --op delete
	killall ietd
	modprobe -r iscsi_trgt
}

case "$1" in
	start)
		start_server
		;;
	stop)
		stop_server
		;;
	*)
		echo "Usage: {start|stop}" >&2
		exit 1
		;;
esac

exit 0
