| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- /*
- ** Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/nic/p2p.h#3
- */
- /*
- ** Log: p2p.h
- **
- ** 03 16 2015 eason.tsai
- ** [ALPS01985239] [Need Patch] [Volunteer Patch]
- ** enlarge the time to avoid deauth packet stucking in the driver
- **
- ** 07 25 2014 eason.tsai
- ** AOSP
- **
- ** 10 08 2013 yuche.tsai
- ** [ALPS01065606] [Volunteer Patch][MT6630][Wi-Fi Direct][Driver] MT6630 Wi-Fi Direct Driver Patch
- ** Update Wi-Fi Direct Source.
- **
- ** 08 28 2013 yuche.tsai
- ** [BORA00002761] [MT6630][Wi-Fi Direct][Driver] Group Interface formation
- ** Fix Wi-Fi Direct channel width & RX channel indication issue.
- **
- ** 08 22 2013 yuche.tsai
- ** [BORA00002761] [MT6630][Wi-Fi Direct][Driver] Group Interface formation
- ** [BORA00000779] [MT6620] Emulation For TX Code Check In
- ** Make P2P group interface formation success.
- **
- ** 08 13 2013 yuche.tsai
- ** [BORA00002398] [MT6630][Volunteer Patch] P2P Driver Re-Design for Multiple BSS support
- ** Update driver for P2P scan & listen.
- **
- ** 07 19 2013 yuche.tsai
- ** [BORA00002398] [MT6630][Volunteer Patch] P2P Driver Re-Design for Multiple BSS support
- ** Code update for P2P.
- **
- ** 02 27 2013 yuche.tsai
- ** [BORA00002398] [MT6630][Volunteer Patch] P2P Driver Re-Design for Multiple BSS support
- ** Add p2p_rlm.c, p2p_rlm_obss.c, fix compile warning & error.
- **
- ** 02 27 2013 yuche.tsai
- ** [BORA00002398] [MT6630][Volunteer Patch] P2P Driver Re-Design for Multiple BSS support
- ** Add new code, fix compile warning.
- **
- ** 09 17 2012 cm.chang
- ** [BORA00002149] [MT6630 Wi-Fi] Initial software development
- ** Duplicate source from MT6620 v2.3 driver branch
- ** (Davinci label: MT6620_WIFI_Driver_V2_3_120913_1942_As_MT6630_Base)
- *
- * 07 17 2012 yuche.tsai
- * NULL
- * Compile no error before trial run.
- *
- * 10 20 2010 wh.su
- * [WCXRP00000124] [MT6620 Wi-Fi] [Driver] Support the dissolve P2P Group
- * Add the code to support disconnect p2p group
- *
- * 09 21 2010 kevin.huang
- * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
- * Isolate P2P related function for Hardware Software Bundle
- *
- * 08 03 2010 cp.wu
- * NULL
- * [Wi-Fi Direct] add framework for driver hooks
- *
- * 07 08 2010 cp.wu
- *
- * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
- *
- * 06 23 2010 cp.wu
- * [WPD00003833][MT6620 and MT5931] Driver migration
- * p2p interface revised to be sync. with HAL
- *
- * 06 06 2010 kevin.huang
- * [WPD00003832][MT6620 5931] Create driver base
- * [MT6620 5931] Create driver base
- *
- * 05 18 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * add parameter to control:
- * 1) auto group owner
- * 2) P2P-PS parameter (CTWindow, NoA descriptors)
- *
- * 05 18 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * correct WPS Device Password ID definition.
- *
- * 05 17 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * implement get scan result.
- *
- * 05 17 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * add basic handling framework for wireless extension ioctls.
- *
- * 05 14 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * add ioctl framework for Wi-Fi Direct by reusing wireless extension ioctls as well
- *
- * 05 11 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * p2p ioctls revised.
- *
- * 05 10 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * implement basic wi-fi direct framework
- *
- * 05 07 2010 cp.wu
- * [WPD00003831][MT6620 Wi-Fi] Add framework for Wi-Fi Direct support
- * add basic framework for implementating P2P driver hook.
- *
- *
- */
- #ifndef _P2P_H
- #define _P2P_H
- /*******************************************************************************
- * C O M P I L E R F L A G S
- ********************************************************************************
- */
- /*******************************************************************************
- * E X T E R N A L R E F E R E N C E S
- ********************************************************************************
- */
- /*******************************************************************************
- * C O N S T A N T S
- ********************************************************************************
- */
- /* refer to 'Config Methods' in WPS */
- #define WPS_CONFIG_USBA 0x0001
- #define WPS_CONFIG_ETHERNET 0x0002
- #define WPS_CONFIG_LABEL 0x0004
- #define WPS_CONFIG_DISPLAY 0x0008
- #define WPS_CONFIG_EXT_NFC 0x0010
- #define WPS_CONFIG_INT_NFC 0x0020
- #define WPS_CONFIG_NFC 0x0040
- #define WPS_CONFIG_PBC 0x0080
- #define WPS_CONFIG_KEYPAD 0x0100
- /* refer to 'Device Password ID' in WPS */
- #define WPS_DEV_PASSWORD_ID_PIN 0x0000
- #define WPS_DEV_PASSWORD_ID_USER 0x0001
- #define WPS_DEV_PASSWORD_ID_MACHINE 0x0002
- #define WPS_DEV_PASSWORD_ID_REKEY 0x0003
- #define WPS_DEV_PASSWORD_ID_PUSHBUTTON 0x0004
- #define WPS_DEV_PASSWORD_ID_REGISTRAR 0x0005
- #define P2P_DEVICE_TYPE_NUM 2
- #define P2P_DEVICE_NAME_LENGTH 32
- #define P2P_NETWORK_NUM 8
- #define P2P_MEMBER_NUM 8
- /* Device Capability Definition. */
- #define P2P_MAXIMUM_CLIENT_COUNT 10
- #define P2P_MAXIMUM_NOA_COUNT 8
- #define P2P_MAX_SUPPORTED_CHANNEL_LIST_SIZE 51 /* Contains 6 sub-band. */
- /* Memory Size Definition. */
- #define P2P_MAXIMUM_ATTRIBUTES_CACHE_SIZE 768
- #define WPS_MAXIMUM_ATTRIBUTES_CACHE_SIZE 300
- #define P2P_WILDCARD_SSID "DIRECT-"
- /* Device Charactoristic. */
- #define P2P_AP_CHNL_HOLD_TIME_MS 5000 /* 1000 is too short , the deauth would block in the queue */
- #define P2P_DEFAULT_LISTEN_CHANNEL 1
- /*******************************************************************************
- * M A C R O S
- ********************************************************************************
- */
- #if DBG
- #define ASSERT_BREAK(_exp) \
- { \
- if (!(_exp)) { \
- ASSERT(FALSE); \
- break; \
- } \
- }
- #else
- #define ASSERT_BREAK(_exp)
- #endif
- #define p2pChangeMediaState(_prAdapter, _prP2pBssInfo, _eNewMediaState) \
- (_prP2pBssInfo->eConnectionState = (_eNewMediaState))
- /*******************************************************************************
- * D A T A T Y P E S
- ********************************************************************************
- */
- struct _P2P_INFO_T {
- UINT_32 u4DeviceNum;
- EVENT_P2P_DEV_DISCOVER_RESULT_T arP2pDiscoverResult[CFG_MAX_NUM_BSS_LIST];
- PUINT_8 pucCurrIePtr;
- UINT_8 aucCommIePool[CFG_MAX_COMMON_IE_BUF_LEN]; /* A common pool for IE of all
- *scan results. */
- };
- typedef enum {
- ENUM_P2P_PEER_GROUP,
- ENUM_P2P_PEER_DEVICE,
- ENUM_P2P_PEER_NUM
- } ENUM_P2P_PEER_TYPE, *P_ENUM_P2P_PEER_TYPE;
- typedef struct _P2P_DEVICE_INFO {
- UINT_8 aucDevAddr[PARAM_MAC_ADDR_LEN];
- UINT_8 aucIfAddr[PARAM_MAC_ADDR_LEN];
- UINT_8 ucDevCapabilityBitmap;
- INT_32 i4ConfigMethod;
- UINT_8 aucPrimaryDeviceType[8];
- UINT_8 aucSecondaryDeviceType[8];
- UINT_8 aucDeviceName[P2P_DEVICE_NAME_LENGTH];
- } P2P_DEVICE_INFO, *P_P2P_DEVICE_INFO;
- typedef struct _P2P_GROUP_INFO {
- PARAM_SSID_T rGroupID;
- P2P_DEVICE_INFO rGroupOwnerInfo;
- UINT_8 ucMemberNum;
- P2P_DEVICE_INFO arMemberInfo[P2P_MEMBER_NUM];
- } P2P_GROUP_INFO, *P_P2P_GROUP_INFO;
- typedef struct _P2P_NETWORK_INFO {
- ENUM_P2P_PEER_TYPE eNodeType;
- union {
- P2P_GROUP_INFO rGroupInfo;
- P2P_DEVICE_INFO rDeviceInfo;
- } node;
- } P2P_NETWORK_INFO, *P_P2P_NETWORK_INFO;
- typedef struct _P2P_NETWORK_LIST {
- UINT_8 ucNetworkNum;
- P2P_NETWORK_INFO rP2PNetworkInfo[P2P_NETWORK_NUM];
- } P2P_NETWORK_LIST, *P_P2P_NETWORK_LIST;
- typedef struct _P2P_DISCONNECT_INFO {
- UINT_8 ucRole;
- UINT_8 ucRsv[3];
- } P2P_DISCONNECT_INFO, *P_P2P_DISCONNECT_INFO;
- typedef struct _P2P_SSID_STRUCT_T {
- UINT_8 aucSsid[32];
- UINT_8 ucSsidLen;
- } P2P_SSID_STRUCT_T, *P_P2P_SSID_STRUCT_T;
- typedef struct _P2P_SCAN_REQ_INFO_T {
- ENUM_SCAN_TYPE_T eScanType;
- ENUM_SCAN_CHANNEL eChannelSet;
- UINT_16 u2PassiveDewellTime;
- UINT_8 ucSeqNumOfScnMsg;
- BOOLEAN fgIsAbort;
- BOOLEAN fgIsScanRequest;
- UINT_8 ucNumChannelList;
- RF_CHANNEL_INFO_T arScanChannelList[MAXIMUM_OPERATION_CHANNEL_LIST];
- UINT_32 u4BufLength;
- UINT_8 aucIEBuf[MAX_IE_LENGTH];
- UINT_8 ucSsidNum;
- P2P_SSID_STRUCT_T arSsidStruct[SCN_SSID_MAX_NUM]; /* Currently we can only take one SSID scan request */
- } P2P_SCAN_REQ_INFO_T, *P_P2P_SCAN_REQ_INFO_T;
- typedef struct _P2P_CHNL_REQ_INFO_T {
- LINK_T rP2pChnlReqLink;
- BOOLEAN fgIsChannelRequested;
- UINT_8 ucSeqNumOfChReq;
- UINT_64 u8Cookie;
- UINT_8 ucReqChnlNum;
- ENUM_BAND_T eBand;
- ENUM_CHNL_EXT_T eChnlSco;
- UINT_8 ucOriChnlNum;
- ENUM_CHANNEL_WIDTH_T eChannelWidth; /*VHT operation ie */
- UINT_8 ucCenterFreqS1;
- UINT_8 ucCenterFreqS2;
- ENUM_BAND_T eOriBand;
- ENUM_CHNL_EXT_T eOriChnlSco;
- UINT_32 u4MaxInterval;
- ENUM_CH_REQ_TYPE_T eChnlReqType;
- #if CFG_SUPPORT_NFC_BEAM_PLUS
- UINT_32 NFC_BEAM; /*NFC Beam + Indication */
- #endif
- } P2P_CHNL_REQ_INFO_T, *P_P2P_CHNL_REQ_INFO_T;
- /* Glubal Connection Settings. */
- struct _P2P_CONNECTION_SETTINGS_T {
- UINT_8 ucRfChannelListSize;
- #if P2P_MAX_SUPPORTED_CHANNEL_LIST_SIZE
- UINT_8 aucChannelEntriesField[P2P_MAX_SUPPORTED_CHANNEL_LIST_SIZE];
- #endif
- BOOLEAN fgIsApMode;
- #if CFG_SUPPORT_HOTSPOT_WPS_MANAGER
- BOOLEAN fgIsWPSMode;
- #endif
- };
- typedef struct _NOA_TIMING_T {
- BOOLEAN fgIsInUse; /* Indicate if this entry is in use or not */
- UINT_8 ucCount; /* Count */
- UINT_8 aucReserved[2];
- UINT_32 u4Duration; /* Duration */
- UINT_32 u4Interval; /* Interval */
- UINT_32 u4StartTime; /* Start Time */
- } NOA_TIMING_T, *P_NOA_TIMING_T;
- struct _P2P_SPECIFIC_BSS_INFO_T {
- /* For GO(AP) Mode - Compose TIM IE */
- UINT_16 u2SmallestAID;
- UINT_16 u2LargestAID;
- UINT_8 ucBitmapCtrl;
- /* UINT_8 aucPartialVirtualBitmap[MAX_LEN_TIM_PARTIAL_BMP]; */
- /* For GC/GO OppPS */
- BOOLEAN fgEnableOppPS;
- UINT_16 u2CTWindow;
- /* For GC/GO NOA */
- UINT_8 ucNoAIndex;
- UINT_8 ucNoATimingCount; /* Number of NoA Timing */
- NOA_TIMING_T arNoATiming[P2P_MAXIMUM_NOA_COUNT];
- BOOLEAN fgIsNoaAttrExisted;
- /* For P2P Device */
- UINT_8 ucRegClass; /* Regulatory Class for channel. */
- UINT_8 ucListenChannel; /* Linten Channel only on channels 1, 6 and 11
- *in the 2.4 GHz. */
- UINT_8 ucPreferredChannel; /* Operating Channel, should be one of channel
- *list in p2p connection settings. */
- ENUM_CHNL_EXT_T eRfSco;
- ENUM_BAND_T eRfBand;
- /* Extended Listen Timing. */
- UINT_16 u2AvailabilityPeriod;
- UINT_16 u2AvailabilityInterval;
- UINT_16 u2AttributeLen;
- UINT_8 aucAttributesCache[P2P_MAXIMUM_ATTRIBUTES_CACHE_SIZE];
- UINT_16 u2WscAttributeLen;
- UINT_8 aucWscAttributesCache[WPS_MAXIMUM_ATTRIBUTES_CACHE_SIZE];
- UINT_8 aucGroupID[MAC_ADDR_LEN];
- UINT_16 u2GroupSsidLen;
- UINT_8 aucGroupSsid[ELEM_MAX_LEN_SSID];
- PARAM_CUSTOM_NOA_PARAM_STRUCT_T rNoaParam;
- PARAM_CUSTOM_OPPPS_PARAM_STRUCT_T rOppPsParam;
- UINT_16 u2WpaIeLen;
- UINT_8 aucWpaIeBuffer[ELEM_HDR_LEN + ELEM_MAX_LEN_WPA];
- };
- /*******************************************************************************
- * P U B L I C D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * P R I V A T E D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- #endif /*_P2P_H */
|