mirror of
https://github.com/YikeStone/MT7601u.git
synced 2025-08-02 19:04:09 +05:30
168 lines
4.8 KiB
C
168 lines
4.8 KiB
C
/****************************************************************************
|
|
* Ralink Tech Inc.
|
|
* 4F, No. 2 Technology 5th Rd.
|
|
* Science-based Industrial Park
|
|
* Hsin-chu, Taiwan, R.O.C.
|
|
* (c) Copyright 2002, Ralink Technology, Inc.
|
|
*
|
|
* All rights reserved. Ralink's source code is an unpublished work and the
|
|
* use of a copyright notice does not imply otherwise. This source code
|
|
* contains confidential trade secret material of Ralink Tech. Any attemp
|
|
* or participation in deciphering, decoding, reverse engineering or in any
|
|
* way altering the source code is stricitly prohibited, unless the prior
|
|
* written consent of Ralink Technology, Inc. is obtained.
|
|
****************************************************************************
|
|
|
|
Module Name:
|
|
wfa_p2p.h
|
|
|
|
Abstract:
|
|
Defined status code, IE and frame structures that WiFi Direct needed.
|
|
|
|
Revision History:
|
|
Who When What
|
|
--------- ---------- ----------------------------------------------
|
|
|
|
*/
|
|
|
|
|
|
#ifndef __WFA_P2P_H
|
|
#define __WFA_P2P_H
|
|
|
|
#include "rtmp_type.h"
|
|
|
|
|
|
#ifdef P2P_SUPPORT
|
|
|
|
typedef struct _P2P_PUBLIC_FRAME {
|
|
HEADER_802_11 p80211Header;
|
|
UCHAR Category;
|
|
UCHAR Action;
|
|
UCHAR OUI[3];
|
|
UCHAR OUIType;
|
|
UCHAR Subtype;
|
|
UCHAR Token;
|
|
UCHAR ElementID;
|
|
UCHAR Length;
|
|
UCHAR OUI2[3];
|
|
UCHAR OUIType2;
|
|
UCHAR Octet[1];
|
|
}
|
|
P2P_PUBLIC_FRAME, *PP2P_PUBLIC_FRAME;
|
|
|
|
typedef struct _P2P_ACTION_FRAME {
|
|
HEADER_802_11 p80211Header;
|
|
UCHAR Category;
|
|
UCHAR OUI[3];
|
|
UCHAR OUIType;
|
|
UCHAR Subtype;
|
|
UCHAR Token;
|
|
UCHAR Octet[1];
|
|
} P2P_ACTION_FRAME, *PP2P_ACTION_FRAME;
|
|
|
|
typedef struct _FRAME_P2P_ACTION {
|
|
HEADER_802_11 Hdr;
|
|
UCHAR Category;
|
|
UCHAR OUI[3];
|
|
UCHAR OUIType; /* 1 */
|
|
UCHAR OUISubType; /* 1 */
|
|
UCHAR Token; /* 1 */
|
|
} FRAME_P2P_ACTION, *PFRAME_P2P_ACTION;
|
|
|
|
typedef struct _MLME_P2P_ACTION_STRUCT {
|
|
UCHAR TabIndex; /* sometimes it's Mactable index, sometime it's P2P table index. depend on the command. */
|
|
UCHAR Addr[MAC_ADDR_LEN];
|
|
} MLME_P2P_ACTION_STRUCT, *PMLME_P2P_ACTION_STRUCT;
|
|
|
|
typedef struct _P2P_NOA_DESC {
|
|
UCHAR Count;
|
|
UCHAR Duration[4];
|
|
UCHAR Interval[4];
|
|
UCHAR StartTime[4];
|
|
} P2P_NOA_DESC, *PP2P_NOA_DESC;
|
|
|
|
|
|
/* General format of P2P attribut(4.1.1) */
|
|
#define SUBID_P2P_STATUS 0
|
|
#define SUBID_P2P_MINOR_REASON 1
|
|
#define SUBID_P2P_CAP 2
|
|
#define SUBID_P2P_DEVICE_ID 3
|
|
#define SUBID_P2P_OWNER_INTENT 4
|
|
#define SUBID_P2P_CONFIG_TIMEOUT 5
|
|
#define SUBID_P2P_LISTEN_CHANNEL 6
|
|
#define SUBID_P2P_GROUP_BSSID 7
|
|
#define SUBID_P2P_EXT_LISTEN_TIMING 8
|
|
#define SUBID_P2P_INTERFACE_ADDR 9
|
|
#define SUBID_P2P_MANAGEABILITY 10
|
|
#define SUBID_P2P_CHANNEL_LIST 11
|
|
#define SUBID_P2P_NOA 12
|
|
#define SUBID_P2P_DEVICE_INFO 13
|
|
#define SUBID_P2P_GROUP_INFO 14
|
|
#define SUBID_P2P_GROUP_ID 15
|
|
#define SUBID_P2P_INTERFACE 16
|
|
#define SUBID_P2P_OP_CHANNEL 17
|
|
#define SUBID_P2P_INVITE_FLAG 18
|
|
#define SUBID_P2P_VENDOR 221
|
|
|
|
/* Status Code definitions(4.1.2) */
|
|
#define P2PSTATUS_SUCCESS 0
|
|
#define P2PSTATUS_PASSED 1
|
|
#define P2PSTATUS_IMCOMPA_PARM 2
|
|
#define P2PSTATUS_LIMIT 3
|
|
#define P2PSTATUS_INVALID_PARM 4
|
|
#define P2PSTATUS_UNABLE 5
|
|
#define P2PSTATUS_NO_CHANNEL 7
|
|
#define P2PSTATUS_UNKNOWN_GROUP 8
|
|
#define P2PSTATUS_BOTH_INTENT15 9
|
|
#define P2PSTATUS_INCOMPATIBLE_PROVISION 10
|
|
#define P2PSTATUS_REJECT_BY_USER 11
|
|
|
|
//bitmap of P2P Capability/ 1st byte is DEVCAP, 2nd byte is GRPCAP
|
|
/* Device Capability Bitmap definitio(4.1.4) */
|
|
#define DEVCAP_SD 0x1 //Service discovery
|
|
#define DEVCAP_CLIENT_DISCOVER 0x2
|
|
#define DEVCAP_CLIENT_CONCURRENT 0x4
|
|
#define DEVCAP_INFRA_MANAGED 0x8
|
|
#define DEVCAP_DEVICE_LIMIT 0x10
|
|
#define DEVCAP_INVITE 0x20
|
|
|
|
/*Group Capability Bitmap definition(4.1.4) */
|
|
#define GRPCAP_OWNER 0x1
|
|
#define GRPCAP_PERSISTENT 0x2
|
|
#define GRPCAP_LIMIT 0x4
|
|
#define GRPCAP_INTRA_BSS 0x8
|
|
#define GRPCAP_CROSS_CONNECT 0x10
|
|
#define GRPCAP_PERSISTENT_RECONNECT 0x20
|
|
#define GRPCAP_GROUP_FORMING 0x40
|
|
|
|
|
|
/* P2P public action frame typ(4.2.8) */
|
|
#define GO_NEGOCIATION_REQ 0
|
|
#define GO_NEGOCIATION_RSP 1
|
|
#define GO_NEGOCIATION_CONFIRM 2
|
|
#define P2P_INVITE_REQ 3
|
|
#define P2P_INVITE_RSP 4
|
|
#define P2P_DEV_DIS_REQ 5
|
|
#define P2P_DEV_DIS_RSP 6
|
|
#define P2P_PROVISION_REQ 7
|
|
#define P2P_PROVISION_RSP 8
|
|
|
|
/* P2P action frame typ(4.2.9) */
|
|
#define P2PACT_NOA 0
|
|
#define P2PACT_PERSENCE_REQ 1
|
|
#define P2PACT_PERSENCE_RSP 2
|
|
#define P2PACT_GO_DISCOVER_REQ 3
|
|
|
|
/* Service Protocol Type */
|
|
#define SERVICE_PROTOCOL_TYPE_ALL 0
|
|
#define SERVICE_PROTOCOL_TYPE_BONJOUR 1
|
|
#define SERVICE_PROTOCOL_TYPE_UPNP 2
|
|
#define SERVICE_PROTOCOL_TYPE_WS_DISCOVERY 3
|
|
#define SERVICE_PROTOCOL_TYPE_WFD 4
|
|
#define SERVICE_PROTOCOL_TYPE_VENDOR_SPECIFIC 255
|
|
|
|
#endif /* P2P_SUPPORT */
|
|
|
|
#endif /* __WFA_P2P_H */
|
|
|