Message ID | 20171008111023.21610-1-fabian@blaese.de |
---|---|
State | Superseded |
Headers | show |
diff --git a/community/franken.cfg b/community/franken.cfg index 833e98e..3ea5353 100644 --- a/community/franken.cfg +++ b/community/franken.cfg @@ -3,6 +3,7 @@ BATMAN_CHANNEL_5GHZ=36 ESSID_AP=franken.freifunk.net ESSID_MESH=batman.franken.freifunk.net BSSID_MESH=02:CA:FF:EE:BA:BE +MESH_ID=mesh.franken.freifunk.net VPN_PROJECT=fff NTPD_IP=fe80::ff:feee:1%br-mesh UPGRADE_PATH=http://[fe80::ff:feee:1%br-mesh]/dev/firmware/current diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood index 264a308..ca1a8b1 100755 --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood @@ -119,6 +119,7 @@ if [ -s /tmp/keyxchangev2data ]; then json_select hood json_get_var hood name + json_get_var mesh_id mesh_id json_get_var mesh_bssid mesh_bssid json_get_var mesh_essid mesh_essid json_get_var essid essid @@ -126,10 +127,10 @@ if [ -s /tmp/keyxchangev2data ]; then # i think the next things we don't active this in the first version! we can do it later #json_get_var channel2 channel2 #json_get_var mode2 mode2 - #json_get_var type2 type2 + json_get_var mesh_type2 type2 #json_get_var channel5 channel5 #json_get_var mode5 mode5 - #json_get_var type5 type5 + json_get_var mesh_type5 type5 #json_get_var protocol protocol json_select ".." # back to root @@ -155,9 +156,20 @@ if [ -s /tmp/keyxchangev2data ]; then # here we set a bit for add hidden AP touch /tmp/hiddenapflag - if ! wifiAddAdHocMesh "$radio" "$mesh_essid" "$mesh_bssid"; then - echo "Can't add AP interface on $radio." - exit 1 + # add 802.11s mesh if type == "802.11s" + if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ] ) || [ "$mesh_type2" == "802.11s" ]; then + if ! wifiAddMesh "$radio" "$mesh_id"; then + echo "Can't add Mesh interface on $radio." + exit 1 + fi + fi + + # add IBSS mesh if type == "ibss" + if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) || [ "$mesh_type2" == "ibss" ]; then + if ! wifiAddAdHocMesh "$radio" "$mesh_essid" "$mesh_bssid"; then + echo "Can't add AdHocMesh interface on $radio." + exit 1 + fi fi done diff --git a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless index 2c6dff8..238022a 100644 --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless @@ -83,9 +83,9 @@ wifiAddAdHocMesh() { local bssid=$3 local channel=$(uci get "wireless.${radio}.channel") - local iface="w2mesh" + local iface="w2ibss" if [ "$channel" -gt "14" ]; then - iface="w5mesh" + iface="w5ibss" fi uci batch <<-__EOF__ @@ -177,4 +177,38 @@ wifiAddSta() { return 0 } +wifiAddMesh() { + if [ $# -ne "2" ] + then + echo "Usage: wifiAddMesh <radio> <mesh-id>" + fi + + local radio=$1 + local mesh_id=$2 + + local channel=$(uci get "wireless.${radio}.channel") + local iface="w2mesh" + if [ "$channel" -gt "14" ]; then + iface="w5mesh" + fi + uci batch <<-__EOF__ + set wireless.${iface}='wifi-iface' + set wireless.${iface}.device='${radio}' + set wireless.${iface}.network='${iface}' + set wireless.${iface}.ifname='${iface}' + set wireless.${iface}.mode='mesh' + set wireless.${iface}.mesh_id='${mesh_id}' + set wireless.${iface}.encryption='none' + set wireless.${iface}.mesh_fwding=0 + commit wireless + + set network.${iface}='interface' + set network.${iface}.mtu='1528' + set network.${iface}.proto='batadv' + set network.${iface}.mesh='bat0' + commit network + __EOF__ + + echo "${iface}" +} # vim: set noexpandtab:tabstop=4
Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Hab sowohl 802.11s als auch ibss getestet. > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of Fabian Bläse > Sent: Sonntag, 8. Oktober 2017 13:10 > To: franken-dev@freifunk.net > Subject: [PATCH v4] Support batman-adv meshing over 802.11s > > Signed-off-by: Fabian Bläse <fabian@blaese.de> > > Update in v2: > - Add parentheses > - Rename mesh_type variable > > Update in v3: > - nothing > > Update in v4: > - Fix wrong variable assignment introduced in v2 > --- > community/franken.cfg | 1 + > .../fff/fff-hoods/files/usr/sbin/configurehood | 22 ++++++++++--- > .../fff-wireless/files/lib/functions/fff/wireless | 38 > ++++++++++++++++++++-- > 3 files changed, 54 insertions(+), 7 deletions(-) > > diff --git a/community/franken.cfg b/community/franken.cfg index > 833e98e..3ea5353 100644 > --- a/community/franken.cfg > +++ b/community/franken.cfg > @@ -3,6 +3,7 @@ BATMAN_CHANNEL_5GHZ=36 > ESSID_AP=franken.freifunk.net > ESSID_MESH=batman.franken.freifunk.net > BSSID_MESH=02:CA:FF:EE:BA:BE > +MESH_ID=mesh.franken.freifunk.net > VPN_PROJECT=fff > NTPD_IP=fe80::ff:feee:1%br-mesh > UPGRADE_PATH=http://[fe80::ff:feee:1%br-mesh]/dev/firmware/current > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > index 264a308..ca1a8b1 100755 > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > @@ -119,6 +119,7 @@ if [ -s /tmp/keyxchangev2data ]; then > json_select hood > > json_get_var hood name > + json_get_var mesh_id mesh_id > json_get_var mesh_bssid mesh_bssid > json_get_var mesh_essid mesh_essid > json_get_var essid essid > @@ -126,10 +127,10 @@ if [ -s /tmp/keyxchangev2data ]; then > # i think the next things we don't active this in the first > version! we can do it later > #json_get_var channel2 channel2 > #json_get_var mode2 mode2 > - #json_get_var type2 type2 > + json_get_var mesh_type2 type2 > #json_get_var channel5 channel5 > #json_get_var mode5 mode5 > - #json_get_var type5 type5 > + json_get_var mesh_type5 type5 > #json_get_var protocol protocol > > json_select ".." # back to root > @@ -155,9 +156,20 @@ if [ -s /tmp/keyxchangev2data ]; then > # here we set a bit for add hidden AP > touch /tmp/hiddenapflag > > - if ! wifiAddAdHocMesh "$radio" "$mesh_essid" > "$mesh_bssid"; then > - echo "Can't add AP interface on $radio." > - exit 1 > + # add 802.11s mesh if type == "802.11s" > + if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ] > ) || [ "$mesh_type2" == "802.11s" ]; then > + if ! wifiAddMesh "$radio" "$mesh_id"; then > + echo "Can't add Mesh interface on > $radio." > + exit 1 > + fi > + fi > + > + # add IBSS mesh if type == "ibss" > + if ( [ -n "$radio5" ] && [ "$mesh_type5" == "ibss" ] ) || > [ "$mesh_type2" == "ibss" ]; then > + if ! wifiAddAdHocMesh "$radio" > "$mesh_essid" "$mesh_bssid"; then > + echo "Can't add AdHocMesh interface > on $radio." > + exit 1 > + fi > fi > done > > diff --git a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless > b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless > index 2c6dff8..238022a 100644 > --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless > +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless > @@ -83,9 +83,9 @@ wifiAddAdHocMesh() { > local bssid=$3 > > local channel=$(uci get "wireless.${radio}.channel") > - local iface="w2mesh" > + local iface="w2ibss" > if [ "$channel" -gt "14" ]; then > - iface="w5mesh" > + iface="w5ibss" > fi > > uci batch <<-__EOF__ > @@ -177,4 +177,38 @@ wifiAddSta() { > return 0 > } > > +wifiAddMesh() { > + if [ $# -ne "2" ] > + then > + echo "Usage: wifiAddMesh <radio> <mesh-id>" > + fi > + > + local radio=$1 > + local mesh_id=$2 > + > + local channel=$(uci get "wireless.${radio}.channel") > + local iface="w2mesh" > + if [ "$channel" -gt "14" ]; then > + iface="w5mesh" > + fi > + uci batch <<-__EOF__ > + set wireless.${iface}='wifi-iface' > + set wireless.${iface}.device='${radio}' > + set wireless.${iface}.network='${iface}' > + set wireless.${iface}.ifname='${iface}' > + set wireless.${iface}.mode='mesh' > + set wireless.${iface}.mesh_id='${mesh_id}' > + set wireless.${iface}.encryption='none' > + set wireless.${iface}.mesh_fwding=0 > + commit wireless > + > + set network.${iface}='interface' > + set network.${iface}.mtu='1528' > + set network.${iface}.proto='batadv' > + set network.${iface}.mesh='bat0' > + commit network > + __EOF__ > + > + echo "${iface}" > +} > # vim: set noexpandtab:tabstop=4 > -- > 2.14.1 > > -- > franken-dev mailing list > franken-dev@freifunk.net > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Hi Bitte die Änderungen von Adrian's Patch "[PATCH] fff-wireless: Add returns to wifiAddMesh" noch einbauen. Ich hab es unten nochmal eingemerkt. Am Sonntag, den 08.10.2017, 13:10 +0200 schrieb Fabian Bläse: [..] > diff --git a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless > index 2c6dff8..238022a 100644 > --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless > +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless > @@ -83,9 +83,9 @@ wifiAddAdHocMesh() { > > local bssid=$3 > > > local channel=$(uci get "wireless.${radio}.channel") > > - local iface="w2mesh" > > + local iface="w2ibss" > > if [ "$channel" -gt "14" ]; then > > - iface="w5mesh" > > + iface="w5ibss" > > fi > > > uci batch <<-__EOF__ > @@ -177,4 +177,38 @@ wifiAddSta() { > > return 0 > } > > +wifiAddMesh() { > > + if [ $# -ne "2" ] > > + then > + echo "Usage: wifiAddMesh <radio> <mesh-id>" + return 1 > + fi > + > > + local radio=$1 > > + local mesh_id=$2 > + > > + local channel=$(uci get "wireless.${radio}.channel") > > + local iface="w2mesh" > > + if [ "$channel" -gt "14" ]; then > > + iface="w5mesh" > > + fi > > + uci batch <<-__EOF__ > > + set wireless.${iface}='wifi-iface' > > + set wireless.${iface}.device='${radio}' > > + set wireless.${iface}.network='${iface}' > > + set wireless.${iface}.ifname='${iface}' > > + set wireless.${iface}.mode='mesh' > > + set wireless.${iface}.mesh_id='${mesh_id}' > > + set wireless.${iface}.encryption='none' > > + set wireless.${iface}.mesh_fwding=0 > > + commit wireless > + > > + set network.${iface}='interface' > > + set network.${iface}.mtu='1528' > > + set network.${iface}.proto='batadv' > > + set network.${iface}.mesh='bat0' > > + commit network > > + __EOF__ > + > + echo "${iface}" + return 0 Tim > +} > # vim: set noexpandtab:tabstop=4 > -- > 2.14.1 >
Signed-off-by: Fabian Bläse <fabian@blaese.de> Update in v2: - Add parentheses - Rename mesh_type variable Update in v3: - nothing Update in v4: - Fix wrong variable assignment introduced in v2 --- community/franken.cfg | 1 + .../fff/fff-hoods/files/usr/sbin/configurehood | 22 ++++++++++--- .../fff-wireless/files/lib/functions/fff/wireless | 38 ++++++++++++++++++++-- 3 files changed, 54 insertions(+), 7 deletions(-)