diff --git a/files/etc/uci-defaults/99-nethsec-bond-link-monitoring b/files/etc/uci-defaults/99-nethsec-bond-link-monitoring new file mode 100644 index 000000000..55a082786 --- /dev/null +++ b/files/etc/uci-defaults/99-nethsec-bond-link-monitoring @@ -0,0 +1,22 @@ +bonds=$(uci show network | grep "='bonding'" | cut -d'.' -f2 | cut -d'=' -f1) + +[ -z "$bonds" ] && exit 0 + +for bond in $bonds; do + miimon_value="$(uci -q get network.$bond.miimon 2>/dev/null)" + link_monitoring_value="$(uci -q get network.$bond.link_monitoring 2>/dev/null)" + arp_interval_value="$(uci -q get network.$bond.arp_interval 2>/dev/null)" + + [ -n "$miimon_value" ] && [ -n "$link_monitoring_value" ] && continue + [ -n "$arp_interval_value" ] && continue + + miimon_cmd="" + link_monitoring_cmd="" + [ -z "$miimon_value" ] && miimon_cmd="set network.$bond.miimon='100'" + [ -z "$link_monitoring_value" ] && link_monitoring_cmd="set network.$bond.link_monitoring='mii'" + uci -q batch << EOI +$miimon_cmd +$link_monitoring_cmd +commit network +EOI +done \ No newline at end of file diff --git a/packages/ns-api/files/ns.devices b/packages/ns-api/files/ns.devices index 54eda83ed..8130b0e85 100755 --- a/packages/ns-api/files/ns.devices +++ b/packages/ns-api/files/ns.devices @@ -532,6 +532,8 @@ def get_bonding_values(ip4_addr_cidr, attached_devices, bonding_policy, bond_pri 'clientid': '', 'vendorid': '', 'hostname': '', + 'link_monitoring': 'mii', # default link monitoring mode for bonds - Media Independent Interface + 'miimon': '100' # default link monitoring interval for bonds - 100ms } # ip4 address and netmask