fff-hoods/fff-wireless: Don't delete WiFi devices

Submitted by Adrian Schmutzler on Nov. 2, 2017, 1:31 p.m.

Details

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

Commit Message

Adrian Schmutzler Nov. 2, 2017, 1:31 p.m.
We only want to remove WiFi interfaces, not devices during
reconfiguration. This still allows for complete reconfiguration,
but does not remove device attributes like a disabled 5 GHz or
similar.

Semi-tested: Tested via command-line, but separate from
configurehood.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
 .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15 +++++++++++++++
 2 files changed, 17 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index 8437c33..b1b674e 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -78,7 +78,7 @@  else
 		rm -f "$sectorcopy" # always delete: no broadcast for isolated device
 		rm -f "$sectortmp"
 
-		if ! wifiDelAll; then
+		if ! wifiDelIface; then
 			echo "Can't delete current wifi setup"
 			exit 1
 		fi
@@ -178,7 +178,7 @@  if [ -s "$hoodfile" ]; then
 		uci -q set "system.@system[0].hood=$hood"
 		uci -q commit system
 
-		if ! wifiDelAll; then
+		if ! wifiDelIface; then
 			echo "Can't delete current wifi setup"
 			exit 1
 		fi
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 b1ff5a9..5b63397 100644
--- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
+++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
@@ -14,6 +14,21 @@  wifiDelAll() {
 	return 0
 }
 
