Linksys WRT1200AC - wwan is associating to any SSID via radio0, but no traffic is RX - Only TX for DHCP

Device: Linksys-WRT1200AC
OpenWRT Version: 23.05.4

Howdy,
I am facing a peculiar issue that I have not seen being discussed before regarding WWAN and DHCP.

Topology:
INTERNET-----MAIN-ROUTER<<<>>>OPENWRT------PC

I am currently following this documentation https://openwrt.org/docs/guide-user/network/wifi/relay_configuration which explains how to connect my main router (which I don't have control over) to my openWRT device thru DHCP Client.

I am having an issue where my OpenWRT is not receiving any traffic from the main router despite being associated and authenticated to my main router.

  1. Network > Wireless > radio0 > Scan (SSID is detected)

  2. Configured SSID to be exactly the same settings as main router

  3. SSID being authenticated and associated:

root@OpenWrt:~# dmesg | grep "phy0"
...trimmed...
[ 6470.206807] ieee80211 phy0: change: 0x100
[ 6470.248752] phy0-sta0: authenticate with c8:99:b2:ff:05:a7
[ 6470.254336] ieee80211 phy0: change: 0x100
[ 6470.263258] ieee80211 phy0: change: 0x42
[ 6470.366949] ieee80211 phy0: change: 0x2
[ 6470.367024] phy0-sta0: send auth to c8:99:b2:ff:05:a7 (try 1/3)
[ 6470.560636] phy0-sta0: authenticate with c8:99:b2:ff:05:a7
[ 6470.566176] phy0-sta0: send auth to c8:99:b2:ff:05:a7 (try 1/3)
[ 6470.697055] phy0-sta0: authenticated
[ 6470.703250] phy0-sta0: associate with c8:99:b2:ff:05:a7 (try 1/3)
[ 6470.712002] phy0-sta0: RX AssocResp from c8:99:b2:ff:05:a7 (capab=0x1931 stat                                      us=0 aid=10)
[ 6470.815367] ieee80211 phy0: change: 0x2
[ 6470.815382] phy0-sta0: associated
[ 6470.959559] phy0-sta0: Limiting TX power to 30 (30 - 0) dBm as advertised by                                       c8:99:b2:ff:05:a7
[ 6471.079769] IPv6: ADDRCONF(NETDEV_CHANGE): phy0-sta0: link becomes ready

Wifi Settings:

root@OpenWrt:~# wifi status
{
        "radio0": {
                "up": true,
                "pending": false,
                "autostart": true,
                "disabled": false,
                "retry_setup_failed": false,
                "config": {
                        "path": "soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0",
                        "channel": "48",
                        "band": "5g",
                        "htmode": "VHT40",
                        "country": "AU",
                        "cell_density": 0
                },
                "interfaces": [
                        {
                                "section": "wifinet1",
                                "ifname": "phy0-sta0",
                                "config": {
                                        "mode": "sta",
                                        "ssid": "XYZ-5GHz",
                                        "encryption": "sae",
                                        "key": "XYZ",
                                        "mode": "sta",
                                        "network": [
                                                "wwan"
                                        ]
                                },
                                "vlans": [

                                ],
                                "stations": [

                                ]
                        }
                ]
        },

When I connected a physical cable from my main router to OpenWRT, I received DHCP IP Address to connect back to the internet, after which I installed tcpdump to troubleshoot further.

When I tcpdump'd OpenWRT's wwan (phy0-sta0) I can see that it is trying to send DHCP Discover messages (TX), however nothing is being received (RX)

But when I check the Network > Interfaces > wwan I noticed that RX is stuck in 352B, yet TX increases every time a new DHCP Discover message is sent.

I verified by hotspot from my phone to OpenWRT to verify if the issue was with the main-router, however, the issue is the same when connecting to my phone. RX is stuck in 352B and TX increases.

Is there anything I am missing on my end? How can my radio detect the BSSID but not be able to receive anything? I have verified the firewall and there is also nothing that is blocking traffic.

If there is further configuration you would like me to send, please let me know.

Hope you guys could help me troubleshoot this.

Thanks!

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

Here are the outputs of those commands

ubus call system board:

root@OpenWrt:~# ubus call system board
{
        "kernel": "5.15.162",
        "hostname": "OpenWrt",
        "system": "ARMv7 Processor rev 1 (v7l)",
        "model": "Linksys WRT1200AC",
        "board_name": "linksys,wrt1200ac",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.4",
                "revision": "r24012-d8dd03c46f",
                "target": "mvebu/cortexa9",
                "description": "OpenWrt 23.05.4 r24012-d8dd03c46f"
        }
}

cat /etc/config/network

root@OpenWrt:~# cat /etc/config/network:

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd2b:d7eb:1b13::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'wan'
        option macaddr 'c2:56:27:b9:63:39'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'

