diff --git a/plugins/dynamix/NetworkSettings.page b/plugins/dynamix/NetworkSettings.page
index 49c099a8f..b807f260c 100644
--- a/plugins/dynamix/NetworkSettings.page
+++ b/plugins/dynamix/NetworkSettings.page
@@ -34,6 +34,7 @@ function checkNetworkSettings() {
form.DNS_SERVER1.disabled = (form.DHCP_KEEPRESOLV.value != "yes") || disabled;
form.DNS_SERVER2.disabled = (form.DHCP_KEEPRESOLV.value != "yes") || disabled;
form.DNS_SERVER3.disabled = (form.DHCP_KEEPRESOLV.value != "yes") || disabled;
+ form.MTU.disabled = disabled;
}
function checkBondingSettings() {
var form = document.network_settings;
@@ -86,7 +87,7 @@ Setup bridge:
> (most consumer switches **do not**).
>
> Doing so will cause an "ARP broadcast storm" and can bring down your
-> entire network (unplugging all sever ethernet ports except one
+> entire network (unplugging all server ethernet ports except one
> typically will restore your network).
Bridge name:
@@ -166,6 +167,12 @@ DNS server 3:
> This is the DNS server to use when DNS Servers 1 and 2 are both down.
+Desired MTU:
+:
+
+> This is the MTU size to use on all physical Ethernet interfaces participating in the network stack.
+> If left blank, the MTU will automatically be determined (most likely 1500).
+
: >=$disabled ? "Array must be Stopped to change" : ""?>
diff --git a/plugins/dynamix/include/DashUpdate.php b/plugins/dynamix/include/DashUpdate.php
index 90bf2e768..3772d8549 100644
--- a/plugins/dynamix/include/DashUpdate.php
+++ b/plugins/dynamix/include/DashUpdate.php
@@ -160,14 +160,15 @@ case 'port':
case 'main':
$ports = explode(',',$_POST['ports']); $i = 0;
foreach ($ports as $port) {
- unset($info);
+ $mtu = file_get_contents("/sys/class/net/$port/mtu");
if ($port=='bond0') {
- $ports[$i++] = exec("grep -Pom1 '^Bonding Mode: \K.+' /proc/net/bonding/bond0");
+ $ports[$i++] = exec("grep -Pom1 '^Bonding Mode: \K.+' /proc/net/bonding/bond0").", mtu $mtu";
} else if ($port=='lo') {
$ports[$i++] = str_replace('yes','loopback',exec("ethtool lo|grep -Pom1 '^\s+Link detected: \K.+'"));
} else {
- exec("ethtool $port|grep -Po '^\s+(Speed|Duplex): \K[^U\\n]+'",$info);
- $ports[$i++] = $info[0] ? "{$info[0]} - ".strtolower($info[1])." duplex" : "not connected";
+ unset($info);
+ exec("ethtool $port|grep -Po '^\s+(Speed|Duplex|Link\sdetected): \K[^U\\n]+'",$info);
+ $ports[$i++] = (array_pop($info)=='yes' && $info[0]) ? "{$info[0]}, ".strtolower($info[1])." duplex, mtu $mtu" : "not connected";
}
}
break;
diff --git a/plugins/dynamix/include/SystemInformation.php b/plugins/dynamix/include/SystemInformation.php
index 8455ad424..254a5cc18 100644
--- a/plugins/dynamix/include/SystemInformation.php
+++ b/plugins/dynamix/include/SystemInformation.php
@@ -152,13 +152,14 @@ echo "$memory_installed MB (max. installable capacity $memory_maximum GB)".$sta
exec("ifconfig -s|grep -Po '^(bond|eth)\d+'",$sPorts);
$i = 0;
foreach ($sPorts as $port) {
+ $mtu = file_get_contents("/sys/class/net/$port/mtu");
if ($i++) echo "
";
if ($port=='bond0') {
- echo "$port: ".exec("grep -Pom1 '^Bonding Mode: \K.+' /proc/net/bonding/bond0");
+ echo "$port: ".exec("grep -Pom1 '^Bonding Mode: \K.+' /proc/net/bonding/bond0").", mtu $mtu";
} else {
unset($info);
- exec("ethtool $port|grep -Po '^\s+(Speed|Duplex): \K[^U\\n]+'",$info);
- echo $info[0] ? "$port: {$info[0]} - {$info[1]} Duplex" : "$port: not connected";
+ exec("ethtool $port|grep -Po '^\s+(Speed|Duplex|Link\sdetected): \K[^U\\n]+'",$info);
+ echo (array_pop($info)=='yes' && $info[0]) ? "$port: {$info[0]}, {$info[1]} Duplex, mtu $mtu" : "$port: not connected";
}
}
?>