Can the devs give a short/expanded overview of WCN3660 and how it communicates with the driver?

Farm Dve farmdve at data.bg
Wed Feb 11 16:52:55 PST 2015


I asked Mr. Bjorn and he was very helpful, but I am looking at the
sources, all of them and I cannot wrap my head around it. I would like
to just throw this quickly, that I am not experienced with the linux
kernel. Lots of stuff are still hard to grasp, such as how wcn36xx
communicates with userspace APIs for networking(such as
socket,recv,buf).

We have the wcn36xx driver, we also have drivers/staging/prima/CORE,
how exactly are they related?
If wcn36xx is the driver, what is the purpose of prima/CORE? I looked
at prima and there are a bunch of folders with..awful and
non-descriptive names, although the files are documented it leaves a
lot to be desired. Such as HDD,VOSS,DXE and so forth.
What about wcnss in net/wireless/wcnss, is it obsolete thanks to wcn36xx?

My goal is to enable monitor mode, if it's actually supported by the
chip, but there is no info on this. So far I've understood that the
PIL is responsible for running the fw, which is wcnss.b00 through
.b05. I've also found out through tcpdump that I am getting Ethernet
packets(probably fake) on the wlan0 interface, which means the
firmware is stripping the actual important frames. I am also a bit
unfamiliar with the exact hierarchy of the wlan packets, but this will
be rectified soon.
I've also discovered that function iw_set_mode in wlan_hdd_wext.c
lacks the proper code to handle monitor mode which is usually defined
as IW_MODE_MONITOR 6 and turned on via `iwconfig wlan0 mode monitor`,
although I am not sure if it's required.

I have not figured out if the actual firmware loaded by PIL has some
sort of strict verfication preventing altering of the firmware.
Basically too much info is still hidden, so much for Atheros/Qualcomm
participating in a joint open-source project.



More information about the wcn36xx mailing list