2010-10-07 10:00:43

by Bjoern Czybik

[permalink] [raw]
Subject: Vendor specific data within a beacon frame

Hi all,

I am a student from Germany and a newbie to Linux device driver
programming and the wireless drivers.
We are using the ath5k device driver and hostapd.

In our project we are looking to send some specific data within each
beacon (should be set from the hostapd).
In which struct can I set the vendor specific data in a beacon frame?

Bj?rn


2010-10-07 18:35:23

by Johannes Berg

[permalink] [raw]
Subject: Re: Vendor specific data within a beacon frame

On Thu, 2010-10-07 at 11:31 -0700, Luis R. Rodriguez wrote:
> On Thu, Oct 7, 2010 at 11:15 AM, Johannes Berg
> <[email protected]> wrote:
> > On Thu, 2010-10-07 at 11:11 -0700, Luis R. Rodriguez wrote:
> >
> > Let me quote what you wrote, but just partially:
> >
> >> This can be done from userspace. This is from nl80211.h:
> >
> >> * Note: This command has been removed and it is only reserved at this
> >> * point to avoid re-using existing command number. The functionality this
> >> * command was planned for has been provided with cleaner design with the
> >> * option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN,
> >> * NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE,
> >> * NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE.
> >
> > :P
>
> Yeah just noticed *after* I pasted it and sent it. Does hostapd use
> this currently?

No, hostapd transmits frames via injection and the data it puts into the
beacon is conveyed with the beacon cmd -- it has never used this
command.

Really, what the OP is looking for is the annotated hostapd
configuration file or the hostapd source code -- he should be able to
figure that out for himself.

johannes


2010-10-07 18:12:12

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: Vendor specific data within a beacon frame

On Thu, Oct 7, 2010 at 2:31 AM, Bjoern Czybik <[email protected]> wrote:
> Hi all,
>
> I am a student from Germany and a newbie to Linux device driver programming
> and the wireless drivers.
> We are using the ath5k device driver and hostapd.
>
> In our project we are looking to send some specific data within each beacon
> (should be set from the hostapd).
> In which struct can I set the vendor specific data in a beacon frame?

This can be done from userspace. This is from nl80211.h:


* @NL80211_CMD_SET_MGMT_EXTRA_IE: Set extra IEs for management frames. The
* interface is identified with %NL80211_ATTR_IFINDEX and the management
* frame subtype with %NL80211_ATTR_MGMT_SUBTYPE. The extra IE data to be
* added to the end of the specified management frame is specified with
* %NL80211_ATTR_IE. If the command succeeds, the requested data will be
* added to all specified management frames generated by
* kernel/firmware/driver.
* Note: This command has been removed and it is only reserved at this
* point to avoid re-using existing command number. The functionality this
* command was planned for has been provided with cleaner design with the
* option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN,
* NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE,
* NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE.

Luis

2010-10-07 18:15:43

by Johannes Berg

[permalink] [raw]
Subject: Re: Vendor specific data within a beacon frame

On Thu, 2010-10-07 at 11:11 -0700, Luis R. Rodriguez wrote:

Let me quote what you wrote, but just partially:

> This can be done from userspace. This is from nl80211.h:

> * Note: This command has been removed and it is only reserved at this
> * point to avoid re-using existing command number. The functionality this
> * command was planned for has been provided with cleaner design with the
> * option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN,
> * NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE,
> * NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE.

:P

johannes


2010-10-07 18:31:52

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: Vendor specific data within a beacon frame

On Thu, Oct 7, 2010 at 11:15 AM, Johannes Berg
<[email protected]> wrote:
> On Thu, 2010-10-07 at 11:11 -0700, Luis R. Rodriguez wrote:
>
> Let me quote what you wrote, but just partially:
>
>> This can be done from userspace. This is from nl80211.h:
>
>>  *      Note: This command has been removed and it is only reserved at this
>>  *      point to avoid re-using existing command number. The functionality this
>>  *      command was planned for has been provided with cleaner design with the
>>  *      option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN,
>>  *      NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE,
>>  *      NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE.
>
> :P

Yeah just noticed *after* I pasted it and sent it. Does hostapd use
this currently?

Luis

2010-10-08 11:00:38

by Bjoern Czybik

[permalink] [raw]
Subject: Re: Vendor specific data within a beacon frame

Ok, I'm sorry I didn't epress myself well.

There is the struct 80211_gmt in the ieee80211_mgmt module in the
ieeee80211_defs.h, but there is no field for vendor specific data (of
course it will be set by the hostapd).

From the hostapd the function ieee802_11_set_beacon(...) calls the
wpa_driver_nl80211_set_beacon function in driver_nl80211.c (we are using
the hostapd-0.7.3).
In wpa_driver_nl80211_set_beacon fct. the macro NLA_PUT and NLA_PUT_32
is used to set the header and tail of a mgmt frame.

If I am right, I have to use the attribute NL80211_ATTR_IE to set
information elements data with %NL80211_CMD_SET_MGMT_EXTRA_IE (in
nl80211.h). But in the enum nl80211_commands is written:
NL80211_CMD_SET_MGMT_EXTRA_IE /* reserved; not used */,

Does somebody knows how to fix it?

Björn

On 07.10.2010 20:35, Johannes Berg wrote:
> On Thu, 2010-10-07 at 11:31 -0700, Luis R. Rodriguez wrote:
>
>> On Thu, Oct 7, 2010 at 11:15 AM, Johannes Berg
>> <[email protected]> wrote:
>>
>>> On Thu, 2010-10-07 at 11:11 -0700, Luis R. Rodriguez wrote:
>>>
>>> Let me quote what you wrote, but just partially:
>>>
>>>
>>>> This can be done from userspace. This is from nl80211.h:
>>>>
>>>
>>>> * Note: This command has been removed and it is only reserved at this
>>>> * point to avoid re-using existing command number. The functionality this
>>>> * command was planned for has been provided with cleaner design with the
>>>> * option to specify additional IEs in NL80211_CMD_TRIGGER_SCAN,
>>>> * NL80211_CMD_AUTHENTICATE, NL80211_CMD_ASSOCIATE,
>>>> * NL80211_CMD_DEAUTHENTICATE, and NL80211_CMD_DISASSOCIATE.
>>>>
>>> :P
>>>
>> Yeah just noticed *after* I pasted it and sent it. Does hostapd use
>> this currently?
>>
> No, hostapd transmits frames via injection and the data it puts into the
> beacon is conveyed with the beacon cmd -- it has never used this
> command.
>
> Really, what the OP is looking for is the annotated hostapd
> configuration file or the hostapd source code -- he should be able to
> figure that out for himself.
>
> johannes
>