Re: [OpenWrt-Devel] openwrt based router

2019-09-26 Thread Alberto Bursi


On 26/09/19 11:25, sagar jain wrote:


Can I sell openwrt based router


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



If you meancreate and sell new routers using OpenWrt as firmware,

yes if you follow rules in trademark article here 
https://openwrt.org/trademark



-Alberto

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] libubox, jshn: add option to write output to a file

2019-09-26 Thread Roman Yeryomin

On 2019-09-14 01:22, Roman Yeryomin wrote:

This would allow board_config_flush to run one command instead
of two and would be faster and safer than redirecting output
and moving a file between filesystems.

Originally discussed here:
http://lists.openwrt.org/pipermail/openwrt-devel/2017-December/010127.html



Anybody?
I would like to submit a patch to base files which depends on this.

Regards,
Roman

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH v2 1/2] ramips: harmonize device vendor Zbtlink

2019-09-26 Thread Adrian Schmutzler
Spelling of Zbtlink varies across image definitions and DTS files.

This patch uses Zbtlink consistently and also updates the model
in DTS files to contain the vendor in all cases.

This patch is cosmetical, as there should be no dependencies on
device model name in ramips anymore.

Signed-off-by: Adrian Schmutzler 

---

v2: No changes, just added second patch
---
 .../linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts |  2 +-
 .../linux/ramips/dts/mt7620a_zbtlink_zbt-ape522ii.dts  |  2 +-
 .../linux/ramips/dts/mt7620a_zbtlink_zbt-we826-16m.dts |  2 +-
 .../linux/ramips/dts/mt7620a_zbtlink_zbt-we826-32m.dts |  2 +-
 .../linux/ramips/dts/mt7620a_zbtlink_zbt-we826-e.dts   |  2 +-
 target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts  |  2 +-
 target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts  |  2 +-
 target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts  |  2 +-
 .../linux/ramips/dts/mt7621_zbtlink_zbt-wg3526-16m.dts |  2 +-
 .../linux/ramips/dts/mt7621_zbtlink_zbt-wg3526-32m.dts |  2 +-
 target/linux/ramips/image/mt7621.mk| 10 +-
 target/linux/ramips/image/mt76x8.mk|  2 +-
 12 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts 
