State of the OpenMoko wlan driver

Andy Green andy at
Thu Sep 18 15:12:06 CEST 2008

Hash: SHA1

Somebody in the thread at some point said:

(I have cc'd Vitaly and Yoseph in case they can clarify anything)

| Am Donnerstag 18 September 2008 14:35:14 schrieb Andy Green:
|> AUI the official situation from Atheros is there isn't any Monitor Mode
|> in the firmware, I know other folks in OM are talking to Atheros and
|> maybe they can make a nice surprise.
| If this means that the firmware does block all data frames going to
other MAC
| addresses except it's own one then we have no chance for monitor AND
| mode.
| If it only means that the firmware cannot give us access to the raw
| frames, then we might get promisc mode.

Hm grepping around I see


/* Continuous Rx
~ act: TCMD_CONT_RX_PROMIS - promiscuous mode (accept all incoming frames)
~      TCMD_CONT_RX_FILTER - filter mode (accept only frames with dest
~                                             address equal specified
~                                             mac address (set via act =3)
~      TCMD_CONT_RX_REPORT  off mode  (disable cont rx mode and get the
~                                          report from the last cont
~                                          Rx test)

~     TCMD_CONT_RX_SETMAC - set MacAddr mode (sets the MAC address for the
~                                                 target. This Overrides
~                                                 the default MAC address.)

typedef enum {

It turns up in drivers/sdio/function/wlan/ar6000/ar6000/ioctl.c:

~        case AR6000_XIOCTL_TCMD_CONT_RX:
~            {
~                TCMD_CONT_RX rxCmd;

~                if (ar->tcmdPm == TCMD_PM_SLEEP) {
~                    A_PRINTF("Can NOT send rx tcmd when target is
asleep! \n");
~                    return -EFAULT;
~                }
~                if(copy_from_user(&rxCmd, userdata, sizeof(TCMD_CONT_RX)))
~                    return -EFAULT;
~                switch(rxCmd.act)
~                {
~                    case TCMD_CONT_RX_PROMIS:
~                    case TCMD_CONT_RX_FILTER:
~                    case TCMD_CONT_RX_SETMAC:
~                         wmi_test_cmd(ar->arWmi,(A_UINT8 *)&rxCmd,
~                                                sizeof(TCMD_CONT_RX));
~                         break;
~                    case TCMD_CONT_RX_REPORT:
~                         ar6000_ioctl_tcmd_get_rx_report(dev, rq,
~                         (A_UINT8 *)&rxCmd, sizeof(TCMD_CONT_RX));
~                         break;
~                    default:
~                         A_PRINTF("Unknown Cont Rx mode: %d\n",rxCmd.act);
~                         return -EINVAL;
~                }
~            }
~            break;

It's dependent on CONFIG_HOST_TCMD_SUPPORT which I guess isn't set right
now.  What happens to those packets in other layers of networking stack
if they have mismatched MAC I don't know, nor if they come with radiotap
header prepended.

| And maybe someone can ask Atheros if there is some kind of "status"
| that returns the average? signal strength of each adhoc station in
range and
| the bandwith of the last unicast communication with it. Both values
are very
| important for good MANET routing metrics.
|> But personally, I expect what we got is what we got on GTA02
| I hope the GTA03/04 will use a WLAN chip with softmac driver.

I can't say one way or the other, except that we're very aware about it
and it is possible to get a good solution here with vendor cooperation.

|> and if you
|> want monitor mode the "solution" is stick zd1211-based USB stick in
|> there.  Super happy to be proved wrong though!
| I don't think a smartphone would be a good "demonstration device" for a
| meshnet if you have to put an external WLAN stick in it. ;)


- -Andy
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora -


More information about the openmoko-kernel mailing list