[v9] Support batman-adv meshing over 802.11s

Submitted by Adrian Schmutzler on Oct. 15, 2017, 9:27 a.m.

Details

Message ID 1508059678-1390-1-git-send-email-freifunk@adrianschmutzler.de
State Accepted
Headers show

Commit Message

Adrian Schmutzler Oct. 15, 2017, 9:27 a.m.
From: Fabian Blaese <fabian@blaese.de>

Signed-off-by: Fabian Bläse <fabian@blaese.de>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Update in v2:
- Add parentheses
- Rename mesh_type variable

Update in v3:
- nothing

Update in v4:
- Fix wrong variable assignment introduced in v2

Update in v5:
- Add returns to wifiAddMesh

Update in v6:
- Rename json mesh_type variable

Update in v7:
- Remove ath10k-ct
- Remove changes to community file

Update in v8:
- Revert removing ath10k-ct kmod

Update in v9:
- Rebase
- Use 11s as initial interface during boot (merge with
  remainder of initial setup patch)
---
 bsp/ar71xx/.config                                 |  4 +--
 .../fff/fff-hoods/files/usr/sbin/configurehood     | 22 +++++++++---
 .../files/etc/uci-defaults/60-fff-wireless         |  8 ++---
 .../fff-wireless/files/lib/functions/fff/wireless  | 40 ++++++++++++++++++++--
 4 files changed, 61 insertions(+), 13 deletions(-)

Patch hide | download patch | download mbox

diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
index b407f7d..0a5b9b9 100644
--- a/bsp/ar71xx/.config
+++ b/bsp/ar71xx/.config
@@ -7,9 +7,9 @@  CONFIG_TARGET_MULTI_PROFILE=y
 CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
 CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
 CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
-CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
+CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
 CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c7-v2=y
-CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca988x ath10k-firmware-qca988x-ct"
+CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct"
 CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe210-220=y
 CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_cpe210-220=""
 CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe510-520=y
diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index 63580b1..8ce9133 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 mesh_type2
 		#json_get_var channel5 channel5
 		#json_get_var mode5 mode5
-		#json_get_var type5 type5
+		json_get_var mesh_type5 mesh_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/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
index 8070cb4..7e2fcf9 100644
--- 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
@@ -13,18 +13,18 @@  for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
 	radio="$(wifiAddPhyCond "$phy" "2" "1")"
 	radio5="$(wifiAddPhyCond "$phy" "5" "36")"
 	[ -n "$radio5" ] && radio="$radio5"
-	if [ -z "$radio" ]; then
+	if [ -z "$radio" ] ; then
 		echo "Can't create radio for $phy"
 		exit 1
 	fi
 
-	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0"; then
+	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0" ; then
 		echo "Can't add AP interface on $radio."
 		exit 1
 	fi
 
-	if ! wifiAddAdHocMesh "$radio" "batman.do.not.use" "02:CA:FF:EE:BA:BE"; then
-		echo "Can't add AdHocMesh interface on $radio."
+	if ! wifiAddMesh "$radio" "mesh.do.not.use" ; then
+		echo "Can't add Mesh interface on $radio."
 		exit 1
 	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 71f566a..7e418c2 100644
--- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
+++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
@@ -84,9 +84,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__
@@ -178,4 +178,40 @@  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
+}
 # vim: set noexpandtab:tabstop=4

Comments

Tim Niemeyer Oct. 15, 2017, 4:27 p.m.
Hi

Am Sonntag, den 15.10.2017, 11:27 +0200 schrieb Adrian Schmutzler:
> > From: Fabian Blaese <fabian@blaese.de>
> 
> > Signed-off-by: Fabian Bläse <fabian@blaese.de>
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> Update in v2:
> - Add parentheses
> - Rename mesh_type variable
> 
> Update in v3:
> - nothing
> 
> Update in v4:
> - Fix wrong variable assignment introduced in v2
> 
> Update in v5:
> - Add returns to wifiAddMesh
> 
> Update in v6:
> - Rename json mesh_type variable
> 
> Update in v7:
> - Remove ath10k-ct
> - Remove changes to community file
> 
> Update in v8:
> - Revert removing ath10k-ct kmod
> 
> Update in v9:
> - Rebase
> - Use 11s as initial interface during boot (merge with
>   remainder of initial setup patch)
> ---
>  bsp/ar71xx/.config                                 |  4 +--
>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 22 +++++++++---
>  .../files/etc/uci-defaults/60-fff-wireless         |  8 ++---
>  .../fff-wireless/files/lib/functions/fff/wireless  | 40 ++++++++++++++++++++--
>  4 files changed, 61 insertions(+), 13 deletions(-)
> 
> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
> index b407f7d..0a5b9b9 100644
> --- a/bsp/ar71xx/.config
> +++ b/bsp/ar71xx/.config
> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist, ich
hätte stumpf die Invertierung erwartet:

CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-firmware-qca9887-ct"

Warum ist meine Annahme falsch?

>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c7-v2=y
> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca988x ath10k-firmware-qca988x-ct"
> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct"
s.o.

>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe210-220=y
>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_cpe210-220=""
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe510-520=y
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 63580b1..8ce9133 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 mesh_type2
> >  		#json_get_var channel5 channel5
> >  		#json_get_var mode5 mode5
> > -		#json_get_var type5 type5
> > +		json_get_var mesh_type5 mesh_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"
Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man sollte
mal testen, was dann konkret passiert. Wenn durch das Aktivieren von
ibss auf einem ath10k mit 11s Firmware irgendwelche Nebeneffekte
passieren wäre das hinlänglich doof.

Wäre das der Fall, müsste man hier die Kompatibilität prüfen!

