W dniu 2022-08-14 o 18:40, Bjørn Mork pisze:
Lech Perczak <lech.perc...@gmail.com> writes:

I'll try your settings, on MF286D and on older MF286 as well.
My setup is a bit more convoluted, since my build has patches to use
split APN for IPv4v6 dual stack and I use DHCP.
Are patches still required for dual-stack with uqmi?
For generic ipv4v6 they are not, however my usecase is even more special.
I use "internet" APN for v4 and "internetipv6" APN for v6, hence "split APN".

My configuration is like this:
config interface 'wan'
        option device '/dev/cdc-wdm0'
        option proto 'qmi'
        option apn 'internet'
        option v6apn 'internetipv6'
        option profile '1'
        option v6profile '5'
        option autoconnect '1'
        option dhcpv6 '1'
        option auth 'none'
        option pdptype 'ipv4-and-ipv6'

Do you think it's worth upstreaming? Users of Orange Poland would benefit from that, not sure how in other parts of the world.

It seems doable with ModemManager as well, by creating two separate bearers (and that's done under the hood for single APN as well), but I haven't tried so far, uqmi works fine for me, albeit it lacks connection drop monitoring.

FWIW, this just works with ModemManager.  Tested this interface config
now:

config interface 'wan'
         option device 
'/sys/devices/platform/soc/8af8800.usb3/8a00000.dwc3/xhci-hcd.0.auto/usb2/2-1'
         option proto 'modemmanager'
         option apn 'telenor.smart'
         option iptype 'ipv4v6'

and got:

root@mf286d:/# ifconfig wwan0
wwan0     Link encap:UNSPEC  HWaddr 
00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
           inet addr:10.201.240.26  P-t-P:10.201.240.26  Mask:255.255.255.252
           inet6 addr: 2a02:2121:285:6c98:ed02:dc3b:8d92:ba9b/128 Scope:Global
           inet6 addr: fe80::6481:c58c:9848:2b5/64 Scope:Link
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1540  Metric:1
           RX packets:13 errors:0 dropped:0 overruns:0 frame:0
           TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:1415 (1.3 KiB)  TX bytes:1669 (1.6 KiB)

root@mf286d:/# mmcli -b 1
   ------------------------------------
   General            |           path: /org/freedesktop/ModemManager1/Bearer/1
                      |           type: default
   ------------------------------------
   Status             |      connected: yes
                      |      suspended: no
                      |    multiplexed: no
                      |      interface: wwan0
                      |     ip timeout: 20
   ------------------------------------
   Properties         |            apn: telenor.smart
                      |        roaming: allowed
                      |        ip type: ipv4v6
   ------------------------------------
   IPv4 configuration |         method: static
                      |        address: 10.201.240.26
                      |         prefix: 30
                      |        gateway: 10.201.240.25
                      |            dns: 193.213.112.4, 130.67.15.198
                      |            mtu: 1500
   ------------------------------------
   IPv6 configuration |         method: static
                      |        address: 2a02:2121:285:6c98:ed02:dc3b:8d92:ba9b
                      |         prefix: 64
                      |        gateway: 2a02:2121:285:6c98:f4b2:80d1:eba3:9279
                      |            dns: 2001:4600:4:fff::52, 
2001:4600:4:1fff::52
                      |            mtu: 1540
   ------------------------------------
   Statistics         |       duration: 30
                      |       bytes rx: 1204
                      |       bytes tx: 722
                      |       attempts: 1
                      | total-duration: 30
                      | total-bytes rx: 1204
                      | total-bytes tx: 722

root@mf286d:/# ip route
default via 10.201.240.25 dev wwan0  src 10.201.240.26
10.201.240.24/30 dev wwan0 scope link  src 10.201.240.26
192.168.99.0/24 dev lan4.203 scope link  src 192.168.99.56

root@mf286d:/# ip -6 route
default from 2a02:2121:285:6c98::/64 via 2a02:2121:285:6c98:f4b2:80d1:eba3:9279 
dev wwan0  metric 1024
2a02:2121:285:6c98:ed02:dc3b:8d92:ba9b dev wwan0  metric 256
2a02:2121:285:6c98:f4b2:80d1:eba3:9279 dev wwan0  metric 1024
2a02:2121:285:6c98::/64 dev lan4.203  metric 1024
unreachable 2a02:2121:285:6c98::/64 dev lo  metric 2147483647
fd63:fcae:6f0::/64 dev lan4.203  metric 1024
unreachable fd63:fcae:6f0::/48 dev lo  metric 2147483647
fe80::/64 dev eth0  metric 256
fe80::/64 dev lan4  metric 256
fe80::/64 dev lan4.203  metric 256
fe80::/64 dev br-lan  metric 256
fe80::/64 dev br-iot  metric 256
fe80::/64 dev wwan0  metric 256
anycast 2a02:2121:285:6c98:: dev lan4.203  metric 0
anycast fd63:fcae:6f0:: dev lan4.203  metric 0
anycast fe80:: dev eth0  metric 0
anycast fe80:: dev br-lan  metric 0
anycast fe80:: dev br-iot  metric 0
anycast fe80:: dev lan4  metric 0
anycast fe80:: dev lan4.203  metric 0
anycast fe80:: dev wwan0  metric 0
multicast ff00::/8 dev eth0  metric 256
multicast ff00::/8 dev lan4.203  metric 256
multicast ff00::/8 dev lan4  metric 256
multicast ff00::/8 dev br-lan  metric 256
multicast ff00::/8 dev br-iot  metric 256
multicast ff00::/8 dev wwan0  metric 256

But AFAICS the gpio-restart is not required for proper modem reset.  The
modem works just fine without it.
Please check what happens if you set the "power button blocker" GPIO
switch high instead of default low. It will block the rear power
switch,
and should allow modem restart without forcing power-down of whole
board during reboot, IIRC.
Yes, that sort of "works".

But that's because the gpio-restart driver fails.  Looks like this GPIO
not only disables the power button, but also the gpio used by the
gpio-restart device (this would happen to be the GPIO connected to that
button, would it?)

The board isn't powered down simply because the driver fails and we
fall back to the next reboot method.

With "power button blocker" GPIO enabled I get this:

root@mf286d:/# reboot
root@mf286d:/# [  143.729180] br-iot: port 1(lan4.15) entered disabled state
[  143.731624] device lan4.15 left promiscuous mode
[  143.734007] br-iot: port 1(lan4.15) entered disabled state
[  144.013431] br-lan: port 1(lan4.10) entered disabled state
[  144.014460] device lan2 left promiscuous mode
[  144.018001] br-lan: port 3(lan2) entered disabled state
[  144.069983] device lan3 left promiscuous mode
[  144.070286] br-lan: port 4(lan3) entered disabled state
[  144.123858] device lan4.10 left promiscuous mode
[  144.123943] device lan4 left promiscuous mode
[  144.128225] br-lan: port 1(lan4.10) entered disabled state
[  144.309385] device wan left promiscuous mode
[  144.309781] br-lan: port 2(wan) entered disabled state
[  144.360491] device eth0 left promiscuous mode
[  144.670087] ipqess-edma c080000.ethernet eth0: Link is Down
[  144.672057] qca8k-ipq4019 c000000.switch lan4: Link is Down
[1707]: <info>  [modem0] state changed (connected -> disconnecting)
[1707]: <info>  [modem0] state changed (disconnecting -> registered)
[1707]: <info>  [modem0/bearer1] connection #1 finished: duration 90s, tx: 120 
bytes, rx: 132 bytes
[1707]: <info>  [modem0] state changed (registered -> disabling)
[1707]: <info>  caught signal, shutting down...
[1707]: <warn>  could not acquire the 'org.freedesktop.ModemManager1' service 
name
[  148.863741] reboot: Restarting system
[  152.069897] ------------[ cut here ]------------
[  152.070259] WARNING: CPU: 0 PID: 3305 at 
drivers/power/reset/gpio-restart.c:46 gpio_restart_notify+0xec/0xf4
[  152.073770] Modules linked in: pppoe ppp_async option nft_fib_inet 
nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet ath10k_pci ath10k_core 
ath usb_wwan qmi_wwan pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 
nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat 
nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 
nft_fib nft_ct nft_counter nft_chain_nat nf_tables nf_nat nf_flow_table 
nf_conntrack mac80211 cfg80211 usbserial usbnet slhc nfnetlink nf_reject_ipv6 
nf_reject_ipv4 nf_log_ipv6 nf_log_ipv4 nf_log_common nf_defrag_ipv6 
nf_defrag_ipv4 libcrc32c hwmon crc_ccitt compat cdc_wdm ghash_arm_ce cmac 
leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom gpio_button_hotplug 
mii crc32c_generic
[  152.127776] CPU: 0 PID: 3305 Comm: procd Not tainted 5.10.120 #0
[  152.149974] Hardware name: Generic DT based system
[  152.156293] [<c030cd14>] (unwind_backtrace) from [<c0309998>] 
(show_stack+0x10/0x14)
[  152.160868] [<c0309998>] (show_stack) from [<c05fb7f4>] 
(dump_stack+0x94/0xa8)
[  152.168789] [<c05fb7f4>] (dump_stack) from [<c0320d08>] (__warn+0xc0/0x11c)
[  152.175829] [<c0320d08>] (__warn) from [<c0320dcc>] 
(warn_slowpath_fmt+0x68/0x78)
[  152.182701] [<c0320dcc>] (warn_slowpath_fmt) from [<c0734178>] 
(gpio_restart_notify+0xec/0xf4)
[  152.190357] [<c0734178>] (gpio_restart_notify) from [<c03417c0>] 
(atomic_notifier_call_chain+0x58/0x78)
[  152.198863] [<c03417c0>] (atomic_notifier_call_chain) from [<c0308334>] 
(machine_restart+0x78/0x7c)
[  152.208115] [<c0308334>] (machine_restart) from [<c03432e4>] 
(__do_sys_reboot+0x204/0x258)
[  152.217108] [<c03432e4>] (__do_sys_reboot) from [<c0300040>] 
(ret_fast_syscall+0x0/0x54)
[  152.225354] Exception stack(0xc230bfa8 to 0xc230bff0)
[  152.233658] bfa0:                   00000000 bed77e50 fee1dead 28121969 
01234567 0001f514
[  152.238643] bfc0: 00000000 bed77e50 b6ec4020 00000058 00000000 00000000 
b6ec4010 00000001
[  152.246748] bfe0: 004d2e14 bed77d7c 004b429c �
Format: Log Type - Time(microsec) - Message - Optional Info
Log Type: B - Since Boot(Power On Reset),  D - Delta,  S - Statistic
S - QC_IMAGE_VERSION_STRING=BOOT.BF.3.1.1-00126
S - IMAGE_VARIANT_STRING=DAABANAZA
S - OEM_IMAGE_VERSION_STRING=CRM
S - Boot Config, 0x00000021

etc.

That warning isn't there when the "power button blocker" is disabled.
This part was expected. Just checked on my unit, and this still did reboot the modem. So it seems, that the modem reset is still possible by toggling this GPIO from userspace, while holding power button blocker,
even without rebooting whole device.
This won't be possible on MF286 though, it lacks the power button blocker line in hardware - it's physically present only from MF286A onwards, It would be certainly nice, if the behaviour is consistent across the whole line of devices.



Bjørn


--
Pozdrawiam,
Lech Perczak


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

Reply via email to