diff options
Diffstat (limited to 'openwrt/target/linux/package/ieee80211-dscape/src/wme.h')
-rw-r--r-- | openwrt/target/linux/package/ieee80211-dscape/src/wme.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/openwrt/target/linux/package/ieee80211-dscape/src/wme.h b/openwrt/target/linux/package/ieee80211-dscape/src/wme.h new file mode 100644 index 0000000000..9b27947807 --- /dev/null +++ b/openwrt/target/linux/package/ieee80211-dscape/src/wme.h @@ -0,0 +1,53 @@ +/* + * IEEE 802.11 driver (80211.o) - QoS datatypes + * Copyright 2004, Instant802 Networks, Inc. + * Copyright 2005, Devicescape Software, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <asm/byteorder.h> +#include <net/pkt_sched.h> + +#define QOS_CONTROL_LEN 2 + +#define QOS_CONTROL_ACK_POLICY_NORMAL 0 +#define QOS_CONTROL_ACK_POLICY_NOACK 1 + +#define QOS_CONTROL_TID_MASK 0x0f +#define QOS_CONTROL_ACK_POLICY_SHIFT 5 + +/* This bit field structure should not be used; it can cause compiler to + * generate unaligned accesses and inefficient code. */ +struct qos_control { +#if defined(__LITTLE_ENDIAN_BITFIELD) + u8 tag1d:3, /* bits 0-2 */ + reserved1:1, + eosp:1, + ack_policy:2, + reserved2:1; +#elif defined (__BIG_ENDIAN_BITFIELD) + u8 reserved2:1, + ack_policy:2, + eosp:1, + reserved1:1, + tag1d:3; /* bits 0-2 */ +#else +#error "Please fix <asm/byteorder.h>" +#endif + u8 reserved; +} __attribute__ ((packed)); + +ieee80211_txrx_result +ieee80211_rx_h_parse_qos(struct ieee80211_txrx_data *rx); + +ieee80211_txrx_result +ieee80211_rx_h_remove_qos_control(struct ieee80211_txrx_data *rx); + +void ieee80211_install_qdisc(struct net_device *dev); + +int ieee80211_wme_register(void); +void ieee80211_wme_unregister(void); + |