config interface 'LAN4'
        option proto 'dhcp'
        option device 'lan4'

config interface 'wwan'
        option proto 'dhcp'

config device
        option name 'phy0-sta0'
        option acceptlocal '1'

*LAN4 = Physical connection to main-router.
*wwan(phy--sta0)=Wireless Uplink to main-router (having issues)

cat /etc/config/wireless:

root@OpenWrt:~# cat /etc/config/wireless:

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
        option channel '48'
        option band '5g'
        option htmode 'VHT40'
        option country 'AU'
        option cell_density '0'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
        option channel '1'
        option band '2g'
        option htmode 'HT20'
        option disabled '1'
        option country 'AU'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'OpenWrt'
        option encryption 'none'
        option macaddr 'c0:56:27:b9:63:3a'

config wifi-iface 'wifinet1'
        option device 'radio0'
        option mode 'sta'
        option network 'wwan'
        option ssid 'XYZ-5GHz'
        option encryption 'sae'
        option key 'XYZ'

cat /etc/config/dhcp:

root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        option ednspacket_max '1232'
        option filter_aaaa '0'
        option filter_a '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        option ra_slaac '1'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

cat /etc/config/firewall:

root@OpenWrt:~# cat /etc/config/firewall

config defaults
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'
        list network 'wwan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'
        list network 'wan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

Remove this:

You appear to have 3 methods of connecting to the upstream:

  • wwan (sta mode on radio0)
  • wan/wan6 on wan port
  • LAN4 on port lan4

Which of these is active and for what purpose?

Why is wwan in the lan firewall zone?

Where is lan4 in the firewall? What is is for?
What is the output of:

ifstatus wan | grep address
ifstatus wwan | grep address
ifstatus LAN4 | grep address

I have removed (commented):

#config device
#        option name 'phy0-sta0'
#        option acceptlocal '1'

Which of these is active and for what purpose?

I have removed wan/wan6 on wan port as they were the defaults when I factory reset my OpenWRT. I have a physical connection coming from main-router to OpenWRT on LAN4, this connection is only so I could connect to the internet, and upgrade any packages and install tcpdump. Ideally the connection should be going through wwan only.

When I disconnect LAN4, I lose connection to the internet as WWAN is not receiving any traffic, thus not getting DHCP packets back.

Why is wwan in the lan firewall zone?

I have followed this step on the official documentation: Configure Wi-Fi Uplink

Where is lan4 in the firewall? What is is for?

LAN 4 is not on any firewall zone, It is currently on the unspecified firewall-zone. By some reason, it still works and I was able to get to the internet. However, bear in mind that this is the physical connection to the main-router, Ideally I won't have this connection and only rely on wwan.

What is the output of:

root@OpenWrt:~# ifstatus wan | grep address
root@OpenWrt:~# ifstatus wwan | grep address
root@OpenWrt:~# ifstatus LAN4 | grep address
        "ipv4-address": [
                        "address": "192.168.0.209",
        "ipv6-address": [
                "ipv4-address": [
                "ipv6-address": [

Here is a view of my Network > Interfaces


*Notice wwan RX does not increase.

So are you setting up a wireless repeater/extender (i.e. same subnet) for your own home network?

Yes, that's the idea, but I believe to do that first the document mentions I require internet access to download relayd.

Even when I keep following the documentation I am required to do some connectivity test, but here is where I am stuck trying to figure out why my wwan is not RX but TX only.

https://openwrt.org/docs/guide-user/network/wifi/relay_configuration#test_connection

Ok...

In that case, the best method is to start by resetting the device to defaults. Once there, connect the wan port of the WRT1200AC to the lan of your upstream network (via ethernet). Install the required packages, then unplug the ethernet cable and follow the guide to complete the configuration.

Sure will do.

Do you know why the wwan is not receiving any packets even when it is already associated and authenticated to the SSID? I am worried that once relayd is installed, given wwan is not receiving any packets, it will not receive any packets either way towards devices directly connected to OpenWRT.

Is this some sort of a bug I've encountered?

I'll give it a shot later on today, but I am still trying to figure out why my wwan (phy0-sta0) is not properly working fine. I don't think is an antenna issue as I can scan for BSSIDs and it is successful.

I have also tried changing the encryption method but nothing avail.

Is there any other troubleshooting I could perform? Perhaps any packages I could install to further check why this is happening?

Thanks!

I don't think so... I am guessing it is a matter of the sequencing of your setup. You need relayd installed before the uplink will work properly in that type of configuration.

I have downloaded relayd and the issue still the same. I can see wwan not RX any traffic. I can see traffic being sent TX. (See RX being 6pkts, and not increasing).

I have a wired connection from OpenWRT to Desk PC and DHCP is not working either. DHCP is timing out.

Any further troubleshooting I could do?