> +			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/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> index 8070cb4..7e2fcf9 100644
> --- 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
> @@ -13,18 +13,18 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> >  	radio="$(wifiAddPhyCond "$phy" "2" "1")"
> >  	radio5="$(wifiAddPhyCond "$phy" "5" "36")"
> >  	[ -n "$radio5" ] && radio="$radio5"
> > -	if [ -z "$radio" ]; then
> +	if [ -z "$radio" ] ; then
Das ist eine nutzlose Änderung..

>  		echo "Can't create radio for $phy"
> >  		exit 1
> >  	fi
>  
> > -	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0"; then
> +	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0" ; then
Das ist eine nutzlose Änderung..

Tim

>  		echo "Can't add AP interface on $radio."
> >  		exit 1
> >  	fi
>  
> > -	if ! wifiAddAdHocMesh "$radio" "batman.do.not.use" "02:CA:FF:EE:BA:BE"; then
> > -		echo "Can't add AdHocMesh interface on $radio."
> > +	if ! wifiAddMesh "$radio" "mesh.do.not.use" ; then
> > +		echo "Can't add Mesh interface on $radio."
> >  		exit 1
> >  	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 71f566a..7e418c2 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -84,9 +84,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__
> @@ -178,4 +178,40 @@ 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
> +}
>  # vim: set noexpandtab:tabstop=4
> -- 
> 2.7.4
>
Christian Dresel Oct. 15, 2017, 4:28 p.m.
hi

hab das ganze gerade noch mal getestet, da ich es schon gerne vor einer
Alpha noch mit drin haben möchte. Eingebaut auf den aktuellen Master und
dieses Patch dazu. Funktioniert soweit einwandfrei daher auch ein

Reviewed-by: Christian Dresel <fff@chrisi01.de>

Kleine Anmerkung noch, man könnte theoretisch auch

https://github.com/FreifunkFranken/firmware/blob/master/bsp/ar71xx/.config

Zeile 88 / 89

CONFIG_PACKAGE_ath10k-firmware-qca9887-ct=m
CONFIG_PACKAGE_ath10k-firmware-qca988x-ct=m

entfernen.

Da es aber eh nur ein m hat und sowieso nur eingebaut wird, wenn man es
weiter oben anwählt (zumindest versteh ich den Syntax so, bitte
korrigieren wenn falsch), stört es aktuell auch gar nicht. Soll daher
das Applien jetzt nicht verhindern aber man muss mal irgendwann drüber
nachdenken wie man damit umgeht.

P.S. In dem Zustand bekommt der c25 immer noch kein fe80::1 an den
config AP gehangen aber ich glaub da gabs schon ein Patch dagegen,
sollte man dann am besten auch noch einbauen bevor Alpha (hat jetzt aber
eigentlich hier grad gar nix zu suchen)

mfg

Christian

On 15.10.2017 11:27, Adrian Schmutzler wrote:
> From: Fabian Blaese <fabian@blaese.de>
> 
> Signed-off-by: Fabian Bläse <fabian@blaese.de>
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> Update in v2:
> - Add parentheses
> - Rename mesh_type variable
> 
> Update in v3:
> - nothing
> 
> Update in v4:
> - Fix wrong variable assignment introduced in v2
> 
> Update in v5:
> - Add returns to wifiAddMesh
> 
> Update in v6:
> - Rename json mesh_type variable
> 
> Update in v7:
> - Remove ath10k-ct
> - Remove changes to community file
> 
> Update in v8:
> - Revert removing ath10k-ct kmod
> 
> Update in v9:
> - Rebase
> - Use 11s as initial interface during boot (merge with
>   remainder of initial setup patch)
> ---
>  bsp/ar71xx/.config                                 |  4 +--
>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 22 +++++++++---
>  .../files/etc/uci-defaults/60-fff-wireless         |  8 ++---
>  .../fff-wireless/files/lib/functions/fff/wireless  | 40 ++++++++++++++++++++--
>  4 files changed, 61 insertions(+), 13 deletions(-)
> 
> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
> index b407f7d..0a5b9b9 100644
> --- a/bsp/ar71xx/.config
> +++ b/bsp/ar71xx/.config
> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c7-v2=y
> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca988x ath10k-firmware-qca988x-ct"
> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct"
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe210-220=y
>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_cpe210-220=""
>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe510-520=y
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 63580b1..8ce9133 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 mesh_type2
>  		#json_get_var channel5 channel5
>  		#json_get_var mode5 mode5
> -		#json_get_var type5 type5
> +		json_get_var mesh_type5 mesh_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/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
> index 8070cb4..7e2fcf9 100644
> --- 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
> @@ -13,18 +13,18 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>  	radio="$(wifiAddPhyCond "$phy" "2" "1")"
>  	radio5="$(wifiAddPhyCond "$phy" "5" "36")"
>  	[ -n "$radio5" ] && radio="$radio5"
> -	if [ -z "$radio" ]; then
> +	if [ -z "$radio" ] ; then
>  		echo "Can't create radio for $phy"
>  		exit 1
>  	fi
>  
> -	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0"; then
> +	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0" ; then
>  		echo "Can't add AP interface on $radio."
>  		exit 1
>  	fi
>  
> -	if ! wifiAddAdHocMesh "$radio" "batman.do.not.use" "02:CA:FF:EE:BA:BE"; then
> -		echo "Can't add AdHocMesh interface on $radio."
> +	if ! wifiAddMesh "$radio" "mesh.do.not.use" ; then
> +		echo "Can't add Mesh interface on $radio."
>  		exit 1
>  	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 71f566a..7e418c2 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -84,9 +84,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__
> @@ -178,4 +178,40 @@ 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
> +}
>  # vim: set noexpandtab:tabstop=4
>
Christian Dresel Oct. 15, 2017, 4:32 p.m.
hi

