AGRAVIS Oldenburg/config: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Sk (Diskussion | Beiträge) |
Sk (Diskussion | Beiträge) (Multiood) |
||
| Zeile 794: | Zeile 794: | ||
uci commit firewall | uci commit firewall | ||
</pre> | </pre> | ||
| + | |||
| + | == Multihood == | ||
| + | |||
| + | === /lib/netifd/proto/bat.sh === | ||
| + | Make executable | ||
| + | #!/bin/sh | ||
| + | |||
| + | . /lib/functions.sh | ||
| + | . ../netifd-proto.sh | ||
| + | init_proto "$@" | ||
| + | |||
| + | proto_bat_init_config() { | ||
| + | no_device=1 | ||
| + | available=1 | ||
| + | renew_handler=1 | ||
| + | |||
| + | proto_config_add_string 'gw_mode' | ||
| + | } | ||
| + | |||
| + | lookup_site() { | ||
| + | local path="$1" default="$2" | ||
| + | lua -e "print(require('gluon.site').$path('$default'))" | ||
| + | } | ||
| + | |||
| + | lookup_uci() { | ||
| + | local path="$1" default="$2" | ||
| + | uci -q get "$path" || echo "$default" | ||
| + | } | ||
| + | |||
| + | proto_bat_renew() { | ||
| + | local CONFIG="$1" | ||
| + | |||
| + | local ifname | ||
| + | json_get_vars ifname | ||
| + | |||
| + | local IFNAME="${ifname:-$CONFIG}" | ||
| + | |||
| + | lock /var/lock/"$IFNAME".bat.lock | ||
| + | |||
| + | ubus call network.interface dump | jsonfilter \ | ||
| + | -e "@.interface[@.proto='batif' && @.data.mesh='${IFNAME:4}' && @.up=true].device" \ | ||
| + | | xargs -r -n 1 batctl -m "$IFNAME" interface add | ||
| + | |||
| + | lock -u /var/lock/"$IFNAME".bat.lock | ||
| + | } | ||
| + | |||
| + | proto_bat_setup() { | ||
| + | local CONFIG="$1" | ||
| + | |||
| + | local routing_algo=$(lookup_site 'mesh.batman_adv.routing_algo' 'BATMAN_IV') | ||
| + | |||
| + | local gw_mode ifname | ||
| + | json_get_vars gw_mode ifname | ||
| + | |||
| + | local IFNAME="${ifname:-$CONFIG}" | ||
| + | |||
| + | batctl -m "$IFNAME" routing_algo "$routing_algo" | ||
| + | batctl -m "$IFNAME" interface create | ||
| + | |||
| + | batctl -m "$IFNAME" orig_interval 5000 | ||
| + | batctl -m "$IFNAME" hop_penalty "$(lookup_uci 'gluon.mesh_batman_adv.hop_penalty' 15)" | ||
| + | batctl -m "$IFNAME" multicast_mode 0 | ||
| + | |||
| + | case "$gw_mode" in | ||
| + | server) | ||
| + | batctl -m "$IFNAME" gw_mode "server" | ||
| + | ;; | ||
| + | client) | ||
| + | local gw_sel_class="$(lookup_site 'mesh.batman_adv.gw_sel_class')" | ||
| + | if [ -n "$gw_sel_class" ]; then | ||
| + | batctl -m "$IFNAME" gw_mode "client" "$gw_sel_class" | ||
| + | else | ||
| + | batctl -m "$IFNAME" gw_mode "client" | ||
| + | fi | ||
| + | ;; | ||
| + | *) | ||
| + | batctl -m "$IFNAME" gw_mode "off" | ||
| + | ;; | ||
| + | esac | ||
| + | |||
| + | |||
| + | local primary0_mac="$(lua -e 'print(require("gluon.util").generate_mac(3))')" | ||
| + | |||
| + | ip link add "pri-${IFNAME:4}" type dummy | ||
| + | echo 1 > /proc/sys/net/ipv6/conf/"pri-${IFNAME:4}"/disable_ipv6 | ||
| + | ip link set "pri-${IFNAME:4}" address "$primary0_mac" mtu 1532 up | ||
| + | |||
| + | ip link set "$IFNAME" address "$(lua -e 'print(require("gluon.sysconfig").primary_mac)')" | ||
| + | |||
| + | batctl -m "$IFNAME" interface add "pri-${IFNAME:4}" | ||
| + | |||
| + | proto_init_update "pri-${IFNAME:4}" 1 | ||
| + | proto_init_update "$IFNAME" 1 | ||
| + | proto_send_update "$CONFIG" | ||
| + | |||
| + | proto_bat_renew "$1" | ||
| + | } | ||
| + | |||
| + | proto_bat_teardown() { | ||
| + | local CONFIG="$1" | ||
| + | local IFNAME="$2" | ||
| + | |||
| + | batctl -m "$IFNAME" interface destroy | ||
| + | ip link del "pri-${IFNAME:4}" | ||
| + | } | ||
| + | |||
| + | add_protocol bat | ||
| + | |||
| + | === /lib/netifd/proto/batif.sh === | ||
| + | Make executable | ||
| + | #!/bin/sh | ||
| + | |||
| + | . /lib/functions.sh | ||
| + | . ../netifd-proto.sh | ||
| + | init_proto "$@" | ||
| + | |||
| + | proto_batif_init_config() { | ||
| + | proto_config_add_string 'mesh' | ||
| + | } | ||
| + | |||
| + | proto_batif_setup() { | ||
| + | local CONFIG="$1" | ||
| + | local IFNAME="$2" | ||
| + | |||
| + | local mesh | ||
| + | json_get_vars mesh | ||
| + | |||
| + | ubus call network.interface."$CONFIG" set_data "{\"mesh\":\"$mesh\"}" | ||
| + | |||
| + | proto_init_update "$IFNAME" 1 | ||
| + | proto_send_update "$CONFIG" | ||
| + | |||
| + | ubus call network.interface."bat_${mesh}" renew | ||
| + | } | ||
| + | |||
| + | proto_batif_teardown() { | ||
| + | local CONFIG="$1" | ||
| + | local IFNAME="$2" | ||
| + | |||
| + | batctl -m "bat-${mesh}" interface -M del "$IFNAME" 2>/dev/null | ||
| + | } | ||
| + | |||
| + | add_protocol batif | ||
| + | |||
| + | === Beispiel Netzwerkkonfiguration === | ||
| + | config interface 'mesh_vlan123' | ||
| + | option ifname 'eth0.123' | ||
| + | option proto 'batif' | ||
| + | option mesh 'hood2' | ||
| + | |||
| + | config interface 'bat_hood2' | ||
| + | option ifname 'bat-hood2' | ||
| + | option gw_mode 'client' | ||
| + | option proto 'bat' | ||
Version vom 4. Februar 2021, 17:47 Uhr
Network
package network
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '2 6t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '6t'
config switch_vlan
option device 'switch0'
option vlan '120'
option ports '0t 1 3t 4t 6t'
config switch_vlan
option device 'switch0'
option vlan '3'
option ports '3 4 6t'
config switch_vlan
option device 'switch0'
option vlan '10'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '11'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '12'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '13'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '14'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '15'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '16'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '17'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '18'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '19'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '20'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '21'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '22'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '23'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '24'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '25'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '26'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '27'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '28'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '29'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '30'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '31'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '32'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '33'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '34'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '35'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '36'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '37'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '38'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '39'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '40'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '41'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '42'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '43'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '44'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '45'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '46'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '47'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '48'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '49'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '50'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '51'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '52'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '53'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '54'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '55'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '56'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '57'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '58'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '59'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '60'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '61'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '62'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '63'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '64'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '65'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '66'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '67'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '68'
option ports '0t 6t'
config switch_vlan
option device 'switch0'
option vlan '69'
option ports '0t 6t'
config interface 'mesh_vlan3'
option ifname 'eth0.3'
option index '0'
option proto 'gluon_wired'
option disabled '0'
option transitive '1'
config interface 'mesh_vlan10'
option ifname 'eth0.10'
option index '0'
option proto 'gluon_wired'
option disabled '0'
option transitive '1'
config interface 'mesh_vlan11'
option ifname 'eth0.11'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan12'
option ifname 'eth0.12'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan13'
option ifname 'eth0.13'
option index '0'
option proto 'gluon_wired'
option disabled '0'
option transitive '1'
config interface 'mesh_vlan14'
option ifname 'eth0.14'
option index '0'
option proto 'gluon_wired'
option disabled '0'
option transitive '1'
config interface 'mesh_vlan15'
option ifname 'eth0.15'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan16'
option ifname 'eth0.16'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan17'
option ifname 'eth0.17'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan18'
option ifname 'eth0.18'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan19'
option ifname 'eth0.19'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan20'
option ifname 'eth0.20'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan21'
option ifname 'eth0.21'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan22'
option ifname 'eth0.22'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan23'
option ifname 'eth0.23'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan24'
option ifname 'eth0.24'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan25'
option ifname 'eth0.25'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan26'
option ifname 'eth0.26'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan27'
option ifname 'eth0.27'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan28'
option ifname 'eth0.28'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan29'
option ifname 'eth0.29'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan30'
option ifname 'eth0.30'
option proto 'batif'
option mesh 'rastede'
config interface 'mesh_vlan31'
option ifname 'eth0.31'
option proto 'batif'
option mesh 'ol2'
config interface 'mesh_vlan32'
option ifname 'eth0.32'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan33'
option ifname 'eth0.33'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan34'
option ifname 'eth0.34'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan35'
option ifname 'eth0.35'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan36'
option ifname 'eth0.36'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan37'
option ifname 'eth0.37'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan38'
option ifname 'eth0.38'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan39'
option ifname 'eth0.39'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan40'
option ifname 'eth0.40'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan41'
option ifname 'eth0.41'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan42'
option ifname 'eth0.42'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan43'
option ifname 'eth0.43'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan44'
option ifname 'eth0.44'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan45'
option ifname 'eth0.45'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan46'
option ifname 'eth0.46'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan47'
option ifname 'eth0.47'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan48'
option ifname 'eth0.48'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan49'
option ifname 'eth0.49'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan50'
option ifname 'eth0.50'
option proto 'batif'
option mesh 'ol2'
config interface 'mesh_vlan51'
option ifname 'eth0.51'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan52'
option ifname 'eth0.52'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan53'
option ifname 'eth0.53'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan54'
option ifname 'eth0.54'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan55'
option ifname 'eth0.55'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan56'
option ifname 'eth0.56'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan57'
option ifname 'eth0.57'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan58'
option ifname 'eth0.58'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan59'
option ifname 'eth0.59'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan60'
option ifname 'eth0.60'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan61'
option ifname 'eth0.61'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan62'
option ifname 'eth0.62'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan63'
option ifname 'eth0.63'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan64'
option ifname 'eth0.64'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan65'
option ifname 'eth0.65'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan66'
option ifname 'eth0.66'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan67'
option ifname 'eth0.67'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan68'
option ifname 'eth0.68'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'mesh_vlan69'
option ifname 'eth0.69'
option index '0'
option proto 'gluon_wired'
option disabled '1'
option transitive '1'
config interface 'bat_ol2'
option ifname 'bat-ol2'
option gw_mode 'client'
option proto 'bat'
config interface 'bat_rastede'
option ifname 'bat-rastede'
option gw_mode 'client'
option proto 'bat'
config interface 'mgmt'
option ifname 'eth0.120'
option proto 'static'
option ipaddr '172.20.0.2'
option netmask '16'
option ip4table '120'
option ip6addr 'fe80::1'
config interface 'client4'
option ifname 'br-client'
option auto '1'
option proto 'dhcp'
option ip4table '120'
config rule
option in 'mgmt'
option lookup '120'
Firewall
config zone option name 'mgmt' list network 'mgmt' option input 'ACCEPT' option output 'ACCEPT' option forward 'ACCEPT' config forwarding option src 'mgmt' option dest 'mesh'
uci set firewall.mesh.masq='1' uci set firewall.mesh.mtu_fix='1' uci set firewall.mesh.masq_src='mgmt' uci commit firewall
Multihood
/lib/netifd/proto/bat.sh
Make executable
#!/bin/sh
. /lib/functions.sh
. ../netifd-proto.sh
init_proto "$@"
proto_bat_init_config() {
no_device=1
available=1
renew_handler=1
proto_config_add_string 'gw_mode'
}
lookup_site() {
local path="$1" default="$2"
lua -e "print(require('gluon.site').$path('$default'))"
}
lookup_uci() {
local path="$1" default="$2"
uci -q get "$path" || echo "$default"
}
proto_bat_renew() {
local CONFIG="$1"
local ifname
json_get_vars ifname
local IFNAME="${ifname:-$CONFIG}"
lock /var/lock/"$IFNAME".bat.lock
ubus call network.interface dump | jsonfilter \
-e "@.interface[@.proto='batif' && @.data.mesh='${IFNAME:4}' && @.up=true].device" \
| xargs -r -n 1 batctl -m "$IFNAME" interface add
lock -u /var/lock/"$IFNAME".bat.lock
}
proto_bat_setup() {
local CONFIG="$1"
local routing_algo=$(lookup_site 'mesh.batman_adv.routing_algo' 'BATMAN_IV')
local gw_mode ifname
json_get_vars gw_mode ifname
local IFNAME="${ifname:-$CONFIG}"
batctl -m "$IFNAME" routing_algo "$routing_algo"
batctl -m "$IFNAME" interface create
batctl -m "$IFNAME" orig_interval 5000
batctl -m "$IFNAME" hop_penalty "$(lookup_uci 'gluon.mesh_batman_adv.hop_penalty' 15)"
batctl -m "$IFNAME" multicast_mode 0
case "$gw_mode" in
server)
batctl -m "$IFNAME" gw_mode "server"
;;
client)
local gw_sel_class="$(lookup_site 'mesh.batman_adv.gw_sel_class')"
if [ -n "$gw_sel_class" ]; then
batctl -m "$IFNAME" gw_mode "client" "$gw_sel_class"
else
batctl -m "$IFNAME" gw_mode "client"
fi
;;
*)
batctl -m "$IFNAME" gw_mode "off"
;;
esac
local primary0_mac="$(lua -e 'print(require("gluon.util").generate_mac(3))')"
ip link add "pri-${IFNAME:4}" type dummy
echo 1 > /proc/sys/net/ipv6/conf/"pri-${IFNAME:4}"/disable_ipv6
ip link set "pri-${IFNAME:4}" address "$primary0_mac" mtu 1532 up
ip link set "$IFNAME" address "$(lua -e 'print(require("gluon.sysconfig").primary_mac)')"
batctl -m "$IFNAME" interface add "pri-${IFNAME:4}"
proto_init_update "pri-${IFNAME:4}" 1
proto_init_update "$IFNAME" 1
proto_send_update "$CONFIG"
proto_bat_renew "$1"
}
proto_bat_teardown() {
local CONFIG="$1"
local IFNAME="$2"
batctl -m "$IFNAME" interface destroy
ip link del "pri-${IFNAME:4}"
}
add_protocol bat
/lib/netifd/proto/batif.sh
Make executable
#!/bin/sh
. /lib/functions.sh
. ../netifd-proto.sh
init_proto "$@"
proto_batif_init_config() {
proto_config_add_string 'mesh'
}
proto_batif_setup() {
local CONFIG="$1"
local IFNAME="$2"
local mesh
json_get_vars mesh
ubus call network.interface."$CONFIG" set_data "{\"mesh\":\"$mesh\"}"
proto_init_update "$IFNAME" 1
proto_send_update "$CONFIG"
ubus call network.interface."bat_${mesh}" renew
}
proto_batif_teardown() {
local CONFIG="$1"
local IFNAME="$2"
batctl -m "bat-${mesh}" interface -M del "$IFNAME" 2>/dev/null
}
add_protocol batif
Beispiel Netzwerkkonfiguration
config interface 'mesh_vlan123' option ifname 'eth0.123' option proto 'batif' option mesh 'hood2' config interface 'bat_hood2' option ifname 'bat-hood2' option gw_mode 'client' option proto 'bat'