Monitor Mode

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hello,

I’m trying to figure out if the WICED module can be put into a “monitor” or “promiscuous” mode, where it sends all packets to the host MCU (regardless of the intended destination of the packet).

Thanks for any assistance!

0 Likes
1 Solution
Anonymous
Not applicable

There is no API for promiscuous mode.

Please try WLC_SET_PROMISC ioctl.

You need to add an API like below.

---

uint32_t *promisc = wiced_get_ioctl_buffer(&buffer, (uint16_t)4);

CHECK_IOCTL_BUFFER(promisc);

*promisc = (uint32_t)1;

retval = wiced_send_ioctl(SDPCM_SET, WLC_SET_PROMISC, buffer, 0, SDPCM_STA_INTERFACE);

View solution in original post

3 Replies
Anonymous
Not applicable

There is no API for promiscuous mode.

Please try WLC_SET_PROMISC ioctl.

You need to add an API like below.

---

uint32_t *promisc = wiced_get_ioctl_buffer(&buffer, (uint16_t)4);

CHECK_IOCTL_BUFFER(promisc);

*promisc = (uint32_t)1;

retval = wiced_send_ioctl(SDPCM_SET, WLC_SET_PROMISC, buffer, 0, SDPCM_STA_INTERFACE);

Anonymous
Not applicable

So, just in case anyone else runs into this - I found the API call after digging a bit:

#include "wwd_wifi.h"

wiced_wifi_enable_monitor_mode();

@dmiya - you were on the right track, but apparently you also need to enable 'allmulti' mode. Check out Wiced/WWD/internal/wwd_wifi.c:1594.

Anonymous
Not applicable

@dmiya, I apologize - After doing further research I've found that monitor and promiscuous mode are very different things. You were correct about the best way to enable promiscuous mode. Thanks for your help!

0 Likes