iwlwifi: dhcp works, but no IP passed. Strange messages in dmesg?

cracauer@

Developer
This is on amd64/FreeBSD-current. This machine went from working to it's current state suddenly. I think without software update. The current behavior is that no IP (ping, ssh etc) is being passed, but dhcp works. Default route etc are all set successfully.

Code:
iwlwifi0: <iwlwifi> mem 0xfd700000-0xfd703fff at device 0.0 on pci3
iwlwifi0: Detected crf-id 0x3617, cnv-id 0x100530 wfpm id 0x80000000
iwlwifi0: PCI dev 2723/0080, rev=0x340, rfid=0x10a100
iwlwifi0: successfully loaded firmware image 'iwlwifi-cc-a0-77.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37
iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either
iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either
iwl-debug-yoyo_bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo_bin either
iwl_debug_yoyo_bin: could not load binary firmware /boot/firmware/iwl_debug_yoyo_bin either
iwlwifi0: loaded firmware version 77.2df8986f.0 cc-a0-77.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
iwlwifi0: Detected RF HR B3, rfid=0x10a100
iwlwifi0: base HW address: c0:3c:59:74:18:b9

Are these messages normal or do they explain the behavior?
 
This sounds really peculiar.

Any logs on the router you can check? And if you use a cable do you get assigned with a proper ip or how about other hosts on the network? Try to determine if it's a client or router issue.
 
This sounds really peculiar.

Any logs on the router you can check? And if you use a cable do you get assigned with a proper ip or how about other hosts on the network? Try to determine if it's a client or router issue.

The "router" is a big server running isc dhcpd. The server can't be pinged either through this interface. Nothing in the logs.

The same machine works fine on an Ethernet cable right now.

The Wifi hub is probably not responsible since all the other semi-computers on wifi work fine.

I'm quite puzzled. Although, earlier I had a problem that DHCP would not work for a USB ethernet interface. I have a feeling that there's something funky on the ethernet here, but all the working computers say otherwise. I also have sudden problems with FreeBSD's pxeboot, which started hanging before trying to load the kernel, without me Changing Anything(tm). But Linux PXE boot works fine.
 
That is the golden rule indeed, nothing changed, nothing suppose to be able to break.

Current thoughts/questions,
What kind of WiFi hub do you have? I assume it's configured to forward DHCP requests? Does that have any logs? "Have you tried turning it off and on again?" cant forget the classics :)
And if you un-assign ip from the lan interface and assign it to the wifi interface (for testing purposes), does it work?
It is possible other WiFi devices get issues upon renewal of their lease? Or do you know about other devices that can successfully renew their DHCP lease?
 
That is the golden rule indeed, nothing changed, nothing suppose to be able to break.

Current thoughts/questions,
What kind of WiFi hub do you have? I assume it's configured to forward DHCP requests? Does that have any logs? "Have you tried turning it off and on again?" cant forget the classics :)
And if you un-assign ip from the lan interface and assign it to the wifi interface (for testing purposes), does it work?
It is possible other WiFi devices get issues upon renewal of their lease? Or do you know about other devices that can successfully renew their DHCP lease?

I just renewed the DHCP lease on my Macbook, which is on Wifi. No problem.

The Wifi hub is a TP-link ac hub running OpenWRT. It needed resetting before, but right now I can't assign blame to it yet. It will forward DHCP requests (and does, witness the working dhcp lease) because it is configured purely as an Ethernet switch with no smarts. The symptoms would be more fitting to the non-Wifi 24 port switch needing a reboot.

Will try the wired address on the wifi interface, good thought.
 
