Zeile 332: |
Zeile 332: |
| config interface 'mesh_vlan10' | | config interface 'mesh_vlan10' |
| option ifname 'eth0.10' | | option ifname 'eth0.10' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '0' | | option disabled '0' |
Zeile 340: |
Zeile 339: |
| config interface 'mesh_vlan11' | | config interface 'mesh_vlan11' |
| option ifname 'eth0.11' | | option ifname 'eth0.11' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 348: |
Zeile 346: |
| config interface 'mesh_vlan12' | | config interface 'mesh_vlan12' |
| option ifname 'eth0.12' | | option ifname 'eth0.12' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 364: |
Zeile 361: |
| config interface 'mesh_vlan14' | | config interface 'mesh_vlan14' |
| option ifname 'eth0.14' | | option ifname 'eth0.14' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '0' | | option disabled '0' |
Zeile 372: |
Zeile 368: |
| config interface 'mesh_vlan15' | | config interface 'mesh_vlan15' |
| option ifname 'eth0.15' | | option ifname 'eth0.15' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| + | option disabled '0' |
| option transitive '1' | | option transitive '1' |
− | option disabled '0'
| |
| option macaddr '02:fb:e4:51:9a:15' | | option macaddr '02:fb:e4:51:9a:15' |
| | | |
| config interface 'mesh_vlan16' | | config interface 'mesh_vlan16' |
| option ifname 'eth0.16' | | option ifname 'eth0.16' |
− | option proto 'batif' | + | option proto 'agravis_wired' |
− | option mesh 'ol2' | + | option domain 'oldenburg2' |
| + | option domainif 'ol2' |
| + | option disabled '0' |
| + | option transitive '1' |
| option macaddr '02:fb:e4:51:9a:16' | | option macaddr '02:fb:e4:51:9a:16' |
| | | |
| config interface 'mesh_vlan17' | | config interface 'mesh_vlan17' |
| option ifname 'eth0.17' | | option ifname 'eth0.17' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| + | option disabled '0' |
| option transitive '1' | | option transitive '1' |
− | option disabled '0'
| |
| option macaddr '02:fb:e4:51:9a:17' | | option macaddr '02:fb:e4:51:9a:17' |
| | | |
| config interface 'mesh_vlan18' | | config interface 'mesh_vlan18' |
| option ifname 'eth0.18' | | option ifname 'eth0.18' |
− | option index '0' | + | option proto 'gluon_wired' |
| + | option disabled '0' |
| option transitive '1' | | option transitive '1' |
− | option disabled '0'
| |
− | option proto 'gluon_wired'
| |
| option macaddr '02:fb:e4:51:9a:18' | | option macaddr '02:fb:e4:51:9a:18' |
| | | |
| config interface 'mesh_vlan19' | | config interface 'mesh_vlan19' |
| option ifname 'eth0.19' | | option ifname 'eth0.19' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 410: |
Zeile 405: |
| config interface 'mesh_vlan20' | | config interface 'mesh_vlan20' |
| option ifname 'eth0.20' | | option ifname 'eth0.20' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 418: |
Zeile 412: |
| config interface 'mesh_vlan21' | | config interface 'mesh_vlan21' |
| option ifname 'eth0.21' | | option ifname 'eth0.21' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 426: |
Zeile 419: |
| config interface 'mesh_vlan22' | | config interface 'mesh_vlan22' |
| option ifname 'eth0.22' | | option ifname 'eth0.22' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 434: |
Zeile 426: |
| config interface 'mesh_vlan23' | | config interface 'mesh_vlan23' |
| option ifname 'eth0.23' | | option ifname 'eth0.23' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 442: |
Zeile 433: |
| config interface 'mesh_vlan24' | | config interface 'mesh_vlan24' |
| option ifname 'eth0.24' | | option ifname 'eth0.24' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 450: |
Zeile 440: |
| config interface 'mesh_vlan25' | | config interface 'mesh_vlan25' |
| option ifname 'eth0.25' | | option ifname 'eth0.25' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 458: |
Zeile 447: |
| config interface 'mesh_vlan26' | | config interface 'mesh_vlan26' |
| option ifname 'eth0.26' | | option ifname 'eth0.26' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 466: |
Zeile 454: |
| config interface 'mesh_vlan27' | | config interface 'mesh_vlan27' |
| option ifname 'eth0.27' | | option ifname 'eth0.27' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 474: |
Zeile 461: |
| config interface 'mesh_vlan28' | | config interface 'mesh_vlan28' |
| option ifname 'eth0.28' | | option ifname 'eth0.28' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 482: |
Zeile 468: |
| config interface 'mesh_vlan29' | | config interface 'mesh_vlan29' |
| option ifname 'eth0.29' | | option ifname 'eth0.29' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 490: |
Zeile 475: |
| config interface 'mesh_vlan30' | | config interface 'mesh_vlan30' |
| option ifname 'eth0.30' | | option ifname 'eth0.30' |
− | option proto 'batif' | + | option proto 'agravis_wired' |
− | option mesh 'rastede' | + | option domain 'rastede' |
| + | option domainif 'rastede' |
| + | option disabled '0' |
| + | option transitive '1' |
| option macaddr '02:fb:e4:51:9a:30' | | option macaddr '02:fb:e4:51:9a:30' |
| | | |
| config interface 'mesh_vlan31' | | config interface 'mesh_vlan31' |
| option ifname 'eth0.31' | | option ifname 'eth0.31' |
− | option proto 'batif' | + | option proto 'agravis_wired' |
− | option mesh 'ol2' | + | option domain 'oldenburg2' |
| + | option domainif 'ol2' |
| + | option disabled '0' |
| + | option transitive '1' |
| option macaddr '02:fb:e4:51:9a:31' | | option macaddr '02:fb:e4:51:9a:31' |
| | | |
| config interface 'mesh_vlan32' | | config interface 'mesh_vlan32' |
| option ifname 'eth0.32' | | option ifname 'eth0.32' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 510: |
Zeile 500: |
| config interface 'mesh_vlan33' | | config interface 'mesh_vlan33' |
| option ifname 'eth0.33' | | option ifname 'eth0.33' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 518: |
Zeile 507: |
| config interface 'mesh_vlan34' | | config interface 'mesh_vlan34' |
| option ifname 'eth0.34' | | option ifname 'eth0.34' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 526: |
Zeile 514: |
| config interface 'mesh_vlan35' | | config interface 'mesh_vlan35' |
| option ifname 'eth0.35' | | option ifname 'eth0.35' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 534: |
Zeile 521: |
| config interface 'mesh_vlan36' | | config interface 'mesh_vlan36' |
| option ifname 'eth0.36' | | option ifname 'eth0.36' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 542: |
Zeile 528: |
| config interface 'mesh_vlan37' | | config interface 'mesh_vlan37' |
| option ifname 'eth0.37' | | option ifname 'eth0.37' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 550: |
Zeile 535: |
| config interface 'mesh_vlan38' | | config interface 'mesh_vlan38' |
| option ifname 'eth0.38' | | option ifname 'eth0.38' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 558: |
Zeile 542: |
| config interface 'mesh_vlan39' | | config interface 'mesh_vlan39' |
| option ifname 'eth0.39' | | option ifname 'eth0.39' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 566: |
Zeile 549: |
| config interface 'mesh_vlan40' | | config interface 'mesh_vlan40' |
| option ifname 'eth0.40' | | option ifname 'eth0.40' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 574: |
Zeile 556: |
| config interface 'mesh_vlan41' | | config interface 'mesh_vlan41' |
| option ifname 'eth0.41' | | option ifname 'eth0.41' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 582: |
Zeile 563: |
| config interface 'mesh_vlan42' | | config interface 'mesh_vlan42' |
| option ifname 'eth0.42' | | option ifname 'eth0.42' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 590: |
Zeile 570: |
| config interface 'mesh_vlan43' | | config interface 'mesh_vlan43' |
| option ifname 'eth0.43' | | option ifname 'eth0.43' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 598: |
Zeile 577: |
| config interface 'mesh_vlan44' | | config interface 'mesh_vlan44' |
| option ifname 'eth0.44' | | option ifname 'eth0.44' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 606: |
Zeile 584: |
| config interface 'mesh_vlan45' | | config interface 'mesh_vlan45' |
| option ifname 'eth0.45' | | option ifname 'eth0.45' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 614: |
Zeile 591: |
| config interface 'mesh_vlan46' | | config interface 'mesh_vlan46' |
| option ifname 'eth0.46' | | option ifname 'eth0.46' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 622: |
Zeile 598: |
| config interface 'mesh_vlan47' | | config interface 'mesh_vlan47' |
| option ifname 'eth0.47' | | option ifname 'eth0.47' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 630: |
Zeile 605: |
| config interface 'mesh_vlan48' | | config interface 'mesh_vlan48' |
| option ifname 'eth0.48' | | option ifname 'eth0.48' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 638: |
Zeile 612: |
| config interface 'mesh_vlan49' | | config interface 'mesh_vlan49' |
| option ifname 'eth0.49' | | option ifname 'eth0.49' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 646: |
Zeile 619: |
| config interface 'mesh_vlan50' | | config interface 'mesh_vlan50' |
| option ifname 'eth0.50' | | option ifname 'eth0.50' |
− | option proto 'batif' | + | option proto 'agravis_wired' |
− | option mesh 'ol2' | + | option domain 'oldenburg2' |
| + | option domainif 'ol2' |
| + | option disabled '0' |
| + | option transitive '1' |
| option macaddr '02:fb:e4:51:9a:50' | | option macaddr '02:fb:e4:51:9a:50' |
| | | |
| config interface 'mesh_vlan51' | | config interface 'mesh_vlan51' |
| option ifname 'eth0.51' | | option ifname 'eth0.51' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 660: |
Zeile 635: |
| config interface 'mesh_vlan52' | | config interface 'mesh_vlan52' |
| option ifname 'eth0.52' | | option ifname 'eth0.52' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 668: |
Zeile 642: |
| config interface 'mesh_vlan53' | | config interface 'mesh_vlan53' |
| option ifname 'eth0.53' | | option ifname 'eth0.53' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 676: |
Zeile 649: |
| config interface 'mesh_vlan54' | | config interface 'mesh_vlan54' |
| option ifname 'eth0.54' | | option ifname 'eth0.54' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 684: |
Zeile 656: |
| config interface 'mesh_vlan55' | | config interface 'mesh_vlan55' |
| option ifname 'eth0.55' | | option ifname 'eth0.55' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 692: |
Zeile 663: |
| config interface 'mesh_vlan56' | | config interface 'mesh_vlan56' |
| option ifname 'eth0.56' | | option ifname 'eth0.56' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 700: |
Zeile 670: |
| config interface 'mesh_vlan57' | | config interface 'mesh_vlan57' |
| option ifname 'eth0.57' | | option ifname 'eth0.57' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 708: |
Zeile 677: |
| config interface 'mesh_vlan58' | | config interface 'mesh_vlan58' |
| option ifname 'eth0.58' | | option ifname 'eth0.58' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 716: |
Zeile 684: |
| config interface 'mesh_vlan59' | | config interface 'mesh_vlan59' |
| option ifname 'eth0.59' | | option ifname 'eth0.59' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 724: |
Zeile 691: |
| config interface 'mesh_vlan60' | | config interface 'mesh_vlan60' |
| option ifname 'eth0.60' | | option ifname 'eth0.60' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 732: |
Zeile 698: |
| config interface 'mesh_vlan61' | | config interface 'mesh_vlan61' |
| option ifname 'eth0.61' | | option ifname 'eth0.61' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 740: |
Zeile 705: |
| config interface 'mesh_vlan62' | | config interface 'mesh_vlan62' |
| option ifname 'eth0.62' | | option ifname 'eth0.62' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 748: |
Zeile 712: |
| config interface 'mesh_vlan63' | | config interface 'mesh_vlan63' |
| option ifname 'eth0.63' | | option ifname 'eth0.63' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 756: |
Zeile 719: |
| config interface 'mesh_vlan64' | | config interface 'mesh_vlan64' |
| option ifname 'eth0.64' | | option ifname 'eth0.64' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 764: |
Zeile 726: |
| config interface 'mesh_vlan65' | | config interface 'mesh_vlan65' |
| option ifname 'eth0.65' | | option ifname 'eth0.65' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 772: |
Zeile 733: |
| config interface 'mesh_vlan66' | | config interface 'mesh_vlan66' |
| option ifname 'eth0.66' | | option ifname 'eth0.66' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 780: |
Zeile 740: |
| config interface 'mesh_vlan67' | | config interface 'mesh_vlan67' |
| option ifname 'eth0.67' | | option ifname 'eth0.67' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 788: |
Zeile 747: |
| config interface 'mesh_vlan68' | | config interface 'mesh_vlan68' |
| option ifname 'eth0.68' | | option ifname 'eth0.68' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
Zeile 796: |
Zeile 754: |
| config interface 'mesh_vlan69' | | config interface 'mesh_vlan69' |
| option ifname 'eth0.69' | | option ifname 'eth0.69' |
− | option index '0'
| |
| option proto 'gluon_wired' | | option proto 'gluon_wired' |
| option disabled '1' | | option disabled '1' |
| option transitive '1' | | option transitive '1' |
| option macaddr '02:fb:e4:51:9a:69' | | option macaddr '02:fb:e4:51:9a:69' |
− |
| |
− | 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' | | config interface 'mgmt' |
Zeile 819: |
Zeile 766: |
| option ip4table '120' | | option ip4table '120' |
| option ip6addr 'fe80::1' | | option ip6addr 'fe80::1' |
| + | |
| + | config rule |
| + | option in 'mgmt' |
| + | option goto '100000' |
| | | |
| config interface 'client4' | | config interface 'client4' |
Zeile 824: |
Zeile 775: |
| option auto '1' | | option auto '1' |
| option proto 'dhcp' | | option proto 'dhcp' |
− | option ip4table '120' | + | option ip4table '100' |
| + | |
| + | config rule 'routing_bat0' |
| + | option priority '100000' |
| + | option lookup '100' |
| + | |
| + | config interface 'agravis_bat_ol2' |
| + | option gw_mode 'client' |
| + | option proto 'agravis_bat' |
| + | option domain 'oldenburg2' |
| + | option domainif 'ol2' |
| + | |
| + | config interface 'bat_ol2' |
| + | option multicast_router '2' |
| + | option ifname 'bat-ol2' |
| + | option auto '1' |
| + | option macaddr 'b4:fb:e4:51:9a:46' |
| + | option learning '1' |
| + | option proto 'none' |
| + | |
| + | config interface 'client_ol2' |
| + | option ifname 'bat-ol2' |
| + | option auto '1' |
| + | option proto 'dhcp' |
| + | option ipv6 '1' |
| + | option ip4table '101' |
| + | option ip6table '101' |
| + | |
| + | config rule 'routing_ol2' |
| + | option priority '100001' |
| + | option lookup '101' |
| + | |
| + | config rule6 'routing6_ol2' |
| + | option priority '100001' |
| + | option lookup '101' |
| + | |
| + | config interface 'agravis_bat_rastede' |
| + | option gw_mode 'client' |
| + | option proto 'agravis_bat' |
| + | option domain 'rastede' |
| + | option domainif 'rastede' |
| + | |
| + | config interface 'bat_rastede' |
| + | option multicast_router '2' |
| + | option ifname 'bat-rastede' |
| + | option auto '1' |
| + | option macaddr 'b4:fb:e4:51:9a:46' |
| + | option learning '1' |
| + | option proto 'none' |
| + | |
| + | config interface 'client_rastede' |
| + | option ifname 'bat-rastede' |
| + | option auto '1' |
| + | option proto 'dhcp' |
| + | option ipv6 '1' |
| + | option ip4table '102' |
| + | option ip6table '102' |
| + | |
| + | config rule 'routing_rastede' |
| + | option priority '100002' |
| + | option lookup '102' |
| | | |
− | config rule | + | config rule6 'routing6_rastede' |
− | option in 'mgmt' | + | option priority '100002' |
− | option lookup '120' | + | option lookup '102' |
| | | |
| </pre> | | </pre> |
Zeile 854: |
Zeile 865: |
| | | |
| == Multihood == | | == Multihood == |
− | | + | /lib/gluon/upgrade/742-agravis |
− | === /lib/netifd/proto/bat.sh ===
| |
− | Make executable
| |
| #!/bin/sh | | #!/bin/sh |
− | | + | function mkifsetupteardown() { |
− | . /lib/functions.sh
| + | mkdir "$2" |
− | . ../netifd-proto.sh
| + | find "$1" -type d -print | sed -n "s|^$1/||p" | while IFS= read -r dir; do |
− | init_proto "$@"
| + | mkdir "$2/$dir" |
− |
| + | done |
− | proto_bat_init_config() {
| + | find "$1" -type f -print | sed -n "s|^$1/||p" | while IFS= read -r file; do |
− | no_device=1 | + | sed 's/gluon_bat0/agravis_bat_$DOMAINIF/' "$1/$file" > "$2/$file" |
− | available=1
| + | <nowiki> </nowiki> chmod +x "$2/$file" |
− | renew_handler=1
| + | done |
− |
| |
− | proto_config_add_string 'gw_mode'
| |
− | }
| |
− |
| |
− | lookup_site() {
| |
− | local path="$1" default="$2"
| |
− | lua -e "print(require('gluon.site').$path('$default'))"
| |
| } | | } |
| | | |
− | lookup_uci() { | + | mkifsetupteardown "/lib/gluon/core/mesh/setup.d" "/lib/gluon/core/mesh/agravis-setup.d" |
− | local path="$1" default="$2"
| + | mkifsetupteardown "/lib/gluon/core/mesh/post-setup.d" "/lib/gluon/core/mesh/agravis-post-setup.d" |
− | uci -q get "$path" || echo "$default"
| + | mkifsetupteardown "/lib/gluon/core/mesh/teardown.d" "/lib/gluon/core/mesh/agravis-teardown.d" |
− | } | |
| | | |
− | proto_bat_renew() { | + | <nowiki>#</nowiki> TODO lua -e "print(require('gluon.site').$path('$default'))" returning correct site? |
− | local CONFIG="$1"
| + | sed -e 's/gluon_bat0.lock/agravis_bat_$domainif.lock/' \ |
− |
| + | <nowiki> </nowiki> -e 's/gluon_bat0/agravis_bat/' \ |
− | local ifname
| + | <nowiki> </nowiki> -e 's/local gw_mode/local gw_mode domain domainif/' \ |
− | json_get_vars ifname
| + | <nowiki> </nowiki> -e 's/json_get_vars gw_mode/json_get_vars gw_mode domain domainif/' \ |
− |
| + | <nowiki> </nowiki> -e 's/primary0_/pri_/' \ |
− | local IFNAME="${ifname:-$CONFIG}"
| + | <nowiki> </nowiki> -e 's/primary0/pri-$domainif/' \ |
| + | <nowiki> </nowiki> -e 's/batctl/batctl -m "bat-$domainif"/' \ |
| + | <nowiki> </nowiki> -e '/^proto_agravis_bat_renew() {$/{N;s/proto_agravis_bat_renew() {\n\tlocal config="$1"/proto_agravis_bat_renew() {\n\tlocal config="$1"\n\n\tlocal domain domainif\n\tjson_get_vars domain domainif/}' \ |
| + | <nowiki> </nowiki> -e '/^proto_agravis_bat_teardown() {$/{N;s/proto_agravis_bat_teardown() {\n\tlocal config="$1"/proto_agravis_bat_teardown() {\n\tlocal config="$1"\n\n\tlocal domain domainif\n\tjson_get_vars domain domainif/}' \ |
| + | <nowiki> </nowiki> -e "s/@.proto='gluon_mesh'/@.proto='agravis_mesh' \&\& @.data.domainif='\$domainif'/" \ |
| + | <nowiki> </nowiki> -e "s/proto_config_add_string 'gw_mode'/proto_config_add_string 'gw_mode'\n\tproto_config_add_string 'domain'\n\tproto_config_add_string 'domainif'/" \ |
| + | <nowiki> </nowiki> /lib/netifd/proto/gluon_bat0.sh >/lib/netifd/proto/agravis_bat.sh |
| + | chmod +x /lib/netifd/proto/agravis_bat.sh |
| | | |
− | lock /var/lock/"$IFNAME".bat.lock
| + | sed -e 's/gluon_mesh/agravis_mesh/' \ |
| + | <nowiki> </nowiki> -e 's!/lib/gluon/core/mesh/!/lib/gluon/core/mesh/agravis-!' \ |
| + | <nowiki> </nowiki> -e 's/local fixed_mtu transitive/local fixed_mtu transitive domain domainif/' \ |
| + | <nowiki> </nowiki> -e 's/json_get_vars fixed_mtu transitive/json_get_vars fixed_mtu transitive domain domainif/' \ |
| + | <nowiki> </nowiki> -e 's/export TRANSITIVE="${transitive:-0}"/export TRANSITIVE="${transitive:-0}"\n\texport DOMAIN="$domain"\n\texport DOMAINIF="$domainif"/' \ |
| + | <nowiki> </nowiki> -e 's/json_add_boolean transitive "$TRANSITIVE"/json_add_boolean transitive "$TRANSITIVE"\n\tjson_add_string domain "$DOMAIN"\n\tjson_add_string domainif "$DOMAINIF"/' \ |
| + | <nowiki> </nowiki> -e 's/proto_config_add_boolean transitive/proto_config_add_boolean transitive\n\tproto_config_add_string domain\n\tproto_config_add_string domainif/' \ |
| + | <nowiki> </nowiki> -e 's!for script in /lib/gluon/core/mesh/agravis-teardown.d/!local domain domainif\n\tjson_get_vars domain domainif\n\texport DOMAIN="$domain"\n\texport DOMAINIF="$domainif"\n\n\tfor script in /lib/gluon/core/mesh/agravis-teardown.d/!' \ |
| + | <nowiki> </nowiki> /lib/netifd/proto/gluon_mesh.sh >/lib/netifd/proto/agravis_mesh.sh |
| + | chmod +x /lib/netifd/proto/agravis_mesh.sh |
| | | |
− | ubus call network.interface dump | jsonfilter \
| + | sed -e 's/gluon_wired/agravis_wired/' \ |
− | -e "@.interface[@.proto='batif' && @.data.mesh='${IFNAME:4}' && @.up=true].device" \
| + | <nowiki> </nowiki> -e 's/proto_config_add_string vxpeer6addr/proto_config_add_string vxpeer6addr\n\tproto_config_add_string domain\n\tproto_config_add_string domainif/' \ |
− | | xargs -r -n 1 batctl -m "$IFNAME" interface add
| + | <nowiki> </nowiki> -e 's/local transitive index vxlan vxpeer6addr/local transitive index vxlan vxpeer6addr domain domainif/' \ |
| + | <nowiki> </nowiki> -e 's/json_get_vars transitive index vxlan vxpeer6addr/json_get_vars transitive index vxlan vxpeer6addr domain domainif/' \ |
| + | <nowiki> </nowiki> -e "s/json_add_string proto 'gluon_mesh'/json_add_string proto 'agravis_mesh'\n\tjson_add_string domain \"\$domain\"\n\tjson_add_string domainif \"\$domainif\"/" \ |
| + | <nowiki> </nowiki> -e "s#require(\"gluon.util\").domain_seed_bytes(#require(\"gluon.agravis\").domain_seed_bytes(\"'\"\$(cat /lib/gluon/domains/\"\$domain\".json | jsonfilter -e \"@.domain_seed\")\"'\", #" \ |
| + | <nowiki> </nowiki> /lib/netifd/proto/gluon_wired.sh >/lib/netifd/proto/agravis_wired.sh |
| + | chmod +x /lib/netifd/proto/agravis_wired.sh |
| | | |
− | lock -u /var/lock/"$IFNAME".bat.lock
| + | cat <<EOF >/usr/lib/lua/gluon/agravis.lua |
− | } | + | local util = require 'gluon.util' |
| | | |
− | proto_bat_setup() { | + | local M = {} |
− | local CONFIG="$1"
| |
| | | |
− | local routing_algo=$(lookup_site 'mesh.batman_adv.routing_algo' 'BATMAN_IV') | + | function M.domain_seed_bytes(domain_seed, key, length) |
| + | local ret = <nowiki>''</nowiki> |
| + | local v = <nowiki>''</nowiki> |
| + | local i = 0 |
| | | |
− | local gw_mode ifname | + | -- Inspired by HKDF key expansion, but much simpler, as we don't need |
− | json_get_vars gw_mode ifname | + | -- cryptographic strength |
− | | + | while ret:len() < 2*length do |
− | local IFNAME="${ifname:-$CONFIG}"
| + | i = i + 1 |
| + | v = hash.md5(v .. key .. domain_seed:lower() .. i) |
| + | ret = ret .. v |
| + | end |
| | | |
− | batctl -m "$IFNAME" routing_algo "$routing_algo" | + | return ret:sub(0, 2*length) |
− | batctl -m "$IFNAME" interface create
| + | end |
| | | |
− | batctl -m "$IFNAME" orig_interval 5000
| + | return M |
− | batctl -m "$IFNAME" hop_penalty "$(lookup_uci 'gluon.mesh_batman_adv.hop_penalty' 15)"
| + | EOF |
− | batctl -m "$IFNAME" multicast_mode 0
| |
| | | |
− | case "$gw_mode" in
| + | sed -i "s/@.proto='gluon_mesh'/(@.proto='gluon_mesh' || @.proto='agravis_mesh')/" /etc/init.d/gluon-respondd |
− | 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'
| |