diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
index fabf6d97a..ec8eeb466 100644
--- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
+++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua
@@ -167,6 +167,7 @@ function wizard_add()
ucic:set("network","wan" .. i .. "_dev","mode","vepa")
ucic:set("network","wan" .. i .. "_dev","ifname",defif)
ucic:set("network","wan" .. i .. "_dev","name","wan" .. i)
+ ucic:set("network","wan" .. i .. "_dev","txqueuelen","20")
end
ucic:set("network","wan" .. i,"ip4table","wan")
if multipath_master then
diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm
index c866f921e..c6015c229 100755
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm
@@ -250,7 +250,7 @@
checked<% end %>>
- <%:Disable HTTP test on Server API in status page%>
+ <%:Disable HTTP test on Server API%>
diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter
index c6f83d879..20da2113d 100755
--- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter
+++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter
@@ -158,7 +158,7 @@ start_service() {
fi
if [ "$(uci -q get openmptcprouter.settings.sfe_enabled)" = "1" ]; then
- [ -z "$(lsmod | grep fast_classifier)" ] && modprobe fast_classifier 2>&1 >/dev/null
+ [ -z "$(lsmod | grep fast_classifier)" ] && modprobe -q fast_classifier 2>&1 >/dev/null
if [ "$(uci -q get openmptcprouter.settings.sfe_bridge)" = "1" ]; then
echo 1 >/sys/fast_classifier/skip_to_bridge_ingress
else
diff --git a/mptcp/files/usr/bin/multipath b/mptcp/files/usr/bin/multipath
index f25706218..c616044e4 100755
--- a/mptcp/files/usr/bin/multipath
+++ b/mptcp/files/usr/bin/multipath
@@ -6,15 +6,12 @@
# Released under GPL 3 or later
if [ -d "/proc/sys/net/mptcp" ]; then
- if [ `cat /proc/sys/net/mptcp/mptcp_enabled` = 0 ]; then
+ if ([ -f /proc/sys/net/mptcp/mptcp_enabled ] && [ `cat /proc/sys/net/mptcp/mptcp_enabled` = 0 ]) || ([ -f /proc/sys/net/mptcp/enabled ] && [ `cat /proc/sys/net/mptcp/enabled` = 0 ]); then
echo "MPTCP is disabled!"
- echo "Please set net.mptcp.mptcp_enabled = 1"
exit 1
fi
else
echo "Your device don't support multipath-TCP."
- echo "You have to install the pached kernel to use MPTCP."
- echo "See http://multipath-tcp.org/ for details"
exit 1
fi
@@ -23,34 +20,68 @@ case $1 in
echo " Multipath-TCP configuration tool"
echo "show/update flags:"
echo " multipath [device]"
- echo " multipath device {on | off | backup | handover}"
+ if [ -f /proc/sys/net/mptcp/mptcp_enabled ]; then
+ echo " multipath device {on | off | backup }"
+ else
+ echo " multipath device {on | off | signal | backup }"
+ fi
echo
echo "show established conections: -c"
echo "show fullmesh info: -f"
echo "show kernel config: -k"
+ echo "show MPTCP info: -m"
echo
echo "Flag on the device, to enable/disable MPTCP for this interface. The backup-flag"
echo "will allow a subflow to be established across this interface, but only be used"
echo "as backup. Handover-flag indicates that his interface is not used at all (even "
echo "no subflow being established), as long as there are other interfaces available."
- echo "See http://multipath-tcp.org/ for details"
echo
exit 0 ;;
"-c")
- cat /proc/net/mptcp_net/mptcp
+ if [ -f /proc/net/mptcp_net/mptcp ]; then
+ cat /proc/net/mptcp_net/mptcp
+ else
+ ss -M
+ fi
exit 0;;
"-f")
- cat /proc/net/mptcp_fullmesh
+ if [ -f /proc/net/mptcp_fullmesh ]; then
+ cat /proc/net/mptcp_fullmesh
+ else
+ ip mptcp endpoint | grep fullmesh
+ fi
exit 0;;
"-k")
- echo Enabled: `cat /proc/sys/net/mptcp/mptcp_enabled`
- echo Path Manager: `cat /proc/sys/net/mptcp/mptcp_path_manager`
- echo Use checksum: `cat /proc/sys/net/mptcp/mptcp_checksum`
- echo Scheduler: `cat /proc/sys/net/mptcp/mptcp_scheduler`
- echo Syn retries: `cat /proc/sys/net/mptcp/mptcp_syn_retries`
- echo Debugmode: `cat /proc/sys/net/mptcp/mptcp_debug`
+ if [ -f /proc/sys/net/mptcp/mptcp_enabled ]; then
+ echo Enabled: `cat /proc/sys/net/mptcp/mptcp_enabled`
+ elif [ -f /proc/sys/net/mptcp/enabled ]; then
+ echo Enabled: `cat /proc/sys/net/mptcp/enabled`
+ fi
+ if [ -f /proc/sys/net/mptcp/mptcp_path_manager ]; then
+ echo Path Manager: `cat /proc/sys/net/mptcp/mptcp_path_manager`
+ fi
+ if [ -f /proc/sys/net/mptcp/mptcp_checksum ]; then
+ echo Use checksum: `cat /proc/sys/net/mptcp/mptcp_checksum`
+ else
+ echo Use checksum: `cat /proc/sys/net/mptcp/checksum_enabled`
+ fi
+ if [ -f /proc/sys/net/mptcp/mptcp_scheduler ]; then
+ echo Scheduler: `cat /proc/sys/net/mptcp/mptcp_scheduler`
+ fi
+ if [ -f /proc/sys/net/mptcp/mptcp_syn_retries ]; then
+ echo Syn retries: `cat /proc/sys/net/mptcp/mptcp_syn_retries`
+ fi
+ if [ -f /proc/sys/net/mptcp/mptcp_debug ]; then
+ echo Debugmode: `cat /proc/sys/net/mptcp/mptcp_debug`
+ fi
echo
- echo See http://multipath-tcp.org/ for details
+ exit 0 ;;
+ "-m")
+ if [ -f /proc/net/mptcp_net/snmp ]; then
+ cat /proc/net/mptcp_net/snmp
+ else
+ nstat -z | grep -i mptcp
+ fi
exit 0 ;;
"")
for ifpath in /sys/class/net/*; do
@@ -70,33 +101,71 @@ TYPE="$2"
exit 1
}
-FLAG_PATH="/sys/class/net/$DEVICE/flags"
-IFF=`cat $FLAG_PATH`
+if [ -f /proc/sys/net/mptcp/mptcp_enabled ]; then
+ FLAG_PATH="/sys/class/net/$DEVICE/flags"
+ IFF=`cat $FLAG_PATH`
-IFF_OFF="0x80000"
-IFF_ON="0x00"
-IFF_BACKUP="0x100000"
-IFF_HANDOVER="0x200000"
-IFF_MASK="0x380000"
+ IFF_OFF="0x80000"
+ IFF_ON="0x00"
+ IFF_BACKUP="0x100000"
+ IFF_HANDOVER="0x200000"
+ IFF_MASK="0x380000"
-case $TYPE in
- "off") FLAG=$IFF_OFF;;
- "on") FLAG=$IFF_ON;;
- "backup") FLAG=$IFF_BACKUP;;
- "handover") FLAG=$IFF_HANDOVER;;
- "")
- IFF=`printf "0x%02x" $(($IFF&$IFF_MASK))`
- case "$IFF" in
- $IFF_OFF) echo $DEVICE is deactivated;;
- $IFF_ON) echo $DEVICE is in default mode;;
- $IFF_BACKUP) echo $DEVICE is in backup mode;;
- $IFF_HANDOVER) echo $DEVICE is in handover mode;;
- *) echo "Unkown state!" && exit 1;;
- esac
- exit 0;;
- *) echo "Unkown flag! Use 'multipath -h' for help" && exit 1;;
-esac
+ case $TYPE in
+ "off") FLAG=$IFF_OFF;;
+ "on") FLAG=$IFF_ON;;
+ "backup") FLAG=$IFF_BACKUP;;
+ "handover") FLAG=$IFF_HANDOVER;;
+ "")
+ IFF=`printf "0x%02x" $(($IFF&$IFF_MASK))`
+ case "$IFF" in
+ $IFF_OFF) echo $DEVICE is deactivated;;
+ $IFF_ON) echo $DEVICE is in default mode;;
+ $IFF_BACKUP) echo $DEVICE is in backup mode;;
+ $IFF_HANDOVER) echo $DEVICE is in handover mode;;
+ *) echo "Unkown state!" && exit 1;;
+ esac
+ exit 0;;
+ *) echo "Unkown flag! Use 'multipath -h' for help" && exit 1;;
+ esac
-printf "0x%02x" $(($(($IFF^$(($IFF&$IFF_MASK))))|$FLAG)) > $FLAG_PATH
+ printf "0x%02x" $(($(($IFF^$(($IFF&$IFF_MASK))))|$FLAG)) > $FLAG_PATH
+else
+ ID=$(ip mptcp endpoint show | grep "dev $DEVICE" | awk '{print $3}')
+ IFF=$(ip mptcp endpoint show | grep "dev $DEVICE" | awk '{print $4}')
+ IP=$(ifconfig $DEVICE | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p')
+ [ -z "$ID" ] && ID=$(ip mptcp endpoint show | grep "$IP" | awk '{print $3}')
+ RMID=$(ip mptcp endpoint show | grep '::ffff' | awk '{ print $3 }')
+ [ -n "$RMID" ] && ip mptcp endpoint delete id $RMID 2>&1 >/dev/null
+ case $TYPE in
+ "off")
+ [ -n "$ID" ] && ip mptcp endpoint delete id $ID 2>&1 >/dev/null
+ exit 0;;
+ "on")
+ [ -n "$ID" ] && ip mptcp endpoint delete id $ID 2>&1 >/dev/null
+ ip mptcp endpoint add $IP dev $DEVICE subflow fullmesh
+ exit 0;;
+ "signal")
+ [ -n "$ID" ] && ip mptcp endpoint delete id $ID 2>&1 >/dev/null
+ #ip mptcp endpoint add $IP dev $DEVICE signal subflow fullmesh
+ ip mptcp endpoint add $IP dev $DEVICE signal
+ exit 0;;
+ "backup")
+ [ -n "$ID" ] && ip mptcp endpoint delete id $ID 2>&1 >/dev/null
+ ip mptcp endpoint add $IP dev $DEVICE backup fullmesh
+ exit 0;;
+ "")
+ case "$IFF" in
+ "") echo $DEVICE is deactivated;;
+ "subflow") echo $DEVICE is in default mode;;
+ "backup") echo $DEVICE is in backup mode;;
+ "signal") echo $DEVICE is in signal mode;;
+ "fullmesh") echo $DEVICE is in fullmesh mode;;
+ *) echo "$DEVICE Unkown state!" && exit 1;;
+ esac
+ exit 0;;
+ *) echo "Unkown flag! Use 'multipath -h' for help" && exit 1;;
+ esac
+fi
diff --git a/omr-tracker/files/bin/omr-tracker b/omr-tracker/files/bin/omr-tracker
index f78571aab..5cb512a04 100755
--- a/omr-tracker/files/bin/omr-tracker
+++ b/omr-tracker/files/bin/omr-tracker
@@ -384,7 +384,7 @@ while true; do
config_load openmptcprouter
config_foreach _httping_server server $OMR_TRACKER_DEVICE_IP
if [ "$serverip_ping" = false ]; then
- OMR_TRACKER_STATUS="ERROR"
+ #OMR_TRACKER_STATUS="ERROR"
OMR_TRACKER_STATUS_MSG="No access to server API"
else
OMR_TRACKER_STATUS_MSG=""
@@ -485,7 +485,7 @@ while true; do
config_foreach _httping_server server $OMR_TRACKER_DEVICE_IP
if [ "$serverip_ping" = false ]; then
OMR_TRACKER_STATUS_MSG="No access to server API"
- OMR_TRACKER_STATUS="ERROR"
+ #OMR_TRACKER_STATUS="ERROR"
else
OMR_TRACKER_STATUS_MSG=""
OMR_TRACKER_STATUS="OK"