+wifiDelIface() {
+	if [ $# -ne "0" ]
+	then
+		echo "Usage: wifiDelIface"
+		return 1
+	fi
+
+	grep 'config wifi-iface' /etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
+		uci -q delete "wireless.$line"
+	done
+	uci -q commit wireless
+
+	return 0
+}
+
 wifiAddPhy() {
 	if [ $# -ne "2" ]
 	then

Comments

Christian Dresel Nov. 4, 2017, 12:43 p.m.
hi

ich hab das ganze mal eben getestet.

root@Testknoten:/www/ssl/cgi-bin# grep 'config wifi-iface'
/etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p"
w2ap
w2mesh
w5ap
w5mesh
w2configap
w5configap
root@Testknoten:/www/ssl/cgi-bin# uci delete wireless.w5mesh
root@Testknoten:/www/ssl/cgi-bin# uci commit wireless
root@Testknoten:/www/ssl/cgi-bin# #wait a little bit....
root@Testknoten:/www/ssl/cgi-bin# ifconfig w5mesh
w5mesh    Link encap:Ethernet  HWaddr 50:C7:BF:3B:3C:3D
          inet6 addr: fe80::52c7:bfff:fe3b:3c3d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1528  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:10668 (10.4 KiB)
root@Testknoten:/www/ssl/cgi-bin# ip link show w5mesh
60: w5mesh: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1528 qdisc noqueue
master bat0 state UP mode DEFAULT group default qlen 1000
    link/ether 50:c7:bf:3b:3c:3d brd ff:ff:ff:ff:ff:ff

root@Testknoten:/www/ssl/cgi-bin# whups....
-ash: whups....: not found

Sollte das Interface nicht runterfahren?

man könnte ein wifi dran hängen, dann wirft er die config aber ganz aus
der /etc/config/wireless

Weiß auch allgemein nicht, ob uci dafür gemacht ist, das man nur die
erste Zeile weg wirft und den Rest stehen lässt. Für mich wirkt das dann
wie ne ungültige uci Datei, ob man das so haben will?

mfg

Christian

On 02.11.2017 14:31, Adrian Schmutzler wrote:
> We only want to remove WiFi interfaces, not devices during
> reconfiguration. This still allows for complete reconfiguration,
> but does not remove device attributes like a disabled 5 GHz or
> similar.
> 
> Semi-tested: Tested via command-line, but separate from
> configurehood.
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
>  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15 +++++++++++++++
>  2 files changed, 17 insertions(+), 2 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 8437c33..b1b674e 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -78,7 +78,7 @@ else
>  		rm -f "$sectorcopy" # always delete: no broadcast for isolated device
>  		rm -f "$sectortmp"
>  
> -		if ! wifiDelAll; then
> +		if ! wifiDelIface; then
>  			echo "Can't delete current wifi setup"
>  			exit 1
>  		fi
> @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
>  		uci -q set "system.@system[0].hood=$hood"
>  		uci -q commit system
>  
> -		if ! wifiDelAll; then
> +		if ! wifiDelIface; then
>  			echo "Can't delete current wifi setup"
>  			exit 1
>  		fi
> 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 b1ff5a9..5b63397 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -14,6 +14,21 @@ wifiDelAll() {
>  	return 0
>  }
>  
> +wifiDelIface() {
> +	if [ $# -ne "0" ]
> +	then
> +		echo "Usage: wifiDelIface"
> +		return 1
> +	fi
> +
> +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
> +		uci -q delete "wireless.$line"
> +	done
> +	uci -q commit wireless
> +
> +	return 0
> +}
> +
>  wifiAddPhy() {
>  	if [ $# -ne "2" ]
>  	then
>
Adrian Schmutzler Nov. 4, 2017, 12:53 p.m.
Hallo Christian,

das mit dem wifi ist vll. eine idee, weiß aber gerade nicht, was das in der situation tun würde.

Bei mir hat das delete aber immer den ganzen Block gelöscht, insofern verstehe ich dein "Weiß auch allgemein nicht, ob uci dafür gemacht ist, das man nur die erste Zeile weg wirft und den Rest stehen lässt." nicht.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Christian Dresel
> Sent: Samstag, 4. November 2017 13:43
> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> dev@freifunk.net
> Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi devices
> 
> hi
> 
> ich hab das ganze mal eben getestet.
> 
> root@Testknoten:/www/ssl/cgi-bin# grep 'config wifi-iface'
> /etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p"
> w2ap
> w2mesh
> w5ap
> w5mesh
> w2configap
> w5configap
> root@Testknoten:/www/ssl/cgi-bin# uci delete wireless.w5mesh
> root@Testknoten:/www/ssl/cgi-bin# uci commit wireless
> root@Testknoten:/www/ssl/cgi-bin# #wait a little bit....
> root@Testknoten:/www/ssl/cgi-bin# ifconfig w5mesh
> w5mesh    Link encap:Ethernet  HWaddr 50:C7:BF:3B:3C:3D
>           inet6 addr: fe80::52c7:bfff:fe3b:3c3d/64 Scope:Link
>           UP BROADCAST RUNNING MULTICAST  MTU:1528  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:0 (0.0 B)  TX bytes:10668 (10.4 KiB)
> root@Testknoten:/www/ssl/cgi-bin# ip link show w5mesh
> 60: w5mesh: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1528 qdisc
> noqueue master bat0 state UP mode DEFAULT group default qlen 1000
>     link/ether 50:c7:bf:3b:3c:3d brd ff:ff:ff:ff:ff:ff
> 
> root@Testknoten:/www/ssl/cgi-bin# whups....
> -ash: whups....: not found
> 
> Sollte das Interface nicht runterfahren?
> 
> man könnte ein wifi dran hängen, dann wirft er die config aber ganz aus der
> /etc/config/wireless
> 
> Weiß auch allgemein nicht, ob uci dafür gemacht ist, das man nur die erste
> Zeile weg wirft und den Rest stehen lässt. Für mich wirkt das dann wie ne
> ungültige uci Datei, ob man das so haben will?
> 
> mfg
> 
> Christian
> 
> On 02.11.2017 14:31, Adrian Schmutzler wrote:
> > We only want to remove WiFi interfaces, not devices during
> > reconfiguration. This still allows for complete reconfiguration, but
> > does not remove device attributes like a disabled 5 GHz or similar.
> >
> > Semi-tested: Tested via command-line, but separate from configurehood.
> >
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > ---
> >  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
> >  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
> +++++++++++++++
> >  2 files changed, 17 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > index 8437c33..b1b674e 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -78,7 +78,7 @@ else
> >  		rm -f "$sectorcopy" # always delete: no broadcast for isolated
> device
> >  		rm -f "$sectortmp"
> >
> > -		if ! wifiDelAll; then
> > +		if ! wifiDelIface; then
> >  			echo "Can't delete current wifi setup"
> >  			exit 1
> >  		fi
> > @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
> >  		uci -q set "system.@system[0].hood=$hood"
> >  		uci -q commit system
> >
> > -		if ! wifiDelAll; then
> > +		if ! wifiDelIface; then
> >  			echo "Can't delete current wifi setup"
> >  			exit 1
> >  		fi
> > 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 b1ff5a9..5b63397 100644
> > --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > @@ -14,6 +14,21 @@ wifiDelAll() {
> >  	return 0
> >  }
> >
> > +wifiDelIface() {
> > +	if [ $# -ne "0" ]
> > +	then
> > +		echo "Usage: wifiDelIface"
> > +		return 1
> > +	fi
> > +
> > +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e
> "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
> > +		uci -q delete "wireless.$line"
> > +	done
> > +	uci -q commit wireless
> > +
> > +	return 0
> > +}
> > +
> >  wifiAddPhy() {
> >  	if [ $# -ne "2" ]
> >  	then
> >
Christian Dresel Nov. 4, 2017, 12:58 p.m.
hi

On 04.11.2017 13:53, mail@adrianschmutzler.de wrote:
> Hallo Christian,
> 
> das mit dem wifi ist vll. eine idee, weiß aber gerade nicht, was das in der situation tun würde.

ich denke das wifi ist auf jeden Fall nötig damit die Änderungen auch
übernommen werden (nach dem uci commit)

> 
> Bei mir hat das delete aber immer den ganzen Block gelöscht, insofern verstehe ich dein "Weiß auch allgemein nicht, ob uci dafür gemacht ist, das man nur die erste Zeile weg wirft und den Rest stehen lässt." nicht.

oh das wirft wirklich den ganzen Block weg, ich war mir fast sicher
vorhin das der stehen geblieben ist. Dann vergess den Teil ;)

Ich versteh das also richtig das alle Settings die an das radio gepappt
werden bestehen bleiben, alles was am Device gedreht wird geht verloren.

Klingt ganz interessant das muss ich mir nochmal genauer angucken.

mfg

Christian

> 
> Grüße
> 
> Adrian
> 
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
>> Of Christian Dresel
>> Sent: Samstag, 4. November 2017 13:43
>> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
>> dev@freifunk.net
>> Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi devices
>>
>> hi
>>
>> ich hab das ganze mal eben getestet.
>>
>> root@Testknoten:/www/ssl/cgi-bin# grep 'config wifi-iface'
>> /etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p"
>> w2ap
>> w2mesh
>> w5ap
>> w5mesh
>> w2configap
>> w5configap
>> root@Testknoten:/www/ssl/cgi-bin# uci delete wireless.w5mesh
>> root@Testknoten:/www/ssl/cgi-bin# uci commit wireless
>> root@Testknoten:/www/ssl/cgi-bin# #wait a little bit....
>> root@Testknoten:/www/ssl/cgi-bin# ifconfig w5mesh
>> w5mesh    Link encap:Ethernet  HWaddr 50:C7:BF:3B:3C:3D
>>           inet6 addr: fe80::52c7:bfff:fe3b:3c3d/64 Scope:Link
>>           UP BROADCAST RUNNING MULTICAST  MTU:1528  Metric:1
>>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>           TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
>>           collisions:0 txqueuelen:1000
>>           RX bytes:0 (0.0 B)  TX bytes:10668 (10.4 KiB)
>> root@Testknoten:/www/ssl/cgi-bin# ip link show w5mesh
>> 60: w5mesh: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1528 qdisc
>> noqueue master bat0 state UP mode DEFAULT group default qlen 1000
>>     link/ether 50:c7:bf:3b:3c:3d brd ff:ff:ff:ff:ff:ff
>>
>> root@Testknoten:/www/ssl/cgi-bin# whups....
>> -ash: whups....: not found
>>
>> Sollte das Interface nicht runterfahren?
>>
>> man könnte ein wifi dran hängen, dann wirft er die config aber ganz aus der
>> /etc/config/wireless
>>
>> Weiß auch allgemein nicht, ob uci dafür gemacht ist, das man nur die erste
>> Zeile weg wirft und den Rest stehen lässt. Für mich wirkt das dann wie ne
>> ungültige uci Datei, ob man das so haben will?
>>
>> mfg
>>
>> Christian
>>
>> On 02.11.2017 14:31, Adrian Schmutzler wrote:
>>> We only want to remove WiFi interfaces, not devices during
>>> reconfiguration. This still allows for complete reconfiguration, but
>>> does not remove device attributes like a disabled 5 GHz or similar.
>>>
>>> Semi-tested: Tested via command-line, but separate from configurehood.
>>>
>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>>> ---
>>>  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
>>>  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
>> +++++++++++++++
>>>  2 files changed, 17 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> index 8437c33..b1b674e 100755
>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> @@ -78,7 +78,7 @@ else
>>>  		rm -f "$sectorcopy" # always delete: no broadcast for isolated
>> device
>>>  		rm -f "$sectortmp"
>>>
>>> -		if ! wifiDelAll; then
>>> +		if ! wifiDelIface; then
>>>  			echo "Can't delete current wifi setup"
>>>  			exit 1
>>>  		fi
>>> @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
>>>  		uci -q set "system.@system[0].hood=$hood"
>>>  		uci -q commit system
>>>
>>> -		if ! wifiDelAll; then
>>> +		if ! wifiDelIface; then
>>>  			echo "Can't delete current wifi setup"
>>>  			exit 1
>>>  		fi
>>> 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 b1ff5a9..5b63397 100644
>>> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>>> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>>> @@ -14,6 +14,21 @@ wifiDelAll() {
>>>  	return 0
>>>  }
>>>
>>> +wifiDelIface() {
>>> +	if [ $# -ne "0" ]
>>> +	then
>>> +		echo "Usage: wifiDelIface"
>>> +		return 1
>>> +	fi
>>> +
>>> +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e
>> "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
>>> +		uci -q delete "wireless.$line"
>>> +	done
>>> +	uci -q commit wireless
>>> +
>>> +	return 0
>>> +}
>>> +
>>>  wifiAddPhy() {
>>>  	if [ $# -ne "2" ]
>>>  	then
>>>
> 
>
Adrian Schmutzler Nov. 4, 2017, 1:14 p.m.
Hab gerade noch mal nachgedacht wg. "wifi":

Unser Einsatzzweck ist ja, dass wir die ifaces alle löschen und dann neue reinschreiben (w2ap/w2mesh vs. w2sta).
Danach machen wir im configurehood sowieso immer ein "wifi".

Das heißt wir löschen im Moment NIE NUR die ifaces. Genauso wie dann im wifiAddPhy kein wifi steht, gehört auch ins wifiDelIface kein wifi rein.

Es gehört aber dahin, wo man die Funktion aufruft; in unserem Fall in die configurehood, wo es bereits steht (jeweils am Ende).

Grüße

Adrian

> -----Original Message-----
> From: Christian Dresel [mailto:fff@chrisi01.de]
> Sent: Samstag, 4. November 2017 13:58
> To: mail@adrianschmutzler.de; franken-dev@freifunk.net
> Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi devices
> 
> hi
> 
> On 04.11.2017 13:53, mail@adrianschmutzler.de wrote:
> > Hallo Christian,
> >
> > das mit dem wifi ist vll. eine idee, weiß aber gerade nicht, was das in der
> situation tun würde.
> 
> ich denke das wifi ist auf jeden Fall nötig damit die Änderungen auch
> übernommen werden (nach dem uci commit)
> 
> >
> > Bei mir hat das delete aber immer den ganzen Block gelöscht, insofern
> verstehe ich dein "Weiß auch allgemein nicht, ob uci dafür gemacht ist, das
> man nur die erste Zeile weg wirft und den Rest stehen lässt." nicht.
> 
> oh das wirft wirklich den ganzen Block weg, ich war mir fast sicher vorhin das
> der stehen geblieben ist. Dann vergess den Teil ;)
> 
> Ich versteh das also richtig das alle Settings die an das radio gepappt werden
> bestehen bleiben, alles was am Device gedreht wird geht verloren.
> 
> Klingt ganz interessant das muss ich mir nochmal genauer angucken.
> 
> mfg
> 
> Christian
> 
> >
> > Grüße
> >
> > Adrian
> >
> >> -----Original Message-----
> >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On
> Behalf
> >> Of Christian Dresel
> >> Sent: Samstag, 4. November 2017 13:43
> >> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> >> dev@freifunk.net
> >> Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi
> >> devices
> >>
> >> hi
> >>
> >> ich hab das ganze mal eben getestet.
> >>
> >> root@Testknoten:/www/ssl/cgi-bin# grep 'config wifi-iface'
> >> /etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p"
> >> w2ap
> >> w2mesh
> >> w5ap
> >> w5mesh
> >> w2configap
> >> w5configap
> >> root@Testknoten:/www/ssl/cgi-bin# uci delete wireless.w5mesh
> >> root@Testknoten:/www/ssl/cgi-bin# uci commit wireless
> >> root@Testknoten:/www/ssl/cgi-bin# #wait a little bit....
> >> root@Testknoten:/www/ssl/cgi-bin# ifconfig w5mesh
> >> w5mesh    Link encap:Ethernet  HWaddr 50:C7:BF:3B:3C:3D
> >>           inet6 addr: fe80::52c7:bfff:fe3b:3c3d/64 Scope:Link
> >>           UP BROADCAST RUNNING MULTICAST  MTU:1528  Metric:1
> >>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
> >>           TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
> >>           collisions:0 txqueuelen:1000
> >>           RX bytes:0 (0.0 B)  TX bytes:10668 (10.4 KiB)
> >> root@Testknoten:/www/ssl/cgi-bin# ip link show w5mesh
> >> 60: w5mesh: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1528 qdisc
> noqueue
> >> master bat0 state UP mode DEFAULT group default qlen 1000
> >>     link/ether 50:c7:bf:3b:3c:3d brd ff:ff:ff:ff:ff:ff
> >>
> >> root@Testknoten:/www/ssl/cgi-bin# whups....
> >> -ash: whups....: not found
> >>
> >> Sollte das Interface nicht runterfahren?
> >>
> >> man könnte ein wifi dran hängen, dann wirft er die config aber ganz
> >> aus der /etc/config/wireless
> >>
> >> Weiß auch allgemein nicht, ob uci dafür gemacht ist, das man nur die
> >> erste Zeile weg wirft und den Rest stehen lässt. Für mich wirkt das
> >> dann wie ne ungültige uci Datei, ob man das so haben will?
> >>
> >> mfg
> >>
> >> Christian
> >>
> >> On 02.11.2017 14:31, Adrian Schmutzler wrote:
> >>> We only want to remove WiFi interfaces, not devices during
> >>> reconfiguration. This still allows for complete reconfiguration, but
> >>> does not remove device attributes like a disabled 5 GHz or similar.
> >>>
> >>> Semi-tested: Tested via command-line, but separate from
> configurehood.
> >>>
> >>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> >>> ---
> >>>  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
> >>>  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
> >> +++++++++++++++
> >>>  2 files changed, 17 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> index 8437c33..b1b674e 100755
> >>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> >>> @@ -78,7 +78,7 @@ else
> >>>  		rm -f "$sectorcopy" # always delete: no broadcast for isolated
> >> device
> >>>  		rm -f "$sectortmp"
> >>>
> >>> -		if ! wifiDelAll; then
> >>> +		if ! wifiDelIface; then
> >>>  			echo "Can't delete current wifi setup"
> >>>  			exit 1
> >>>  		fi
> >>> @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
> >>>  		uci -q set "system.@system[0].hood=$hood"
> >>>  		uci -q commit system
> >>>
> >>> -		if ! wifiDelAll; then
> >>> +		if ! wifiDelIface; then
> >>>  			echo "Can't delete current wifi setup"
> >>>  			exit 1
> >>>  		fi
> >>> 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 b1ff5a9..5b63397 100644
> >>> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> >>> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> >>> @@ -14,6 +14,21 @@ wifiDelAll() {
> >>>  	return 0
> >>>  }
> >>>
> >>> +wifiDelIface() {
> >>> +	if [ $# -ne "0" ]
> >>> +	then
> >>> +		echo "Usage: wifiDelIface"
> >>> +		return 1
> >>> +	fi
> >>> +
> >>> +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e
> >> "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
> >>> +		uci -q delete "wireless.$line"
> >>> +	done
> >>> +	uci -q commit wireless
> >>> +
> >>> +	return 0
> >>> +}
> >>> +
> >>>  wifiAddPhy() {
> >>>  	if [ $# -ne "2" ]
> >>>  	then
> >>>
> >
> >
Christian Dresel Nov. 4, 2017, 1:24 p.m.
hi

On 04.11.2017 14:14, mail@adrianschmutzler.de wrote:
> Hab gerade noch mal nachgedacht wg. "wifi":
> 
> Unser Einsatzzweck ist ja, dass wir die ifaces alle löschen und dann neue reinschreiben (w2ap/w2mesh vs. w2sta).
> Danach machen wir im configurehood sowieso immer ein "wifi".>
> Das heißt wir löschen im Moment NIE NUR die ifaces. Genauso wie dann im wifiAddPhy kein wifi steht, gehört auch ins wifiDelIface kein wifi rein.
> 
> Es gehört aber dahin, wo man die Funktion aufruft; in unserem Fall in die configurehood, wo es bereits steht (jeweils am Ende).

stimmt dort hab ich nicht danach gesucht, ich war zu sehr auf die lib
fixiert.

was mich noch ein wenig stört, das wifiaddphy einfach drüber schreibt
(oder da es schon so dort steht gar nix macht?) aber scheint kein
Problem zu sein und zu gehen.

Ich häng jetzt mal ein

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

dran, würde mich aber freuen wenn noch ein 3. (vielleicht beim applien)
drüber guckt, für mich wirkt das irgendwie zu... einfach ;)

mfg

Christian

> 
> Grüße
> 
> Adrian
> 
>> -----Original Message-----
>> From: Christian Dresel [mailto:fff@chrisi01.de]
>> Sent: Samstag, 4. November 2017 13:58
>> To: mail@adrianschmutzler.de; franken-dev@freifunk.net
>> Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi devices
>>
>> hi
>>
>> On 04.11.2017 13:53, mail@adrianschmutzler.de wrote:
>>> Hallo Christian,
>>>
>>> das mit dem wifi ist vll. eine idee, weiß aber gerade nicht, was das in der
>> situation tun würde.
>>
>> ich denke das wifi ist auf jeden Fall nötig damit die Änderungen auch
>> übernommen werden (nach dem uci commit)
>>
>>>
>>> Bei mir hat das delete aber immer den ganzen Block gelöscht, insofern
>> verstehe ich dein "Weiß auch allgemein nicht, ob uci dafür gemacht ist, das
>> man nur die erste Zeile weg wirft und den Rest stehen lässt." nicht.
>>
>> oh das wirft wirklich den ganzen Block weg, ich war mir fast sicher vorhin das
>> der stehen geblieben ist. Dann vergess den Teil ;)
>>
>> Ich versteh das also richtig das alle Settings die an das radio gepappt werden
>> bestehen bleiben, alles was am Device gedreht wird geht verloren.
>>
>> Klingt ganz interessant das muss ich mir nochmal genauer angucken.
>>
>> mfg
>>
>> Christian
>>
>>>
>>> Grüße
>>>
>>> Adrian
>>>
>>>> -----Original Message-----
>>>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On
>> Behalf
>>>> Of Christian Dresel
>>>> Sent: Samstag, 4. November 2017 13:43
>>>> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
>>>> dev@freifunk.net
>>>> Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi
>>>> devices
>>>>
>>>> hi
>>>>
>>>> ich hab das ganze mal eben getestet.
>>>>
>>>> root@Testknoten:/www/ssl/cgi-bin# grep 'config wifi-iface'
>>>> /etc/config/wireless | sed -n -e "s/.*'\([^']*\)'.*/\1/p"
>>>> w2ap
>>>> w2mesh
>>>> w5ap
>>>> w5mesh
>>>> w2configap
>>>> w5configap
>>>> root@Testknoten:/www/ssl/cgi-bin# uci delete wireless.w5mesh
>>>> root@Testknoten:/www/ssl/cgi-bin# uci commit wireless
>>>> root@Testknoten:/www/ssl/cgi-bin# #wait a little bit....
>>>> root@Testknoten:/www/ssl/cgi-bin# ifconfig w5mesh
>>>> w5mesh    Link encap:Ethernet  HWaddr 50:C7:BF:3B:3C:3D
>>>>           inet6 addr: fe80::52c7:bfff:fe3b:3c3d/64 Scope:Link
>>>>           UP BROADCAST RUNNING MULTICAST  MTU:1528  Metric:1
>>>>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>>>           TX packets:115 errors:0 dropped:0 overruns:0 carrier:0
>>>>           collisions:0 txqueuelen:1000
>>>>           RX bytes:0 (0.0 B)  TX bytes:10668 (10.4 KiB)
>>>> root@Testknoten:/www/ssl/cgi-bin# ip link show w5mesh
>>>> 60: w5mesh: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1528 qdisc
>> noqueue
>>>> master bat0 state UP mode DEFAULT group default qlen 1000
>>>>     link/ether 50:c7:bf:3b:3c:3d brd ff:ff:ff:ff:ff:ff
>>>>
>>>> root@Testknoten:/www/ssl/cgi-bin# whups....
>>>> -ash: whups....: not found
>>>>
>>>> Sollte das Interface nicht runterfahren?
>>>>
>>>> man könnte ein wifi dran hängen, dann wirft er die config aber ganz
>>>> aus der /etc/config/wireless
>>>>
>>>> Weiß auch allgemein nicht, ob uci dafür gemacht ist, das man nur die
>>>> erste Zeile weg wirft und den Rest stehen lässt. Für mich wirkt das
>>>> dann wie ne ungültige uci Datei, ob man das so haben will?
>>>>
>>>> mfg
>>>>
>>>> Christian
>>>>
>>>> On 02.11.2017 14:31, Adrian Schmutzler wrote:
>>>>> We only want to remove WiFi interfaces, not devices during
>>>>> reconfiguration. This still allows for complete reconfiguration, but
>>>>> does not remove device attributes like a disabled 5 GHz or similar.
>>>>>
>>>>> Semi-tested: Tested via command-line, but separate from
>> configurehood.
>>>>>
>>>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>>>>> ---
>>>>>  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
>>>>>  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
>>>> +++++++++++++++
>>>>>  2 files changed, 17 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> index 8437c33..b1b674e 100755
>>>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>>>> @@ -78,7 +78,7 @@ else
>>>>>  		rm -f "$sectorcopy" # always delete: no broadcast for isolated
>>>> device
>>>>>  		rm -f "$sectortmp"
>>>>>
>>>>> -		if ! wifiDelAll; then
>>>>> +		if ! wifiDelIface; then
>>>>>  			echo "Can't delete current wifi setup"
>>>>>  			exit 1
>>>>>  		fi
>>>>> @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
>>>>>  		uci -q set "system.@system[0].hood=$hood"
>>>>>  		uci -q commit system
>>>>>
>>>>> -		if ! wifiDelAll; then
>>>>> +		if ! wifiDelIface; then
>>>>>  			echo "Can't delete current wifi setup"
>>>>>  			exit 1
>>>>>  		fi
>>>>> 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 b1ff5a9..5b63397 100644
>>>>> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>>>>> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
>>>>> @@ -14,6 +14,21 @@ wifiDelAll() {
>>>>>  	return 0
>>>>>  }
>>>>>
>>>>> +wifiDelIface() {
>>>>> +	if [ $# -ne "0" ]
>>>>> +	then
>>>>> +		echo "Usage: wifiDelIface"
>>>>> +		return 1
>>>>> +	fi
>>>>> +
>>>>> +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e
>>>> "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
>>>>> +		uci -q delete "wireless.$line"
>>>>> +	done
>>>>> +	uci -q commit wireless
>>>>> +
>>>>> +	return 0
>>>>> +}
>>>>> +
>>>>>  wifiAddPhy() {
>>>>>  	if [ $# -ne "2" ]
>>>>>  	then
>>>>>
>>>
>>>
> 
>
Tim Niemeyer Nov. 4, 2017, 1:25 p.m.
Hi

Am Donnerstag, den 02.11.2017, 14:31 +0100 schrieb Adrian Schmutzler:
> We only want to remove WiFi interfaces, not devices during
> reconfiguration. This still allows for complete reconfiguration,
> but does not remove device attributes like a disabled 5 GHz or
> similar.
> 
> Semi-tested: Tested via command-line, but separate from
> configurehood.
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
>  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
> +++++++++++++++
>  2 files changed, 17 insertions(+), 2 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 8437c33..b1b674e 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -78,7 +78,7 @@ else
>  		rm -f "$sectorcopy" # always delete: no broadcast
> for isolated device
>  		rm -f "$sectortmp"
>  
> -		if ! wifiDelAll; then
> +		if ! wifiDelIface; then
>  			echo "Can't delete current wifi setup"
>  			exit 1
>  		fi
> @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
>  		uci -q set "system.@system[0].hood=$hood"
>  		uci -q commit system
>  
> -		if ! wifiDelAll; then
> +		if ! wifiDelIface; then

Nach den wifiDelIface wird ja jeweils wifiAddPhy aufgerufen. Für mich
sieht es so aus, als ob das erstmal kein Konflikt ist, obgleich
"AddPhy" so klingt, als ob er dann ein zweites Phy anlegt.

Auf jeden Fall werden die Phy-Daten dadurch eh wieder auf die Hood-
Werte gesetzt. Man könnte höchstens Settings hinzufügen, also sowas wie
disabled = 1. Ein Kanal kann nicht festgesetzt werden.

Stimmt das soweit?

Tim

>  			echo "Can't delete current wifi setup"
>  			exit 1
>  		fi
> 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 b1ff5a9..5b63397 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -14,6 +14,21 @@ wifiDelAll() {
>  	return 0
>  }
>  
> +wifiDelIface() {
> +	if [ $# -ne "0" ]
> +	then
> +		echo "Usage: wifiDelIface"
> +		return 1
> +	fi
> +
> +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e
> "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
> +		uci -q delete "wireless.$line"
> +	done
> +	uci -q commit wireless
> +
> +	return 0
> +}
> +
>  wifiAddPhy() {
>  	if [ $# -ne "2" ]
>  	then
> -- 
> 2.7.4
>
Adrian Schmutzler Nov. 4, 2017, 1:32 p.m.
Hallo Tim,

siehe unten.

> -----Original Message-----
> From: Tim Niemeyer [mailto:tim@tn-x.org]
> Sent: Samstag, 4. November 2017 14:26
> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> dev@freifunk.net
> Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi devices
> 
> Hi
> 
> Am Donnerstag, den 02.11.2017, 14:31 +0100 schrieb Adrian Schmutzler:
> > We only want to remove WiFi interfaces, not devices during
> > reconfiguration. This still allows for complete reconfiguration, but
> > does not remove device attributes like a disabled 5 GHz or similar.
> >
> > Semi-tested: Tested via command-line, but separate from configurehood.
> >
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > ---
> >  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
> >  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
> > +++++++++++++++
> >  2 files changed, 17 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > index 8437c33..b1b674e 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -78,7 +78,7 @@ else
> >  		rm -f "$sectorcopy" # always delete: no broadcast for isolated
> > device
> >  		rm -f "$sectortmp"
> >
> > -		if ! wifiDelAll; then
> > +		if ! wifiDelIface; then
> >  			echo "Can't delete current wifi setup"
> >  			exit 1
> >  		fi
> > @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
> >  		uci -q set "system.@system[0].hood=$hood"
> >  		uci -q commit system
> >
> > -		if ! wifiDelAll; then
> > +		if ! wifiDelIface; then
> 
> Nach den wifiDelIface wird ja jeweils wifiAddPhy aufgerufen. Für mich sieht
> es so aus, als ob das erstmal kein Konflikt ist, obgleich "AddPhy" so klingt, als
> ob er dann ein zweites Phy anlegt.

set wireless.${radio}='wifi-device' steht in AddPhy

Das legt den block an WENN er nicht besteht.
WENN er besteht, ändert es nur den typ des blocks auf 'wifi-device'.
In unserem fall passiert also nichts, außer dass die Parameter im Block geupdatet werden (durch die darauf folgenden Code-Zeilen!), was wir ja wollen. Die Parameter die nicht geupdatet werden, bleiben aber bestehen (z.b. disabled=1)

> 
> Auf jeden Fall werden die Phy-Daten dadurch eh wieder auf die Hood-
> Werte gesetzt. Man könnte höchstens Settings hinzufügen, also sowas wie
> disabled = 1. Ein Kanal kann nicht festgesetzt werden.

Der wifiAddPhy ändert die Werte. Alles was im wifiAddPhy nicht gesetzt wird, bleibt bestehen (beim wifi-device, die ifaces sind komplett weg).

Der Kanal würde also durch wifiAddPhy IMMER überschrieben auf das, was wir wollen.
"disabled" wird aber in der wifiAddPhy nicht behandelt, also bleibt es so, wie es vorher war.

Grüße

Adrian

> 
> Stimmt das soweit?
> 
> Tim
> 
> >  			echo "Can't delete current wifi setup"
> >  			exit 1
> >  		fi
> > 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 b1ff5a9..5b63397 100644
> > --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > @@ -14,6 +14,21 @@ wifiDelAll() {
> >  	return 0
> >  }
> >
> > +wifiDelIface() {
> > +	if [ $# -ne "0" ]
> > +	then
> > +		echo "Usage: wifiDelIface"
> > +		return 1
> > +	fi
> > +
> > +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e
> > "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
> > +		uci -q delete "wireless.$line"
> > +	done
> > +	uci -q commit wireless
> > +
> > +	return 0
> > +}
> > +
> >  wifiAddPhy() {
> >  	if [ $# -ne "2" ]
> >  	then
> > --
> > 2.7.4
> >
Tim Niemeyer Nov. 4, 2017, 1:36 p.m.
Am Samstag, den 04.11.2017, 14:32 +0100 schrieb
mail@adrianschmutzler.de:
> Hallo Tim,
> 
> siehe unten.
> 
> > -----Original Message-----
> > From: Tim Niemeyer [mailto:tim@tn-x.org]
> > Sent: Samstag, 4. November 2017 14:26
> > To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> > dev@freifunk.net
> > Subject: Re: [PATCH] fff-hoods/fff-wireless: Don't delete WiFi
> > devices
> > 
> > Hi
> > 
> > Am Donnerstag, den 02.11.2017, 14:31 +0100 schrieb Adrian
> > Schmutzler:
> > > We only want to remove WiFi interfaces, not devices during
> > > reconfiguration. This still allows for complete reconfiguration,
> > > but
> > > does not remove device attributes like a disabled 5 GHz or
> > > similar.
> > > 
> > > Semi-tested: Tested via command-line, but separate from
> > > configurehood.
> > > 
> > > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > > ---
> > >  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4
> > > ++--
> > >  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
> > > +++++++++++++++
> > >  2 files changed, 17 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/src/packages/fff/fff-
> > > hoods/files/usr/sbin/configurehood
> > > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > > index 8437c33..b1b674e 100755
> > > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > > @@ -78,7 +78,7 @@ else
> > >  		rm -f "$sectorcopy" # always delete: no
> > > broadcast for isolated
> > > device
> > >  		rm -f "$sectortmp"
> > > 
> > > -		if ! wifiDelAll; then
> > > +		if ! wifiDelIface; then
> > >  			echo "Can't delete current wifi setup"
> > >  			exit 1
> > >  		fi
> > > @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
> > >  		uci -q set "system.@system[0].hood=$hood"
> > >  		uci -q commit system
> > > 
> > > -		if ! wifiDelAll; then
> > > +		if ! wifiDelIface; then
> > 
> > Nach den wifiDelIface wird ja jeweils wifiAddPhy aufgerufen. Für
> > mich sieht
> > es so aus, als ob das erstmal kein Konflikt ist, obgleich "AddPhy"
> > so klingt, als
> > ob er dann ein zweites Phy anlegt.
> 
> set wireless.${radio}='wifi-device' steht in AddPhy
> 
> Das legt den block an WENN er nicht besteht.
> WENN er besteht, ändert es nur den typ des blocks auf 'wifi-device'.
> In unserem fall passiert also nichts, außer dass die Parameter im
> Block geupdatet werden (durch die darauf folgenden Code-Zeilen!), was
> wir ja wollen. Die Parameter die nicht geupdatet werden, bleiben aber
> bestehen (z.b. disabled=1)
> 
> > 
> > Auf jeden Fall werden die Phy-Daten dadurch eh wieder auf die Hood-
> > Werte gesetzt. Man könnte höchstens Settings hinzufügen, also sowas
> > wie
> > disabled = 1. Ein Kanal kann nicht festgesetzt werden.
> 
> Der wifiAddPhy ändert die Werte. Alles was im wifiAddPhy nicht
> gesetzt wird, bleibt bestehen (beim wifi-device, die ifaces sind
> komplett weg).
> 
> Der Kanal würde also durch wifiAddPhy IMMER überschrieben auf das,
> was wir wollen.
> "disabled" wird aber in der wifiAddPhy nicht behandelt, also bleibt
> es so, wie es vorher war.
> 
> Grüße
> 
> Adrian
> 
> > 
> > Stimmt das soweit?

Also ja. :)

Reviewed-by: Tim Niemeyer <tim@tn-x.org>

Tim

> > Tim
> > 
> > >  			echo "Can't delete current wifi setup"
> > >  			exit 1
> > >  		fi
> > > 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 b1ff5a9..5b63397 100644
> > > --- a/src/packages/fff/fff-
> > > wireless/files/lib/functions/fff/wireless
> > > +++ b/src/packages/fff/fff-
> > > wireless/files/lib/functions/fff/wireless
> > > @@ -14,6 +14,21 @@ wifiDelAll() {
> > >  	return 0
> > >  }
> > > 
> > > +wifiDelIface() {
> > > +	if [ $# -ne "0" ]
> > > +	then
> > > +		echo "Usage: wifiDelIface"
> > > +		return 1
> > > +	fi
> > > +
> > > +	grep 'config wifi-iface' /etc/config/wireless | sed -n
> > > -e
> > > "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
> > > +		uci -q delete "wireless.$line"
> > > +	done
> > > +	uci -q commit wireless
> > > +
> > > +	return 0
> > > +}
> > > +
> > >  wifiAddPhy() {
> > >  	if [ $# -ne "2" ]
> > >  	then
> > > --
> > > 2.7.4
> > > 
> 
>
Tim Niemeyer Nov. 4, 2017, 1:49 p.m.
Hi

Applied.

Tim

Am Donnerstag, den 02.11.2017, 14:31 +0100 schrieb Adrian Schmutzler:
> We only want to remove WiFi interfaces, not devices during
> reconfiguration. This still allows for complete reconfiguration,
> but does not remove device attributes like a disabled 5 GHz or
> similar.
> 
> Semi-tested: Tested via command-line, but separate from
> configurehood.
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  src/packages/fff/fff-hoods/files/usr/sbin/configurehood   |  4 ++--
>  .../fff/fff-wireless/files/lib/functions/fff/wireless     | 15
> +++++++++++++++
>  2 files changed, 17 insertions(+), 2 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 8437c33..b1b674e 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -78,7 +78,7 @@ else
>  		rm -f "$sectorcopy" # always delete: no broadcast
> for isolated device
>  		rm -f "$sectortmp"
>  
> -		if ! wifiDelAll; then
> +		if ! wifiDelIface; then
>  			echo "Can't delete current wifi setup"
>  			exit 1
>  		fi
> @@ -178,7 +178,7 @@ if [ -s "$hoodfile" ]; then
>  		uci -q set "system.@system[0].hood=$hood"
>  		uci -q commit system
>  
> -		if ! wifiDelAll; then
> +		if ! wifiDelIface; then
>  			echo "Can't delete current wifi setup"
>  			exit 1
>  		fi
> 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 b1ff5a9..5b63397 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -14,6 +14,21 @@ wifiDelAll() {
>  	return 0
>  }
>  
> +wifiDelIface() {
> +	if [ $# -ne "0" ]
> +	then
> +		echo "Usage: wifiDelIface"
> +		return 1
> +	fi
> +
> +	grep 'config wifi-iface' /etc/config/wireless | sed -n -e
> "s/.*'\([^']*\)'.*/\1/p" | while read -r line ; do
> +		uci -q delete "wireless.$line"
> +	done
> +	uci -q commit wireless
> +
> +	return 0
> +}
> +
>  wifiAddPhy() {
>  	if [ $# -ne "2" ]
>  	then
> -- 
> 2.7.4
>