#! /bin/sh

cco=
mdu=
# check arguments
while :; do
	[ $# = 0 ] && break
	[ "$1" = "-c" ] && cco="$2" && shift 2 && continue
	[ "$1" = "-m" ] && mdu="$2" && shift 2 && continue
	# invalid argument
	exit 1
done

# nothing to do
[ -z "$cco$mdu" ] && exit

. /lib/functions.sh

iface="$(uci_get plc plc interface br-lan)"

[ -n "$cco" ] && case "$cco" in
auto)
	cco=0
	;;
never)
	cco=1
	;;
always)
	cco=2
	;;
*)
	exit 1
	;;
esac

[ -n "$mdu" ] && case "$mdu" in
disabled)
	mdu=0x0000
	;;
slave)
	mdu=0x0001
	;;
master)
	mdu=0x0101
	;;
*)
	exit 1
	;;
esac

pib=/tmp/.PIB.$$
plctools-wrapper plctool "" -i "$iface" -p "$pib" || exit
trap 'rm -f "$pib"' EXIT
[ -n "$cco" ] && { modpib -C "$cco" "$pib" || exit; }
[ -n "$mdu" ] && { setpib "$pib" 0x100 word "$mdu" || exit; }
plctools-wrapper plctool "" -i "$iface" -P "$pib"