On 15.10.2017 18:27, Tim Niemeyer wrote:
> Hi
> 
> Am Sonntag, den 15.10.2017, 11:27 +0200 schrieb Adrian Schmutzler:
>>> From: Fabian Blaese <fabian@blaese.de>
>>
>>> Signed-off-by: Fabian Bläse <fabian@blaese.de>
>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>>
>> Update in v2:
>> - Add parentheses
>> - Rename mesh_type variable
>>
>> Update in v3:
>> - nothing
>>
>> Update in v4:
>> - Fix wrong variable assignment introduced in v2
>>
>> Update in v5:
>> - Add returns to wifiAddMesh
>>
>> Update in v6:
>> - Rename json mesh_type variable
>>
>> Update in v7:
>> - Remove ath10k-ct
>> - Remove changes to community file
>>
>> Update in v8:
>> - Revert removing ath10k-ct kmod
>>
>> Update in v9:
>> - Rebase
>> - Use 11s as initial interface during boot (merge with
>>   remainder of initial setup patch)
>> ---
>>  bsp/ar71xx/.config                                 |  4 +--
>>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 22 +++++++++---
>>  .../files/etc/uci-defaults/60-fff-wireless         |  8 ++---
>>  .../fff-wireless/files/lib/functions/fff/wireless  | 40 ++++++++++++++++++++--
>>  4 files changed, 61 insertions(+), 13 deletions(-)
>>
>> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
>> index b407f7d..0a5b9b9 100644
>> --- a/bsp/ar71xx/.config
>> +++ b/bsp/ar71xx/.config
>> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
>>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
>> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
>> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
> Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist, ich
> hätte stumpf die Invertierung erwartet:
> 
> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-firmware-qca9887-ct"
> 
> Warum ist meine Annahme falsch?

ja Adrian antwortet hoffentlich gleich drauf ;)

> 
>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c7-v2=y
>> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca988x ath10k-firmware-qca988x-ct"
>> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c7-v2="-kmod-ath10k kmod-ath10k-ct"
> s.o.
> 
>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe210-220=y
>>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_cpe210-220=""
>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe510-520=y
>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>> index 63580b1..8ce9133 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 mesh_type2
>>>  		#json_get_var channel5 channel5
>>>  		#json_get_var mode5 mode5
>>> -		#json_get_var type5 type5
>>> +		json_get_var mesh_type5 mesh_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"
> Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man sollte
> mal testen, was dann konkret passiert. Wenn durch das Aktivieren von
> ibss auf einem ath10k mit 11s Firmware irgendwelche Nebeneffekte
> passieren wäre das hinlänglich doof.
> 
> Wäre das der Fall, müsste man hier die Kompatibilität prüfen!

Soviel ich noch im Kopf habe wird mit der falschen Firmware dann einfach
gar kein AdHoc/11s Netz aufgemacht und nur der Accesspoint startet.


D.h. wenn ich die 11s Firmware drinnen habe und im ibss lande, gibts
einfach gar kein AdHoc Netz, andersherum genauso.

mfg

Christian

> 
>> +			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/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
>> index 8070cb4..7e2fcf9 100644
>> --- 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
>> @@ -13,18 +13,18 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
>>>  	radio="$(wifiAddPhyCond "$phy" "2" "1")"
>>>  	radio5="$(wifiAddPhyCond "$phy" "5" "36")"
>>>  	[ -n "$radio5" ] && radio="$radio5"
>>> -	if [ -z "$radio" ]; then
>> +	if [ -z "$radio" ] ; then
> Das ist eine nutzlose Änderung..
> 
>>  		echo "Can't create radio for $phy"
>>>  		exit 1
>>>  	fi
>>  
>>> -	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0"; then
>> +	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0" ; then
> Das ist eine nutzlose Änderung..
> 
> Tim
> 
>>  		echo "Can't add AP interface on $radio."
>>>  		exit 1
>>>  	fi
>>  
>>> -	if ! wifiAddAdHocMesh "$radio" "batman.do.not.use" "02:CA:FF:EE:BA:BE"; then
>>> -		echo "Can't add AdHocMesh interface on $radio."
>>> +	if ! wifiAddMesh "$radio" "mesh.do.not.use" ; then
>>> +		echo "Can't add Mesh interface on $radio."
>>>  		exit 1
>>>  	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 71f566a..7e418c2 100644
>> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>> @@ -84,9 +84,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__
>> @@ -178,4 +178,40 @@ 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
>> +}
>>  # vim: set noexpandtab:tabstop=4
>> -- 
>> 2.7.4
>>
>>
Adrian Schmutzler Oct. 15, 2017, 4:35 p.m.
Hallo,

