Commit | Line | Data |
---|---|---|
f0706e82 JB |
1 | /* |
2 | * IEEE 802.11 driver (80211.o) - QoS datatypes | |
3 | * Copyright 2004, Instant802 Networks, Inc. | |
4 | * Copyright 2005, Devicescape Software, Inc. | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License version 2 as | |
8 | * published by the Free Software Foundation. | |
9 | */ | |
10 | ||
11 | #ifndef _WME_H | |
12 | #define _WME_H | |
13 | ||
14 | #include <linux/netdevice.h> | |
15 | #include "ieee80211_i.h" | |
16 | ||
17 | #define QOS_CONTROL_LEN 2 | |
18 | ||
19 | #define QOS_CONTROL_ACK_POLICY_NORMAL 0 | |
20 | #define QOS_CONTROL_ACK_POLICY_NOACK 1 | |
21 | ||
22 | #define QOS_CONTROL_TID_MASK 0x0f | |
23 | #define QOS_CONTROL_ACK_POLICY_SHIFT 5 | |
24 | ||
25 | #define QOS_CONTROL_TAG1D_MASK 0x07 | |
26 | ||
9e723492 RR |
27 | extern const int ieee802_1d_to_ac[8]; |
28 | ||
6e0d114d JB |
29 | static inline int WLAN_FC_IS_QOS_DATA(u16 fc) |
30 | { | |
31 | return (fc & 0x8C) == 0x88; | |
32 | } | |
f0706e82 JB |
33 | |
34 | #ifdef CONFIG_NET_SCHED | |
35 | void ieee80211_install_qdisc(struct net_device *dev); | |
36 | int ieee80211_qdisc_installed(struct net_device *dev); | |
9e723492 RR |
37 | int ieee80211_ht_agg_queue_add(struct ieee80211_local *local, |
38 | struct sta_info *sta, u16 tid); | |
39 | void ieee80211_ht_agg_queue_remove(struct ieee80211_local *local, | |
40 | struct sta_info *sta, u16 tid, | |
41 | u8 requeue); | |
42 | void ieee80211_requeue(struct ieee80211_local *local, int queue); | |
f0706e82 JB |
43 | int ieee80211_wme_register(void); |
44 | void ieee80211_wme_unregister(void); | |
45 | #else | |
46 | static inline void ieee80211_install_qdisc(struct net_device *dev) | |
47 | { | |
48 | } | |
49 | static inline int ieee80211_qdisc_installed(struct net_device *dev) | |
50 | { | |
51 | return 0; | |
52 | } | |
9e723492 RR |
53 | static inline int ieee80211_ht_agg_queue_add(struct ieee80211_local *local, |
54 | struct sta_info *sta, u16 tid) | |
55 | { | |
56 | return -EAGAIN; | |
57 | } | |
58 | static inline void ieee80211_ht_agg_queue_remove(struct ieee80211_local *local, | |
59 | struct sta_info *sta, u16 tid, | |
60 | u8 requeue) | |
61 | { | |
62 | } | |
63 | static inline void ieee80211_requeue(struct ieee80211_local *local, int queue) | |
64 | { | |
65 | } | |
f0706e82 JB |
66 | static inline int ieee80211_wme_register(void) |
67 | { | |
68 | return 0; | |
69 | } | |
70 | static inline void ieee80211_wme_unregister(void) | |
71 | { | |
72 | } | |
73 | #endif /* CONFIG_NET_SCHED */ | |
74 | ||
75 | #endif /* _WME_H */ |