History

cfg80211: add WMM traffic stream API

Add nl80211 and driver API to validate, add and delete traffic streams with appropriate settings. The API calls for userspace doing the action frame handshake with the peer, and then allows only to set up the parameters in the driver. To avoid setting up a session only to tear it down again, the validate API is provided, but the real usage later can still fail so userspace must be prepared for that.

Johannes Berg committed 12 years ago

Commit 960d01a1 parent 9d58f256 files · +239 −1Browse files

Showing the changes to include/uapi/linux (1 of 6 files). Show all

Unified · Split

include/uapi/linux/nl80211.h+28−0
@@ -722,6 +722,22 @@ · 721 unmodified lines
722722 * QoS mapping is relevant for IP packets, it is only valid during an
723723 * association. This is cleared on disassociation and AP restart.
724724 *
725+ * @NL80211_CMD_ADD_TX_TS: Ask the kernel to add a traffic stream for the given
726+ * %NL80211_ATTR_TSID and %NL80211_ATTR_MAC with %NL80211_ATTR_USER_PRIO
727+ * and %NL80211_ATTR_ADMITTED_TIME parameters.
728+ * Note that the action frame handshake with the AP shall be handled by
729+ * userspace via the normal management RX/TX framework, this only sets
730+ * up the TX TS in the driver/device.
731+ * If the admitted time attribute is not added then the request just checks
732+ * if a subsequent setup could be successful, the intent is to use this to
733+ * avoid setting up a session with the AP when local restrictions would
734+ * make that impossible. However, the subsequent "real" setup may still
735+ * fail even if the check was successful.
736+ * @NL80211_CMD_DEL_TX_TS: Remove an existing TS with the %NL80211_ATTR_TSID
737+ * and %NL80211_ATTR_MAC parameters. It isn't necessary to call this
738+ * before removing a station entry entirely, or before disassociating
739+ * or similar, cleanup will happen in the driver/device in this case.
740+ *
725741 * @NL80211_CMD_MAX: highest used command number
726742 * @__NL80211_CMD_AFTER_LAST: internal use
727743 */
@@ -893,6 +909,9 @@ enum nl80211_commands { · 165 unmodified lines
893909
894910 NL80211_CMD_SET_QOS_MAP,
895911
912+ NL80211_CMD_ADD_TX_TS,
913+ NL80211_CMD_DEL_TX_TS,
914+
896915 /* add new commands above here */
897916
898917 /* used to define NL80211_CMD_MAX below */
@@ -1611,6 +1630,11 @@ enum nl80211_commands { · 712 unmodified lines
16111630 * drivers to indicate dynack capability. Dynack is automatically disabled
16121631 * setting valid value for coverage class.
16131632 *
1633+ * @NL80211_ATTR_TSID: a TSID value (u8 attribute)
1634+ * @NL80211_ATTR_USER_PRIO: user priority value (u8 attribute)
1635+ * @NL80211_ATTR_ADMITTED_TIME: admitted time in units of 32 microseconds
1636+ * (per second) (u16 attribute)
1637+ *
16141638 * @NL80211_ATTR_MAX: highest attribute number currently defined
16151639 * @__NL80211_ATTR_AFTER_LAST: internal use
16161640 */
@@ -1957,6 +1981,10 @@ enum nl80211_attrs { · 340 unmodified lines
19571981
19581982 NL80211_ATTR_WIPHY_DYN_ACK,
19591983
1984+ NL80211_ATTR_TSID,
1985+ NL80211_ATTR_USER_PRIO,
1986+ NL80211_ATTR_ADMITTED_TIME,
1987+
19601988 /* add attributes here, update the policy in nl80211.c */
19611989
19621990 __NL80211_ATTR_AFTER_LAST,