Tuesday, September 15, 2020

End of Wi-Fi Driver developers?

 Sounds cheesy, do read on? Wi-Fi industry has progressed a lot in the last decade, it now offers multi-gigabit data rates (11ac/11ax or 11ad/11ay), up to a kilometer range (11ah), 6GHz band (6E), faster connection, and roams times, high-speed mobility, enhanced security, etc. and many more to come. And with this increasing greed for more data rates (it all started with the introduction of 11ac), the role of Wi-Fi device driver developers also has changed a lot, or rather IMHO came to an end in the traditional sense, see the underlined words below for the replacement jobs :-).

We can broadly divide the WLAN Chips into two categories High performance and Low-Power and unlike earlier days where SoftMAC (LMAC in the chip) architecture was prevalent, most of the chipsets now moved to the Full mac architecture with UMAC and LMAC within the chip with some split between Firmware and Hardware. This is applicable to both types of chipsets (Performance needs more hardware offloads, power also needs more HW offloads but in a different sense). And in some industries like IoT or ultra-low power variants, TCP/IP (likes of LWIP) and wpa_supplicant is also embedded in the chip.

Only small companies who don't have money or resources or time to do these things in the chip, go for the SoftMAC approach, but that percentage is less and the number of companies actively developing WLAN chips is reduced drastically, most involve in buying a certified chip and developing applications on top of it (This phenomenon even affects such companies see the last couple of paragraphs).

The functionality of the Wi-Fi device driver is now limited to configuring the chip settings (sending commands from user space applications to the chip) and interfacing with the TCP/IP stack, in terms of the skill needed it is equivalent to Ethernet driver skills or even less. as most of the proven concepts (Rings, NAPI, (G/T/L)SO, etc) from the Ethernet drivers are taken to Wi-Fi to achieve gigabit rates. Even though it is a driver for a Wi-Fi chipset we should be calling them Ethernet driver developers. In contrast, see my old guide to starting Linux Wi-Fi driver development for SoftMAC drivers it's becoming obsolete now.

Some companies working in the north of 10Gig went a step ahead and removed the kernel from the picture completely (from Wi-Fi PoV, it still needs a KNI module in the kernel) by using frameworks like DPDK (from Linux Foundation) where the driver resides in the user-space directly talking to the hardware (using hugetlbfs). To compete with that even the traditional Linux networking guys had to come up with XDP which uses eBPF to on-load some tasks to user-space (packet filtering decisions etc.) to avoid loading on the kernel unnecessarily by dropping packets early in the cycle (even this wasn't enough, so some have offloaded eBPF processing to the HW itself to avoid packets coming up the CPU itself). The skills needed for these user mode driver developers are completely different from developing traditional device drivers.

I have mostly focused on Linux systems but the same holds true for windows WDI driver developers, but it never had much functionality in the software like mac80211 in Linux anyway so not that much of a problem.

This trend affects a very lucrative and niche area of Wi-Fi device drivers jobs. Compared to earlier, where a good amount of WLAN protocol know-how is needed and values aren't the case anymore. That is not to say that the amount of skill has reduced, the data path is still critical but its mostly proven with the Ethernet chipsets as they pioneer the OS and Driver areas with huge demands from 40/100/400 Gig rates. So, the amount of new stuff to do in the Wi-Fi drivers without the Wi-Fi involved is low and hence need fewer people to do.

Overall, for those developers who want to get their hands on WLAN features and protocols have to move to the firmware domain that needs a different set of skills and needs serious re-skilling and also the job market is quite different for firmware developers as the attrition rate in the domain is quite low as most of the work there is specialized in a closed ecosystem. And then there is a problem of licensing and customizing the firmware as most companies keep the firmware proprietary and as a USP, which is another topic entirely affecting a myriad of companies that rely on selling SW around a proven Wi-Fi chip).

Note: There is still plenty in the wpa_supplicant/hostapd but driver developers are closer to FW and very few companies do these things proprietary way most stick to opensource software.

So, if you are a Wi-Fi driver developer interested in doing Wi-Fi work (like me), it's time to rethink your career options.

