rx_frame(wt, frame, frame_len);
}
+
+
+void wlantest_process_80211(struct wlantest *wt, const u8 *data, size_t len)
+{
+ wpa_hexdump(MSG_EXCESSIVE, "Process data", data, len);
+ rx_frame(wt, data, len);
+}
return -1;
}
dlt = pcap_datalink(pcap);
- if (dlt != DLT_IEEE802_11_RADIO && dlt != DLT_PRISM_HEADER) {
+ if (dlt != DLT_IEEE802_11_RADIO && dlt != DLT_PRISM_HEADER &&
+ dlt != DLT_IEEE802_11) {
wpa_printf(MSG_ERROR, "Unsupported pcap datalink type: %d",
dlt);
pcap_close(pcap);
case DLT_PRISM_HEADER:
wlantest_process_prism(wt, data, hdr->caplen);
break;
+ case DLT_IEEE802_11:
+ wlantest_process_80211(wt, data, hdr->caplen);
}
}
const u8 *buf2, size_t len2);
void wlantest_process(struct wlantest *wt, const u8 *data, size_t len);
void wlantest_process_prism(struct wlantest *wt, const u8 *data, size_t len);
+void wlantest_process_80211(struct wlantest *wt, const u8 *data, size_t len);
void wlantest_process_wired(struct wlantest *wt, const u8 *data, size_t len);
u32 crc32(const u8 *frame, size_t frame_len);
int monitor_init(struct wlantest *wt, const char *ifname);