siehe unten.

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Christian Dresel
> Sent: Sonntag, 15. Oktober 2017 18:33
> To: Tim Niemeyer <tim@tn-x.org>; franken-dev@freifunk.net; Adrian
> Schmutzler <freifunk@adrianschmutzler.de>
> Subject: Re: [PATCH v9] Support batman-adv meshing over 802.11s
> 
> hi
> 
> On 15.10.2017 18:27, Tim Niemeyer wrote:
> > Hi
> >
> > Am Sonntag, den 15.10.2017, 11:27 +0200 schrieb Adrian Schmutzler:
> >>> From: Fabian Blaese <fabian@blaese.de>
> >>
> >>> Signed-off-by: Fabian Bläse <fabian@blaese.de>
> >>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> >>
> >> Update in v2:
> >> - Add parentheses
> >> - Rename mesh_type variable
> >>
> >> Update in v3:
> >> - nothing
> >>
> >> Update in v4:
> >> - Fix wrong variable assignment introduced in v2
> >>
> >> Update in v5:
> >> - Add returns to wifiAddMesh
> >>
> >> Update in v6:
> >> - Rename json mesh_type variable
> >>
> >> Update in v7:
> >> - Remove ath10k-ct
> >> - Remove changes to community file
> >>
> >> Update in v8:
> >> - Revert removing ath10k-ct kmod
> >>
> >> Update in v9:
> >> - Rebase
> >> - Use 11s as initial interface during boot (merge with
> >>   remainder of initial setup patch)
> >> ---
> >>  bsp/ar71xx/.config                                 |  4 +--
> >>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 22 +++++++++---
> >>  .../files/etc/uci-defaults/60-fff-wireless         |  8 ++---
> >>  .../fff-wireless/files/lib/functions/fff/wireless  | 40
> >> ++++++++++++++++++++--
> >>  4 files changed, 61 insertions(+), 13 deletions(-)
> >>
> >> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config index
> >> b407f7d..0a5b9b9 100644
> >> --- a/bsp/ar71xx/.config
> >> +++ b/bsp/ar71xx/.config
> >> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
> >>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
> >>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-
> ar150=""
> >>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
> >> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
> c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-
> firmware-qca9887-ct"
> >> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
> c25-v1="-kmod-ath10k kmod-ath10k-ct"
> > Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist,
> > ich hätte stumpf die Invertierung erwartet:
> >
> > CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
> c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-
> firmware-qca9887-ct"
> >
> > Warum ist meine Annahme falsch?
> 
> ja Adrian antwortet hoffentlich gleich drauf ;)

Das hat fblaese geändert, ich hab da keine Ahnung von, mein C25 geht mit keiner Config richtig.


> 
> >
> >>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c7-v2=y
> >> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
> c7-v2="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca988x ath10k-
> firmware-qca988x-ct"
> >> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
> c7-v2="-kmod-ath10k kmod-ath10k-ct"
> > s.o.
> >
> >>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe210-220=y
> >>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_cpe210-
> 220=""
> >>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_cpe510-520=y
> >> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >> index 63580b1..8ce9133 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 mesh_type2
> >>>  		#json_get_var channel5 channel5
> >>>  		#json_get_var mode5 mode5
> >>> -		#json_get_var type5 type5
> >>> +		json_get_var mesh_type5 mesh_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"
> > Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man
> > sollte mal testen, was dann konkret passiert. Wenn durch das
> > Aktivieren von ibss auf einem ath10k mit 11s Firmware irgendwelche
> > Nebeneffekte passieren wäre das hinlänglich doof.
> >
> > Wäre das der Fall, müsste man hier die Kompatibilität prüfen!
> 
> Soviel ich noch im Kopf habe wird mit der falschen Firmware dann einfach gar
> kein AdHoc/11s Netz aufgemacht und nur der Accesspoint startet.
> 
> 
> D.h. wenn ich die 11s Firmware drinnen habe und im ibss lande, gibts einfach
> gar kein AdHoc Netz, andersherum genauso.

Habe ich nie getestet, da das mit meinem C25 keinen Sinn macht.

Grüße

Adrian


> 
> mfg
> 
> Christian
> 
> >
> >> +			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/etc/uci-defaults/60-fff-wireles
> >> s
> >> b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireles
> >> s
> >> index 8070cb4..7e2fcf9 100644
> >> ---
> >> a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireles
> >> s
> >> +++ b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wir
> >> +++ eless
> >> @@ -13,18 +13,18 @@ for phy in $(iw phy | awk '/^Wiphy/{ print $2
> >> }'); do
> >>>  	radio="$(wifiAddPhyCond "$phy" "2" "1")"
> >>>  	radio5="$(wifiAddPhyCond "$phy" "5" "36")"
> >>>  	[ -n "$radio5" ] && radio="$radio5"
> >>> -	if [ -z "$radio" ]; then
> >> +	if [ -z "$radio" ] ; then
> > Das ist eine nutzlose Änderung..
> >
> >>  		echo "Can't create radio for $phy"
> >>>  		exit 1
> >>>  	fi
> >>
> >>> -	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0"; then
> >> +	if ! wifiAddAP "$radio" "do.not.use" "mesh" "ap" "0" ; then
> > Das ist eine nutzlose Änderung..
> >
> > Tim
> >
> >>  		echo "Can't add AP interface on $radio."
> >>>  		exit 1
> >>>  	fi
> >>
> >>> -	if ! wifiAddAdHocMesh "$radio" "batman.do.not.use"
> "02:CA:FF:EE:BA:BE"; then
> >>> -		echo "Can't add AdHocMesh interface on $radio."
> >>> +	if ! wifiAddMesh "$radio" "mesh.do.not.use" ; then
> >>> +		echo "Can't add Mesh interface on $radio."
> >>>  		exit 1
> >>>  	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 71f566a..7e418c2 100644
> >> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> >> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> >> @@ -84,9 +84,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__
> >> @@ -178,4 +178,40 @@ 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
> >> +}
> >>  # vim: set noexpandtab:tabstop=4
> >> --
> >> 2.7.4
> >>
> >>
Fabian Blaese Oct. 15, 2017, 4:58 p.m.
Hallo Tim,

>> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
>> index b407f7d..0a5b9b9 100644
>> --- a/bsp/ar71xx/.config
>> +++ b/bsp/ar71xx/.config
>> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
>>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
>> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
>> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
> Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist, ich
> hätte stumpf die Invertierung erwartet:
> 
> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-firmware-qca9887-ct"
> 
> Warum ist meine Annahme falsch?

Weil diese Pakete per default drin sind, deswegen muss für den CT ja auch das “normale” raus (-kmod-ath10k)
Siehe auch: https://github.com/lede-project/source/blob/1c4a116a300d5447bf037760f64653556824ab77/target/linux/ar71xx/image/tp-link.mk#L108 <https://github.com/lede-project/source/blob/1c4a116a300d5447bf037760f64653556824ab77/target/linux/ar71xx/image/tp-link.mk#L108>
Was genau war am normalerweise eingebauten Treiber eigentlich schlecht?