b/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts
index e2eb5b6329..a05e8d4b47 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts
@@ -37,7 +37,7 @@
 
 / {
compatible = "zbtlink,we1026-5g-16m", "ralink,mt7620a-soc";
-   model = "ZBT WE1026-5G (16M)";
+   model = "Zbtlink ZBT-WE1026-5G (16M)";
 };
 
  {
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-ape522ii.dts 
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-ape522ii.dts
index 70ad0f0b58..665dd5ba3c 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-ape522ii.dts
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-ape522ii.dts
@@ -7,7 +7,7 @@
 
 / {
compatible = "zbtlink,zbt-ape522ii", "ralink,mt7620a-soc";
-   model = "ZBT-APE522II";
+   model = "Zbtlink ZBT-APE522II";
 
chosen {
bootargs = "console=ttyS0,115200";
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-16m.dts 
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-16m.dts
index 7f2b2646b2..d115b8a096 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-16m.dts
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-16m.dts
@@ -4,7 +4,7 @@
 
 / {
compatible = "zbtlink,zbt-we826-16m", "zbtlink,zbt-we826", 
"ralink,mt7620a-soc";
-   model = "ZBT-WE826 (16M)";
+   model = "Zbtlink ZBT-WE826 (16M)";
 };
 
  {
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-32m.dts 
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-32m.dts
index e7cdcab5e9..94a67dd5de 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-32m.dts
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-32m.dts
@@ -4,7 +4,7 @@
 
 / {
compatible = "zbtlink,zbt-we826-32m", "zbtlink,zbt-we826", 
"ralink,mt7620a-soc";
-   model = "ZBT-WE826 (32M)";
+   model = "Zbtlink ZBT-WE826 (32M)";
 };
 
  {
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-e.dts 
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-e.dts
index 243126125b..2496a16a29 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-e.dts
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we826-e.dts
@@ -5,7 +5,7 @@
 
 / {
compatible = "zbtlink,zbt-we826-e", "zbtlink,zbt-we826", 
"ralink,mt7620a-soc";
-   model = "ZBT-WE826-E";
+   model = "Zbtlink ZBT-WE826-E";
 
/delete-node/ leds;
 
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts 
b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
index 819c851c73..d7c48c6d9f 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
@@ -7,7 +7,7 @@
 
 / {
compatible = "zbtlink,zbt-we1326", "mediatek,mt7621-soc";
-   model = "ZBT-WE1326";
+   model = "Zbtlink ZBT-WE1326";
 
aliases {
label-mac-device = 
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts 
b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
index 7973626fad..b1d3e4e812 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
@@ -7,7 +7,7 @@
 
 / {
compatible = "zbtlink,zbt-we3526", "mediatek,mt7621-soc";
-   model = "ZBT-WE3526";
+   model = "Zbtlink ZBT-WE3526";
 
chosen {
bootargs = "console=ttyS0,115200";
diff --git a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts 
b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
index ca2044f73e..1a2a89a31e 100644
--- a/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
+++ b/target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
@@ -7,7 +7,7 @@
 

[OpenWrt-Devel] [PATCH v2 2/2] ramips: apply consistent device name/compatible to ZBT-WE1026-5G

2019-09-26 Thread Adrian Schmutzler
All Zbtlink ramips devices except the ZBT-WE1026-5G include the
zbt-/ZBT- prefix in their model name.

This changes ZBT-WE1026-5G to also follow that scheme.

The patch moves some block to keep alphatical order.

Signed-off-by: Adrian Schmutzler 

---

v2: new in v2

This is not tested on device and is only meant as base for
Kristian Evensen's patches (DTSI rearrangement and addition of
WE1026-H).
---
 .../ramips/base-files/etc/board.d/01_leds |  8 +++
 .../ramips/base-files/etc/board.d/02_network  |  2 +-
 ... => mt7620a_zbtlink_zbt-we1026-5g-16m.dts} |  4 ++--
 ...tsi => mt7620a_zbtlink_zbt-we1026-5g.dtsi} |  2 +-
 target/linux/ramips/image/mt7620.mk   | 22 +--
 5 files changed, 19 insertions(+), 19 deletions(-)
 rename target/linux/ramips/dts/{mt7620a_zbtlink_we1026-5g-16m.dts => 
mt7620a_zbtlink_zbt-we1026-5g-16m.dts} (95%)
 rename target/linux/ramips/dts/{mt7620a_zbtlink_we1026-5g.dtsi => 
mt7620a_zbtlink_zbt-we1026-5g.dtsi} (98%)

diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds 
b/target/linux/ramips/base-files/etc/board.d/01_leds
index 46202b4117..f8a270b6b0 100755
--- a/target/linux/ramips/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/base-files/etc/board.d/01_leds
@@ -445,10 +445,6 @@ youku,yk1)
set_wifi_led "$boardname:blue:air"
ucidef_set_led_switch "wan" "wan" "$boardname:blue:wan" "switch0" "0x10"
;;
-zbtlink,we1026-5g-16m)
-   ucidef_set_led_netdev "lan" "LAN" "we1026-5g:green:lan" "eth0"
-   set_wifi_led "we1026-5g:green:wifi"
-   ;;
 zbtlink,zbt-ape522ii)
ucidef_set_led_netdev "wlan2g4" "wlan1-link" "$boardname:green:wlan2g4" 
"wlan1"
ucidef_set_led_netdev "sys1" "wlan1" "$boardname:green:sys1" "wlan1" 
"tx rx"
@@ -461,6 +457,10 @@ zbtlink,zbt-we826-16m|\
 zbtlink,zbt-we826-32m)
set_wifi_led "zbt-we826:green:wifi"
;;
+zbtlink,zbt-we1026-5g-16m)
+   ucidef_set_led_netdev "lan" "LAN" "we1026-5g:green:lan" "eth0"
+   set_wifi_led "we1026-5g:green:wifi"
+   ;;
 zbtlink,zbt-we1226)
set_wifi_led "$boardname:green:wlan"
ucidef_set_led_switch "lan1" "LAN1" "$boardname:green:lan1" "switch0" 
"0x01"
diff --git a/target/linux/ramips/base-files/etc/board.d/02_network 
b/target/linux/ramips/base-files/etc/board.d/02_network
index 947bf1428d..ae05c827bc 100755
--- a/target/linux/ramips/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -451,7 +451,7 @@ ramips_setup_interfaces()
"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "9@eth0"
;;
sparklan,wcr-150gn|\
-   zbtlink,we1026-5g-16m)
+   zbtlink,zbt-we1026-5g-16m)
ucidef_add_switch "switch0" \
"0:lan" "6t@eth0"
;;
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts 
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026-5g-16m.dts
similarity index 95%
rename from target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts
rename to target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026-5g-16m.dts
index a05e8d4b47..feba29763b 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g-16m.dts
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026-5g-16m.dts
@@ -33,10 +33,10 @@
 
 /dts-v1/;
 