I know this is a bit controversial and it is just my point of view with spending more than a decade in this industry and was part of this transition, so, please do share your thoughts and experiences, I would love to hear more.

Wi-Fi 6E: 6GHz Spectrum


802.11ax has been code-named Wi-Fi6 and its usage in the 6GHz band which has been opened by FCC (and others following the suite) has been code-named Wi-Fi 6E :).Let us discuss the details of the channels and rules along with how we coordinate with incumbent services meeting the I/N ratio of -6dB to avoid interference to the incumbents.

6GHz spectrum (Wi-Fi6E: 5.925-7.125 GHz) is already in use by incumbent services, so, the unlicensed operation in this band is divided into two categories based on power usage derived from UNII-3 rules, with additional protection offered by AFC (Automated Frequency coordination). See below power limits (#8)

6GHz power limits

A: 5.925-6.425 GHz (UNII-5) and 6.525-6.875 GHz (UNII-7) = 850MHz of Spectrum + (Standard power + AFC (or) Low power-Indoor + No-AFC)

  Incumbent Services: Fixed services, like PTP Microware links and FS (Fixed Satellite) Receivers which tend to be directed. 

As these services are fixed, we don't need to use a dynamic scheme like DFS in UNII-2A, instead simply knowing the range of their operation a.k.a. 'contours', should suffice to stay away from them.

AFC is nothing but a simple database (Maintained by AFC Registrars and AFC Operators) to determine the contours of incumbents and make sure unlicensed elements do not disturb them (enforced by AFC masters which control AFC Clients) (#3). FCC databases show 47,695 call signs in the 6GHz, so, operators need to define the contours of their links and publish them to masters viz AFC. Below picture summarizes this (#7)

No alt text provided for this image

At the bottom of the below pic, you can see available channels in green generated using AFC, that's a lot of free channels, though only 1X160MHz channel, that's SFO :-). (Using FCC and COALS database (#7) and using the RLAN Group propagation model (#8))

No alt text provided for this image

data

B: 6.425-6.525 GHz (UNII-6) and 6.875-7.125 GHz (UNII-8) = 350MHz of Spectrum + Low power-Indoor + No-AFC

  Incumbent Services: Mobile Services: Broadcast Auxiliary Service, Cable Television Relay Service, etc. 

  Even though these are dynamic but are more actively present using DFS is unsuitable (it's mainly for avoiding interference with intermittent signals like radars), hence a reduced power is proposed instead (at this power levels they don't interfere with incumbents) (#6)

Summary: This gives us a total of 7X160MHz channels in the US and 3X160MHz in Europe (only UNII-5) (#5), which is quite a big win for Wi-Fi.

What do you think about gaining a 1.2GHz of the new spectrum? How can this be used by new applications using 11ax/wifi6E, please share your thoughts?

References:

  1. https://www.fcc.gov/document/chairman-pai-proposes-new-6-ghz-band-rules-unleash-unlicensed-use
  2. https://wifinowglobal.com/news-and-blog/wi-fi-in-6-ghz-tech-giants-posit-new-scheme-for-protection-of-6-ghz-incumbents/
  3. https://ecfsapi.fcc.gov/file/1080236093470/Ex%20Parte%20(Aug.%202%202018)%20(FINAL).pdf
  4. https://docs.fcc.gov/public/attachments/DOC-354364A1.pdf
  5. http://www.cdot.in/cdotweb/assets/docs/events/gbmls19/WiFi_6_and_beyond(Dorothy).pdf (Slides #22/23)
  6. https://ecfsapi.fcc.gov/file/108080219920074/WFA%20Ex%20Parte%20Letter.pdf
  7. https://ecfsapi.fcc.gov/file/100302586574/2019-10-01%20OET%20AFC%20Demo%20Ex%20Parte.pdf
  8. https://docs.fcc.gov/public/attachments/DOC-363490A1.pdf
  9. https://ecfsapi.fcc.gov/file/10216633127609/6%20GHz%20RLAN%20Group%20Comments%20(Feb%2015%202019).pdf pages 43-44