>> @@ -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"
> Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man sollte
> mal testen, was dann konkret passiert. Wenn durch das Aktivieren von
> ibss auf einem ath10k mit 11s Firmware irgendwelche Nebeneffekte
> passieren wäre das hinlänglich doof.
> 
> Wäre das der Fall, müsste man hier die Kompatibilität prüfen!

Ja, das muss auf jeden Fall getestet werden. Ich dachte eigentlich, dass ich das irgendwo mit dazu geschrieben hätte, aber scheinbar hab ich das vergessen.

Fabian
Tim Niemeyer Oct. 15, 2017, 5:06 p.m.
Hi

Am Sonntag, den 15.10.2017, 18:58 +0200 schrieb Fabian Bläse:
> Hallo Tim,
> 
> > > diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
> > > index b407f7d..0a5b9b9 100644
> > > --- a/bsp/ar71xx/.config
> > > +++ b/bsp/ar71xx/.config
> > > @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
> > >  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
> > >  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
> > >  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
> > > -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
> > > +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
> > Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist, ich
> > hätte stumpf die Invertierung erwartet:
> > 
> > CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-firmware-qca9887-ct"
> > 
> > Warum ist meine Annahme falsch?
> 
> Weil diese Pakete per default drin sind, deswegen muss für den CT ja auch das “normale” raus (-kmod-ath10k)
Ah, ja das ergibt Sinn!

Dann würde ich jetzt annehmen, dass das so sein müsste:
CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1=""

Die kmod-ath10k ath10k-firmware-qca9887 sind ja beide schon drin und
die *-ct Dinger sind ja eh nur ein Modul. Also per default auch nicht
drin. Wobei ich mich dann auch Christians Anmerkung anschließen würde
und die *-ct Pakete ganz aus der Config abwählen würde.

> Siehe auch: https://github.com/lede-project/source/blob/1c4a116a300d5447bf037760f64653556824ab77/target/linux/ar71xx/image/tp-link.mk#L108
> Was genau war am normalerweise eingebauten Treiber eigentlich schlecht?
Nach meinem Verständnis: Der "ohne -ct" Treiber kann zwar 11s aber kein
ibss, der "-ct" kann es. Ganz sicher bin ich mir aber nicht..

> 
> > > @@ -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"
> > Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man sollte
> > mal testen, was dann konkret passiert. Wenn durch das Aktivieren von
> > ibss auf einem ath10k mit 11s Firmware irgendwelche Nebeneffekte
> > passieren wäre das hinlänglich doof.
> > 
> > Wäre das der Fall, müsste man hier die Kompatibilität prüfen!
> 
> Ja, das muss auf jeden Fall getestet werden. Ich dachte eigentlich,
> dass ich das irgendwo mit dazu geschrieben hätte, aber scheinbar hab
> ich das vergessen.
Shit! Dann müssen wir irgendwo hinterlegen, welche Geräte mit welchem
Type kompatibel sind.

Wenn wir den Aufwand nicht wollen, stelle ich nochmal zur Diskussion
auf ibss ganz zu verzichten. Der Nachteil ist, dass wir keine wirkliche
Field-Test Erfahrung mit 11s haben. Der Vorteil ist aber eine deutlich
gesunkene Komplexität.

Im Moment müssen die Knoten eh mit allem kompatibel sein, weil es
eigentlich gar keine Alternative gibt. Beim dezKeyX könnte der Knoten
einfach die nächste Hood nehmen. Hier nicht.

Tim
Christian Dresel Oct. 15, 2017, 5:11 p.m.
hi

On 15.10.2017 19:06, Tim Niemeyer wrote:
> Hi
> 
> Am Sonntag, den 15.10.2017, 18:58 +0200 schrieb Fabian Bläse:
>> Hallo Tim,
>>
>>>> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
>>>> index b407f7d..0a5b9b9 100644
>>>> --- a/bsp/ar71xx/.config
>>>> +++ b/bsp/ar71xx/.config
>>>> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
>>>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
>>>>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
>>>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
>>>> -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
>>>> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
>>> Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist, ich
>>> hätte stumpf die Invertierung erwartet:
>>>
>>> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-firmware-qca9887-ct"
>>>
>>> Warum ist meine Annahme falsch?
>>
>> Weil diese Pakete per default drin sind, deswegen muss für den CT ja auch das “normale” raus (-kmod-ath10k)
> Ah, ja das ergibt Sinn!
> 
> Dann würde ich jetzt annehmen, dass das so sein müsste:
> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1=""

ich habs mir von Gluon abgeguckt und die setzen beim kmod IMMER den -ct
ein (auch bei ibss) warum, weshalb? Weiß ich gerade nicht. Daher bin ich
der Meinung wie oben richtig. (ohne es anders getestet zu haben aber wie
oben tut es auf jeden Fall richtig, auch getestet)

> 
> Die kmod-ath10k ath10k-firmware-qca9887 sind ja beide schon drin und
> die *-ct Dinger sind ja eh nur ein Modul. Also per default auch nicht
> drin. Wobei ich mich dann auch Christians Anmerkung anschließen würde
> und die *-ct Pakete ganz aus der Config abwählen würde.>
>> Siehe auch: https://github.com/lede-project/source/blob/1c4a116a300d5447bf037760f64653556824ab77/target/linux/ar71xx/image/tp-link.mk#L108
>> Was genau war am normalerweise eingebauten Treiber eigentlich schlecht?
> Nach meinem Verständnis: Der "ohne -ct" Treiber kann zwar 11s aber kein
> ibss, der "-ct" kann es. Ganz sicher bin ich mir aber nicht..

