Skip to contentSkip to conversation

Vendor specific data within a beacon frame

DISCUSSION Bjoern Czybik 3 participants 6 messages Oct 7, 2010 – Oct 8, 2010

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
Quoted 9 lines · Bjoern Czybik

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

#2 lore raw

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

Let me quote what you wrote, but just partially:

Quoted 8 lines

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

#3 lore raw
Quoted 6 lines · Johannes Berg

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

Let me quote what you wrote, but just partially:

Quoted 1 line

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

Quoted 8 lines
Quoted 6 lines

 *      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

#4 lore raw
Quoted 15 lines · Luis R. Rodriguez
Quoted 13 lines · Johannes Berg

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

Let me quote what you wrote, but just partially:

Quoted 8 lines

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.
Quoted 4 lines
Quoted 1 line

: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

#5 lore raw

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

Quoted 35 lines · Johannes Berg
Quoted 18 lines · Luis R. Rodriguez
Quoted 15 lines · Johannes Berg

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

Let me quote what you wrote, but just partially:

Quoted 10 lines

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.
Quoted 5 lines
Quoted 2 lines

: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