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
722 * QoS mapping is relevant for IP packets, it is only valid during an722 * QoS mapping is relevant for IP packets, it is only valid during an
723 * association. This is cleared on disassociation and AP restart.723 * association. This is cleared on disassociation and AP restart.
724 *724 *
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 *
725 * @NL80211_CMD_MAX: highest used command number741 * @NL80211_CMD_MAX: highest used command number
726 * @__NL80211_CMD_AFTER_LAST: internal use742 * @__NL80211_CMD_AFTER_LAST: internal use
727 */743 */
@@ -893,6 +909,9 @@ enum nl80211_commands { · 165 unmodified lines
893 909
894 NL80211_CMD_SET_QOS_MAP,910 NL80211_CMD_SET_QOS_MAP,
895 911
912 NL80211_CMD_ADD_TX_TS,
913 NL80211_CMD_DEL_TX_TS,
914
896 /* add new commands above here */915 /* add new commands above here */
897 916
898 /* used to define NL80211_CMD_MAX below */917 /* used to define NL80211_CMD_MAX below */
@@ -1611,6 +1630,11 @@ enum nl80211_commands { · 712 unmodified lines
1611 * drivers to indicate dynack capability. Dynack is automatically disabled1630 * drivers to indicate dynack capability. Dynack is automatically disabled
1612 * setting valid value for coverage class.1631 * setting valid value for coverage class.
1613 *1632 *
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 *
1614 * @NL80211_ATTR_MAX: highest attribute number currently defined1638 * @NL80211_ATTR_MAX: highest attribute number currently defined
1615 * @__NL80211_ATTR_AFTER_LAST: internal use1639 * @__NL80211_ATTR_AFTER_LAST: internal use
1616 */1640 */
@@ -1957,6 +1981,10 @@ enum nl80211_attrs { · 340 unmodified lines
1957 1981
1958 NL80211_ATTR_WIPHY_DYN_ACK,1982 NL80211_ATTR_WIPHY_DYN_ACK,
1959 1983
1984 NL80211_ATTR_TSID,
1985 NL80211_ATTR_USER_PRIO,
1986 NL80211_ATTR_ADMITTED_TIME,
1987
1960 /* add attributes here, update the policy in nl80211.c */1988 /* add attributes here, update the policy in nl80211.c */
1961 1989
1962 __NL80211_ATTR_AFTER_LAST,1990 __NL80211_ATTR_AFTER_LAST,