ja gilt aber wohl nur für Firmware, für den kmod weiß ich es auch nicht
exakt was da der Unterschied ist.

> 
>>
>>>> @@ -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"
>>> Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man sollte
>>> mal testen, was dann konkret passiert. Wenn durch das Aktivieren von
>>> ibss auf einem ath10k mit 11s Firmware irgendwelche Nebeneffekte
>>> passieren wäre das hinlänglich doof.
>>>
>>> Wäre das der Fall, müsste man hier die Kompatibilität prüfen!
>>
>> Ja, das muss auf jeden Fall getestet werden. Ich dachte eigentlich,
>> dass ich das irgendwo mit dazu geschrieben hätte, aber scheinbar hab
>> ich das vergessen.
> Shit! Dann müssen wir irgendwo hinterlegen, welche Geräte mit welchem
> Type kompatibel sind.
> 
> Wenn wir den Aufwand nicht wollen, stelle ich nochmal zur Diskussion
> auf ibss ganz zu verzichten. Der Nachteil ist, dass wir keine wirkliche
> Field-Test Erfahrung mit 11s haben. Der Vorteil ist aber eine deutlich
> gesunkene Komplexität.
> 
> Im Moment müssen die Knoten eh mit allem kompatibel sein, weil es
> eigentlich gar keine Alternative gibt. Beim dezKeyX könnte der Knoten
> einfach die nächste Hood nehmen. Hier nicht.

also wegen mir kann ibss auch ganz fallen, ich bin da für alles offen.

mfg

Christian

> 
> Tim
> 
> 
>
Adrian Schmutzler Oct. 16, 2017, 10:25 a.m.
Hallo,

ich bin dafür, die Flexibilität beizubehalten und sowohl 11s als auch ibss anzubieten.

Im Moment sind ja nur 2 (Nischen-)Geräte betroffen, wenn ich das richtig verstanden habe.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Christian Dresel
> Sent: Sonntag, 15. Oktober 2017 19:12
> To: Tim Niemeyer <tim@tn-x.org>; franken-dev@freifunk.net; Fabian Bläse
> <fabian@blaese.de>
> Subject: Re: [PATCH v9] Support batman-adv meshing over 802.11s
> 
> hi
> 
> On 15.10.2017 19:06, Tim Niemeyer wrote:
> > Hi
> >
> > Am Sonntag, den 15.10.2017, 18:58 +0200 schrieb Fabian Bläse:
> >> Hallo Tim,
> >>
> >>>> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config index
> >>>> b407f7d..0a5b9b9 100644
> >>>> --- a/bsp/ar71xx/.config
> >>>> +++ b/bsp/ar71xx/.config
> >>>> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
> >>>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
> >>>>  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-
> ar150=""
> >>>>  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
> >>>> -
> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-
> v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-
> firmware-qca9887-ct"
> >>>>
> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-
> v1="-kmod-ath10k kmod-ath10k-ct"
> >>> Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist,
> >>> ich hätte stumpf die Invertierung erwartet:
> >>>
> >>> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
> c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-
> firmware-qca9887-ct"
> >>>
> >>> Warum ist meine Annahme falsch?
> >>
> >> Weil diese Pakete per default drin sind, deswegen muss für den CT ja
> >> auch das “normale” raus (-kmod-ath10k)
> > Ah, ja das ergibt Sinn!
> >
> > Dann würde ich jetzt annehmen, dass das so sein müsste:
> > CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
> c25-v1=""
> 
> ich habs mir von Gluon abgeguckt und die setzen beim kmod IMMER den -ct
> ein (auch bei ibss) warum, weshalb? Weiß ich gerade nicht. Daher bin ich der
> Meinung wie oben richtig. (ohne es anders getestet zu haben aber wie oben
> tut es auf jeden Fall richtig, auch getestet)
> 
> >
> > Die kmod-ath10k ath10k-firmware-qca9887 sind ja beide schon drin und
> > die *-ct Dinger sind ja eh nur ein Modul. Also per default auch nicht
> > drin. Wobei ich mich dann auch Christians Anmerkung anschließen würde
> > und die *-ct Pakete ganz aus der Config abwählen würde.>
> >> Siehe auch:
> >> https://github.com/lede-
> project/source/blob/1c4a116a300d5447bf037760f
> >> 64653556824ab77/target/linux/ar71xx/image/tp-link.mk#L108
> >> Was genau war am normalerweise eingebauten Treiber eigentlich
> schlecht?
> > Nach meinem Verständnis: Der "ohne -ct" Treiber kann zwar 11s aber
> > kein ibss, der "-ct" kann es. Ganz sicher bin ich mir aber nicht..
> 
> ja gilt aber wohl nur für Firmware, für den kmod weiß ich es auch nicht exakt
> was da der Unterschied ist.
> 
> >
> >>
> >>>> @@ -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"
> >>> Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man
> >>> sollte mal testen, was dann konkret passiert. Wenn durch das
> >>> Aktivieren von ibss auf einem ath10k mit 11s Firmware irgendwelche
> >>> Nebeneffekte passieren wäre das hinlänglich doof.
> >>>
> >>> Wäre das der Fall, müsste man hier die Kompatibilität prüfen!
> >>
> >> Ja, das muss auf jeden Fall getestet werden. Ich dachte eigentlich,
> >> dass ich das irgendwo mit dazu geschrieben hätte, aber scheinbar hab
> >> ich das vergessen.
> > Shit! Dann müssen wir irgendwo hinterlegen, welche Geräte mit welchem
> > Type kompatibel sind.
> >
> > Wenn wir den Aufwand nicht wollen, stelle ich nochmal zur Diskussion
> > auf ibss ganz zu verzichten. Der Nachteil ist, dass wir keine
> > wirkliche Field-Test Erfahrung mit 11s haben. Der Vorteil ist aber
> > eine deutlich gesunkene Komplexität.
> >
> > Im Moment müssen die Knoten eh mit allem kompatibel sein, weil es
> > eigentlich gar keine Alternative gibt. Beim dezKeyX könnte der Knoten
> > einfach die nächste Hood nehmen. Hier nicht.
> 
> also wegen mir kann ibss auch ganz fallen, ich bin da für alles offen.
> 
> mfg
> 
> Christian
> 
> >
> > Tim
> >
> >
> >
Fabian Blaese Oct. 16, 2017, 1:09 p.m.
Ich wäre auch dafür, zumindest zunächst die Flexibilität im Code beizubehalten und das bei den known-issues oder so mit aufzunehmen, welche Geräte nicht IBSS sprechen.

