Hi,
- shost = wifi_hdr->addr2;
- if (fc & IEEE80211_FCTL_FROMDS)
shost = wifi_hdr->addr3;
- else if (fc & IEEE80211_FCTL_TODS)
shost = wifi_hdr->addr4;
- dhost = wifi_hdr->addr1;
- if (fc & IEEE80211_FCTL_TODS)
dhost = wifi_hdr->addr3;
What would happen if you happened to pick up a WDS packet? Four addresses in the packet. Do we see sensible addresses?
we should - that is what addr4 is used for but I did not test it. Let me know if it does not work for you.
- hdr_len = 24;
- if ((fc & IEEE80211_FCTL_FROMDS) && (fc & IEEE80211_FCTL_TODS))
hdr_len = 30;
Again, WDS? We are now a few bytes out when decoding the rest of the packet.
I don't understand what you are trying to say here. Are you sure it is not working or are you worried that WDS might not work ? If you have doubts please explain them in more detail.
Thanks, Marek