-#include "mt7620a_zbtlink_we1026-5g.dtsi"
+#include "mt7620a_zbtlink_zbt-we1026-5g.dtsi"
 
 / {
-   compatible = "zbtlink,we1026-5g-16m", "ralink,mt7620a-soc";
+   compatible = "zbtlink,zbt-we1026-5g-16m", "ralink,mt7620a-soc";
model = "Zbtlink ZBT-WE1026-5G (16M)";
 };
 
diff --git a/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g.dtsi 
b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026-5g.dtsi
similarity index 98%
rename from target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g.dtsi
rename to target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026-5g.dtsi
index e7e64e251a..68a74ede39 100644
--- a/target/linux/ramips/dts/mt7620a_zbtlink_we1026-5g.dtsi
+++ b/target/linux/ramips/dts/mt7620a_zbtlink_zbt-we1026-5g.dtsi
@@ -37,7 +37,7 @@
 #include 
 
 / {
-   compatible = "zbtlink,we1026-5g", "ralink,mt7620a-soc";
+   compatible = "zbtlink,zbt-we1026-5g", "ralink,mt7620a-soc";
 
chosen {
bootargs = "console=ttyS0,115200";
diff --git a/target/linux/ramips/image/mt7620.mk 
b/target/linux/ramips/image/mt7620.mk
index 36898c99bc..6543958bd0 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -943,17 +943,6 @@ define Device/yukai_bocco
 endef
 TARGET_DEVICES += yukai_bocco
 
-define Device/zbtlink_we1026-5g-16m
-  MTK_SOC := mt7620a
-  IMAGE_SIZE := 16064k
-  DEVICE_VENDOR := Zbtlink
-  DEVICE_MODEL := ZBT-WE1026-5G
-  DEVICE_VARIANT := 16M
-  DEVICE_PACKAGES := kmod-mt76x2 kmod-usb2 kmod-usb-ohci kmod-sdhci-mt7620
-  SUPPORTED_DEVICES += we1026-5g-16m
-endef
-TARGET_DEVICES += zbtlink_we1026-5g-16m
-
 define Device/zbtlink_zbt-ape522ii
   MTK_SOC := mt7620a
   IMAGE_SIZE := 

Re: [OpenWrt-Devel] [PATCH RFC] cfg80211: add new command for reporting wiphy crashes

2019-09-26 Thread Johannes Berg
On Thu, 2019-09-26 at 14:00 +0200, Rafał Miłecki wrote:

> > You can't seriously be suggesting that the driver doesn't *have* enough
> > information - everything passed through it :)
> 
> Precisely: it doesn't store (cache) enough info.

But nothing stops it (the driver) from doing so!

> In brcmfmac on .add_virtual_intf() we:
> 1) Send request to the FullMAC firmware
> 2) Wait for a reply
> 3) On success we create interface
> 4) We wake up .add_virtual_intf() handler
> 
> I'll need to find a way to skip step 3 in recovery path since interface
> on host side already exists.

