NBD_PORT=${NBD_PORT:-9200}

start_nbd()
{
	local proto=tcp
	local port=$NBD_PORT
	local addr=auto
	local dev=/dev/nbd0
	local bs=
	local devs=4
	local parts=

	for p in $(substchar "$params" "," " "); do
		arg=${p#*=}
		case "$p" in
			tcp|ip) proto=tcp ;;
			sdp) proto=sdp ;;
			proto=*) proto="$arg" ;;
			port=*|p=*) port="$arg" ;;
			dev=*|d=*) dev="/dev/${arg#/dev/}" ;;
			addr=*|address=*) addr="$arg" ;;
			bs=*) bs=$arg ;;
			timeout=*) timeout=$arg ;;
			nbds_max=*|devs=*) devs="$arg" ;;
			max_part=*|parts=*) parts="$arg" ;;
			*) echo "Unknown NBD parameter '$p' for type 'nbd'" ;;
		esac
	done

	case "$proto" in
		ip)	proto=tcp ;;
		tcp)	;;
		sdp)
			echo "Unsupported nbd protocol 'sdp'. Use tcp"
			proto=tcp
			;;
		*)
			echo "Unknown nbd protocol '$proto'. Use tcp"
			proto=tcp
			;;
	esac

	if [ "$proto" != "tcp" ] || ConfigIP; then
		modprobe -q nbd ${devs:+nbds_max=$devs} ${parts:+max_part=$parts} && udevadm settle
		nbd-client ${bs:+bs=$bs} ${timeout:+timeout=$timeout} $addr $port $dev -persist
		ROOT=${ROOT:-$dev}
	fi
}

start_nbd
