Subject: Re: [PATCH 10/10] [RFC] wifi: remove ipw2100/ipw2200 drivers

From: Stefan Lippers-Hollmann <[email-masked]>
Date: Tue, 24 Oct 2023 01:43:02 +0200

Hi

On 2023-10-23, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email-masked]>
>
> These two drivers were used for the earliest "Centrino" branded Intel
> laptops during the late 32-bit Pentium-M era, roughly 2003 to 2005, which
> probably makes it the most modern platform that still uses the wireless
> extension interface instead of cfg80211. Unlike the other drivers that
> are suggested for removal, this one is still officially maintained.
>
> According to Johannes Berg, there was an effort to finish the move away
> from wext in the past, but the last evidence of this that I could find
> is from commit a3caa99e6c68f ("libipw: initiate cfg80211 API conversion
> (v2)") in 2009.
>
> Link: https://lore.kernel.org/all/[email-masked]/
> Cc: Stanislav Yakovlev <[email-masked]>
> Cc: Linux Wireless <[email-masked]>
> Signed-off-by: Arnd Bergmann <[email-masked]>
> ---
> I'm not convinced this should be in the same set of drivers as the
> rest, since this is clearly less obsolete than the other hardware
> that I would remove support for.

These have indeed been very common back in the day, I'm still using
a 2003-vintage 1.5 GHz Pentium-M 'Banias' Acer Travelmate 292LMi
notebook using ipw2200 (and have two spare ipw2200 mini-PCI cards).
Works still fine using v6.5.8-rc1 and WPA2PSK/ CCMP (sadly it does
not do WPA3) and I do use it semi-regularly (running the latest
stable- or stable-rc kernel of the day).

While it would be nice to replace it with an ath5k based card (to
get WPA3 support), the card isn't that easy to reach in the notebook,
so it would be sad to see this go.

Host/Kernel/OS  "acer-292lmi" running Linux 6.5.8-rc1 i686 [ Debian GNU/Linux trixie/sid ]
System          Acer TravelMate 290
CPU Info        Intel Pentium M 1024 KB cache flags( sse2 ) clocked at [ 1400.000 MHz ]
Videocard       Advanced Micro Devices, [AMD/ATI] RV350/M10 / RV360/M11 [Mobility Radeon 9600 (PRO) / 9700]  X.Org 1.23.2.1  [ [email-masked] ]
Network cards   Realtek RTL-8100/8101L/8139 PCI Fast Ethernet Adapter, at port: a000
                Intel PRO/Wireless 2200BG [Calexico2] Network Connection
Processes 131 | Uptime 3:16 | Memory 125.2/493.1MB | HDD IC25N060ATMR04-0 Size 60GB (67%used) | GLX Renderer llvmpipe (LLVM 16.0.6, 128 bits) | GLX Version Yes

Yes, this is an old and slow system, but it's there, functional and
I rarely need a mobile notebook (my desktops are more current and
64 bit capable).

02:02.0 Network controller [0280]: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection [8086:4220] (rev 05)
        Subsystem: Intel Corporation WM3B2200BG Mini-PCI Card [8086:2701]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 128 (750ns min, 6000ns max)
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at d0000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
        Kernel driver in use: ipw2200
        Kernel modules: ipw2200

[    0.000000] Linux version 6.5.8-rc1 ([email-masked]) (gcc-13 (Debian 13.2.0-5) 13.2.0, GNU ld (GNU Binutils for Debian) 2.41) #1 SMP PREEMPT_DYNAMIC 6.5-13 (2023-10-17)
...
[   23.886128] lib80211: common routines for IEEE802.11 drivers
[   23.886133] lib80211_crypt: registered algorithm 'NULL'
[   24.051575] libipw: 802.11 data/management/control stack, git-1.1.13
[   24.051586] libipw: Copyright (C) 2004-2005 Intel Corporation <[email-masked]>
...
[   24.735203] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[   24.735221] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[   24.735825] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
...
[   25.007359] ipw2200: Detected geography ZZE (13 802.11bg channels, 19 802.11a channels)
...
[   27.027578] ipw2200 0000:02:02.0 wlp2s2: renamed from eth0
...
[   29.571384] NET: Registered PF_PACKET protocol family
...
[   42.603676] warning: `wpa_supplicant' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211
[   44.196736] lib80211_crypt: registered algorithm 'CCMP'

# iwconfig wlp2s2
wlp2s2    IEEE 802.11  ESSID:"xxx"
          Mode:Managed  Frequency:2.412 GHz  Access Point: xx:xx:xx:xx:xx:xx
          Bit Rate:54 Mb/s   Tx-Power=20 dBm   Sensitivity=8/0
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx   Security mode:open
          Power Management:off
          Link Quality=0/100  Signal level=-28 dBm  Noise level=-89 dBm
          Rx invalid nwid:0  Rx invalid crypt:6  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:100

# wpa_cli status
Selected interface 'wlp2s2'
bssid=xx:xx:xx:xx:xx:xx
freq=0
ssid=xxx
id=1
id_str=xxx
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=172.22.2.1
address=xx:xx:xx:xx:xx:xx
uuid=xxx

(performance against a wifi6 (ipq8071a AP isn't that great, but it works)

$ iperf3 -c 172.21.4.1
Connecting to host 172.21.4.1, port 5201
[  5] local 172.22.2.1 port 45288 connected to 172.21.4.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.97 MBytes  16.6 Mbits/sec    0    110 KBytes
[  5]   1.00-2.00   sec  1.74 MBytes  14.6 Mbits/sec    0    163 KBytes
[  5]   2.00-3.00   sec  1.68 MBytes  14.1 Mbits/sec    0    163 KBytes
[  5]   3.00-4.00   sec  1.68 MBytes  14.1 Mbits/sec    0    163 KBytes
[  5]   4.00-5.00   sec  1.86 MBytes  15.6 Mbits/sec    0    163 KBytes
[  5]   5.00-6.00   sec  1.49 MBytes  12.5 Mbits/sec    0    163 KBytes
[  5]   6.00-7.00   sec  1.86 MBytes  15.6 Mbits/sec    0    163 KBytes
[  5]   7.00-8.00   sec  1.93 MBytes  16.2 Mbits/sec    0    228 KBytes
[  5]   8.00-9.00   sec  1.49 MBytes  12.5 Mbits/sec    0    228 KBytes
[  5]   9.00-10.00  sec  1.99 MBytes  16.7 Mbits/sec    0    228 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  17.7 MBytes  14.8 Mbits/sec    0             sender
[  5]   0.00-10.13  sec  17.2 MBytes  14.3 Mbits/sec                  receiver

iperf Done.

$ iperf3 -c 172.21.4.1 --reverse
Connecting to host 172.21.4.1, port 5201
Reverse mode, remote host 172.21.4.1 is sending
[  5] local 172.22.2.1 port 52246 connected to 172.21.4.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.04   sec  1.88 MBytes  15.1 Mbits/sec
[  5]   1.04-2.04   sec  1.75 MBytes  14.8 Mbits/sec
[  5]   2.04-3.03   sec  1.62 MBytes  13.7 Mbits/sec
[  5]   3.03-4.05   sec  1.75 MBytes  14.5 Mbits/sec
[  5]   4.05-5.03   sec  1.75 MBytes  14.9 Mbits/sec
[  5]   5.03-6.06   sec  1.88 MBytes  15.3 Mbits/sec
[  5]   6.06-7.05   sec  1.75 MBytes  14.8 Mbits/sec
[  5]   7.05-8.01   sec  1.75 MBytes  15.3 Mbits/sec
[  5]   8.01-9.03   sec  1.88 MBytes  15.4 Mbits/sec
[  5]   9.03-10.02  sec  1.75 MBytes  14.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.46  sec  21.4 MBytes  17.1 Mbits/sec    0             sender
[  5]   0.00-10.02  sec  17.8 MBytes  14.9 Mbits/sec                  receiver

iperf Done.

While I'll cope if ipw2200 goes away (giving me the impetus to replace
the ipw2200 card with ath5k - or at least to use an ar5212/ar2414 ath5k
or bcm4306/2 b43 32 bit PCMCIA/ cardbus card (inconvenient, with the
antenna sticking out) until then), these have been so ubiquitous in
their days that there will be quite a few surviving specimens around
(and this one is actually still in semi-regular use with current
kernels/ userland, not daily, but 2-3+ times a month, mostly for
isolated firstboot configuration of various networking gear).

Regards
	Stefan Lippers-Hollmann