fwiw here is my dmesg after unloading if_iwlwifi (and it auto loading it again)
iwlwifi0: detached
pci0: <network> at device 20.3 (no driver attached)
Intel(R) Wireless WiFi based driver for FreeBSD
iwlwifi0: <iwlwifi> mem 0x6001114000-0x6001117fff at device 20.3 on pci0
iwlwifi0: Detected crf-id 0x400410, cnv-id 0x80401 wfpm id 0x80000020
iwlwifi0: PCI dev 7af0/0090, rev=0x430, rfid=0x2010d000
iwlwifi0: successfully loaded firmware image 'iwlwifi-so-a0-gf-a0-83.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.41
iwlwifi0: loaded firmware version 83.e8f84e98.0 so-a0-gf-a0-83.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6E AX211 160MHz, REV=0x430
iwlwifi0: WRT: Invalid buffer destination: 0
iwlwifi0: WFPM_UMAC_PD_NOTIFICATION: 0x20
iwlwifi0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
iwlwifi0: WFPM_AUTH_KEY_0: 0x90
iwlwifi0: CNVI_SCU_SEQ_DATA_DW9: 0x0
iwlwifi0: successfully loaded firmware image 'iwlwifi-so-a0-gf-a0.pnvm'
iwlwifi0: loaded PNVM version 181407b3
iwlwifi0: RFIm is deactivated, reason = 5
iwlwifi0: Detected RF GF, rfid=0x2010d000
iwlwifi0: base HW address: 30:05:05:c4:79:b2

no mention of a /boot/firmware/iwl-debug-yoyo_bin or .bin
 
I'm a very curious person :) Did you manage to find anything already by chance?

I tried resetting the non-wifi switch and I tried using the Gb address on wifi. No improvements.

Will update everything and re-install the firmware package.
 
This machine went from working to it's current state suddenly. I think without software update. The current behavior is that no IP (ping, ssh etc) is being passed, but dhcp works. Default route etc are all set successfully.
How do you know dhcp works? Do you mean dhclient? If it did work your wlan0 interface would have an IP address. Something does not compute! What are your /etc/rc.conf settings for wlan0 etc.
 
How do you know dhcp works? Do you mean dhclient? If it did work your wlan0 interface would have an IP address. Something does not compute! What are your /etc/rc.conf settings for wlan0 etc.

Yes, dhcp via dhclient works as expected. I get ip address, netmask, default route, nameserver.

wlans_iwlwifi0="wlan0"
ifconfig_wlan0="WPA DHCP"

I wonder whether all this is a hint that I should switch to wifibox now...
 
Nothing to do with pf? You can try tcpdump on each side (remote and the machine with wifi) and see what gets through. Also pay careful attention to the *interface* when you do "route get default". Assuming you have physical access to the machine you can also ping out (without using dns) e.g. "ping -n 8.8.8.8" and see how far it gets. Also look at error counts "netstat -I wlan0 -s"
 
Country and regdomain correctly set. I restarted everything I could restart and I updated to today's -current with the new wpa_supplicant. No go.

A tcpdump on that interface, after successful dhcp, shows ARP packets and UDP broadcasts. But when connecting via TCP from a different machine nothing arrives at tcpdump. So the problem is not just outgoing traffic, incoming is partially affected, too. It is almost like a firewall allowing no TCP, but the machine has no firewall (and the 1 Gb Ethernet port works fine in and out).
 
Country and regdomain correctly set. I restarted everything I could restart and I updated to today's -current with the new wpa_supplicant. No go.

A tcpdump on that interface, after successful dhcp, shows ARP packets and UDP broadcasts. But when connecting via TCP from a different machine nothing arrives at tcpdump. So the problem is not just outgoing traffic, incoming is partially affected, too. It is almost like a firewall allowing no TCP, but the machine has no firewall (and the 1 Gb Ethernet port works fine in and out).
But the wifi interface is still not configuring a client ip address upon DHCP? Just the gateway? It's so odd that manually configuring an ip address doesn't change anything. Do you still have that debug yoyo firmware message when unloading/loading the iwlwifi module?
 
But the wifi interface is still not configuring a client ip address upon DHCP? Just the gateway? It's so odd that manually configuring an ip address doesn't change anything. Do you still have that debug yoyo firmware message when unloading/loading the iwlwifi module?

No, DHCP works fine, it is getting the expected address. Yes on the debug module.

Code:
iwlwifi0: <iwlwifi> mem 0xfd700000-0xfd703fff at device 0.0 on pci3
iwlwifi0: Detected crf-id 0x3617, cnv-id 0x100530 wfpm id 0x80000000
iwlwifi0: PCI dev 2723/0080, rev=0x340, rfid=0x10a100
iwlwifi0: successfully loaded firmware image 'iwlwifi-cc-a0-77.ucode'
iwlwifi0: api flags index 2 larger than supported by driver
iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 89.3.35.37
iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either
iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either
iwl-debug-yoyo_bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo_bin either
iwl_debug_yoyo_bin: could not load binary firmware /boot/firmware/iwl_debug_yoyo_bin either
iwlwifi0: loaded firmware version 77.2df8986f.0 cc-a0-77.ucode op_mode iwlmvm
iwlwifi0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
iwlwifi0: Detected RF HR B3, rfid=0x10a100
iwlwifi0: base HW address: c0:3c:59:74:18:b9
 
Do you have any idea where to obtain yoyo file or why it wants to load debug stuff in the first place?
I've been googling a bit on the filename, so far I can find some linux threads that mention that particular firmware but their problems dont seem to line up with yours.

I dont get this message, I load the same driver (I dont active use the wifi chipset though, yay for wires) and my file system has no files with 'yoyo' in it.
 
Do you have any idea where to obtain yoyo file or why it wants to load debug stuff in the first place?
I've been googling a bit on the filename, so far I can find some linux threads that mention that particular firmware but their problems dont seem to line up with yours.

I dont get this message, I load the same driver (I dont active use the wifi chipset though, yay for wires) and my file system has no files with 'yoyo' in it.

Well, I'm running -current here. What is your equivalent to /boot/kernel/iwlwifi-cc-a0-77.ucode.ko? It is coming out of src/sys, not ports.

I'll boot an older -current tomorrow.
 
I am on 14.1 indeed

/boot/kernel/iwlwifi-so-a0-gf-a0-83.ucode.ko

Parsed all iwlwifi firmware's in /boot/kernel using strings, but none seem to have any reference to the yoyo file.
 
I too have "/boot/kernel/iwlwifi-so-a0-gf-a0-83.ucode.ko" on -current in a VM. This is connected to githash 027768a21217 (June 11, 2023).
git diff 027768a21217^ 027768a21217 shows:
Code:
...
index 196a3bda21b7..000000000000
Binary files a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0-73.ucode and /dev/n
ull differ
diff --git a/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0-83.ucode b/sys/contrib/dev/iwlwififw/iwlwifi-so-a0-gf-a0-83.ucode
new file mode 100644
...
 
Which version now (before booting the older version)?

uname -aKU

-current from yesterday.

% uname -aKU
FreeBSD joker 15.0-CURRENT FreeBSD 15.0-CURRENT #0 main-n271353-124ae0e8af8f: Wed Jul 24 11:40:02 EDT 2024 cracauer@joker:/mnt/part2/usr/obj/mnt/part2/usr/src/amd64.amd64/sys/GENERIC-NODEBUG amd64 1500021 1500021
 
What I can say: my iwlwifi works without serious issues since 13.2 (now on 13.3). It works on an old b/g router, on a newer fritsbox and on the public railway.

DHCP is not blocked by my ipfw layer3 firewall; it apparently talks (at least in part) on layer2 (there is also a note in the manpage that it would require bpf - that might explain it). So indeed this issue does at first appear like a problem with some packet filtering on layer3.
How such a behaviour might translate into the iwlwifi firmware, that is currently beyond my grasp.
 
But the wifi interface is still not configuring a client ip address upon DHCP? Just the gateway?
It never does.
The "DHCP" stance in /etc/rc.conf makes devd start dhclient after iface-up. dhclient then talks on the interface and may receive a lease.
The lease may be written to /var/db/dhclient.leases.wlan0.

Then dhclient may occasionally run /sbin/dhclient-script. This is a shell-script, and that does all the work, i.e. configure the IP onto the interface, edit the routing-table, edit the /etc/resolv.conf.
This shell-script includes a pre hook in /etc/dhclient-enter-hooks (if present). So this is all perfectly observable and debugable - and it is all quite irrelevant for the mere functioning of the interface.
 
PMc, thank you for the clarification. I have just verified: all these settings are correct, and I always have to struggle after switching on my computer or rebooting it — because every time the network is being disconnected, though. However, when I finally get it after a few service netif restart and then dhclient re0, the connection is always persistent. Sometimes one dhclient re0 is enough, but usually I have to repeat and reload many times. And I can not find any warnings or explanatory entries in any of logs. My wired Ethernet card is Realtek RTL8125 (and wireless Intel Wi-Fi 6 AX200).
 
Back
Top