Sure, we skip lots of things in all drivers, look at iwlwifi for example
with IWL_MVM_STATUS_IN_HW_RESTART.

> OK, so basically I need to work on caching setup data. Should I try
> doing that at my selected driver level (brcmfmac)? Or should I focus on
> generic solution (cfg80211) and consider offloading mac80211 if
> possible?

I think doing it generically will not work well, you have different code
paths and different formats, different data that you need etc.

Sometimes there's information cfg80211 doesn't even *have*, because the
driver is responsible for things (e.g. elements). I guess you can try,
but my gut feeling is that it'd simpler in the driver.

Now you can argue that everything passes through cfg80211 so it must
have enough data too (just like I'm arguing the driver certainly has
enough data), but ... it seems to me the cfg80211 is usually more
action-based, where the restore flow needs to keep the *state*, not
replay the series of actions that happened.

johannes


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH RFC] cfg80211: add new command for reporting wiphy crashes

2019-09-26 Thread Rafał Miłecki

On 26.09.2019 13:55, Johannes Berg wrote:

On Thu, 2019-09-26 at 13:52 +0200, Rafał Miłecki wrote:


Indeed my main concert is AP mode. I'm afraid that cfg80211 doesn't
cache all settings, consider e.g. nl80211_start_ap(). It builds
struct cfg80211_ap_settings using info from nl80211 message and
passes it to the driver (rdev_start_ap()). Once it's done it
caches only a small subset of all setup data.

In other words driver doesn't have enough info to recover interfaces
setup.


So the driver can cache it, just like mac80211.

You can't seriously be suggesting that the driver doesn't *have* enough
information - everything passed through it :)


Precisely: it doesn't store (cache) enough info.



I meant that hardware has been recovered & is operational again (driver
can talk to it). I expected user space to reconfigure all interfaces
using the same settings that were used on previous run.

If driver were able to recover interfaces setup on its own (with a help
of cfg80211) then user space wouldn't need to be involved.


The driver can do it, mac80211 does. It's just a matter of what the
driver will do or not.


First of all I was wondering how to handle interfaces creation. After a
firmware crash we have:
1) Interfaces created in Linux
2) No corresponsing interfaces in firmware



Syncing that (re-creating in-firmware firmwares) may be a bit tricky
depending on a driver and hardware.


We do that in mac80211, it works fine. Why would it be tricky?


In brcmfmac on .add_virtual_intf() we:
1) Send request to the FullMAC firmware
2) Wait for a reply
3) On success we create interface
4) We wake up .add_virtual_intf() handler

I'll need to find a way to skip step 3 in recovery path since interface
on host side already exists.



If something fails, I think we force that interface to go down.


For some cases it could be easier to
delete all interfaces and ask user space to setup wiphy (create required
interfaces) again. I'm not sure if that's acceptable though?

If we agree interfaces should stay and driver simply should configure
firmware properly, then we need all data as explained earlier. struct
cfg80211_ap_settings is not available during runtime. How should we
handle that problem?


You can cache it in the driver in whatever format makes sense.


I was aiming for a brutal force solution: just make user space
interfaces need a full setup just at they were just created.


You can still do that btw, just unregister and re-register the wiphy.


OK, so basically I need to work on caching setup data. Should I try
doing that at my selected driver level (brcmfmac)? Or should I focus on
generic solution (cfg80211) and consider offloading mac80211 if
possible?

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH RFC] cfg80211: add new command for reporting wiphy crashes

