⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wlan_wmm.h

📁 marvell cf wifi driver source code CF-8385-linux-x86-5.0.4.p0-132-src.rar
💻 H
字号:
#ifndef __WLAN_WMM_H
#define __WLAN_WMM_H

enum AC_QUEUES {
	AC_PRIO_BK,
	AC_PRIO_BE,
	AC_PRIO_VI,
	AC_PRIO_VO,
	MAX_AC_QUEUES
};

#define WMM_IE_LENGTH				0x0009
#define WMM_PARA_IE_LENGTH			0x0018
#define WMM_QOS_INFO_OFFSET			(0x08)
#define WMM_QOS_INFO_UAPSD_BIT			(0x80)

#define HostCmd_CMD_802_11_WMM_GET_TSPEC	0x006E
#define HostCmd_CMD_802_11_WMM_ADD_TSPEC	0x006F
#define HostCmd_CMD_802_11_WMM_REMOVE_TSPEC	0x0070
#define HostCmd_CMD_802_11_WMM_ACK_POLICY	0x005C
#define HostCmd_CMD_802_11_WMM_PRIO_PKT_AVAIL	0x005D
#define HostCmd_CMD_802_11_WMM_GET_STATUS	0x0071
#define HostCmd_RET_802_11_WMM_GET_TSPEC	0x806E
#define HostCmd_RET_802_11_WMM_ADD_TSPEC	0x806F
#define HostCmd_RET_802_11_WMM_REMOVE_TSPEC	0x8070
#define HostCmd_RET_802_11_WMM_ACK_POLICY	0x805C
#define HostCmd_RET_803_11_WMM_PRIO_PKT_AVAIL	0x805D
#define HostCmd_RET_802_11_WMM_GET_STATUS	0x8071
#define HostCmd_ACT_MAC_WMM_ENABLE		0x0800
#define MACREG_INT_CODE_WMM_STATUS_CHANGE	0x0017

typedef struct _wlan_ioctl_wmm_para_ie  wlan_ioctl_wmm_para_ie;
typedef wlan_ioctl_wmm_para_ie  *pwlan_ioctl_wmm_para_ie;
typedef struct _wlan_ioctl_wmm_tspec  wlan_ioctl_wmm_tspec;
typedef wlan_ioctl_wmm_tspec  *pwlan_ioctl_wmm_tspec;
typedef struct _wlan_ioctl_wmm_ack_policy  wlan_ioctl_wmm_ack_policy;
typedef wlan_ioctl_wmm_ack_policy  *pwlan_ioctl_wmm_ack_policy;

typedef struct _HostCmd_DS_802_11_WMM_TSPEC {
	u8	UserPriority; 		/* 0 - TSPEC for AC_BE
					   3 - TSPEC for AC_BE
					   1 - TSPEC for AC_BK
					   2 - TSPEC for AC_BK
					   4 - TSPEC for AC_VI
					   5 - TSPEC for AC_VI
					   6 - TSPEC for AC_VO
					   7 - TSPEC for AC_VO */
	u8	Direction;		/* 3 - Bi-directional
					   2 - Reserved
					   1 - Downlink
					   0 - Uplink
					       Only bi-directional streams will be supported for WMM */
	u8	PSMethod;		/* 0 - WMM_PS_LEGACY
					   1 - WMM_PS_TRIGGERED */
	u8	FixedSizeMSDU;		/* 0 - Size of MSDU not fixed
					   1 - Size of MSDU is fixed */ 
	u16	MSDUSize;		/* Nominal MSDU size in bytes */
	u32	MeanDataRate;		/* Average data rate in bits/sec */
	u32	MinPhyRate;		/* Minimum PHY rate in bits/sec */
	u16	ExtraBandwidth;		/* Extra bandwidth factor to
					   account for retries */
} __ATTRIB_PACK__ HostCmd_DS_802_11_WMM_TSPEC,
	*pHostCmd_DS_802_11_WMM_TSPEC;

typedef struct _HostCmd_DS_802_11_WMM_ACK_POLICY {
	u16	Action; 		/* 0 - ACT_GET
					   1 - ACT_SET */
	u8	AC;	 		/* 0 - AC_BE
					   1 - AC_BK
					   2 - AC_VI
					   3 - AC_VO */
	u8	AckPolicy;		/* 0 - WMM_ACK_POLICY_IMM_ACK
					   1 - WMM_ACK_POLICY_NO_ACK */
} __ATTRIB_PACK__ HostCmd_DS_802_11_WMM_ACK_POLICY,
	*pHostCmd_DS_802_11_WMM_ACK_POLICY;

typedef struct _WMM_AC_STATUS {
	u8	Disabled;
	u8	TriggeredPS;
	u8	FlowDirection;
	u8	FlowRequired;
	u8	FlowCreated;
	u32	MediumTime;
} __ATTRIB_PACK__ WMM_AC_STATUS;

typedef struct _HostCmd_DS_802_11_WMM_GET_STATUS {
	WMM_AC_STATUS Status[4];
} __ATTRIB_PACK__ HostCmd_DS_802_11_WMM_GET_STATUS,
	*pHostCmd_DS_802_11_WMM_GET_STATUS;

typedef struct _HostCmd_DS_802_11_WMM_PRIO_PKT_AVAIL {
	u16	PacketAC;
} __ATTRIB_PACK__ HostCmd_DS_802_11_WMM_PRIO_PKT_AVAIL,
	*pHostCmd_DS_802_11_WMM_PRIO_PKT_AVAIL;

#ifdef __KERNEL__

typedef struct _WMM_DESC
{
	u8		required;
	u8		enabled;
	u8		fw_notify;
	u8		acstatus;	/* x x x x O I E K --- 1=disabled 0=enabled */
	struct sk_buff	TxSkbQ[MAX_AC_QUEUES];
	u8		Para_IE[WMM_PARA_IE_LENGTH];
#ifdef WMM_UAPSD
	u8		qosinfo;
	u8		no_more_packet;
#endif
} __ATTRIB_PACK__ WMM_DESC,
	*pWMM_DESC;
#endif

int wlan_wmm_enable_ioctl(wlan_private *priv, struct iwreq *wrq);
int wlan_do_wmm_para_ie_ioctl(wlan_private *priv, struct ifreq *req);
int wlan_do_wmm_tspec_ioctl(wlan_private *priv, struct ifreq *req);
int wlan_do_wmm_ack_policy_ioctl(wlan_private *priv, struct ifreq *req);
int wlan_cmd_802_11_wmm_tspec(wlan_private *priv,
			HostCmd_DS_COMMAND *cmd, u16 cmdno, void *InfoBuf);
int wlan_cmd_802_11_wmm_ack_policy(wlan_private *priv,
			HostCmd_DS_COMMAND *cmd, u16 action, void *InfoBuf);
int wlan_cmd_802_11_wmm_get_status(wlan_private *priv,
			HostCmd_DS_COMMAND *cmd, u16 action, void *InfoBuf);
int wlan_cmd_802_11_wmm_prio_pkt_avail(wlan_private *priv,
			HostCmd_DS_COMMAND *cmd, u16 action, void *InfoBuf);
inline int sendWMMStatusChangeCmd(wlan_private *priv);
void wmm_cleanup_queues(wlan_private *priv);
void wmm_process_tx(wlan_private * priv);
#ifdef __KERNEL__
void wmm_map_and_add_skb(wlan_private *priv, struct sk_buff *);
#endif
int wmm_lists_empty(wlan_private *priv);

#endif /* __WLAN_WMM_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -