#!/bin/sh
if [ "$(uci -q get network.globals.mptcp_path_manager)" = "" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.multipath='enable'
	set network.globals.mptcp_path_manager='fullmesh'
	set network.globals.mptcp_scheduler='blest'
	set network.globals.congestion='bbr2'
	set network.globals.mptcp_checksum=0
	set network.globals.mptcp_debug=0
	set network.globals.mptcp_syn_retries=4
	set network.globals.mptcp_subflows=8
	set network.globals.mptcp_add_addr_accepted=1
	set network.globals.mptcp_add_addr_timeout=120
	set network.globals.mptcp_pm_type=0
	set network.globals.mptcp_disable_initial_config=0
	set network.globals.mptcp_force_multipath=1
	set network.globals.mptcpd_enable=0
	commit network
	EOF
fi
# BBRv2 is replaced by BBRv3
if [ "$(uci -q get network.globals.congestion)" = "bbr2" ] && [ -z "$(uname -a | grep 5.4)" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.congestion='bbr'
	commit network
	EOF
fi
if [ "$(uci -q get network.globals.mptcp_syn_retries)" = "1" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.mptcp_syn_retries=4
	commit network
	EOF
fi
if [ "$(uci -q get network.globals.mptcp_checksum)" != "0" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.mptcp_checksum=0
	commit network
	EOF
fi
if [ "$(uci -q get network.globals.mptcp_checksum)" = "enable" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.mptcp_checksum=1
	EOF
fi
if [ "$(uci -q get network.globals.mptcp_checksum)" = "disable" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.mptcp_checksum=0
	EOF
fi
if [ "$(uci -q get network.globals.mptcp_debug)" != "0" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.mptcp_debug=0
	EOF
fi

if [ "$(uci -q show network.globals | grep mptcp_fullmesh)" = "" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.mptcp_fullmesh_num_subflows=1
	set network.globals.mptcp_fullmesh_create_on_err=1
	set network.globals.mptcp_ndiffports_num_subflows=1
	commit network
	EOF
fi
if [ "$(uci -q get network.globals.mptcp_subflows)" = "" ]; then
	uci -q batch <<-EOF >/dev/null
	set network.globals.mptcp_subflows=8
	set network.globals.mptcp_add_addr_accepted=1
	set network.globals.mptcp_add_addr_timeout=120
	commit network
	EOF
fi

uci -q batch <<-EOF >/dev/null
    delete ucitrack.@mptcp[-1]
    add ucitrack mptcp
    set ucitrack.@mptcp[-1].init=mptcp
    commit ucitrack
EOF
if [ "$(uci -q get ucitrack.@network[-1].affects | grep mptcp)" = "" ]; then
	uci -q batch <<-EOF >/dev/null
	    add_list ucitrack.@network[-1].affects=mptcp
	    commit ucitrack
	EOF
fi
exit 0