Aber auf jeden Fall sollten alle neuen zentralen Hoods auf 11s setzen.

Fabian

> On 16. Oct 2017, at 12:25, Adrian Schmutzler <mail@adrianschmutzler.de> wrote:
> 
> Hallo,
> 
> ich bin dafür, die Flexibilität beizubehalten und sowohl 11s als auch ibss anzubieten.
> 
> Im Moment sind ja nur 2 (Nischen-)Geräte betroffen, wenn ich das richtig verstanden habe.
> 
> Grüße
> 
> Adrian
> 
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>> Of Christian Dresel
>> Sent: Sonntag, 15. Oktober 2017 19:12
>> To: Tim Niemeyer <tim@tn-x.org>; franken-dev@freifunk.net; Fabian Bläse
>> <fabian@blaese.de>
>> Subject: Re: [PATCH v9] Support batman-adv meshing over 802.11s
>> 
>> hi
>> 
>> On 15.10.2017 19:06, Tim Niemeyer wrote:
>>> Hi
>>> 
>>> Am Sonntag, den 15.10.2017, 18:58 +0200 schrieb Fabian Bläse:
>>>> Hallo Tim,
>>>> 
>>>>>> diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config index
>>>>>> b407f7d..0a5b9b9 100644
>>>>>> --- a/bsp/ar71xx/.config
>>>>>> +++ b/bsp/ar71xx/.config
>>>>>> @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
>>>>>> CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
>>>>>> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-
>> ar150=""
>>>>>> CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
>>>>>> -
>> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-
>> v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-
>> firmware-qca9887-ct"
>>>>>> 
>> +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-
>> v1="-kmod-ath10k kmod-ath10k-ct"
>>>>> Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist,
>>>>> ich hätte stumpf die Invertierung erwartet:
>>>>> 
>>>>> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
>> c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-
>> firmware-qca9887-ct"
>>>>> 
>>>>> Warum ist meine Annahme falsch?
>>>> 
>>>> Weil diese Pakete per default drin sind, deswegen muss für den CT ja
>>>> auch das “normale” raus (-kmod-ath10k)
>>> Ah, ja das ergibt Sinn!
>>> 
>>> Dann würde ich jetzt annehmen, dass das so sein müsste:
>>> CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-
>> c25-v1=""
>> 
>> ich habs mir von Gluon abgeguckt und die setzen beim kmod IMMER den -ct
>> ein (auch bei ibss) warum, weshalb? Weiß ich gerade nicht. Daher bin ich der
>> Meinung wie oben richtig. (ohne es anders getestet zu haben aber wie oben
>> tut es auf jeden Fall richtig, auch getestet)
>> 
>>> 
>>> Die kmod-ath10k ath10k-firmware-qca9887 sind ja beide schon drin und
>>> die *-ct Dinger sind ja eh nur ein Modul. Also per default auch nicht
>>> drin. Wobei ich mich dann auch Christians Anmerkung anschließen würde
>>> und die *-ct Pakete ganz aus der Config abwählen würde.>
>>>> Siehe auch:
>>>> https://github.com/lede-
>> project/source/blob/1c4a116a300d5447bf037760f
>>>> 64653556824ab77/target/linux/ar71xx/image/tp-link.mk#L108
>>>> Was genau war am normalerweise eingebauten Treiber eigentlich
>> schlecht?
>>> Nach meinem Verständnis: Der "ohne -ct" Treiber kann zwar 11s aber
>>> kein ibss, der "-ct" kann es. Ganz sicher bin ich mir aber nicht..
>> 
>> ja gilt aber wohl nur für Firmware, für den kmod weiß ich es auch nicht exakt
>> was da der Unterschied ist.
>> 
>>> 
>>>> 
>>>>>> @@ -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"
>>>>> Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man
>>>>> sollte mal testen, was dann konkret passiert. Wenn durch das
>>>>> Aktivieren von ibss auf einem ath10k mit 11s Firmware irgendwelche
>>>>> Nebeneffekte passieren wäre das hinlänglich doof.
>>>>> 
>>>>> Wäre das der Fall, müsste man hier die Kompatibilität prüfen!
>>>> 
>>>> Ja, das muss auf jeden Fall getestet werden. Ich dachte eigentlich,
>>>> dass ich das irgendwo mit dazu geschrieben hätte, aber scheinbar hab
>>>> ich das vergessen.
>>> Shit! Dann müssen wir irgendwo hinterlegen, welche Geräte mit welchem
>>> Type kompatibel sind.
>>> 
>>> Wenn wir den Aufwand nicht wollen, stelle ich nochmal zur Diskussion
>>> auf ibss ganz zu verzichten. Der Nachteil ist, dass wir keine
>>> wirkliche Field-Test Erfahrung mit 11s haben. Der Vorteil ist aber
>>> eine deutlich gesunkene Komplexität.
>>> 
>>> Im Moment müssen die Knoten eh mit allem kompatibel sein, weil es
>>> eigentlich gar keine Alternative gibt. Beim dezKeyX könnte der Knoten
>>> einfach die nächste Hood nehmen. Hier nicht.
>> 
>> also wegen mir kann ibss auch ganz fallen, ich bin da für alles offen.
>> 
>> mfg
>> 
>> Christian
>> 
>>> 
>>> Tim
>>> 
>>> 
>>> 
> 
> 
> --
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Tim Niemeyer Oct. 16, 2017, 7:45 p.m.
Am Sonntag, den 15.10.2017, 19:11 +0200 schrieb Christian Dresel:
> hi
> 
> On 15.10.2017 19:06, Tim Niemeyer wrote:
> > Hi
> > 
> > Am Sonntag, den 15.10.2017, 18:58 +0200 schrieb Fabian Bläse:
> > > Hallo Tim,
> > > 
> > > > > diff --git a/bsp/ar71xx/.config b/bsp/ar71xx/.config
> > > > > index b407f7d..0a5b9b9 100644
> > > > > --- a/bsp/ar71xx/.config
> > > > > +++ b/bsp/ar71xx/.config
> > > > > @@ -7,9 +7,9 @@ CONFIG_TARGET_MULTI_PROFILE=y
> > > > >  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_gl-ar150=y
> > > > >  CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_gl-ar150=""
> > > > >  CONFIG_TARGET_DEVICE_ar71xx_generic_DEVICE_archer-c25-v1=y
> > > > > -CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct -ath10k-firmware-qca9887 ath10k-firmware-qca9887-ct"
> > > > > +CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="-kmod-ath10k kmod-ath10k-ct"
> > > > 
> > > > Es braucht kein Firmware Package? Wie auch immer dies zu lesen ist, ich
> > > > hätte stumpf die Invertierung erwartet:
> > > > 
> > > > CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1="kmod-ath10k -kmod-ath10k-ct ath10k-firmware-qca9887 -ath10k-firmware-qca9887-ct"
> > > > 
> > > > Warum ist meine Annahme falsch?
> > > 
> > > Weil diese Pakete per default drin sind, deswegen muss für den CT ja auch das “normale” raus (-kmod-ath10k)
> > 
> > Ah, ja das ergibt Sinn!
> > 
> > Dann würde ich jetzt annehmen, dass das so sein müsste:
> > CONFIG_TARGET_DEVICE_PACKAGES_ar71xx_generic_DEVICE_archer-c25-v1=""
> 
> ich habs mir von Gluon abgeguckt und die setzen beim kmod IMMER den -ct
> ein (auch bei ibss) warum, weshalb? Weiß ich gerade nicht. Daher bin ich
> der Meinung wie oben richtig. (ohne es anders getestet zu haben aber wie
> oben tut es auf jeden Fall richtig, auch getestet)

