#!/bin/sh # This UCI-Defaults script will split the batadv proto network interfaces # in batadv_hardif and batadv proto. The configuration options from # /etc/config/batman-adv will be moved to the latter. . /lib/functions.sh proto_batadv_to_batadv_hardif() { local section="$1" local proto local mesh local routing_algo config_get proto "${section}" proto config_get mesh "${section}" mesh config_get routing_algo "${section}" routing_algo if [ -z "$mesh" -o "${proto}" != "batadv" ]; then continue fi uci set network."${section}".proto="batadv_hardif" uci rename network."${section}".mesh="master" uci delete network."${section}".routing_algo # create new section or adjust existing one uci set network."${mesh}"=interface uci set network."${mesh}".proto=batadv [ -n "${routing_algo}" ] && uci set network."${mesh}".routing_algo="${routing_algo}" } mv_batadv_config_section() { local section="$1" local aggregated_ogms local ap_isolation local bonding local bridge_loop_avoidance local distributed_arp_table local fragmentation local gw_bandwidth local gw_mode local gw_sel_class local hop_penalty local isolation_mark local log_level local multicast_mode local network_coding local orig_interval config_get aggregated_ogms "${section}" aggregated_ogms config_get ap_isolation "${section}" ap_isolation config_get bonding "${section}" bonding config_get bridge_loop_avoidance "${section}" bridge_loop_avoidance config_get distributed_arp_table "${section}" distributed_arp_table config_get fragmentation "${section}" fragmentation config_get gw_bandwidth "${section}" gw_bandwidth config_get gw_mode "${section}" gw_mode config_get gw_sel_class "${section}" gw_sel_class config_get hop_penalty "${section}" hop_penalty config_get isolation_mark "${section}" isolation_mark config_get log_level "${section}" log_level config_get multicast_mode "${section}" multicast_mode config_get network_coding "${section}" network_coding config_get orig_interval "${section}" orig_interval # update section in case it exists [ -n "${aggregated_ogms}" ] && uci set network."${section}".aggregated_ogms="${aggregated_ogms}" [ -n "${ap_isolation}" ] && uci set network."${section}".ap_isolation="${ap_isolation}" [ -n "${bonding}" ] && uci set network."${section}".bonding="${bonding}" [ -n "${bridge_loop_avoidance}" ] && uci set network."${section}".bridge_loop_avoidance="${bridge_loop_avoidance}" [ -n "${distributed_arp_table}" ] && uci set network."${section}".distributed_arp_table="${distributed_arp_table}" [ -n "${fragmentation}" ] && uci set network."${section}".fragmentation="${fragmentation}" [ -n "${gw_bandwidth}" ] && uci set network."${section}".gw_bandwidth="${gw_bandwidth}" [ -n "${gw_mode}" ] && uci set network."${section}".gw_mode="${gw_mode}" [ -n "${gw_sel_class}" ] && uci set network."${section}".gw_sel_class="${gw_sel_class}" [ -n "${hop_penalty}" ] && uci set network."${section}".hop_penalty="${hop_penalty}" [ -n "${isolation_mark}" ] && uci set network."${section}".isolation_mark="${isolation_mark}" [ -n "${log_level}" ] && uci set network."${section}".log_level="${log_level}" [ -n "${multicast_mode}" ] && uci set network."${section}".multicast_mode="${multicast_mode}" [ -n "${network_coding}" ] && uci set network."${section}".network_coding="${network_coding}" [ -n "${orig_interval}" ] && uci set network."${section}".orig_interval="${orig_interval}" } if [ -f /etc/config/batman-adv ]; then config_load network config_foreach proto_batadv_to_batadv_hardif 'interface' uci commit network config_load batman-adv config_foreach mv_batadv_config_section 'mesh' uci commit batman-adv rm -f /etc/config/batman-adv fi exit 0