2019-09-26 Thread Rafał Miłecki
Resending from my subscribed e-mail

On 20.09.2019 16:01, Jouni Malinen wrote:
> On Fri, Sep 20, 2019 at 03:37:08PM +0200, Rafał Miłecki wrote:
>> Hardware or firmware instability may result in unusable wiphy. In such
>> cases usually a hardware reset is needed. To allow a full recovery
>> kernel has to indicate problem to the user space.
>
> Why? Shouldn't the driver be able to handle this on its own since all
> the previous configuration was done through the driver anyway. As far as
> I know, there are drivers that do indeed try to do this and handle it
> successfully at least for station mode. AP mode may be more complex, but
> for that one, I guess it would be fine to drop all associations (and
> provide indication of that to user space) and just restart the BSS.

Indeed my main concert is AP mode. I'm afraid that cfg80211 doesn't
cache all settings, consider e.g. nl80211_start_ap(). It builds
struct cfg80211_ap_settings using info from nl80211 message and
passes it to the driver (rdev_start_ap()). Once it's done it
caches only a small subset of all setup data.

In other words driver doesn't have enough info to recover interfaces
setup.


>> This new nl80211 command lets user space known wiphy has crashed and has
>> been just recovered. When applicable it should result in supplicant or
>> authenticator reconfiguring all interfaces.
>
> For me, that is not really "recovered" if some additional
> reconfiguration steps are needed.. I'd like to get a more detailed view
> on what exactly might need to be reconfigured and how would user space
> know what exactly to do. Or would the plan here be that the driver would
> not even indicate this crash if it is actually able to internally
> recover fully from the firmware restart?

I meant that hardware has been recovered & is operational again (driver
can talk to it). I expected user space to reconfigure all interfaces
using the same settings that were used on previous run.

If driver were able to recover interfaces setup on its own (with a help
of cfg80211) then user space wouldn't need to be involved.


>> I'd like to use this new cfg80211_crash_report() in brcmfmac after a
>> successful recovery from a FullMAC firmware crash.
>>
>> Later on I'd like to modify hostapd to reconfigure wiphy using a
>> previously used setup.
>
> So this implies that at least something would need to happen in AP mode.
> Do you have a list of items that the driver cannot do on its own and why
> it would be better to do them from user space?

First of all I was wondering how to handle interfaces creation. After a
firmware crash we have:
1) Interfaces created in Linux
2) No corresponsing interfaces in firmware

Syncing that (re-creating in-firmware firmwares) may be a bit tricky
depending on a driver and hardware. For some cases it could be easier to
delete all interfaces and ask user space to setup wiphy (create required
interfaces) again. I'm not sure if that's acceptable though?

If we agree interfaces should stay and driver simply should configure
firmware properly, then we need all data as explained earlier. struct
cfg80211_ap_settings is not available during runtime. How should we
handle that problem?


>> I'm OpenWrt developer & user and I got annoyed by my devices not auto
>> recovering after various failures. There are things I cannot fix (hw
>> failures or closed fw crashes) but I still expect my devices to get
>> back to operational state as soon as possible on their own.
>
> I fully agree with the auto recovery being important thing to cover for
> this, but I'm not yet convinced that this needs user space action. Or if
> it does, there would need to be more detailed way of indicating what
> exactly is needed for user space to do. The proposed change here is just
> saying "hey, I crashed and did something to get the hardware/firmware
> responding again" which does not really tell much to user space other
> than potentially requiring full disable + re-enable for the related
> interfaces. And that is something that should not actually be done in
> all cases of firmware crashes since there are drivers that handle
> recovery in a manner that is in practice completely transparent to user
> space.

I was aiming for a brutal force solution: just make user space
interfaces need a full setup just at they were just created.

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH RFC] cfg80211: add new command for reporting wiphy crashes

