[v16,2/6] Reconfigure fff-wireless for keyxchangev2

Submitted by Adrian Schmutzler on Oct. 5, 2017, 1:37 p.m.

Details

Message ID 1507210666-20961-2-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Oct. 5, 2017, 1:37 p.m.
From: Christian Dresel <fff@chrisi01.de>

Need more parameters in wifiAddAP to add hidden AP
Need new function wifiAddSta to add a station and download hoodfile

Signed-off-by: Christian Dresel <fff@chrisi01.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Update in v5:
 - wXSta to wXsta

Update in v6:
 - nothing

Update in v7:
 - nothing

Update in v8/v9:
 - rebase onto 20170918-beta

Changes in v14:
 - Removed single quotes in iface

Changes in v15/v16:
 - nothing
---
 .../files/etc/uci-defaults/60-fff-wireless         | 43 ---------------------
 .../fff-wireless/files/lib/functions/fff/wireless  | 44 +++++++++++++++++++---
 2 files changed, 39 insertions(+), 48 deletions(-)
 delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
deleted file mode 100644
index 8e207a4..0000000
--- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
+++ /dev/null
@@ -1,43 +0,0 @@ 
-#!/bin/sh
-# Copyright 2016 Tim Niemeyer
-# License GPLv3
-
-. /lib/functions/fff/wireless
-
-. /etc/community.cfg
-
-if ! wifiDelAll; then
-	echo "Can't delete current wifi setup"
-	exit 1
-fi
-
-for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
-	if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
-		echo "$phy is 2.4 GHz"
-		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL")
-		if [ -z "$radio" ]; then
-			echo "Can't create radio for $phy"
-			exit 1
-		fi
-	fi
-	if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
-		echo "$phy is 5 GHz"
-		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL_5GHZ")
-		if [ -z "$radio" ]; then
-			echo "Can't create radio for $phy"
-			exit 1
-		fi
-	fi
-
-	if ! wifiAddAP "$radio" "$ESSID_AP"; then
-		echo "Can't add AP interface on $radio."
-		exit 1
-	fi
-
-	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH"; then
-		echo "Can't add AdHocMesh interface on $radio."
-		exit 1
-	fi
-done
-
-# vim: set noexpandtab:tabstop=4
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 76424be..8ba9463 100644
--- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
+++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
@@ -91,28 +91,32 @@  wifiAddAdHocMesh() {
 }
 
 wifiAddAP() {
-	if [ $# -ne "2" ]
+	if [ $# -ne "5" ]
 	then
-		echo "Usage: wifiAddAP <radio> <essid>"
+		echo "Usage: wifiAddAP <radio> <essid> <network> <iface> <hidden>"
 		return 1
 	fi
 
 	local radio=$1
 	local essid=$2
+	local network=$3
+	local inface=$4
+	local hidden=$5
 
 	local channel=$(uci get "wireless.${radio}.channel")
-	local iface="w2ap"
+	local iface="w2${inface}"
 	if [ "$channel" -gt "14" ]; then
-		iface="w5ap"
+		iface="w5${inface}"
 	fi
 	uci batch <<-__EOF__
 		set wireless.${iface}='wifi-iface'
 		set wireless.${iface}.device='${radio}'
-		set wireless.${iface}.network='mesh'
+		set wireless.${iface}.network='${network}'
 		set wireless.${iface}.ifname='${iface}'
 		set wireless.${iface}.mode='ap'
 		set wireless.${iface}.ssid='${essid}'
 		set wireless.${iface}.encryption='none'
+		set wireless.${iface}.hidden='${hidden}'
 
 		commit wireless
 	__EOF__
@@ -120,4 +124,34 @@  wifiAddAP() {
 	echo "${iface}"
 }
 
+wifiAddSta() {
+	if [ $# -ne "3" ]
+	then
+		echo "Usage: wifiAddSta <radio> <essid> <network>"
+		return 1
+	fi
+
+	local radio=$1
+	local essid=$2
+	local network=$3
+
+	local channel=$(uci get "wireless.${radio}.channel")
+	local iface="w2sta"
+	if [ "$channel" -gt "14" ]; then
+		iface="w5sta"
+	fi
+	uci batch <<-__EOF__
+		set wireless.${iface}='wifi-iface'
+		set wireless.${iface}.device='${radio}'
+		set wireless.${iface}.network='${network}'
+		set wireless.${iface}.ifname='${iface}'
+		set wireless.${iface}.mode='sta'
+		set wireless.${iface}.ssid='${essid}'
+
+		commit wireless
+	__EOF__
+	
+	echo "${iface}"
+}
+
 # vim: set noexpandtab:tabstop=4

Comments

Tim Niemeyer Oct. 8, 2017, 9:27 a.m.
Hi

Am Donnerstag, den 05.10.2017, 15:37 +0200 schrieb Adrian Schmutzler:
> From: Christian Dresel <fff@chrisi01.de>
> 
> Need more parameters in wifiAddAP to add hidden AP
> Need new function wifiAddSta to add a station and download hoodfile
> 
> Signed-off-by: Christian Dresel <fff@chrisi01.de>
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> Update in v5:
>  - wXSta to wXsta
> 
> Update in v6:
>  - nothing
> 
> Update in v7:
>  - nothing
> 
> Update in v8/v9:
>  - rebase onto 20170918-beta
> 
> Changes in v14:
>  - Removed single quotes in iface
> 
> Changes in v15/v16:
>  - nothing
> ---
>  .../files/etc/uci-defaults/60-fff-wireless         | 43 ------------
> ---------
>  .../fff-wireless/files/lib/functions/fff/wireless  | 44
> +++++++++++++++++++---
>  2 files changed, 39 insertions(+), 48 deletions(-)
>  delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-
> defaults/60-fff-wireless
> 
> diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-
> fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-
> defaults/60-fff-wireless
> deleted file mode 100644
> index 8e207a4..0000000
> --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-
> wireless
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -#!/bin/sh
> -# Copyright 2016 Tim Niemeyer
> -# License GPLv3
> -
> -. /lib/functions/fff/wireless
> -
> -. /etc/community.cfg
> -
> -if ! wifiDelAll; then
> -	echo "Can't delete current wifi setup"
> -	exit 1
> -fi
> -
> -for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
Das der folgende Kram beim ersten Booten nicht mehr gemacht wird hat
folgen für configurenetwork, wo die Routermac gesetzt wird. Zumindest
dann, wenn der Knoten die MAC vom WiFi Interface beziehen möchte.

Da brauchen wir ne Lösung. :(

Tim

> -	if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
> -		echo "$phy is 2.4 GHz"
> -		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL")
> -		if [ -z "$radio" ]; then
> -			echo "Can't create radio for $phy"
> -			exit 1
> -		fi
> -	fi
> -	if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
> -		echo "$phy is 5 GHz"
> -		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL_5GHZ")
> -		if [ -z "$radio" ]; then
> -			echo "Can't create radio for $phy"
> -			exit 1
> -		fi
> -	fi
> -
> -	if ! wifiAddAP "$radio" "$ESSID_AP"; then
> -		echo "Can't add AP interface on $radio."
> -		exit 1
> -	fi
> -
> -	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH";
> then
> -		echo "Can't add AdHocMesh interface on $radio."
> -		exit 1
> -	fi
> -done
> -
> -# vim: set noexpandtab:tabstop=4
> 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 76424be..8ba9463 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -91,28 +91,32 @@ wifiAddAdHocMesh() {
>  }
>  
>  wifiAddAP() {
> -	if [ $# -ne "2" ]
> +	if [ $# -ne "5" ]
>  	then
> -		echo "Usage: wifiAddAP <radio> <essid>"
> +		echo "Usage: wifiAddAP <radio> <essid> <network>
> <iface> <hidden>"
>  		return 1
>  	fi
>  
>  	local radio=$1
>  	local essid=$2
> +	local network=$3
> +	local inface=$4
> +	local hidden=$5
>  
>  	local channel=$(uci get "wireless.${radio}.channel")
> -	local iface="w2ap"
> +	local iface="w2${inface}"
>  	if [ "$channel" -gt "14" ]; then
> -		iface="w5ap"
> +		iface="w5${inface}"
>  	fi
>  	uci batch <<-__EOF__
>  		set wireless.${iface}='wifi-iface'
>  		set wireless.${iface}.device='${radio}'
> -		set wireless.${iface}.network='mesh'
> +		set wireless.${iface}.network='${network}'
>  		set wireless.${iface}.ifname='${iface}'
>  		set wireless.${iface}.mode='ap'
>  		set wireless.${iface}.ssid='${essid}'
>  		set wireless.${iface}.encryption='none'
> +		set wireless.${iface}.hidden='${hidden}'
>  
>  		commit wireless
>  	__EOF__
> @@ -120,4 +124,34 @@ wifiAddAP() {
>  	echo "${iface}"
>  }
>  
> +wifiAddSta() {
> +	if [ $# -ne "3" ]
> +	then
> +		echo "Usage: wifiAddSta <radio> <essid> <network>"
> +		return 1
> +	fi
> +
> +	local radio=$1
> +	local essid=$2
> +	local network=$3
> +
> +	local channel=$(uci get "wireless.${radio}.channel")
> +	local iface="w2sta"
> +	if [ "$channel" -gt "14" ]; then
> +		iface="w5sta"
> +	fi
> +	uci batch <<-__EOF__
> +		set wireless.${iface}='wifi-iface'
> +		set wireless.${iface}.device='${radio}'
> +		set wireless.${iface}.network='${network}'
> +		set wireless.${iface}.ifname='${iface}'
> +		set wireless.${iface}.mode='sta'
> +		set wireless.${iface}.ssid='${essid}'
> +
> +		commit wireless
> +	__EOF__
> +	
> +	echo "${iface}"
> +}
> +
>  # vim: set noexpandtab:tabstop=4
> -- 
> 2.7.4
>
Adrian Schmutzler Oct. 8, 2017, 9:36 a.m.
Spricht was dagegen, das einfach wieder reinzuschreiben?

Es reicht ja jeweils wifiAddPhy?

Im configurehood löschen wir dann ja eh alles wieder ...

> -----Original Message-----
> From: Tim Niemeyer [mailto:tim@tn-x.org]
> Sent: Sonntag, 8. Oktober 2017 11:28
> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> dev@freifunk.net
> Subject: Re: [PATCH v16 2/6] Reconfigure fff-wireless for keyxchangev2
> 
> Hi
> 
> Am Donnerstag, den 05.10.2017, 15:37 +0200 schrieb Adrian Schmutzler:
> > From: Christian Dresel <fff@chrisi01.de>
> >
> > Need more parameters in wifiAddAP to add hidden AP Need new function
> > wifiAddSta to add a station and download hoodfile
> >
> > Signed-off-by: Christian Dresel <fff@chrisi01.de>
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> >
> > Update in v5:
> >  - wXSta to wXsta
> >
> > Update in v6:
> >  - nothing
> >
> > Update in v7:
> >  - nothing
> >
> > Update in v8/v9:
> >  - rebase onto 20170918-beta
> >
> > Changes in v14:
> >  - Removed single quotes in iface
> >
> > Changes in v15/v16:
> >  - nothing
> > ---
> >  .../files/etc/uci-defaults/60-fff-wireless         | 43 ------------
> > ---------
> >  .../fff-wireless/files/lib/functions/fff/wireless  | 44
> > +++++++++++++++++++---
> >  2 files changed, 39 insertions(+), 48 deletions(-)
> >  delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-
> > defaults/60-fff-wireless
> >
> > diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-
> > fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-
> > defaults/60-fff-wireless
> > deleted file mode 100644
> > index 8e207a4..0000000
> > --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-
> > wireless
> > +++ /dev/null
> > @@ -1,43 +0,0 @@
> > -#!/bin/sh
> > -# Copyright 2016 Tim Niemeyer
> > -# License GPLv3
> > -
> > -. /lib/functions/fff/wireless
> > -
> > -. /etc/community.cfg
> > -
> > -if ! wifiDelAll; then
> > -	echo "Can't delete current wifi setup"
> > -	exit 1
> > -fi
> > -
> > -for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> Das der folgende Kram beim ersten Booten nicht mehr gemacht wird hat
> folgen für configurenetwork, wo die Routermac gesetzt wird. Zumindest
> dann, wenn der Knoten die MAC vom WiFi Interface beziehen möchte.
> 
> Da brauchen wir ne Lösung. :(
> 
> Tim
> 
> > -	if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
> > -		echo "$phy is 2.4 GHz"
> > -		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL")
> > -		if [ -z "$radio" ]; then
> > -			echo "Can't create radio for $phy"
> > -			exit 1
> > -		fi
> > -	fi
> > -	if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
> > -		echo "$phy is 5 GHz"
> > -		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL_5GHZ")
> > -		if [ -z "$radio" ]; then
> > -			echo "Can't create radio for $phy"
> > -			exit 1
> > -		fi
> > -	fi
> > -
> > -	if ! wifiAddAP "$radio" "$ESSID_AP"; then
> > -		echo "Can't add AP interface on $radio."
> > -		exit 1
> > -	fi
> > -
> > -	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH";
> > then
> > -		echo "Can't add AdHocMesh interface on $radio."
> > -		exit 1
> > -	fi
> > -done
> > -
> > -# vim: set noexpandtab:tabstop=4
> > 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 76424be..8ba9463 100644
> > --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > @@ -91,28 +91,32 @@ wifiAddAdHocMesh() {
> >  }
> >
> >  wifiAddAP() {
> > -	if [ $# -ne "2" ]
> > +	if [ $# -ne "5" ]
> >  	then
> > -		echo "Usage: wifiAddAP <radio> <essid>"
> > +		echo "Usage: wifiAddAP <radio> <essid> <network>
> > <iface> <hidden>"
> >  		return 1
> >  	fi
> >
> >  	local radio=$1
> >  	local essid=$2
> > +	local network=$3
> > +	local inface=$4
> > +	local hidden=$5
> >
> >  	local channel=$(uci get "wireless.${radio}.channel")
> > -	local iface="w2ap"
> > +	local iface="w2${inface}"
> >  	if [ "$channel" -gt "14" ]; then
> > -		iface="w5ap"
> > +		iface="w5${inface}"
> >  	fi
> >  	uci batch <<-__EOF__
> >  		set wireless.${iface}='wifi-iface'
> >  		set wireless.${iface}.device='${radio}'
> > -		set wireless.${iface}.network='mesh'
> > +		set wireless.${iface}.network='${network}'
> >  		set wireless.${iface}.ifname='${iface}'
> >  		set wireless.${iface}.mode='ap'
> >  		set wireless.${iface}.ssid='${essid}'
> >  		set wireless.${iface}.encryption='none'
> > +		set wireless.${iface}.hidden='${hidden}'
> >
> >  		commit wireless
> >  	__EOF__
> > @@ -120,4 +124,34 @@ wifiAddAP() {
> >  	echo "${iface}"
> >  }
> >
> > +wifiAddSta() {
> > +	if [ $# -ne "3" ]
> > +	then
> > +		echo "Usage: wifiAddSta <radio> <essid> <network>"
> > +		return 1
> > +	fi
> > +
> > +	local radio=$1
> > +	local essid=$2
> > +	local network=$3
> > +
> > +	local channel=$(uci get "wireless.${radio}.channel")
> > +	local iface="w2sta"
> > +	if [ "$channel" -gt "14" ]; then
> > +		iface="w5sta"
> > +	fi
> > +	uci batch <<-__EOF__
> > +		set wireless.${iface}='wifi-iface'
> > +		set wireless.${iface}.device='${radio}'
> > +		set wireless.${iface}.network='${network}'
> > +		set wireless.${iface}.ifname='${iface}'
> > +		set wireless.${iface}.mode='sta'
> > +		set wireless.${iface}.ssid='${essid}'
> > +
> > +		commit wireless
> > +	__EOF__
> > +
> > +	echo "${iface}"
> > +}
> > +
> >  # vim: set noexpandtab:tabstop=4
> > --
> > 2.7.4
> >
Tim Niemeyer Oct. 8, 2017, 9:41 a.m.
Am Sonntag, den 08.10.2017, 11:36 +0200 schrieb
mail@adrianschmutzler.de:
> Spricht was dagegen, das einfach wieder reinzuschreiben?
> 
> Es reicht ja jeweils wifiAddPhy?
Nein, weil wir im configurenetwork auf die wXmesh/wXap Interfaces
zugreifen wollen.

> Im configurehood löschen wir dann ja eh alles wieder ...
Dann sollte^{TM} das gehen. Aber bevor wir da jetzt nen Schnellschuss
machen: Gibt es keine bessere Möglichkeit die MAC von den Geräten
rauszufinden?

Tim

> 
> > -----Original Message-----
> > From: Tim Niemeyer [mailto:tim@tn-x.org]
> > Sent: Sonntag, 8. Oktober 2017 11:28
> > To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> > dev@freifunk.net
> > Subject: Re: [PATCH v16 2/6] Reconfigure fff-wireless for
> > keyxchangev2
> > 
> > Hi
> > 
> > Am Donnerstag, den 05.10.2017, 15:37 +0200 schrieb Adrian
> > Schmutzler:
> > > From: Christian Dresel <fff@chrisi01.de>
> > > 
> > > Need more parameters in wifiAddAP to add hidden AP Need new
> > > function
> > > wifiAddSta to add a station and download hoodfile
> > > 
> > > Signed-off-by: Christian Dresel <fff@chrisi01.de>
> > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > > 
> > > Update in v5:
> > >  - wXSta to wXsta
> > > 
> > > Update in v6:
> > >  - nothing
> > > 
> > > Update in v7:
> > >  - nothing
> > > 
> > > Update in v8/v9:
> > >  - rebase onto 20170918-beta
> > > 
> > > Changes in v14:
> > >  - Removed single quotes in iface
> > > 
> > > Changes in v15/v16:
> > >  - nothing
> > > ---
> > >  .../files/etc/uci-defaults/60-fff-wireless         | 43 --------
> > > ----
> > > ---------
> > >  .../fff-wireless/files/lib/functions/fff/wireless  | 44
> > > +++++++++++++++++++---
> > >  2 files changed, 39 insertions(+), 48 deletions(-)
> > >  delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-
> > > defaults/60-fff-wireless
> > > 
> > > diff --git a/src/packages/fff/fff-wireless/files/etc/uci-
> > > defaults/60-
> > > fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-
> > > defaults/60-fff-wireless
> > > deleted file mode 100644
> > > index 8e207a4..0000000
> > > --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-
> > > fff-
> > > wireless
> > > +++ /dev/null
> > > @@ -1,43 +0,0 @@
> > > -#!/bin/sh
> > > -# Copyright 2016 Tim Niemeyer
> > > -# License GPLv3
> > > -
> > > -. /lib/functions/fff/wireless
> > > -
> > > -. /etc/community.cfg
> > > -
> > > -if ! wifiDelAll; then
> > > -	echo "Can't delete current wifi setup"
> > > -	exit 1
> > > -fi
> > > -
> > > -for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> > 
> > Das der folgende Kram beim ersten Booten nicht mehr gemacht wird
> > hat
> > folgen für configurenetwork, wo die Routermac gesetzt wird.
> > Zumindest
> > dann, wenn der Knoten die MAC vom WiFi Interface beziehen möchte.
> > 
> > Da brauchen wir ne Lösung. :(
> > 
> > Tim
> > 
> > > -	if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
> > > -		echo "$phy is 2.4 GHz"
> > > -		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL")
> > > -		if [ -z "$radio" ]; then
> > > -			echo "Can't create radio for $phy"
> > > -			exit 1
> > > -		fi
> > > -	fi
> > > -	if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
> > > -		echo "$phy is 5 GHz"
> > > -		radio=$(wifiAddPhy "$phy"
> > > "$BATMAN_CHANNEL_5GHZ")
> > > -		if [ -z "$radio" ]; then
> > > -			echo "Can't create radio for $phy"
> > > -			exit 1
> > > -		fi
> > > -	fi
> > > -
> > > -	if ! wifiAddAP "$radio" "$ESSID_AP"; then
> > > -		echo "Can't add AP interface on $radio."
> > > -		exit 1
> > > -	fi
> > > -
> > > -	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH"
> > > "$BSSID_MESH";
> > > then
> > > -		echo "Can't add AdHocMesh interface on $radio."
> > > -		exit 1
> > > -	fi
> > > -done
> > > -
> > > -# vim: set noexpandtab:tabstop=4
> > > 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 76424be..8ba9463 100644
> > > --- a/src/packages/fff/fff-
> > > wireless/files/lib/functions/fff/wireless
> > > +++ b/src/packages/fff/fff-
> > > wireless/files/lib/functions/fff/wireless
> > > @@ -91,28 +91,32 @@ wifiAddAdHocMesh() {
> > >  }
> > > 
> > >  wifiAddAP() {
> > > -	if [ $# -ne "2" ]
> > > +	if [ $# -ne "5" ]
> > >  	then
> > > -		echo "Usage: wifiAddAP <radio> <essid>"
> > > +		echo "Usage: wifiAddAP <radio> <essid> <network>
> > > <iface> <hidden>"
> > >  		return 1
> > >  	fi
> > > 
> > >  	local radio=$1
> > >  	local essid=$2
> > > +	local network=$3
> > > +	local inface=$4
> > > +	local hidden=$5
> > > 
> > >  	local channel=$(uci get "wireless.${radio}.channel")
> > > -	local iface="w2ap"
> > > +	local iface="w2${inface}"
> > >  	if [ "$channel" -gt "14" ]; then
> > > -		iface="w5ap"
> > > +		iface="w5${inface}"
> > >  	fi
> > >  	uci batch <<-__EOF__
> > >  		set wireless.${iface}='wifi-iface'
> > >  		set wireless.${iface}.device='${radio}'
> > > -		set wireless.${iface}.network='mesh'
> > > +		set wireless.${iface}.network='${network}'
> > >  		set wireless.${iface}.ifname='${iface}'
> > >  		set wireless.${iface}.mode='ap'
> > >  		set wireless.${iface}.ssid='${essid}'
> > >  		set wireless.${iface}.encryption='none'
> > > +		set wireless.${iface}.hidden='${hidden}'
> > > 
> > >  		commit wireless
> > >  	__EOF__
> > > @@ -120,4 +124,34 @@ wifiAddAP() {
> > >  	echo "${iface}"
> > >  }
> > > 
> > > +wifiAddSta() {
> > > +	if [ $# -ne "3" ]
> > > +	then
> > > +		echo "Usage: wifiAddSta <radio> <essid>
> > > <network>"
> > > +		return 1
> > > +	fi
> > > +
> > > +	local radio=$1
> > > +	local essid=$2
> > > +	local network=$3
> > > +
> > > +	local channel=$(uci get "wireless.${radio}.channel")
> > > +	local iface="w2sta"
> > > +	if [ "$channel" -gt "14" ]; then
> > > +		iface="w5sta"
> > > +	fi
> > > +	uci batch <<-__EOF__
> > > +		set wireless.${iface}='wifi-iface'
> > > +		set wireless.${iface}.device='${radio}'
> > > +		set wireless.${iface}.network='${network}'
> > > +		set wireless.${iface}.ifname='${iface}'
> > > +		set wireless.${iface}.mode='sta'
> > > +		set wireless.${iface}.ssid='${essid}'
> > > +
> > > +		commit wireless
> > > +	__EOF__
> > > +
> > > +	echo "${iface}"
> > > +}
> > > +
> > >  # vim: set noexpandtab:tabstop=4
> > > --
> > > 2.7.4
> > > 
> 
>
Adrian Schmutzler Oct. 8, 2017, 9:44 a.m.
Hallo Tim,

MAC rausfinden übersteigt meine Kompetenz. Da muss jemand anderes helfen.

Grüße

Adrian

> -----Original Message-----
> From: Tim Niemeyer [mailto:tim@tn-x.org]
> Sent: Sonntag, 8. Oktober 2017 11:42
> To: mail@adrianschmutzler.de; franken-dev@freifunk.net
> Subject: Re: [PATCH v16 2/6] Reconfigure fff-wireless for keyxchangev2
> 
> Am Sonntag, den 08.10.2017, 11:36 +0200 schrieb
> mail@adrianschmutzler.de:
> > Spricht was dagegen, das einfach wieder reinzuschreiben?
> >
> > Es reicht ja jeweils wifiAddPhy?
> Nein, weil wir im configurenetwork auf die wXmesh/wXap Interfaces
> zugreifen wollen.
> 
> > Im configurehood löschen wir dann ja eh alles wieder ...
> Dann sollte^{TM} das gehen. Aber bevor wir da jetzt nen Schnellschuss
> machen: Gibt es keine bessere Möglichkeit die MAC von den Geräten
> rauszufinden?
> 
> Tim
> 
> >
> > > -----Original Message-----
> > > From: Tim Niemeyer [mailto:tim@tn-x.org]
> > > Sent: Sonntag, 8. Oktober 2017 11:28
> > > To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> > > dev@freifunk.net
> > > Subject: Re: [PATCH v16 2/6] Reconfigure fff-wireless for
> > > keyxchangev2
> > >
> > > Hi
> > >
> > > Am Donnerstag, den 05.10.2017, 15:37 +0200 schrieb Adrian
> > > Schmutzler:
> > > > From: Christian Dresel <fff@chrisi01.de>
> > > >
> > > > Need more parameters in wifiAddAP to add hidden AP Need new
> > > > function wifiAddSta to add a station and download hoodfile
> > > >
> > > > Signed-off-by: Christian Dresel <fff@chrisi01.de>
> > > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > > >
> > > > Update in v5:
> > > >  - wXSta to wXsta
> > > >
> > > > Update in v6:
> > > >  - nothing
> > > >
> > > > Update in v7:
> > > >  - nothing
> > > >
> > > > Update in v8/v9:
> > > >  - rebase onto 20170918-beta
> > > >
> > > > Changes in v14:
> > > >  - Removed single quotes in iface
> > > >
> > > > Changes in v15/v16:
> > > >  - nothing
> > > > ---
> > > >  .../files/etc/uci-defaults/60-fff-wireless         | 43 --------
> > > > ----
> > > > ---------
> > > >  .../fff-wireless/files/lib/functions/fff/wireless  | 44
> > > > +++++++++++++++++++---
> > > >  2 files changed, 39 insertions(+), 48 deletions(-)
> > > >  delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-
> > > > defaults/60-fff-wireless
> > > >
> > > > diff --git a/src/packages/fff/fff-wireless/files/etc/uci-
> > > > defaults/60-
> > > > fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-
> > > > defaults/60-fff-wireless
> > > > deleted file mode 100644
> > > > index 8e207a4..0000000
> > > > --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-
> > > > fff-
> > > > wireless
> > > > +++ /dev/null
> > > > @@ -1,43 +0,0 @@
> > > > -#!/bin/sh
> > > > -# Copyright 2016 Tim Niemeyer
> > > > -# License GPLv3
> > > > -
> > > > -. /lib/functions/fff/wireless
> > > > -
> > > > -. /etc/community.cfg
> > > > -
> > > > -if ! wifiDelAll; then
> > > > -	echo "Can't delete current wifi setup"
> > > > -	exit 1
> > > > -fi
> > > > -
> > > > -for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> > >
> > > Das der folgende Kram beim ersten Booten nicht mehr gemacht wird hat
> > > folgen für configurenetwork, wo die Routermac gesetzt wird.
> > > Zumindest
> > > dann, wenn der Knoten die MAC vom WiFi Interface beziehen möchte.
> > >
> > > Da brauchen wir ne Lösung. :(
> > >
> > > Tim
> > >
> > > > -	if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
> > > > -		echo "$phy is 2.4 GHz"
> > > > -		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL")
> > > > -		if [ -z "$radio" ]; then
> > > > -			echo "Can't create radio for $phy"
> > > > -			exit 1
> > > > -		fi
> > > > -	fi
> > > > -	if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
> > > > -		echo "$phy is 5 GHz"
> > > > -		radio=$(wifiAddPhy "$phy"
> > > > "$BATMAN_CHANNEL_5GHZ")
> > > > -		if [ -z "$radio" ]; then
> > > > -			echo "Can't create radio for $phy"
> > > > -			exit 1
> > > > -		fi
> > > > -	fi
> > > > -
> > > > -	if ! wifiAddAP "$radio" "$ESSID_AP"; then
> > > > -		echo "Can't add AP interface on $radio."
> > > > -		exit 1
> > > > -	fi
> > > > -
> > > > -	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH"
> > > > "$BSSID_MESH";
> > > > then
> > > > -		echo "Can't add AdHocMesh interface on $radio."
> > > > -		exit 1
> > > > -	fi
> > > > -done
> > > > -
> > > > -# vim: set noexpandtab:tabstop=4
> > > > 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 76424be..8ba9463 100644
> > > > --- a/src/packages/fff/fff-
> > > > wireless/files/lib/functions/fff/wireless
> > > > +++ b/src/packages/fff/fff-
> > > > wireless/files/lib/functions/fff/wireless
> > > > @@ -91,28 +91,32 @@ wifiAddAdHocMesh() {
> > > >  }
> > > >
> > > >  wifiAddAP() {
> > > > -	if [ $# -ne "2" ]
> > > > +	if [ $# -ne "5" ]
> > > >  	then
> > > > -		echo "Usage: wifiAddAP <radio> <essid>"
> > > > +		echo "Usage: wifiAddAP <radio> <essid> <network>
> > > > <iface> <hidden>"
> > > >  		return 1
> > > >  	fi
> > > >
> > > >  	local radio=$1
> > > >  	local essid=$2
> > > > +	local network=$3
> > > > +	local inface=$4
> > > > +	local hidden=$5
> > > >
> > > >  	local channel=$(uci get "wireless.${radio}.channel")
> > > > -	local iface="w2ap"
> > > > +	local iface="w2${inface}"
> > > >  	if [ "$channel" -gt "14" ]; then
> > > > -		iface="w5ap"
> > > > +		iface="w5${inface}"
> > > >  	fi
> > > >  	uci batch <<-__EOF__
> > > >  		set wireless.${iface}='wifi-iface'
> > > >  		set wireless.${iface}.device='${radio}'
> > > > -		set wireless.${iface}.network='mesh'
> > > > +		set wireless.${iface}.network='${network}'
> > > >  		set wireless.${iface}.ifname='${iface}'
> > > >  		set wireless.${iface}.mode='ap'
> > > >  		set wireless.${iface}.ssid='${essid}'
> > > >  		set wireless.${iface}.encryption='none'
> > > > +		set wireless.${iface}.hidden='${hidden}'
> > > >
> > > >  		commit wireless
> > > >  	__EOF__
> > > > @@ -120,4 +124,34 @@ wifiAddAP() {
> > > >  	echo "${iface}"
> > > >  }
> > > >
> > > > +wifiAddSta() {
> > > > +	if [ $# -ne "3" ]
> > > > +	then
> > > > +		echo "Usage: wifiAddSta <radio> <essid>
> > > > <network>"
> > > > +		return 1
> > > > +	fi
> > > > +
> > > > +	local radio=$1
> > > > +	local essid=$2
> > > > +	local network=$3
> > > > +
> > > > +	local channel=$(uci get "wireless.${radio}.channel")
> > > > +	local iface="w2sta"
> > > > +	if [ "$channel" -gt "14" ]; then
> > > > +		iface="w5sta"
> > > > +	fi
> > > > +	uci batch <<-__EOF__
> > > > +		set wireless.${iface}='wifi-iface'
> > > > +		set wireless.${iface}.device='${radio}'
> > > > +		set wireless.${iface}.network='${network}'
> > > > +		set wireless.${iface}.ifname='${iface}'
> > > > +		set wireless.${iface}.mode='sta'
> > > > +		set wireless.${iface}.ssid='${essid}'
> > > > +
> > > > +		commit wireless
> > > > +	__EOF__
> > > > +
> > > > +	echo "${iface}"
> > > > +}
> > > > +
> > > >  # vim: set noexpandtab:tabstop=4
> > > > --
> > > > 2.7.4
> > > >
> >
> >
Fabian Blaese Oct. 8, 2017, 10:31 a.m.
In /sys/class/ieee80211/phy0/macaddress müsste die MAC vom ersten WiFi Device stehen. Das ist bei Dual-Band Geräten aber meistens 5GHz.
Die Frage ist, ob die verschiedene Adressen haben und welche davon aufgedruckt ist.

Gruß
Fabian

> On 8. Oct 2017, at 11:44, mail@adrianschmutzler.de wrote:
> 
> Hallo Tim,
> 
> MAC rausfinden übersteigt meine Kompetenz. Da muss jemand anderes helfen.
> 
> Grüße
> 
> Adrian
> 
>> -----Original Message-----
>> From: Tim Niemeyer [mailto:tim@tn-x.org]
>> Sent: Sonntag, 8. Oktober 2017 11:42
>> To: mail@adrianschmutzler.de; franken-dev@freifunk.net
>> Subject: Re: [PATCH v16 2/6] Reconfigure fff-wireless for keyxchangev2
>> 
>> Am Sonntag, den 08.10.2017, 11:36 +0200 schrieb
>> mail@adrianschmutzler.de:
>>> Spricht was dagegen, das einfach wieder reinzuschreiben?
>>> 
>>> Es reicht ja jeweils wifiAddPhy?
>> Nein, weil wir im configurenetwork auf die wXmesh/wXap Interfaces
>> zugreifen wollen.
>> 
>>> Im configurehood löschen wir dann ja eh alles wieder ...
>> Dann sollte^{TM} das gehen. Aber bevor wir da jetzt nen Schnellschuss
>> machen: Gibt es keine bessere Möglichkeit die MAC von den Geräten
>> rauszufinden?
>> 
>> Tim
>> 
>>> 
>>>> -----Original Message-----
>>>> From: Tim Niemeyer [mailto:tim@tn-x.org]
>>>> Sent: Sonntag, 8. Oktober 2017 11:28
>>>> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
>>>> dev@freifunk.net
>>>> Subject: Re: [PATCH v16 2/6] Reconfigure fff-wireless for
>>>> keyxchangev2
>>>> 
>>>> Hi
>>>> 
>>>> Am Donnerstag, den 05.10.2017, 15:37 +0200 schrieb Adrian
>>>> Schmutzler:
>>>>> From: Christian Dresel <fff@chrisi01.de>
>>>>> 
>>>>> Need more parameters in wifiAddAP to add hidden AP Need new
>>>>> function wifiAddSta to add a station and download hoodfile
>>>>> 
>>>>> Signed-off-by: Christian Dresel <fff@chrisi01.de>
>>>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>>>>> 
>>>>> Update in v5:
>>>>> - wXSta to wXsta
>>>>> 
>>>>> Update in v6:
>>>>> - nothing
>>>>> 
>>>>> Update in v7:
>>>>> - nothing
>>>>> 
>>>>> Update in v8/v9:
>>>>> - rebase onto 20170918-beta
>>>>> 
>>>>> Changes in v14:
>>>>> - Removed single quotes in iface
>>>>> 
>>>>> Changes in v15/v16:
>>>>> - nothing
>>>>> ---
>>>>> .../files/etc/uci-defaults/60-fff-wireless         | 43 --------
>>>>> ----
>>>>> ---------
>>>>> .../fff-wireless/files/lib/functions/fff/wireless  | 44
>>>>> +++++++++++++++++++---
>>>>> 2 files changed, 39 insertions(+), 48 deletions(-)
>>>>> delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-
>>>>> defaults/60-fff-wireless
>>>>> 
>>>>> diff --git a/src/packages/fff/fff-wireless/files/etc/uci-
>>>>> defaults/60-
>>>>> fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-
>>>>> defaults/60-fff-wireless
>>>>> deleted file mode 100644
>>>>> index 8e207a4..0000000
>>>>> --- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-
>>>>> fff-
>>>>> wireless
>>>>> +++ /dev/null
>>>>> @@ -1,43 +0,0 @@
>>>>> -#!/bin/sh
>>>>> -# Copyright 2016 Tim Niemeyer
>>>>> -# License GPLv3
>>>>> -
>>>>> -. /lib/functions/fff/wireless
>>>>> -
>>>>> -. /etc/community.cfg
>>>>> -
>>>>> -if ! wifiDelAll; then
>>>>> -	echo "Can't delete current wifi setup"
>>>>> -	exit 1
>>>>> -fi
>>>>> -
>>>>> -for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>>>> 
>>>> Das der folgende Kram beim ersten Booten nicht mehr gemacht wird hat
>>>> folgen für configurenetwork, wo die Routermac gesetzt wird.
>>>> Zumindest
>>>> dann, wenn der Knoten die MAC vom WiFi Interface beziehen möchte.
>>>> 
>>>> Da brauchen wir ne Lösung. :(
>>>> 
>>>> Tim
>>>> 
>>>>> -	if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
>>>>> -		echo "$phy is 2.4 GHz"
>>>>> -		radio=$(wifiAddPhy "$phy" "$BATMAN_CHANNEL")
>>>>> -		if [ -z "$radio" ]; then
>>>>> -			echo "Can't create radio for $phy"
>>>>> -			exit 1
>>>>> -		fi
>>>>> -	fi
>>>>> -	if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
>>>>> -		echo "$phy is 5 GHz"
>>>>> -		radio=$(wifiAddPhy "$phy"
>>>>> "$BATMAN_CHANNEL_5GHZ")
>>>>> -		if [ -z "$radio" ]; then
>>>>> -			echo "Can't create radio for $phy"
>>>>> -			exit 1
>>>>> -		fi
>>>>> -	fi
>>>>> -
>>>>> -	if ! wifiAddAP "$radio" "$ESSID_AP"; then
>>>>> -		echo "Can't add AP interface on $radio."
>>>>> -		exit 1
>>>>> -	fi
>>>>> -
>>>>> -	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH"
>>>>> "$BSSID_MESH";
>>>>> then
>>>>> -		echo "Can't add AdHocMesh interface on $radio."
>>>>> -		exit 1
>>>>> -	fi
>>>>> -done
>>>>> -
>>>>> -# vim: set noexpandtab:tabstop=4
>>>>> 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 76424be..8ba9463 100644
>>>>> --- a/src/packages/fff/fff-
>>>>> wireless/files/lib/functions/fff/wireless
>>>>> +++ b/src/packages/fff/fff-
>>>>> wireless/files/lib/functions/fff/wireless
>>>>> @@ -91,28 +91,32 @@ wifiAddAdHocMesh() {
>>>>> }
>>>>> 
>>>>> wifiAddAP() {
>>>>> -	if [ $# -ne "2" ]
>>>>> +	if [ $# -ne "5" ]
>>>>> 	then
>>>>> -		echo "Usage: wifiAddAP <radio> <essid>"
>>>>> +		echo "Usage: wifiAddAP <radio> <essid> <network>
>>>>> <iface> <hidden>"
>>>>> 		return 1
>>>>> 	fi
>>>>> 
>>>>> 	local radio=$1
>>>>> 	local essid=$2
>>>>> +	local network=$3
>>>>> +	local inface=$4
>>>>> +	local hidden=$5
>>>>> 
>>>>> 	local channel=$(uci get "wireless.${radio}.channel")
>>>>> -	local iface="w2ap"
>>>>> +	local iface="w2${inface}"
>>>>> 	if [ "$channel" -gt "14" ]; then
>>>>> -		iface="w5ap"
>>>>> +		iface="w5${inface}"
>>>>> 	fi
>>>>> 	uci batch <<-__EOF__
>>>>> 		set wireless.${iface}='wifi-iface'
>>>>> 		set wireless.${iface}.device='${radio}'
>>>>> -		set wireless.${iface}.network='mesh'
>>>>> +		set wireless.${iface}.network='${network}'
>>>>> 		set wireless.${iface}.ifname='${iface}'
>>>>> 		set wireless.${iface}.mode='ap'
>>>>> 		set wireless.${iface}.ssid='${essid}'
>>>>> 		set wireless.${iface}.encryption='none'
>>>>> +		set wireless.${iface}.hidden='${hidden}'
>>>>> 
>>>>> 		commit wireless
>>>>> 	__EOF__
>>>>> @@ -120,4 +124,34 @@ wifiAddAP() {
>>>>> 	echo "${iface}"
>>>>> }
>>>>> 
>>>>> +wifiAddSta() {
>>>>> +	if [ $# -ne "3" ]
>>>>> +	then
>>>>> +		echo "Usage: wifiAddSta <radio> <essid>
>>>>> <network>"
>>>>> +		return 1
>>>>> +	fi
>>>>> +
>>>>> +	local radio=$1
>>>>> +	local essid=$2
>>>>> +	local network=$3
>>>>> +
>>>>> +	local channel=$(uci get "wireless.${radio}.channel")
>>>>> +	local iface="w2sta"
>>>>> +	if [ "$channel" -gt "14" ]; then
>>>>> +		iface="w5sta"
>>>>> +	fi
>>>>> +	uci batch <<-__EOF__
>>>>> +		set wireless.${iface}='wifi-iface'
>>>>> +		set wireless.${iface}.device='${radio}'
>>>>> +		set wireless.${iface}.network='${network}'
>>>>> +		set wireless.${iface}.ifname='${iface}'
>>>>> +		set wireless.${iface}.mode='sta'
>>>>> +		set wireless.${iface}.ssid='${essid}'
>>>>> +
>>>>> +		commit wireless
>>>>> +	__EOF__
>>>>> +
>>>>> +	echo "${iface}"
>>>>> +}
>>>>> +
>>>>> # vim: set noexpandtab:tabstop=4
>>>>> --
>>>>> 2.7.4
>>>>> 
>>> 
>>> 
> 
> --
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Fabian Blaese Oct. 9, 2017, 3:31 p.m.
Diese Überprüfung funktioniert nicht, wenn der Channel auf ‘auto’ gesetzt wird.

> +	local channel=$(uci get "wireless.${radio}.channel")
> +	local iface="w2sta"
> +	if [ "$channel" -gt "14" ]; then
> +		iface="w5sta"
> +	fi

Hat da jemand ne Idee für ne Lösung?
Am einfachsten ist wahrscheinlich ne zusätzliche Funktion in /lib/functions/fff/wireless, mit der man für ein radio überprüfen kann, ob 2,4 oder 5ghz, ähnlich wie in AddPhyCond()

Fabian
Tim Niemeyer Oct. 9, 2017, 3:37 p.m.
Hi

Am 9. Oktober 2017 17:31:18 MESZ schrieb "Fabian Bläse" <fabian@blaese.de>:
>Diese Überprüfung funktioniert nicht, wenn der Channel auf ‘auto’
>gesetzt wird.
>
>> +	local channel=$(uci get "wireless.${radio}.channel")
>> +	local iface="w2sta"
>> +	if [ "$channel" -gt "14" ]; then
>> +		iface="w5sta"
>> +	fi
>
>Hat da jemand ne Idee für ne Lösung?
>Am einfachsten ist wahrscheinlich ne zusätzliche Funktion in
>/lib/functions/fff/wireless, mit der man für ein radio überprüfen kann,
>ob 2,4 oder 5ghz, ähnlich wie in AddPhyCond()

So hätte ich mich auch angenähert.

Tim


>Fabian