Ok, da es getestet wurde..

Und wegen dem mesh_type = adhoc und dem ath10k scheint der Konsens ja
zunächst zu sein mit Known-Issue zu fahren..

.. Patch applied.

Tim

> 
> > 
> > Die kmod-ath10k ath10k-firmware-qca9887 sind ja beide schon drin und
> > die *-ct Dinger sind ja eh nur ein Modul. Also per default auch nicht
> > drin. Wobei ich mich dann auch Christians Anmerkung anschließen würde
> > und die *-ct Pakete ganz aus der Config abwählen würde.>
> > > Siehe auch: https://github.com/lede-project/source/blob/1c4a116a300d5447bf037760f64653556824ab77/target/linux/ar71xx/image/tp-link.mk#L108
> > > Was genau war am normalerweise eingebauten Treiber eigentlich schlecht?
> > 
> > Nach meinem Verständnis: Der "ohne -ct" Treiber kann zwar 11s aber kein
> > ibss, der "-ct" kann es. Ganz sicher bin ich mir aber nicht..
> 
> ja gilt aber wohl nur für Firmware, für den kmod weiß ich es auch nicht
> exakt was da der Unterschied ist.
> 
> > 
> > > 
> > > > > @@ -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"
> > > > 
> > > > Das würde in dem Fall der ath10k Geräte nicht funktionieren. Man sollte
> > > > mal testen, was dann konkret passiert. Wenn durch das Aktivieren von
> > > > ibss auf einem ath10k mit 11s Firmware irgendwelche Nebeneffekte
> > > > passieren wäre das hinlänglich doof.
> > > > 
> > > > Wäre das der Fall, müsste man hier die Kompatibilität prüfen!
> > > 
> > > Ja, das muss auf jeden Fall getestet werden. Ich dachte eigentlich,
> > > dass ich das irgendwo mit dazu geschrieben hätte, aber scheinbar hab
> > > ich das vergessen.
> > 
> > Shit! Dann müssen wir irgendwo hinterlegen, welche Geräte mit welchem
> > Type kompatibel sind.
> > 
> > Wenn wir den Aufwand nicht wollen, stelle ich nochmal zur Diskussion
> > auf ibss ganz zu verzichten. Der Nachteil ist, dass wir keine wirkliche
> > Field-Test Erfahrung mit 11s haben. Der Vorteil ist aber eine deutlich
> > gesunkene Komplexität.
> > 
> > Im Moment müssen die Knoten eh mit allem kompatibel sein, weil es
> > eigentlich gar keine Alternative gibt. Beim dezKeyX könnte der Knoten
> > einfach die nächste Hood nehmen. Hier nicht.
> 
> also wegen mir kann ibss auch ganz fallen, ich bin da für alles offen.
> 
> mfg
> 
> Christian
> 
> > 
> > Tim
> > 
> > 
> > 
> 
>
Fabian Blaese Oct. 17, 2017, 8:15 a.m.
> Und wegen dem mesh_type = adhoc und dem ath10k scheint der Konsens ja
> zunächst zu sein mit Known-Issue zu fahren..

mesh_type = ibss, aber ja. ;)

Fabian