2019-09-26 Thread Johannes Berg
On Thu, 2019-09-26 at 13:52 +0200, Rafał Miłecki wrote:
> 
> Indeed my main concert is AP mode. I'm afraid that cfg80211 doesn't
> cache all settings, consider e.g. nl80211_start_ap(). It builds
> struct cfg80211_ap_settings using info from nl80211 message and
> passes it to the driver (rdev_start_ap()). Once it's done it
> caches only a small subset of all setup data.
> 
> In other words driver doesn't have enough info to recover interfaces
> setup.

So the driver can cache it, just like mac80211.

You can't seriously be suggesting that the driver doesn't *have* enough
information - everything passed through it :)

> I meant that hardware has been recovered & is operational again (driver
> can talk to it). I expected user space to reconfigure all interfaces
> using the same settings that were used on previous run.
> 
> If driver were able to recover interfaces setup on its own (with a help
> of cfg80211) then user space wouldn't need to be involved.

The driver can do it, mac80211 does. It's just a matter of what the
driver will do or not.

> First of all I was wondering how to handle interfaces creation. After a
> firmware crash we have:
> 1) Interfaces created in Linux
> 2) No corresponsing interfaces in firmware

> Syncing that (re-creating in-firmware firmwares) may be a bit tricky
> depending on a driver and hardware.

We do that in mac80211, it works fine. Why would it be tricky?

If something fails, I think we force that interface to go down.

> For some cases it could be easier to
> delete all interfaces and ask user space to setup wiphy (create required
> interfaces) again. I'm not sure if that's acceptable though?
> 
> If we agree interfaces should stay and driver simply should configure
> firmware properly, then we need all data as explained earlier. struct
> cfg80211_ap_settings is not available during runtime. How should we
> handle that problem?

You can cache it in the driver in whatever format makes sense.

> I was aiming for a brutal force solution: just make user space
> interfaces need a full setup just at they were just created.

You can still do that btw, just unregister and re-register the wiphy.

johannes


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH RFC] cfg80211: add new command for reporting wiphy crashes

2019-09-26 Thread Rafał Miłecki

On 20.09.2019 16:01, Jouni Malinen wrote:

On Fri, Sep 20, 2019 at 03:37:08PM +0200, Rafał Miłecki wrote:

Hardware or firmware instability may result in unusable wiphy. In such
cases usually a hardware reset is needed. To allow a full recovery
kernel has to indicate problem to the user space.


Why? Shouldn't the driver be able to handle this on its own since all
the previous configuration was done through the driver anyway. As far as
I know, there are drivers that do indeed try to do this and handle it
successfully at least for station mode. AP mode may be more complex, but
for that one, I guess it would be fine to drop all associations (and
provide indication of that to user space) and just restart the BSS.


Indeed my main concert is AP mode. I'm afraid that cfg80211 doesn't
cache all settings, consider e.g. nl80211_start_ap(). It builds
struct cfg80211_ap_settings using info from nl80211 message and
passes it to the driver (rdev_start_ap()). Once it's done it
caches only a small subset of all setup data.

In other words driver doesn't have enough info to recover interfaces
setup.



This new nl80211 command lets user space known wiphy has crashed and has
been just recovered. When applicable it should result in supplicant or
authenticator reconfiguring all interfaces.


For me, that is not really "recovered" if some additional
reconfiguration steps are needed.. I'd like to get a more detailed view
on what exactly might need to be reconfigured and how would user space
know what exactly to do. Or would the plan here be that the driver would
not even indicate this crash if it is actually able to internally
recover fully from the firmware restart?


I meant that hardware has been recovered & is operational again (driver
can talk to it). I expected user space to reconfigure all interfaces
using the same settings that were used on previous run.

If driver were able to recover interfaces setup on its own (with a help
of cfg80211) then user space wouldn't need to be involved.



I'd like to use this new cfg80211_crash_report() in brcmfmac after a
successful recovery from a FullMAC firmware crash.

Later on I'd like to modify hostapd to reconfigure wiphy using a
previously used setup.


So this implies that at least something would need to happen in AP mode.
Do you have a list of items that the driver cannot do on its own and why
it would be better to do them from user space?


First of all I was wondering how to handle interfaces creation. After a
firmware crash we have:
1) Interfaces created in Linux
2) No corresponsing interfaces in firmware

Syncing that (re-creating in-firmware firmwares) may be a bit tricky
depending on a driver and hardware. For some cases it could be easier to
delete all interfaces and ask user space to setup wiphy (create required
interfaces) again. I'm not sure if that's acceptable though?

If we agree interfaces should stay and driver simply should configure
firmware properly, then we need all data as explained earlier. struct
cfg80211_ap_settings is not available during runtime. How should we
handle that problem?



I'm OpenWrt developer & user and I got annoyed by my devices not auto
recovering after various failures. There are things I cannot fix (hw
failures or closed fw crashes) but I still expect my devices to get
back to operational state as soon as possible on their own.


I fully agree with the auto recovery being important thing to cover for
this, but I'm not yet convinced that this needs user space action. Or if
it does, there would need to be more detailed way of indicating what
exactly is needed for user space to do. The proposed change here is just
saying "hey, I crashed and did something to get the hardware/firmware
responding again" which does not really tell much to user space other
than potentially requiring full disable + re-enable for the related
interfaces. And that is something that should not actually be done in
all cases of firmware crashes since there are drivers that handle
recovery in a manner that is in practice completely transparent to user
space.


I was aiming for a brutal force solution: just make user space
interfaces need a full setup just at they were just created.

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH 2/2] sunxi: enable audio for sun4i

2019-09-26 Thread Andre Heider

On 26/09/2019 11:55, Yousong Zhou wrote:

On Mon, 23 Sep 2019 at 22:01, Andre Heider  wrote:


Enable SND_SUN4I_CODEC and SND_SUN4I_SPDIF.

Tested on cubieboard2.

Signed-off-by: Andre Heider 


The module should be available as package kmod-sound-soc-sunxi.  See
target/linux/sunxi/modules.mk .  Does this work for you?

 yousong



D'oh, I was looking for such a kmod package, but obviously missed it.
Yes, that works too, thanks!

Feel free to decide if patch 1/2 should be applied or not.

Regards,
Andre

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH 2/2] sunxi: enable audio for sun4i

2019-09-26 Thread Yousong Zhou
On Mon, 23 Sep 2019 at 22:01, Andre Heider  wrote:
>
> Enable SND_SUN4I_CODEC and SND_SUN4I_SPDIF.
>
> Tested on cubieboard2.
>
> Signed-off-by: Andre Heider 

The module should be available as package kmod-sound-soc-sunxi.  See
target/linux/sunxi/modules.mk .  Does this work for you?

yousong

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH v2 2/2] ramips: Add support for ZBT WE1026-H

2019-09-26 Thread Kristian Evensen
Hi Adrian,

On Tue, Sep 24, 2019 at 6:22 PM  wrote:
> I'm all about consistency. I just scanned the image definitions in ramips:
>
> ...
>
> The only device deviating from the pattern "zbtlink_zbt-something" is 
> zbtlink_we1026-5g-16m.
>
> So, IMO the correct solution _in terms of consistency_ would be to rename 
> zbtlink_we1026-5g-16m to zbtlink_zbt-we1026-5g-16m and then adjust your 
> device support for the -H to that scheme.
>
> Do you agree? If yes, you could either implement all changes within or before 
> your patch 1/2. Or I could send a patch for that and you rebase on it.
>
> What do you think?

I am fine with either approach. I will not have time to look at this
device again before the weekend, so I will take whatever is in the
tree then and rebase + apply fixes. If you patch has not been
accepted/merged, I will change the naming of the 1026-devices.

BR,
Kristian

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] openwrt based router

2019-09-26 Thread sagar jain

Can I sell openwrt based router
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel