| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174 |
- /*
- ** Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/mgmt/p2p_fsm.h#23
- */
- /*! \file p2p_fsm.h
- \brief Declaration of functions and finite state machine for P2P Module.
- Declaration of functions and finite state machine for P2P Module.
- */
- /*
- ** Log: p2p_fsm.h
- **
- ** 09 12 2012 wcpadmin
- ** [ALPS00276400] Remove MTK copyright and legal header on GPL/LGPL related packages
- ** .
- **
- ** 08 14 2012 yuche.tsai
- ** NULL
- ** Fix compile error.
- **
- ** 07 26 2012 yuche.tsai
- ** [ALPS00324337] [ALPS.JB][Hot-Spot] Driver update for Hot-Spot
- ** Update driver code of ALPS.JB for hot-spot.
- **
- ** 07 19 2012 yuche.tsai
- ** NULL
- ** Code update for JB.
- *
- * 07 18 2012 yuche.tsai
- * NULL
- * add one file.
- *
- * 12 02 2011 yuche.tsai
- * NULL
- * Resolve class 3 error issue under AP mode.
- *
- * data frame may TX before Assoc Response TX.
- *
- * 11 11 2011 yuche.tsai
- * NULL
- * Fix work thread cancel issue.
- *
- * 11 11 2011 yuche.tsai
- * NULL
- * Fix default device name issue.
- *
- * 11 09 2011 yuche.tsai
- * [WCXRP00001093] [Need Patch][Volunteer Patch] Service Discovery 2.0 state transition issue.
- * Fix SD2.0 issue which may cause KE. (Monkey test)
- *
- * 11 08 2011 yuche.tsai
- * [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version
- * query & set support for service discovery version check.
- * Add support for driver version query & p2p supplicant verseion set.
- * For new service discovery mechanism sync.
- *
- * 10 18 2011 yuche.tsai
- * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
- * Support Channel Query.
- *
- * 10 18 2011 yuche.tsai
- * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
- * New 2.1 branch
- *
- * 09 01 2011 yuche.tsai
- * NULL
- * Fix channel stay interval.
- * Sync channel stay interval & channel request interval under AP mode..
- *
- * 08 30 2011 yuche.tsai
- * [WCXRP00000953] [Volunteer Patch][Driver] Hot Spot Channel ASSERT issue.
- * Fix hot spot FW assert issue when under concurrent case. (DBG enable only)
- *
- * 08 16 2011 cp.wu
- * [WCXRP00000934] [MT6620 Wi-Fi][Driver][P2P] Wi-Fi hot spot with auto sparse channel residence
- * auto channel decision for 2.4GHz hot spot mode
- *
- * 08 16 2011 yuche.tsai
- * NULL
- * Fix scan policy for Active LISTEN scan.
- *
- * 08 09 2011 yuche.tsai
- * [WCXRP00000919] [Volunteer Patch][WiFi Direct][Driver] Invitation New Feature.
- * Invitation Feature add on.
- *
- * 08 02 2011 yuche.tsai
- * [WCXRP00000896] [Volunteer Patch][WiFi Direct][Driver] GO with multiple client,
- * TX deauth to a disconnecting device issue.
- * Support TX Deauth Issue.
- *
- * 07 26 2011 yuche.tsai
- * [WCXRP00000875] [Volunteer Patch][WiFi Direct][Driver] MT6620 IOT issue with realtek test bed solution.
- * Turn off persistent group support for V2.0 release.
- *
- * 07 18 2011 yuche.tsai
- * [WCXRP00000856] [Volunteer Patch][WiFi Direct][Driver] MT6620 WiFi Direct IOT Issue with BCM solution.
- * Fix compile error.
- *
- * 07 18 2011 yuche.tsai
- * [WCXRP00000856] [Volunteer Patch][WiFi Direct][Driver] MT6620 WiFi Direct IOT Issue with BCM solution.
- * Fix MT6620 WiFi Direct IOT Issue with BCM solution.
- *
- * 07 11 2011 yuche.tsai
- * [WCXRP00000845] [Volunteer Patch][WiFi Direct] WiFi Direct Device Connection Robustness
- * Enhance Connection Robustness.
- *
- * 07 08 2011 yuche.tsai
- * [WCXRP00000841] [Volunteer Patch][WiFi Direct] Group Owner Setting.
- * Update GO configure parameter.
- *
- * 07 05 2011 yuche.tsai
- * [WCXRP00000821] [Volunteer Patch][WiFi Direct][Driver] WiFi Direct Connection Speed Issue
- * Disable enhancement II for debugging.
- *
- * 07 05 2011 yuche.tsai
- * [WCXRP00000821] [Volunteer Patch][WiFi Direct][Driver] WiFi Direct Connection Speed Issue
- * Refine compile flag.
- *
- * 07 05 2011 yuche.tsai
- * [WCXRP00000821] [Volunteer Patch][WiFi Direct][Driver] WiFi Direct Connection Speed Issue
- * Add wifi direct connection enhancement method I, II & VI.
- *
- * 06 20 2011 yuche.tsai
- * [WCXRP00000799] [Volunteer Patch][MT6620][Driver] Connection Indication Twice Issue.
- * Fix connection indication twice issue.
- *
- * 06 07 2011 yuche.tsai
- * [WCXRP00000763] [Volunteer Patch][MT6620][Driver] RX Service Discovery Frame under AP mode Issue
- * Fix RX SD request under AP mode issue.
- *
- * 05 04 2011 yuche.tsai
- * NULL
- * Support partial persistent group function.
- *
- * 04 20 2011 terry.wu
- * [WCXRP00000660] [MT6620 Wi-Fi][Driver] Remove flag CFG_WIFI_DIRECT_MOVED
- * Remove CFG_WIFI_DIRECT_MOVED.
- *
- * 04 08 2011 yuche.tsai
- * [WCXRP00000624] [Volunteer Patch][MT6620][Driver] Add device discoverability support for GO.
- * Add device discoverability support.
- *
- * 03 25 2011 yuche.tsai
- * NULL
- * Improve some error handleing.
- *
- * 03 22 2011 george.huang
- * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
- * link with supplicant commands
- *
- * 03 22 2011 yuche.tsai
- * NULL
- * 1.Shorten the LISTEN interval.
- * 2. Fix IF address issue when we are GO
- * 3. Fix LISTEN channel issue.
- *
- * 03 21 2011 yuche.tsai
- * NULL
- * Change P2P Connection Request Flow.
- *
- * 03 19 2011 yuche.tsai
- * [WCXRP00000584] [Volunteer Patch][MT6620][Driver] Add beacon timeout support for WiFi Direct.
- * Add beacon timeout support.
- *
- * 03 19 2011 yuche.tsai
- * [WCXRP00000581] [Volunteer Patch][MT6620][Driver] P2P IE in Assoc Req Issue
- * Append P2P IE in Assoc Req, so that GC can be discovered in probe response of GO.
- *
- * 03 18 2011 yuche.tsai
- * [WCXRP00000574] [Volunteer Patch][MT6620][Driver] Modify P2P FSM Connection Flow
- * Modify connection flow after Group Formation Complete, or device connect to a GO.
- * Instead of request channel & connect directly, we use scan to allocate channel bandwidth & connect after RX BCN.
- *
- * 03 15 2011 yuche.tsai
- * [WCXRP00000560] [Volunteer Patch][MT6620][Driver] P2P Connection from UI using KEY/DISPLAY issue
- * Fix some configure method issue.
- *
- * 03 10 2011 yuche.tsai
- * NULL
- * Add P2P API.
- *
- * 03 07 2011 yuche.tsai
- * [WCXRP00000502] [Volunteer Patch][MT6620][Driver] Fix group ID issue when doing Group Formation.
- * .
- *
- * 03 07 2011 wh.su
- * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
- * rename the define to anti_pviracy.
- *
- * 03 05 2011 wh.su
- * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
- * add the code to get the check rsponse and indicate to app.
- *
- * 03 01 2011 yuche.tsai
- * [WCXRP00000501] [Volunteer Patch][MT6620][Driver] No common channel issue when doing GO formation
- * Update channel issue when doing GO formation..
- *
- * 03 01 2011 yuche.tsai
- * [WCXRP00000245] 1. Invitation Request/Response.
- 2. Provision Discovery Request/Response
- * Update Service Discovery Related wlanoid function.
- *
- * 02 18 2011 wh.su
- * [WCXRP00000471] [MT6620 Wi-Fi][Driver] Add P2P Provison discovery append Config Method attribute at WSC IE
- * fixed the ioctl setting that index not map to spec defined config method.
- *
- * 02 18 2011 yuche.tsai
- * [WCXRP00000480] [Volunteer Patch][MT6620][Driver] WCS IE format issue
- * Fix WSC IE BE format issue.
- *
- * 02 17 2011 wh.su
- * [WCXRP00000471] [MT6620 Wi-Fi][Driver] Add P2P Provison discovery append Config Method attribute at WSC IE
- * append the WSC IE config method attribute at provision discovery request.
- *
- * 02 11 2011 yuche.tsai
- * [WCXRP00000431] [Volunteer Patch][MT6620][Driver] Add MLME support for deauthentication under AP(Hot-Spot) mode.
- * Add two function prototype.
- *
- * 02 10 2011 yuche.tsai
- * [WCXRP00000431] [Volunteer Patch][MT6620][Driver] Add MLME support for deauthentication under AP(Hot-Spot) mode.
- * Support Disassoc & Deauthentication for Hot-Spot.
- *
- * 02 09 2011 yuche.tsai
- * [WCXRP00000245] 1. Invitation Request/Response.
- 2. Provision Discovery Request/Response
- * Add Service Discovery Indication Related code.
- *
- * 02 09 2011 yuche.tsai
- * [WCXRP00000431] [Volunteer Patch][MT6620][Driver] Add MLME support for deauthentication under AP(Hot-Spot) mode.
- * Add Support for MLME deauthentication for Hot-Spot.
- *
- * 02 09 2011 yuche.tsai
- * [WCXRP00000429] [Volunteer Patch][MT6620][Driver] Hot Spot Client Limit Issue
- * Fix Client Limit Issue.
- *
- * 01 26 2011 yuche.tsai
- * [WCXRP00000245] 1. Invitation Request/Response.
- 2. Provision Discovery Request/Response
- * Add Service Discovery Function.
- *
- * 01 25 2011 terry.wu
- * [WCXRP00000393] [MT6620 Wi-Fi][Driver] Add new module insert parameter
- * Add a new module parameter to indicate current runnig mode, P2P or AP.
- *
- * 01 19 2011 george.huang
- * [WCXRP00000355] [MT6620 Wi-Fi] Set WMM-PS related setting with qualifying AP capability
- * Null NOA attribute setting when no related parameters.
- *
- * 01 12 2011 yuche.tsai
- * [WCXRP00000352] [Volunteer Patch][MT6620][Driver] P2P Statsion Record Client List Issue
- * Modify some behavior of AP mode.
- *
- * 12 22 2010 yuche.tsai
- * [WCXRP00000245] 1. Invitation Request/Response.
- 2. Provision Discovery Request/Response
- * Fix Compile Error.
- *
- * 12 15 2010 yuche.tsai
- * [WCXRP00000245] 1. Invitation Request/Response.
- 2. Provision Discovery Request/Response
- * Refine Connection Flow.
- *
- * 12 08 2010 yuche.tsai
- * [WCXRP00000244] [MT6620][Driver] Add station record type for each client when in AP mode.
- * Change STA Type under AP mode. We would tell if client is a P2P device or a legacy client
- * by checking the P2P IE in assoc req frame.
- *
- * 12 02 2010 yuche.tsai
- * NULL
- * Update P2P Connection Policy for Invitation.
- *
- * 12 02 2010 yuche.tsai
- * NULL
- * Update P2P Connection Policy for Invitation & Provision Discovery.
- *
- * 11 30 2010 yuche.tsai
- * NULL
- * Invitation & Provision Discovery Indication.
- *
- * 11 30 2010 yuche.tsai
- * NULL
- * Update Configure Method indication & selection for Provision Discovery & GO_NEGO_REQ
- *
- * 11 29 2010 yuche.tsai
- * NULL
- * Update P2P related function for INVITATION & PROVISION DISCOVERY.
- *
- * 11 26 2010 george.huang
- * [WCXRP00000152] [MT6620 Wi-Fi] AP mode power saving function
- * Update P2P PS for NOA function.
- *
- * 11 25 2010 yuche.tsai
- * NULL
- * Update Code for Invitation Related Function.
- *
- * 11 17 2010 wh.su
- * [WCXRP00000164] [MT6620 Wi-Fi][Driver] Support the p2p random SSID[WCXRP00000179] [MT6620 Wi-Fi][FW]
- * Set the Tx lowest rate at wlan table for normal operation
- * fixed some ASSERT check.
- *
- * 11 04 2010 wh.su
- * [WCXRP00000164] [MT6620 Wi-Fi][Driver] Support the p2p random SSID
- * adding the p2p random ssid support.
- *
- * 10 20 2010 wh.su
- * [WCXRP00000124] [MT6620 Wi-Fi] [Driver] Support the dissolve P2P Group
- * Add the code to support disconnect p2p group
- *
- * 10 08 2010 wh.su
- * [WCXRP00000085] [MT6620 Wif-Fi] [Driver] update the modified p2p state machine
- * update the frog's new p2p state machine.
- *
- * 10 04 2010 wh.su
- * [WCXRP00000081] [MT6620][Driver] Fix the compiling error at WinXP while enable P2P
- * fixed compiling error while enable p2p.
- *
- * 09 21 2010 kevin.huang
- * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
- * Isolate P2P related function for Hardware Software Bundle
- *
- * 09 10 2010 wh.su
- * NULL
- * fixed the compiling error at WinXP.
- *
- * 09 07 2010 wh.su
- * NULL
- * adding the code for beacon/probe req/ probe rsp wsc ie at p2p.
- *
- * 09 03 2010 kevin.huang
- * NULL
- * Refine #include sequence and solve recursive/nested #include issue
- *
- * 08 26 2010 yuche.tsai
- * NULL
- * Add connection abort message event prototype.
- *
- * 08 20 2010 kevin.huang
- * NULL
- * Modify AAA Module for changing STA STATE 3 at p2p/bowRunEventAAAComplete()
- *
- * 08 16 2010 yuche.tsai
- * NULL
- * Fix P2P Intended Interface Address Bug.
- * Extend GO Nego Timeout Time.
- *
- * 08 16 2010 yuche.tsai
- * NULL
- * Extend Listen Interval default value & remove deprecated variable.
- *
- * 08 16 2010 kevin.huang
- * NULL
- * Refine AAA functions
- *
- * 08 12 2010 kevin.huang
- * NULL
- * Refine bssProcessProbeRequest() and bssSendBeaconProbeResponse()
- *
- * 08 12 2010 yuche.tsai
- * NULL
- * Add function prototype for join complete.
- *
- * 08 11 2010 yuche.tsai
- * NULL
- * Add some function proto type for P2P FSM under provisioning phase..
- *
- * 08 11 2010 yuche.tsai
- * NULL
- * Change P2P data structure for supporting
- * 1. P2P Device discovery.
- * 2. P2P Group Negotiation.
- * 3. P2P JOIN
- *
- * 08 05 2010 yuche.tsai
- * NULL
- * Check-in P2P Device Discovery Feature.
- *
- * 08 03 2010 george.huang
- * NULL
- * handle event for updating NOA parameters indicated from FW
- *
- * 08 02 2010 yuche.tsai
- * NULL
- * P2P Group Negotiation Code Check in.
- *
- * 07 26 2010 yuche.tsai
- *
- * Update P2P FSM header file.
- *
- * 07 23 2010 cp.wu
- *
- * P2P/RSN/WAPI IEs need to be declared with compact structure.
- *
- * 07 21 2010 yuche.tsai
- *
- * Add for P2P Scan Result Parsing & Saving.
- *
- * 07 19 2010 yuche.tsai
- *
- * Update P2P FSM header file.
- *
- * 07 08 2010 cp.wu
- *
- * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
- *
- * 06 21 2010 yuche.tsai
- * [WPD00003839][MT6620 5931][P2P] Feature migration
- * Fix some P2P function prototype.
- *
- * 06 17 2010 yuche.tsai
- * [WPD00003839][MT6620 5931][P2P] Feature migration
- * First draft for migration P2P FSM from FW to Driver.
- *
- * 03 18 2010 kevin.huang
- * [BORA00000663][WIFISYS][New Feature] AdHoc Mode Support
- * Rename CFG flag for P2P
- *
- * 02 26 2010 kevin.huang
- * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
- * Modify parameter of p2pStartGO
- *
- * 02 23 2010 kevin.huang
- * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
- * Add Wi-Fi Direct SSID and P2P GO Test Mode
- *
- * 02 04 2010 kevin.huang
- * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
- * Add AAA Module Support, Revise Net Type to Net Type Index for array lookup
- */
- #ifndef _P2P_FSM_H
- #define _P2P_FSM_H
- /*******************************************************************************
- * C O M P I L E R F L A G S
- ********************************************************************************
- */
- #define CID52_53_54 0
- /*******************************************************************************
- * 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
- ********************************************************************************
- */
- /*******************************************************************************
- * D A T A T Y P E S
- ********************************************************************************
- */
- typedef enum _ENUM_P2P_STATE_T {
- P2P_STATE_IDLE = 0,
- P2P_STATE_SCAN,
- P2P_STATE_AP_CHANNEL_DETECT,
- P2P_STATE_REQING_CHANNEL,
- P2P_STATE_CHNL_ON_HAND, /* Requesting Channel to Send Specific Frame. */
- P2P_STATE_GC_JOIN, /* Sending Specific Frame. May extending channel by other event. */
- P2P_STATE_NUM
- } ENUM_P2P_STATE_T, *P_ENUM_P2P_STATE_T;
- typedef enum _ENUM_CHANNEL_REQ_TYPE_T {
- CHANNEL_REQ_TYPE_REMAIN_ON_CHANNEL,
- CHANNEL_REQ_TYPE_GC_JOIN_REQ,
- CHANNEL_REQ_TYPE_GO_START_BSS
- } ENUM_CHANNEL_REQ_TYPE_T, *P_ENUM_CHANNEL_REQ_TYPE_T;
- typedef enum _ENUM_BUFFER_TYPE_T {
- ENUM_FRAME_TYPE_EXTRA_IE_BEACON,
- ENUM_FRAME_TYPE_EXTRA_IE_ASSOC_RSP,
- ENUM_FRAME_TYPE_EXTRA_IE_PROBE_RSP,
- ENUM_FRAME_TYPE_PROBE_RSP_TEMPLATE,
- ENUM_FRAME_TYPE_BEACON_TEMPLATE,
- ENUM_FRAME_IE_NUM
- } ENUM_BUFFER_TYPE_T, *P_ENUM_BUFFER_TYPE_T;
- typedef enum _ENUM_HIDDEN_SSID_TYPE_T {
- ENUM_HIDDEN_SSID_NONE,
- ENUM_HIDDEN_SSID_LEN,
- ENUM_HIDDEN_SSID_ZERO_CONTENT,
- ENUM_HIDDEN_SSID_NUM
- } ENUM_HIDDEN_SSID_TYPE_T, *P_ENUM_HIDDEN_SSID_TYPE_T;
- 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_STATION_INFO_T {
- UINT_32 u4InactiveTime;
- UINT_32 u4RxBytes; /* TODO: */
- UINT_32 u4TxBytes; /* TODO: */
- UINT_32 u4RxPackets; /* TODO: */
- UINT_32 u4TxPackets; /* TODO: */
- /* TODO: Add more for requirement. */
- } P2P_STATION_INFO_T, *P_P2P_STATION_INFO_T;
- typedef struct _AP_CRYPTO_SETTINGS_T {
- UINT_32 u4WpaVersion;
- UINT_32 u4CipherGroup;
- INT_32 i4NumOfCiphers;
- UINT_32 aucCiphersPairwise[5];
- INT_32 i4NumOfAkmSuites;
- UINT_32 aucAkmSuites[2];
- BOOLEAN fgIsControlPort;
- UINT_16 u2ControlPortBE;
- BOOLEAN fgIsControlPortEncrypt;
- } AP_CRYPTO_SETTINGS_T, *P_AP_CRYPTO_SETTINGS_T;
- /*-------------------- P2P FSM ACTION STRUCT ---------------------*/
- typedef struct _P2P_CHNL_REQ_INFO_T {
- BOOLEAN fgIsChannelRequested;
- UINT_8 ucSeqNumOfChReq;
- UINT_64 u8Cookie;
- UINT_8 ucReqChnlNum;
- ENUM_BAND_T eBand;
- ENUM_CHNL_EXT_T eChnlSco;
- UINT_32 u4MaxInterval;
- ENUM_CHANNEL_REQ_TYPE_T eChannelReqType;
- UINT_8 ucOriChnlNum;
- ENUM_BAND_T eOriBand;
- ENUM_CHNL_EXT_T eOriChnlSco;
- UINT_32 NFC_BEAM; /*NFC Beam + Indication */
- } P2P_CHNL_REQ_INFO_T, *P_P2P_CHNL_REQ_INFO_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];
- P2P_SSID_STRUCT_T rSsidStruct; /* Currently we can only take one SSID scan request */
- BOOLEAN fgIsGOInitialDone;
- } P2P_SCAN_REQ_INFO_T, *P_P2P_SCAN_REQ_INFO_T;
- typedef struct _P2P_CONNECTION_REQ_INFO_T {
- BOOLEAN fgIsConnRequest;
- P2P_SSID_STRUCT_T rSsidStruct;
- UINT_8 aucBssid[MAC_ADDR_LEN];
- /* For ASSOC Req. */
- UINT_32 u4BufLength;
- UINT_8 aucIEBuf[MAX_IE_LENGTH];
- } P2P_CONNECTION_REQ_INFO_T, *P_P2P_CONNECTION_REQ_INFO_T;
- typedef struct _P2P_MGMT_TX_REQ_INFO_T {
- BOOLEAN fgIsMgmtTxRequested;
- P_MSDU_INFO_T prMgmtTxMsdu;
- UINT_64 u8Cookie;
- } P2P_MGMT_TX_REQ_INFO_T, *P_P2P_MGMT_TX_REQ_INFO_T;
- typedef struct _P2P_BEACON_UPDATE_INFO_T {
- PUINT_8 pucBcnHdr;
- UINT_32 u4BcnHdrLen;
- PUINT_8 pucBcnBody;
- UINT_32 u4BcnBodyLen;
- } P2P_BEACON_UPDATE_INFO_T, *P_P2P_BEACON_UPDATE_INFO_T;
- typedef struct _P2P_PROBE_RSP_UPDATE_INFO_T {
- P_MSDU_INFO_T prProbeRspMsduTemplate;
- } P2P_PROBE_RSP_UPDATE_INFO_T, *P_P2P_PROBE_RSP_UPDATE_INFO_T;
- typedef struct _P2P_ASSOC_RSP_UPDATE_INFO_T {
- PUINT_8 pucAssocRspExtIE;
- UINT_16 u2AssocIELen;
- } P2P_ASSOC_RSP_UPDATE_INFO_T, *P_P2P_ASSOC_RSP_UPDATE_INFO_T;
- typedef struct _P2P_JOIN_INFO_T {
- UINT_32 ucSeqNumOfReqMsg;
- UINT_8 ucAvailableAuthTypes;
- P_STA_RECORD_T prTargetStaRec;
- P2P_SSID_STRUCT_T rSsidStruct;
- BOOLEAN fgIsJoinComplete;
- /* For ASSOC Rsp. */
- UINT_32 u4BufLength;
- UINT_8 aucIEBuf[MAX_IE_LENGTH];
- } P2P_JOIN_INFO_T, *P_P2P_JOIN_INFO_T;
- #if CFG_SUPPORT_WFD
- #define WFD_FLAGS_DEV_INFO_VALID BIT(0) /* 1. WFD_DEV_INFO, 2. WFD_CTRL_PORT, 3. WFD_MAT_TP. */
- #define WFD_FLAGS_SINK_INFO_VALID BIT(1) /* 1. WFD_SINK_STATUS, 2. WFD_SINK_MAC. */
- #define WFD_FLAGS_ASSOC_MAC_VALID BIT(2) /* 1. WFD_ASSOC_MAC. */
- #define WFD_FLAGS_EXT_CAPABILITY_VALID BIT(3) /* 1. WFD_EXTEND_CAPABILITY. */
- struct _WFD_CFG_SETTINGS_T {
- UINT_32 u4WfdCmdType;
- UINT_8 ucWfdEnable;
- UINT_8 ucWfdCoupleSinkStatus;
- UINT_8 ucWfdSessionAvailable; /* 0: NA 1:Set 2:Clear */
- UINT_8 ucWfdSigmaMode;
- UINT_16 u2WfdDevInfo;
- UINT_16 u2WfdControlPort;
- UINT_16 u2WfdMaximumTp;
- UINT_16 u2WfdExtendCap;
- UINT_8 aucWfdCoupleSinkAddress[MAC_ADDR_LEN];
- UINT_8 aucWfdAssociatedBssid[MAC_ADDR_LEN];
- UINT_8 aucWfdVideoIp[4];
- UINT_8 aucWfdAudioIp[4];
- UINT_16 u2WfdVideoPort;
- UINT_16 u2WfdAudioPort;
- UINT_32 u4WfdFlag;
- UINT_32 u4WfdPolicy;
- UINT_32 u4WfdState;
- UINT_8 aucWfdSessionInformationIE[24 * 8];
- UINT_16 u2WfdSessionInformationIELen;
- UINT_8 aucReserved1[2];
- UINT_8 aucWfdPrimarySinkMac[MAC_ADDR_LEN];
- UINT_8 aucWfdSecondarySinkMac[MAC_ADDR_LEN];
- UINT_32 u4WfdAdvancedFlag;
- /* Group 1 64 bytes */
- UINT_8 aucWfdLocalIp[4];
- UINT_16 u2WfdLifetimeAc2; /* Unit is 2 TU */
- UINT_16 u2WfdLifetimeAc3; /* Unit is 2 TU */
- UINT_16 u2WfdCounterThreshold; /* Unit is ms */
- UINT_8 aucReverved2[54];
- /* Group 2 64 bytes */
- UINT_8 aucReverved3[64];
- /* Group 3 64 bytes */
- UINT_8 aucReverved4[64];
- };
- struct _WFD_DBG_CFG_SETTINGS_T {
- UINT_8 ucWfdDebugMode;
- UINT_16 u2WfdSNShowPeiroid;
- UINT_8 Reserved;
- };
- #endif
- struct _P2P_FSM_INFO_T {
- /* State related. */
- ENUM_P2P_STATE_T ePreviousState;
- ENUM_P2P_STATE_T eCurrentState;
- /* Channel related. */
- P2P_CHNL_REQ_INFO_T rChnlReqInfo;
- /* Scan related. */
- P2P_SCAN_REQ_INFO_T rScanReqInfo;
- /* Connection related. */
- P2P_CONNECTION_REQ_INFO_T rConnReqInfo;
- /* Mgmt tx related. */
- P2P_MGMT_TX_REQ_INFO_T rMgmtTxInfo;
- /* Beacon related. */
- P2P_BEACON_UPDATE_INFO_T rBcnContentInfo;
- /* Probe Response related. */
- P2P_PROBE_RSP_UPDATE_INFO_T rProbeRspContentInfo;
- /* Assoc Rsp related. */
- P2P_ASSOC_RSP_UPDATE_INFO_T rAssocRspContentInfo;
- /* GC Join related. */
- P2P_JOIN_INFO_T rJoinInfo;
- /* FSM Timer */
- /* TIMER_T rP2pFsmTimeoutTimer; */
- /* GC Target BSS. */
- P_BSS_DESC_T prTargetBss;
- /* GC Connection Request. */
- BOOLEAN fgIsConnectionRequested;
- BOOLEAN fgIsApMode;
- /* Channel grant interval. */
- UINT_32 u4GrantInterval;
- /* Packet filter for P2P module. */
- UINT_32 u4P2pPacketFilter;
- /* vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Prepare for use vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */
- /* Msg event queue. */
- LINK_T rMsgEventQueue;
- #if CFG_SUPPORT_WFD
- WFD_CFG_SETTINGS_T rWfdConfigureSettings;
- WFD_DBG_CFG_SETTINGS_T rWfdDebugSetting;
- #endif
- BOOLEAN fgIsWPSMode;
- };
- /*---------------- Messages -------------------*/
- typedef struct _MSG_P2P_SCAN_REQUEST_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- P_P2P_SSID_STRUCT_T prSSID;
- INT_32 i4SsidNum;
- UINT_32 u4NumChannel;
- PUINT_8 pucIEBuf;
- UINT_32 u4IELen;
- BOOLEAN fgIsAbort;
- RF_CHANNEL_INFO_T arChannelListInfo[1];
- } MSG_P2P_SCAN_REQUEST_T, *P_MSG_P2P_SCAN_REQUEST_T;
- typedef struct _MSG_P2P_CHNL_REQUEST_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_64 u8Cookie;
- UINT_32 u4Duration;
- ENUM_CHNL_EXT_T eChnlSco;
- RF_CHANNEL_INFO_T rChannelInfo;
- } MSG_P2P_CHNL_REQUEST_T, *P_MSG_P2P_CHNL_REQUEST_T;
- typedef struct _MSG_P2P_CHNL_ABORT_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_64 u8Cookie;
- } MSG_P2P_CHNL_ABORT_T, *P_MSG_P2P_CHNL_ABORT_T;
- typedef struct _MSG_P2P_CONNECTION_REQUEST_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- P2P_SSID_STRUCT_T rSsid;
- UINT_8 aucBssid[MAC_ADDR_LEN];
- ENUM_CHNL_EXT_T eChnlSco;
- RF_CHANNEL_INFO_T rChannelInfo;
- UINT_32 u4IELen;
- UINT_8 aucIEBuf[1];
- /* TODO: Auth Type, OPEN, SHARED, FT, EAP... */
- } MSG_P2P_CONNECTION_REQUEST_T, *P_MSG_P2P_CONNECTION_REQUEST_T;
- typedef struct _MSG_P2P_CONNECTION_ABORT_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member. */
- UINT_8 aucTargetID[MAC_ADDR_LEN];
- UINT_16 u2ReasonCode;
- BOOLEAN fgSendDeauth;
- } MSG_P2P_CONNECTION_ABORT_T, *P_MSG_P2P_CONNECTION_ABORT_T;
- typedef struct _MSG_P2P_MGMT_TX_REQUEST_T {
- MSG_HDR_T rMsgHdr;
- P_MSDU_INFO_T prMgmtMsduInfo;
- UINT_64 u8Cookie; /* For indication. */
- BOOLEAN fgNoneCckRate;
- BOOLEAN fgIsWaitRsp;
- } MSG_P2P_MGMT_TX_REQUEST_T, *P_MSG_P2P_MGMT_TX_REQUEST_T;
- typedef struct _MSG_P2P_START_AP_T {
- MSG_HDR_T rMsgHdr;
- UINT_32 u4DtimPeriod;
- UINT_32 u4BcnInterval;
- UINT_8 aucSsid[32];
- UINT_16 u2SsidLen;
- UINT_8 ucHiddenSsidType;
- BOOLEAN fgIsPrivacy;
- AP_CRYPTO_SETTINGS_T rEncryptionSettings;
- INT_32 i4InactiveTimeout;
- } MSG_P2P_START_AP_T, *P_MSG_P2P_START_AP_T;
- typedef struct _MSG_P2P_BEACON_UPDATE_T {
- MSG_HDR_T rMsgHdr;
- UINT_32 u4BcnHdrLen;
- UINT_32 u4BcnBodyLen;
- PUINT_8 pucBcnHdr;
- PUINT_8 pucBcnBody;
- UINT_8 aucBuffer[1]; /* Header & Body are put here. */
- } MSG_P2P_BEACON_UPDATE_T, *P_MSG_P2P_BEACON_UPDATE_T;
- typedef struct _MSG_P2P_MGMT_FRAME_UPDATE_T {
- MSG_HDR_T rMsgHdr;
- ENUM_BUFFER_TYPE_T eBufferType;
- UINT_32 u4BufferLen;
- UINT_8 aucBuffer[1];
- } MSG_P2P_MGMT_FRAME_UPDATE_T, *P_MSG_P2P_MGMT_FRAME_UPDATE_T;
- typedef struct _MSG_P2P_SWITCH_OP_MODE_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- ENUM_OP_MODE_T eOpMode;
- } MSG_P2P_SWITCH_OP_MODE_T, *P_MSG_P2P_SWITCH_OP_MODE_T;
- typedef struct _MSG_P2P_MGMT_FRAME_REGISTER_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_16 u2FrameType;
- BOOLEAN fgIsRegister;
- } MSG_P2P_MGMT_FRAME_REGISTER_T, *P_MSG_P2P_MGMT_FRAME_REGISTER_T;
- typedef struct _MSG_P2P_NETDEV_REGISTER_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- BOOLEAN fgIsEnable;
- UINT_8 ucMode;
- } MSG_P2P_NETDEV_REGISTER_T, *P_MSG_P2P_NETDEV_REGISTER_T;
- #if CFG_SUPPORT_WFD
- typedef struct _MSG_WFD_CONFIG_SETTINGS_CHANGED_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- P_WFD_CFG_SETTINGS_T prWfdCfgSettings;
- } MSG_WFD_CONFIG_SETTINGS_CHANGED_T, *P_MSG_WFD_CONFIG_SETTINGS_CHANGED_T;
- #endif
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- VOID p2pFsmStateTransition(IN P_ADAPTER_T prAdapter, IN P_P2P_FSM_INFO_T prP2pFsmInfo, IN ENUM_P2P_STATE_T eNextState);
- VOID p2pFsmRunEventAbort(IN P_ADAPTER_T prAdapter, IN P_P2P_FSM_INFO_T prP2pFsmInfo);
- VOID p2pFsmRunEventScanRequest(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventMgmtFrameTx(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventStartAP(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventNetDeviceRegister(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventUpdateMgmtFrame(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventBeaconUpdate(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventStopAP(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventChannelRequest(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventChannelAbort(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventDissolve(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventSwitchOPMode(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- WLAN_STATUS
- p2pFsmRunEventMgmtFrameTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- VOID p2pFsmRunEventMgmtFrameRegister(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- #if CFG_SUPPORT_WFD
- VOID p2pFsmRunEventWfdSettingUpdate(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- #endif
- #if 0
- /* ////////////////////////////////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////////////// */
- /* ///////////////////////////////////////////////////////////////////////////////////// */
- /* ////////////////////////////////////////////////////////////////////////////////////////////////////// */
- #endif
- /* 3 --------------- WFA P2P DEFAULT PARAMETERS --------------- */
- #define P2P_WILDCARD_SSID "DIRECT-"
- #define P2P_WILDCARD_SSID_LEN 7
- #define P2P_GROUP_ID_LEN 9
- #define P2P_DRIVER_VERSION 2 /* Update when needed. */
- #define P2P_DEFAULT_DEV_NAME "Wireless Client"
- #define P2P_DEFAULT_DEV_NAME_LEN 15
- #define P2P_DEFAULT_PRIMARY_CATEGORY_ID 10
- #define P2P_DEFAULT_PRIMARY_SUB_CATEGORY_ID 5
- #define P2P_DEFAULT_CONFIG_METHOD \
- (WPS_ATTRI_CFG_METHOD_PUSH_BUTTON | WPS_ATTRI_CFG_METHOD_KEYPAD | WPS_ATTRI_CFG_METHOD_DISPLAY)
- #define P2P_DEFAULT_LISTEN_CHANNEL 1
- #define P2P_MAX_SUPPORTED_SEC_DEV_TYPE_COUNT 0 /* NOTE(Kevin): Shall <= 16 */
- #define P2P_MAX_SUPPORTED_CHANNEL_LIST_COUNT 13
- #define P2P_MAX_SUPPORTED_CHANNEL_LIST_SIZE 51 /* Contains 6 sub-band. */
- #define P2P_GC_MAX_CACHED_SEC_DEV_TYPE_COUNT 8 /* NOTE(Kevin): Shall <= 16 */
- #define P2P_MAXIMUM_CLIENT_COUNT 8
- #define P2P_MAXIMUM_NOA_COUNT 8
- #define P2P_MAXIMUM_ATTRIBUTE_LEN 251
- #define P2P_CTWINDOW_DEFAULT 25 /* in TU=(1024usec) */
- #define P2P_MAXIMUM_ATTRIBUTES_CACHE_SIZE 768
- /* P2P 3.1.2.1.3 - Find Phase */
- #define P2P_MAX_DISCOVERABLE_INTERVAL 8 /* 3 */
- #define P2P_MIN_DISCOVERABLE_INTERVAL 5 /* 1 */
- #define P2P_LISTEN_SCAN_UNIT 100 /* MS */
- /* FSM Time Related constrain. */
- #define P2P_SERACH_STATE_PERIOD_MS 1000 /* Deprecated. */
- #define P2P_GO_CHANNEL_STAY_INTERVAL 1000
- #define P2P_GO_NEGO_TIMEOUT_MS 500
- #define P2P_CONNECTION_TIMEOUT_SEC 120
- #define P2P_INVITAION_TIMEOUT_MS 500 /* Timeout Wait Invitation Resonse. */
- #define P2P_PROVISION_DISCOVERY_TIMEOUT_MS 500 /* Timeout Wait Provision Discovery Resonse. */
- /* 3 --------------- WFA P2P IE --------------- */
- /* P2P 4.1.1 - P2P IE format */
- #define P2P_OUI_TYPE_LEN 4
- #define P2P_IE_OUI_HDR (ELEM_HDR_LEN + P2P_OUI_TYPE_LEN) /* == OFFSET_OF(IE_P2P_T,
- aucP2PAttributes[0]) */
- /* P2P 4.1.1 - General P2P Attribute */
- #define P2P_ATTRI_HDR_LEN 3 /* ID(1 octet) + Length(2 octets) */
- #define P2P_ATTRI_LEN_NOTICE_OF_ABSENCE (P2P_ATTRI_HDR_LEN + 2) /* 5 */
- /* P2P 4.1.1 - P2P Attribute ID definitions */
- #define P2P_ATTRI_ID_STATUS 0
- #define P2P_ATTRI_ID_REASON_CODE 1
- #define P2P_ATTRI_ID_P2P_CAPABILITY 2
- #define P2P_ATTRI_ID_P2P_DEV_ID 3
- #define P2P_ATTRI_ID_GO_INTENT 4
- #define P2P_ATTRI_ID_CFG_TIMEOUT 5
- #define P2P_ATTRI_ID_LISTEN_CHANNEL 6
- #define P2P_ATTRI_ID_P2P_GROUP_BSSID 7
- #define P2P_ATTRI_ID_EXT_LISTEN_TIMING 8
- #define P2P_ATTRI_ID_INTENDED_P2P_IF_ADDR 9
- #define P2P_ATTRI_ID_P2P_MANAGEABILITY 10
- #define P2P_ATTRI_ID_CHANNEL_LIST 11
- #define P2P_ATTRI_ID_NOTICE_OF_ABSENCE 12
- #define P2P_ATTRI_ID_P2P_DEV_INFO 13
- #define P2P_ATTRI_ID_P2P_GROUP_INFO 14
- #define P2P_ATTRI_ID_P2P_GROUP_ID 15
- #define P2P_ATTRI_ID_P2P_INTERFACE 16
- #define P2P_ATTRI_ID_OPERATING_CHANNEL 17
- #define P2P_ATTRI_ID_INVITATION_FLAG 18
- #define P2P_ATTRI_ID_VENDOR_SPECIFIC 221
- /* Maximum Length of P2P Attributes */
- #define P2P_ATTRI_MAX_LEN_STATUS 1 /* 0 */
- #define P2P_ATTRI_MAX_LEN_REASON_CODE 1 /* 1 */
- #define P2P_ATTRI_MAX_LEN_P2P_CAPABILITY 2 /* 2 */
- #define P2P_ATTRI_MAX_LEN_P2P_DEV_ID 6 /* 3 */
- #define P2P_ATTRI_MAX_LEN_GO_INTENT 1 /* 4 */
- #define P2P_ATTRI_MAX_LEN_CFG_TIMEOUT 2 /* 5 */
- #if CID52_53_54
- #define P2P_ATTRI_MAX_LEN_LISTEN_CHANNEL 5 /* 6 */
- #else
- #define P2P_ATTRI_MAX_LEN_LISTEN_CHANNEL 5 /* 6 */
- #endif
- #define P2P_ATTRI_MAX_LEN_P2P_GROUP_BSSID 6 /* 7 */
- #define P2P_ATTRI_MAX_LEN_EXT_LISTEN_TIMING 4 /* 8 */
- #define P2P_ATTRI_MAX_LEN_INTENDED_P2P_IF_ADDR 6 /* 9 */
- #define P2P_ATTRI_MAX_LEN_P2P_MANAGEABILITY 1 /* 10 */
- /* #define P2P_ATTRI_MAX_LEN_CHANNEL_LIST 3 + (n* (2 + num_of_ch)) */ /* 11 */
- #define P2P_ATTRI_LEN_CHANNEL_LIST 3 /* 11 */
- #define P2P_ATTRI_LEN_CHANNEL_ENTRY 2 /* 11 */
- /* #define P2P_ATTRI_MAX_LEN_NOTICE_OF_ABSENCE 2 + (n* (13)) */ /* 12 */
- #define P2P_ATTRI_MAX_LEN_NOTICE_OF_ABSENCE (2 + (P2P_MAXIMUM_NOA_COUNT*(13))) /* 12 */
- #define P2P_ATTRI_MAX_LEN_P2P_DEV_INFO (17 + (8 * (8)) + 36) /* 13 */
- /* #define P2P_ATTRI_MAX_LEN_P2P_GROUP_INFO n* (25 + (m* (8)) + 32) */ /* 14 */
- #define P2P_ATTRI_MAX_LEN_P2P_GROUP_ID 38 /* 15 */
- #define P2P_ATTRI_MAX_LEN_P2P_INTERFACE 253 /* 7 + 6* [0~41] */ /* 16 */
- #if CID52_53_54
- #define P2P_ATTRI_MAX_LEN_OPERATING_CHANNEL 5 /* 17 */
- #else
- #define P2P_ATTRI_MAX_LEN_OPERATING_CHANNEL 5 /* 17 */
- #endif
- #define P2P_ATTRI_MAX_LEN_INVITATION_FLAGS 1 /* 18 */
- /* P2P 4.1.2 - P2P Status definitions */
- #define P2P_STATUS_SUCCESS 0
- #define P2P_STATUS_FAIL_INFO_IS_CURRENTLY_UNAVAILABLE 1
- #define P2P_STATUS_FAIL_INCOMPATIBLE_PARAM 2
- #define P2P_STATUS_FAIL_LIMIT_REACHED 3
- #define P2P_STATUS_FAIL_INVALID_PARAM 4
- #define P2P_STATUS_FAIL_UNABLE_ACCOMMODATE_REQ 5
- #define P2P_STATUS_FAIL_PREVIOUS_PROTOCOL_ERR 6
- #define P2P_STATUS_FAIL_NO_COMMON_CHANNELS 7
- #define P2P_STATUS_FAIL_UNKNOWN_P2P_GROUP 8
- #define P2P_STATUS_FAIL_SAME_INTENT_VALUE_15 9
- #define P2P_STATUS_FAIL_INCOMPATIBLE_PROVISION_METHOD 10
- #define P2P_STATUS_FAIL_REJECTED_BY_USER 11
- /* P2P 4.1.3 - P2P Minor Reason Code definitions */
- #define P2P_REASON_SUCCESS 0
- #define P2P_REASON_DISASSOCIATED_DUE_CROSS_CONNECTION 1
- #define P2P_REASON_DISASSOCIATED_DUE_UNMANAGEABLE 2
- #define P2P_REASON_DISASSOCIATED_DUE_NO_P2P_COEXIST_PARAM 3
- #define P2P_REASON_DISASSOCIATED_DUE_MANAGEABLE 4
- /* P2P 4.1.4 - Device Capability Bitmap definitions */
- #define P2P_DEV_CAPABILITY_SERVICE_DISCOVERY BIT(0)
- #define P2P_DEV_CAPABILITY_CLIENT_DISCOVERABILITY BIT(1)
- #define P2P_DEV_CAPABILITY_CONCURRENT_OPERATION BIT(2)
- #define P2P_DEV_CAPABILITY_P2P_INFRA_MANAGED BIT(3)
- #define P2P_DEV_CAPABILITY_P2P_DEVICE_LIMIT BIT(4)
- #define P2P_DEV_CAPABILITY_P2P_INVITATION_PROCEDURE BIT(5)
- /* P2P 4.1.4 - Group Capability Bitmap definitions */
- #define P2P_GROUP_CAPABILITY_P2P_GROUP_OWNER BIT(0)
- #define P2P_GROUP_CAPABILITY_PERSISTENT_P2P_GROUP BIT(1)
- #define P2P_GROUP_CAPABILITY_P2P_GROUP_LIMIT BIT(2)
- #define P2P_GROUP_CAPABILITY_INTRA_BSS_DISTRIBUTION BIT(3)
- #define P2P_GROUP_CAPABILITY_CROSS_CONNECTION BIT(4)
- #define P2P_GROUP_CAPABILITY_PERSISTENT_RECONNECT BIT(5)
- #define P2P_GROUP_CAPABILITY_GROUP_FORMATION BIT(6)
- /* P2P 4.1.6 - GO Intent field definitions */
- #define P2P_GO_INTENT_TIE_BREAKER_FIELD BIT(0)
- #define P2P_GO_INTENT_VALUE_MASK BITS(1, 7)
- #define P2P_GO_INTENT_VALUE_OFFSET 1
- /* P2P 4.1.12 - Manageability Bitmap definitions */
- #define P2P_DEVICE_MANAGEMENT BIT(0)
- /* P2P 4.1.14 - CTWindow and OppPS Parameters definitions */
- #define P2P_CTW_OPPPS_PARAM_OPPPS_FIELD BIT(7)
- #define P2P_CTW_OPPPS_PARAM_CTWINDOW_MASK BITS(0, 6)
- #define ELEM_MAX_LEN_P2P_FOR_PROBE_REQ \
- (P2P_OUI_TYPE_LEN + \
- (P2P_ATTRI_HDR_LEN + P2P_ATTRI_MAX_LEN_P2P_CAPABILITY) + \
- (P2P_ATTRI_HDR_LEN + P2P_ATTRI_MAX_LEN_P2P_DEV_ID) + \
- (P2P_ATTRI_HDR_LEN + P2P_ATTRI_MAX_LEN_LISTEN_CHANNEL) + \
- (P2P_ATTRI_HDR_LEN + P2P_ATTRI_MAX_LEN_OPERATING_CHANNEL))
- #define ELEM_MAX_LEN_P2P_FOR_ASSOC_REQ \
- (P2P_OUI_TYPE_LEN + \
- (P2P_ATTRI_HDR_LEN + P2P_ATTRI_MAX_LEN_P2P_CAPABILITY) + \
- (P2P_ATTRI_HDR_LEN + P2P_ATTRI_MAX_LEN_EXT_LISTEN_TIMING) + \
- (P2P_ATTRI_HDR_LEN + P2P_ATTRI_MAX_LEN_P2P_DEV_INFO))
- /* P2P 4.1.16 - P2P Client Infor Descriptor */
- #define P2P_CLIENT_INFO_DESC_HDR_LEN 1 /* Length(1 octets) */
- /* P2P 4.1.20 - P2P Invitation Flags Attribute*/
- #define P2P_INVITATION_FLAGS_INVITATION_TYPE BIT(0)
- #define P2P_INVITATION_TYPE_INVITATION 0
- #define P2P_INVITATION_TYPE_REINVOKE 1
- /* 3 --------------- WPS Data Element Definitions --------------- */
- /* P2P 4.2.2 - General WSC Attribute */
- #define WSC_ATTRI_HDR_LEN 4 /* ID(2 octet) + Length(2 octets) */
- #define WSC_ATTRI_MAX_LEN_VERSION 1
- #define WSC_ATTRI_MAX_LEN_DEVICE_PASSWORD_ID 2
- #define WSC_ATTRI_LEN_CONFIG_METHOD 2
- /* WPS 11 - Data Element Definitions */
- #define WPS_ATTRI_ID_VERSION 0x104A
- #define WPS_ATTRI_ID_CONFIGURATION_METHODS 0x1008
- #define WPS_ATTRI_ID_DEVICE_PASSWORD 0x1012
- #define WPS_ATTRI_ID_DEVICE_NAME 0x1011
- #define WPS_ATTRI_ID_PRI_DEVICE_TYPE 0x1054
- #define WPS_ATTRI_ID_SEC_DEVICE_TYPE 0x1055
- #define WPS_MAXIMUM_ATTRIBUTES_CACHE_SIZE 300
- #define WPS_ATTRI_MAX_LEN_DEVICE_NAME 32 /* 0x1011 */
- #define WPS_ATTRI_CFG_METHOD_USBA BIT(0)
- #define WPS_ATTRI_CFG_METHOD_ETHERNET BIT(1)
- #define WPS_ATTRI_CFG_METHOD_LABEL BIT(2)
- #define WPS_ATTRI_CFG_METHOD_DISPLAY BIT(3)
- #define WPS_ATTRI_CFG_METHOD_EXT_NFC BIT(4)
- #define WPS_ATTRI_CFG_METHOD_INT_NFC BIT(5)
- #define WPS_ATTRI_CFG_METHOD_NFC_IF BIT(6)
- #define WPS_ATTRI_CFG_METHOD_PUSH_BUTTON BIT(7)
- #define WPS_ATTRI_CFG_METHOD_KEYPAD BIT(8)
- #define P2P_FLAGS_PROVISION_COMPLETE 0x00000001
- #define P2P_FLAGS_PROVISION_DISCOVERY_COMPLETE 0x00000002
- #define P2P_FLAGS_PROVISION_DISCOVERY_WAIT_RESPONSE 0x00000004
- #define P2P_FLAGS_PROVISION_DISCOVERY_RESPONSE_WAIT 0x00000008
- #define P2P_FLAGS_MASK_PROVISION 0x00000017
- #define P2P_FLAGS_MASK_PROVISION_COMPLETE 0x00000015
- #define P2P_FLAGS_PROVISION_DISCOVERY_INDICATED 0x00000010
- #define P2P_FLAGS_INVITATION_TOBE_GO 0x00000100
- #define P2P_FLAGS_INVITATION_TOBE_GC 0x00000200
- #define P2P_FLAGS_INVITATION_SUCCESS 0x00000400
- #define P2P_FLAGS_INVITATION_WAITING_TARGET 0x00000800
- #define P2P_FLAGS_MASK_INVITATION 0x00000F00
- #define P2P_FLAGS_FORMATION_ON_GOING 0x00010000
- #define P2P_FLAGS_FORMATION_LOCAL_PWID_RDY 0x00020000
- #define P2P_FLAGS_FORMATION_TARGET_PWID_RDY 0x00040000
- #define P2P_FLAGS_FORMATION_COMPLETE 0x00080000
- #define P2P_FLAGS_MASK_FORMATION 0x000F0000
- #define P2P_FLAGS_DEVICE_DISCOVER_REQ 0x00100000
- #define P2P_FLAGS_DEVICE_DISCOVER_DONE 0x00200000
- #define P2P_FLAGS_DEVICE_INVITATION_WAIT 0x00400000
- #define P2P_FLAGS_DEVICE_SERVICE_DISCOVER_WAIT 0x00800000
- #define P2P_FLAGS_MASK_DEVICE_DISCOVER 0x00F00000
- #define P2P_FLAGS_DEVICE_FORMATION_REQUEST 0x01000000
- /* MACRO for flag operation */
- #define SET_FLAGS(_FlagsVar, _BitsToSet) \
- {(_FlagsVar) = ((_FlagsVar) | (_BitsToSet))}
- #define TEST_FLAGS(_FlagsVar, _BitsToCheck) \
- (((_FlagsVar) & (_BitsToCheck)) == (_BitsToCheck))
- #define CLEAR_FLAGS(_FlagsVar, _BitsToClear) \
- {(_FlagsVar) &= ~(_BitsToClear)}
- #define CFG_DISABLE_WIFI_DIRECT_ENHANCEMENT_I 0
- #define CFG_DISABLE_WIFI_DIRECT_ENHANCEMENT_II 0
- #define CFG_DISABLE_WIFI_DIRECT_ENHANCEMENT_III 0
- #define CFG_DISABLE_WIFI_DIRECT_ENHANCEMENT_IV 0
- #define CFG_DISABLE_DELAY_PROVISION_DISCOVERY 0
- #define CFG_CONNECTION_POLICY_2_0 0
- /* Device Password ID */
- enum wps_dev_password_id {
- DEV_PW_DEFAULT = 0x0000,
- DEV_PW_USER_SPECIFIED = 0x0001,
- DEV_PW_MACHINE_SPECIFIED = 0x0002,
- DEV_PW_REKEY = 0x0003,
- DEV_PW_PUSHBUTTON = 0x0004,
- DEV_PW_REGISTRAR_SPECIFIED = 0x0005
- };
- /*******************************************************************************
- * D A T A T Y P E S
- ********************************************************************************
- */
- #if defined(WINDOWS_DDK) || defined(WINDOWS_CE)
- #pragma pack(1)
- #endif
- /* 3 --------------- WFA P2P IE and Attributes --------------- */
- /* P2P 4.1.1 - P2P Information Element */
- typedef struct _IE_P2P_T {
- UINT_8 ucId; /* Element ID */
- UINT_8 ucLength; /* Length */
- UINT_8 aucOui[3]; /* OUI */
- UINT_8 ucOuiType; /* OUI Type */
- UINT_8 aucP2PAttributes[1]; /* P2P Attributes */
- } __KAL_ATTRIB_PACKED__ IE_P2P_T, *P_IE_P2P_T;
- /* P2P 4.1.1 - General P2P Attribute */
- typedef struct _P2P_ATTRIBUTE_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucBody[1]; /* Body field */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRIBUTE_T, ATTRIBUTE_HDR_T, *P_P2P_ATTRIBUTE_T, *P_ATTRIBUTE_HDR_T;
- /* P2P 4.1.2 - P2P Status Attribute */
- typedef struct _P2P_ATTRI_STATUS_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucStatusCode; /* Status Code */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_STATUS_T, *P_P2P_ATTRI_STATUS_T;
- /* P2P 4.1.3 - P2P Minor Reason Code Attribute */
- typedef struct _P2P_ATTRI_REASON_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucMinorReasonCode; /* Minor Reason Code */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_REASON_T, *P_P2P_ATTRI_REASON_T;
- /* P2P 4.1.4 - P2P Capability Attribute */
- typedef struct _P2P_ATTRI_CAPABILITY_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucDeviceCap; /* Device Capability Bitmap */
- UINT_8 ucGroupCap; /* Group Capability Bitmap */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_CAPABILITY_T, *P_P2P_ATTRI_CAPABILITY_T;
- /* P2P 4.1.5 - P2P Device ID Attribute */
- typedef struct _P2P_ATTRI_DEV_ID_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucDevAddr[MAC_ADDR_LEN]; /* P2P Device Address */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_DEV_ID_T, *P_P2P_ATTRI_DEV_ID_T;
- /* P2P 4.1.6 - Group Owner Intent Attribute */
- typedef struct _P2P_ATTRI_GO_INTENT_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucGOIntent; /* Group Owner Intent */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_GO_INTENT_T, *P_P2P_ATTRI_GO_INTENT_T;
- /* P2P 4.1.7 - Configuration Timeout Attribute */
- typedef struct _P2P_ATTRI_CFG_TIMEOUT_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucGOCfgTimeout; /* GO Configuration Timeout */
- UINT_8 ucClientCfgTimeout; /* Client Configuration Timeout */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_CFG_TIMEOUT_T, *P_P2P_ATTRI_CFG_TIMEOUT_T;
- /* P2P 4.1.8 - Listen Channel Attribute */
- typedef struct _P2P_ATTRI_LISTEN_CHANNEL_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucCountryString[3]; /* Country String */
- UINT_8 ucOperatingClass; /* Operating Class from 802.11 Annex J/P802.11 REVmb 3.0 */
- UINT_8 ucChannelNumber; /* Channel Number */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_LISTEN_CHANNEL_T, *P_P2P_ATTRI_LISTEN_CHANNEL_T;
- /* P2P 4.1.9 - P2P Group BSSID Attribute */
- typedef struct _P2P_ATTRI_GROUP_BSSID_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucBssid[MAC_ADDR_LEN]; /* P2P Group BSSID */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_GROUP_BSSID_T, *P_P2P_ATTRI_GROUP_BSSID_T;
- /* P2P 4.1.10 - Extended Listen Timing Attribute */
- typedef struct _P2P_ATTRI_EXT_LISTEN_TIMING_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_16 u2AvailPeriod; /* Availability Period */
- UINT_16 u2AvailInterval; /* Availability Interval */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_EXT_LISTEN_TIMING_T, *P_P2P_ATTRI_EXT_LISTEN_TIMING_T;
- /* P2P 4.1.11 - Intended P2P Interface Address Attribute */
- typedef struct _P2P_ATTRI_INTENDED_IF_ADDR_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucIfAddr[MAC_ADDR_LEN]; /* P2P Interface Address */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_INTENDED_IF_ADDR_T, *P_P2P_ATTRI_INTENDED_IF_ADDR_T;
- /* P2P 4.1.12 - P2P Manageability Attribute */
- typedef struct _P2P_ATTRI_MANAGEABILITY_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucManageability; /* P2P Manageability Bitmap */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_MANAGEABILITY_T, *P_P2P_ATTRI_MANAGEABILITY_T;
- /* P2P 4.1.13 - Channel List Attribute */
- typedef struct _P2P_ATTRI_CHANNEL_LIST_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucCountryString[3]; /* Country String */
- UINT_8 aucChannelEntry[1]; /* Channel Entry List */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_CHANNEL_T, *P_P2P_ATTRI_CHANNEL_T;
- typedef struct _CHANNEL_ENTRY_FIELD_T {
- UINT_8 ucRegulatoryClass; /* Regulatory Class */
- UINT_8 ucNumberOfChannels; /* Number Of Channels */
- UINT_8 aucChannelList[1]; /* Channel List */
- } __KAL_ATTRIB_PACKED__ CHANNEL_ENTRY_FIELD_T, *P_CHANNEL_ENTRY_FIELD_T;
- /* P2P 4.1.14 - Notice of Absence Attribute */
- typedef struct _P2P_ATTRI_NOA_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucIndex; /* Index */
- UINT_8 ucCTWOppPSParam; /* CTWindow and OppPS Parameters */
- UINT_8 aucNoADesc[1]; /* NoA Descriptor */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_NOA_T, *P_P2P_ATTRI_NOA_T;
- typedef struct _NOA_DESCRIPTOR_T {
- UINT_8 ucCountType; /* Count/Type */
- UINT_32 u4Duration; /* Duration */
- UINT_32 u4Interval; /* Interval */
- UINT_32 u4StartTime; /* Start Time */
- } __KAL_ATTRIB_PACKED__ NOA_DESCRIPTOR_T, *P_NOA_DESCRIPTOR_T;
- typedef struct _P2P_ATTRI_DEV_INFO_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucDevAddr[MAC_ADDR_LEN]; /* P2P Device Address */
- UINT_16 u2ConfigMethodsBE; /* Config Method */
- DEVICE_TYPE_T rPrimaryDevTypeBE; /* Primary Device Type */
- UINT_8 ucNumOfSecondaryDevType; /* Number of Secondary Device Types */
- DEVICE_TYPE_T arSecondaryDevTypeListBE[1]; /* Secondary Device Type List */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_DEV_INFO_T, *P_P2P_ATTRI_DEV_INFO_T;
- /* WPS 7.1 & 11 WPS TLV Data Format - Device Name */
- typedef struct _DEVICE_NAME_TLV_T {
- UINT_16 u2Id; /* WPS Attribute Type */
- UINT_16 u2Length; /* Data Length */
- UINT_8 aucName[32]; /* Device Name */ /* TODO: Fixme */
- } __KAL_ATTRIB_PACKED__ DEVICE_NAME_TLV_T, *P_DEVICE_NAME_TLV_T;
- /* P2P 4.1.16 - P2P Group Info Attribute */
- typedef struct _P2P_CLIENT_INFO_DESC_T {
- UINT_8 ucLength; /* Length */
- UINT_8 aucDevAddr[MAC_ADDR_LEN]; /* P2P Device Address */
- UINT_8 aucIfAddr[MAC_ADDR_LEN]; /* P2P Interface Address */
- UINT_8 ucDeviceCap; /* Device Capability Bitmap */
- UINT_16 u2ConfigMethodsBE; /* Config Method */
- DEVICE_TYPE_T rPrimaryDevTypeBE; /* Primary Device Type */
- UINT_8 ucNumOfSecondaryDevType; /* Number of Secondary Device Types */
- DEVICE_TYPE_T arSecondaryDevTypeListBE[1]; /* Secondary Device Type List */
- } __KAL_ATTRIB_PACKED__ P2P_CLIENT_INFO_DESC_T, *P_P2P_CLIENT_INFO_DESC_T;
- typedef struct _P2P_ATTRI_GROUP_INFO_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- P2P_CLIENT_INFO_DESC_T arClientDesc[1]; /* P2P Client Info Descriptors */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_GROUP_INFO_T, *P_P2P_ATTRI_GROUP_INFO_T;
- /* P2P 4.1.17 - P2P Group ID Attribute */
- typedef struct _P2P_ATTRI_GROUP_ID_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucDevAddr[MAC_ADDR_LEN]; /* P2P Device Address */
- UINT_8 aucSSID[ELEM_MAX_LEN_SSID]; /* SSID */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_GROUP_ID_T, *P_P2P_ATTRI_GROUP_ID_T;
- /* P2P 4.1.18 - P2P Interface Attribute */
- typedef struct _P2P_ATTRI_INTERFACE_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucDevAddr[MAC_ADDR_LEN]; /* P2P Device Address */
- UINT_8 ucIfAddrCount; /* P2P Interface Address Count */
- UINT_8 aucIfAddrList[MAC_ADDR_LEN]; /* P2P Interface Address List */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_INTERFACE_T, *P_P2P_ATTRI_INTERFACE_T;
- /* P2P 4.1.19 - Operating Channel Attribute */
- typedef struct _P2P_ATTRI_OPERATING_CHANNEL_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucCountryString[3]; /* Country String */
- UINT_8 ucOperatingClass; /* Operating Class from 802.11 Annex J/P802.11 REVmb 3.0 */
- UINT_8 ucChannelNumber; /* Channel Number */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_OPERATING_CHANNEL_T, *P_P2P_ATTRI_OPERATING_CHANNEL_T;
- /* P2P 4.1.20 - Invitation Flags Attribute */
- typedef struct _P2P_ATTRI_INVITATION_FLAG_T {
- UINT_8 ucId; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucInviteFlagsBitmap; /* Invitation Flags Bitmap */
- } __KAL_ATTRIB_PACKED__ P2P_ATTRI_INVITATION_FLAG_T, *P_P2P_ATTRI_INVITATION_FLAG_T;
- /* P2P 4.1.1 - General WSC Attribute */
- typedef struct _WSC_ATTRIBUTE_T {
- UINT_16 u2Id; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 aucBody[1]; /* Body field */
- } __KAL_ATTRIB_PACKED__ WSC_ATTRIBUTE_T, *P_WSC_ATTRIBUTE_T;
- /* WSC 1.0 Table 28 */
- typedef struct _WSC_ATTRI_VERSION_T {
- UINT_16 u2Id; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_8 ucVersion; /* Version 1.0 or 1.1 */
- } __KAL_ATTRIB_PACKED__ WSC_ATTRI_VERSION_T, *P_WSC_ATTRI_VERSION_T;
- typedef struct _WSC_ATTRI_DEVICE_PASSWORD_ID_T {
- UINT_16 u2Id; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_16 u2DevPasswordId; /* Device Password ID */
- } __KAL_ATTRIB_PACKED__ WSC_ATTRI_DEVICE_PASSWORD_ID_T, *P_WSC_ATTRI_DEVICE_PASSWORD_ID_T;
- typedef struct _WSC_ATTRI_CONFIGURATION_METHOD_T {
- UINT_16 u2Id; /* Attribute ID */
- UINT_16 u2Length; /* Length */
- UINT_16 u2ConfigMethods; /* Configure Methods */
- } __KAL_ATTRIB_PACKED__ WSC_ATTRI_CONFIGURATION_METHOD_T, *P_WSC_ATTRI_CONFIGURATION_METHOD_T;
- #if defined(WINDOWS_DDK) || defined(WINDOWS_CE)
- #pragma pack()
- #endif
- /* 3 --------------- WFA P2P Attributes Handler prototype --------------- */
- typedef UINT_32(*PFN_APPEND_ATTRI_FUNC) (P_ADAPTER_T, BOOLEAN, PUINT_16, PUINT_8, UINT_16);
- typedef VOID(*PFN_HANDLE_ATTRI_FUNC) (P_SW_RFB_T, P_P2P_ATTRIBUTE_T);
- typedef VOID(*PFN_VERIFY_ATTRI_FUNC) (P_SW_RFB_T, P_P2P_ATTRIBUTE_T, PUINT_16);
- typedef UINT_32(*PFN_CALCULATE_VAR_ATTRI_LEN_FUNC) (P_ADAPTER_T, P_STA_RECORD_T);
- typedef struct _APPEND_VAR_ATTRI_ENTRY_T {
- UINT_16 u2EstimatedFixedAttriLen; /* For fixed length */
- PFN_CALCULATE_VAR_ATTRI_LEN_FUNC pfnCalculateVariableAttriLen;
- PFN_APPEND_ATTRI_FUNC pfnAppendAttri;
- } APPEND_VAR_ATTRI_ENTRY_T, *P_APPEND_VAR_ATTRI_ENTRY_T;
- typedef enum _ENUM_CONFIG_METHOD_SEL {
- ENUM_CONFIG_METHOD_SEL_AUTO,
- ENUM_CONFIG_METHOD_SEL_USER,
- ENUM_CONFIG_METHOD_SEL_NUM
- } ENUM_CONFIG_METHOD_SEL, *P_ENUM_CONFIG_METHOD_SEL;
- typedef enum _ENUM_P2P_FORMATION_POLICY {
- ENUM_P2P_FORMATION_POLICY_AUTO = 0,
- ENUM_P2P_FORMATION_POLICY_PASSIVE, /* Device would wait GO NEGO REQ instead of sending it actively. */
- ENUM_P2P_FORMATION_POLICY_NUM
- } ENUM_P2P_FORMATION_POLICY, P_ENUM_P2P_FORMATION_POLICY;
- typedef enum _ENUM_P2P_INVITATION_POLICY {
- ENUM_P2P_INVITATION_POLICY_USER = 0,
- ENUM_P2P_INVITATION_POLICY_ACCEPT_FIRST,
- ENUM_P2P_INVITATION_POLICY_DENY_ALL,
- ENUM_P2P_INVITATION_POLICY_NUM
- } ENUM_P2P_INVITATION_POLICY, P_ENUM_P2P_INVITATION_POLICY;
- /* 3 --------------- Data Structure for P2P Operation --------------- */
- /* 3 Session for CONNECTION SETTINGS of P2P */
- struct _P2P_CONNECTION_SETTINGS_T {
- UINT_8 ucDevNameLen;
- UINT_8 aucDevName[WPS_ATTRI_MAX_LEN_DEVICE_NAME];
- DEVICE_TYPE_T rPrimaryDevTypeBE;
- ENUM_P2P_FORMATION_POLICY eFormationPolicy; /* Formation Policy. */
- /*------------WSC Related Param---------------*/
- UINT_16 u2ConfigMethodsSupport; /* Preferred configure method.
- * Some device may not have keypad.
- */
- ENUM_CONFIG_METHOD_SEL eConfigMethodSelType;
- UINT_16 u2TargetConfigMethod; /* Configure method selected by user or auto. */
- UINT_16 u2LocalConfigMethod; /* Configure method of target. */
- BOOLEAN fgIsPasswordIDRdy;
- /*------------WSC Related Param---------------*/
- UINT_8 ucClientConfigTimeout;
- UINT_8 ucGoConfigTimeout;
- UINT_8 ucSecondaryDevTypeCount;
- #if P2P_MAX_SUPPORTED_SEC_DEV_TYPE_COUNT
- DEVICE_TYPE_T arSecondaryDevTypeBE[P2P_MAX_SUPPORTED_SEC_DEV_TYPE_COUNT];
- #endif
- #if 0
- UINT_8 ucRfChannelListCount;
- #if P2P_MAX_SUPPORTED_CHANNEL_LIST_COUNT
- UINT_8 aucChannelList[P2P_MAX_SUPPORTED_CHANNEL_LIST_COUNT]; /* Channel Numbering
- depends on 802.11mb Annex J. */
- #endif
- #else
- UINT_8 ucRfChannelListSize;
- #if P2P_MAX_SUPPORTED_CHANNEL_LIST_SIZE
- UINT_8 aucChannelEntriesField[P2P_MAX_SUPPORTED_CHANNEL_LIST_SIZE];
- #endif
- #endif
- /* Go Intent */
- UINT_8 ucTieBreaker;
- UINT_8 ucGoIntent;
- /* For Device Capability */
- BOOLEAN fgSupportServiceDiscovery;
- BOOLEAN fgSupportClientDiscoverability;
- BOOLEAN fgSupportConcurrentOperation;
- BOOLEAN fgSupportInfraManaged;
- BOOLEAN fgSupportInvitationProcedure;
- /* For Group Capability */
- BOOLEAN fgSupportPersistentP2PGroup;
- BOOLEAN fgSupportIntraBSSDistribution;
- BOOLEAN fgSupportCrossConnection;
- BOOLEAN fgSupportPersistentReconnect;
- BOOLEAN fgP2pGroupLimit;
- BOOLEAN fgSupportOppPS;
- UINT_16 u2CTWindow;
- BOOLEAN fgIsScanReqIssued;
- BOOLEAN fgIsServiceDiscoverIssued;
- /*============ Target Device Connection Settings ============*/
- /* Discover Target Device Info. */
- BOOLEAN fgIsDevId;
- BOOLEAN fgIsDevType;
- /* Encryption mode of Target Device */
- ENUM_PARAM_AUTH_MODE_T eAuthMode;
- /* SSID
- * 1. AP Mode, this is the desired SSID user specified.
- * 2. Client Mode, this is the target SSID to be connected to.
- */
- UINT_8 aucSSID[ELEM_MAX_LEN_SSID];
- UINT_8 ucSSIDLen;
- /* Operating channel requested. */
- UINT_8 ucOperatingChnl;
- ENUM_BAND_T eBand;
- /* Linten channel requested. */
- UINT_8 ucListenChnl;
- /* For device discover address/type. */
- UINT_8 aucTargetDevAddr[MAC_ADDR_LEN]; /* P2P Device Address, for P2P Device Discovery & P2P Connection. */
- #if CFG_ENABLE_WIFI_DIRECT
- P_P2P_DEVICE_DESC_T prTargetP2pDesc;
- #endif
- UINT_8 ucLastStatus; /* P2P FSM would append status attribute according to this field. */
- #if !CFG_DISABLE_DELAY_PROVISION_DISCOVERY
- UINT_8 ucLastDialogToken;
- UINT_8 aucIndicateDevAddr[MAC_ADDR_LEN];
- #endif
- #if 0
- UINT_8 ucTargetRfChannelListCount;
- #if P2P_MAX_SUPPORTED_CHANNEL_LIST_COUNT
- UINT_8 aucTargetChannelList[P2P_MAX_SUPPORTED_CHANNEL_LIST_COUNT]; /* Channel Numbering
- depends on 802.11mb Annex J. */
- #endif
- #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;
- typedef enum _ENUM_P2P_IOCTL_T {
- P2P_IOCTL_IDLE = 0,
- P2P_IOCTL_DEV_DISCOVER,
- P2P_IOCTL_INVITATION_REQ,
- P2P_IOCTL_SERV_DISCOVER,
- P2P_IOCTL_WAITING,
- P2P_IOCTL_NUM
- } ENUM_P2P_IOCTL_T;
- /*---------------- Service Discovery Related -------------------*/
- typedef enum _ENUM_SERVICE_TX_TYPE_T {
- ENUM_SERVICE_TX_TYPE_BY_DA,
- ENUM_SERVICE_TX_TYPE_BY_CHNL,
- ENUM_SERVICE_TX_TYPE_NUM
- } ENUM_SERVICE_TX_TYPE_T;
- typedef struct _SERVICE_DISCOVERY_FRAME_DATA_T {
- QUE_ENTRY_T rQueueEntry;
- P_MSDU_INFO_T prSDFrame;
- ENUM_SERVICE_TX_TYPE_T eServiceType;
- UINT_8 ucSeqNum;
- union {
- UINT_8 ucChannelNum;
- UINT_8 aucPeerAddr[MAC_ADDR_LEN];
- } uTypeData;
- BOOLEAN fgIsTxDoneIndicate;
- } SERVICE_DISCOVERY_FRAME_DATA_T, *P_SERVICE_DISCOVERY_FRAME_DATA_T;
- struct _P2P_FSM_INFO_T_DEPRECATED {
- /* P2P FSM State */
- ENUM_P2P_STATE_T eCurrentState;
- /* Channel */
- BOOLEAN fgIsChannelRequested;
- ENUM_P2P_STATE_T ePreviousState;
- ENUM_P2P_STATE_T eReturnState; /* Return state after current activity finished or abort. */
- UINT_8 aucTargetIfAddr[PARAM_MAC_ADDR_LEN];
- P_BSS_DESC_T prTargetBss; /* BSS of target P2P Device. For Connection/Service Discovery */
- P_STA_RECORD_T prTargetStaRec;
- BOOLEAN fgIsRsponseProbe; /* Indicate if P2P FSM can response probe request frame. */
- /* Sequence number of requested message. */
- UINT_8 ucSeqNumOfReqMsg; /* Used for SAA FSM request message. */
- /* Channel Privilege */
- UINT_8 ucSeqNumOfChReq; /* Used for Channel Request message. */
- UINT_8 ucSeqNumOfScnMsg; /* Used for SCAN FSM request message. */
- UINT_8 ucSeqNumOfCancelMsg;
- UINT_8 ucDialogToken;
- UINT_8 ucRxDialogToken;
- /* Timer */
- TIMER_T rDeviceDiscoverTimer; /* For device discovery time of each discovery request from user. */
- TIMER_T rOperationListenTimer; /* For Find phase under operational state. */
- TIMER_T rFSMTimer; /* A timer used for Action frame timeout usage. */
- TIMER_T rRejoinTimer; /* A timer used for Action frame timeout usage. */
- /* Flag to indicate Provisioning */
- BOOLEAN fgIsConnectionRequested;
- /* Current IOCTL. */
- ENUM_P2P_IOCTL_T eP2pIOCTL;
- UINT_8 ucAvailableAuthTypes; /* Used for AUTH_MODE_AUTO_SWITCH */
- /*--------SERVICE DISCOVERY--------*/
- QUE_T rQueueGASRx; /* Input Request/Response. */
- QUE_T rQueueGASTx; /* Output Response. */
- P_SERVICE_DISCOVERY_FRAME_DATA_T prSDRequest;
- UINT_8 ucVersionNum; /* GAS packet sequence number for...Action Frame? */
- UINT_8 ucGlobalSeqNum; /* Sequence Number of RX SD packet. */
- /*--------Service DISCOVERY--------*/
- /*--------DEVICE DISCOVERY---------*/
- UINT_8 aucTargetGroupID[PARAM_MAC_ADDR_LEN];
- UINT_16 u2TargetGroupSsidLen;
- UINT_8 aucTargetSsid[32];
- UINT_8 aucSearchingP2pDevice[PARAM_MAC_ADDR_LEN];
- UINT_8 ucDLToken;
- /*----------------------------------*/
- /* Indicating Peer Status. */
- UINT_32 u4Flags;
- /*Indicating current running mode. */
- BOOLEAN fgIsApMode;
- /*------------INVITATION------------*/
- ENUM_P2P_INVITATION_POLICY eInvitationRspPolicy;
- /*----------------------------------*/
- };
- 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;
- #if 0 /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) */
- UINT_16 u2IELenForBCN;
- UINT_8 aucBeaconIECache[P2P_MAXIMUM_ATTRIBUTES_CACHE_SIZE + WPS_MAXIMUM_ATTRIBUTES_CACHE_SIZE];
- /* UINT_16 u2IELenForProbeRsp; */
- /* UINT_8 aucProbeRspIECache[P2P_MAXIMUM_ATTRIBUTES_CACHE_SIZE + WPS_MAXIMUM_ATTRIBUTES_CACHE_SIZE]; */
- UINT_16 u2IELenForAssocRsp;
- UINT_8 aucAssocRspIECache[P2P_MAXIMUM_ATTRIBUTES_CACHE_SIZE + WPS_MAXIMUM_ATTRIBUTES_CACHE_SIZE];
- #else
- UINT_16 u2AttributeLen;
- UINT_8 aucAttributesCache[P2P_MAXIMUM_ATTRIBUTES_CACHE_SIZE];
- UINT_16 u2WscAttributeLen;
- UINT_8 aucWscAttributesCache[WPS_MAXIMUM_ATTRIBUTES_CACHE_SIZE];
- #endif
- 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];
- };
- typedef struct _MSG_P2P_DEVICE_DISCOVER_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_32 u4DevDiscoverTime; /* 0: Infinite, 1~X: in unit of MS. */
- BOOLEAN fgIsSpecificType;
- #if CFG_ENABLE_WIFI_DIRECT
- P2P_DEVICE_TYPE_T rTargetDeviceType;
- #endif
- UINT_8 aucTargetDeviceID[MAC_ADDR_LEN];
- } MSG_P2P_DEVICE_DISCOVER_T, *P_MSG_P2P_DEVICE_DISCOVER_T;
- typedef struct _MSG_P2P_INVITATION_REQUEST_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_8 aucDeviceID[MAC_ADDR_LEN]; /* Target Device ID to be invited. */
- } MSG_P2P_INVITATION_REQUEST_T, *P_MSG_P2P_INVITATION_REQUEST_T;
- typedef struct _MSG_P2P_FUNCTION_SWITCH_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- BOOLEAN fgIsFuncOn;
- } MSG_P2P_FUNCTION_SWITCH_T, *P_MSG_P2P_FUNCTION_SWITCH_T;
- typedef struct _MSG_P2P_SERVICE_DISCOVERY_REQUEST_T {
- MSG_HDR_T rMsgHdr; /* Must be the first member */
- UINT_8 aucDeviceID[MAC_ADDR_LEN];
- BOOLEAN fgNeedTxDoneIndicate;
- UINT_8 ucSeqNum;
- } MSG_P2P_SERVICE_DISCOVERY_REQUEST_T, *P_MSG_P2P_SERVICE_DISCOVERY_REQUEST_T;
- /*******************************************************************************
- * P U B L I C D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * P R I V A T E D A T A
- ********************************************************************************
- */
- /*******************************************************************************
- * M A C R O S
- ********************************************************************************
- */
- #define p2pChangeMediaState(_prAdapter, _eNewMediaState) \
- do { \
- (_prAdapter->rWifiVar.arBssInfo[NETWORK_TYPE_P2P_INDEX].eConnectionState = (_eNewMediaState));\
- wfdChangeMediaState((_prAdapter), NETWORK_TYPE_P2P_INDEX, (_eNewMediaState)); \
- } while (0)
- #define ATTRI_ID(_fp) (((P_P2P_ATTRIBUTE_T) _fp)->ucId)
- #define ATTRI_LEN(_fp) \
- (((UINT_16) ((PUINT_8)&((P_P2P_ATTRIBUTE_T) _fp)->u2Length)[0]) | \
- ((UINT_16) ((PUINT_8)&((P_P2P_ATTRIBUTE_T) _fp)->u2Length)[1] << 8))
- #define ATTRI_SIZE(_fp) (P2P_ATTRI_HDR_LEN + ATTRI_LEN(_fp))
- #define P2P_ATTRI_FOR_EACH(_pucAttriBuf, _u2AttriBufLen, _u2Offset) \
- for ((_u2Offset) = 0; ((_u2Offset) < (_u2AttriBufLen)); \
- (_u2Offset) += ATTRI_SIZE(_pucAttriBuf), ((_pucAttriBuf) += ATTRI_SIZE(_pucAttriBuf)))
- #define P2P_IE(_fp) ((P_IE_P2P_T) _fp)
- #define WSC_ATTRI_ID(_fp) \
- (((UINT_16) ((PUINT_8)&((P_WSC_ATTRIBUTE_T) _fp)->u2Id)[0] << 8) | \
- ((UINT_16) ((PUINT_8)&((P_WSC_ATTRIBUTE_T) _fp)->u2Id)[1]))
- #define WSC_ATTRI_LEN(_fp) \
- (((UINT_16) ((PUINT_8)&((P_WSC_ATTRIBUTE_T) _fp)->u2Length)[0] << 8) | \
- ((UINT_16) ((PUINT_8)&((P_WSC_ATTRIBUTE_T) _fp)->u2Length)[1]))
- #define WSC_ATTRI_SIZE(_fp) (WSC_ATTRI_HDR_LEN + WSC_ATTRI_LEN(_fp))
- #define WSC_ATTRI_FOR_EACH(_pucAttriBuf, _u2AttriBufLen, _u2Offset) \
- for ((_u2Offset) = 0; ((_u2Offset) < (_u2AttriBufLen)); \
- (_u2Offset) += WSC_ATTRI_SIZE(_pucAttriBuf), ((_pucAttriBuf) += WSC_ATTRI_SIZE(_pucAttriBuf)))
- #define WSC_IE(_fp) ((P_IE_P2P_T) _fp)
- #define WFD_ATTRI_ID(_fp) (((P_WFD_ATTRIBUTE_T) _fp)->ucElemID)
- #define WFD_ATTRI_LEN(_fp) \
- (((UINT_16) ((PUINT_8)&((P_WFD_ATTRIBUTE_T) _fp)->u2Length)[0] << 8) | \
- ((UINT_16) ((PUINT_8)&((P_WFD_ATTRIBUTE_T) _fp)->u2Length)[1]))
- #define WFD_ATTRI_SIZE(_fp) (WFD_ATTRI_HDR_LEN + WFD_ATTRI_LEN(_fp))
- #define WFD_ATTRI_FOR_EACH(_pucAttriBuf, _u2AttriBufLen, _u2Offset) \
- for ((_u2Offset) = 0; ((_u2Offset) < (_u2AttriBufLen)); \
- (_u2Offset) += WFD_ATTRI_SIZE(_pucAttriBuf), ((_pucAttriBuf) += WFD_ATTRI_SIZE(_pucAttriBuf)))
- #if DBG
- #define ASSERT_BREAK(_exp) \
- { \
- if (!(_exp)) { \
- ASSERT(FALSE); \
- break; \
- } \
- }
- #else
- #define ASSERT_BREAK(_exp)
- #endif
- /*******************************************************************************
- * F U N C T I O N D E C L A R A T I O N S
- ********************************************************************************
- */
- /*======P2P State======*/
- VOID
- p2pStateInit_LISTEN(IN P_ADAPTER_T prAdapter,
- IN P_P2P_FSM_INFO_T prP2pFsmInfo,
- IN P_P2P_SPECIFIC_BSS_INFO_T prSP2pBssInfo, IN UINT_8 ucListenChannel);
- VOID p2pStateAbort_LISTEN(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgIsChannelExtenstion);
- VOID p2pStateAbort_SEARCH_SCAN(IN P_ADAPTER_T prAdapter, IN BOOLEAN fgIsChannelExtenstion);
- VOID p2pStateAbort_GO_OPERATION(IN P_ADAPTER_T prAdapter);
- VOID p2pStateAbort_GC_OPERATION(IN P_ADAPTER_T prAdapter);
- VOID
- p2pStateInit_CONFIGURATION(IN P_ADAPTER_T prAdapter,
- IN P_P2P_FSM_INFO_T prP2pFsmInfo,
- IN P_BSS_INFO_T prP2pBssInfo, IN P_P2P_SPECIFIC_BSS_INFO_T prP2pSpecBssInfo);
- VOID p2pStateAbort_CONFIGURATION(IN P_ADAPTER_T prAdapter);
- VOID p2pStateInit_JOIN(IN P_ADAPTER_T prAdapter);
- VOID p2pStateAbort_JOIN(IN P_ADAPTER_T prAdapter);
- /*====== P2P Functions ======*/
- VOID p2pFuncInitGO(IN P_ADAPTER_T prAdapter);
- VOID
- p2pFuncDisconnect(IN P_ADAPTER_T prAdapter,
- IN P_STA_RECORD_T prStaRec, IN BOOLEAN fgSendDeauth, IN UINT_16 u2ReasonCode);
- VOID
- p2pFuncSwitchOPMode(IN P_ADAPTER_T prAdapter,
- IN P_BSS_INFO_T prP2pBssInfo, IN ENUM_OP_MODE_T eOpMode, IN BOOLEAN fgSyncToFW);
- VOID p2pFuncRunEventProvisioningComplete(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- WLAN_STATUS p2pFuncSetGroupID(IN P_ADAPTER_T prAdapter, IN PUINT_8 pucGroupID, IN PUINT_8 pucSsid, IN UINT_8 ucSsidLen);
- WLAN_STATUS
- p2pFuncSendDeviceDiscoverabilityReqFrame(IN P_ADAPTER_T prAdapter, IN UINT_8 aucDestAddr[], IN UINT_8 ucDialogToken);
- WLAN_STATUS
- p2pFuncSendDeviceDiscoverabilityRspFrame(IN P_ADAPTER_T prAdapter, IN UINT_8 aucDestAddr[], IN UINT_8 ucDialogToken);
- UINT_8 p2pFuncGetVersionNumOfSD(IN P_ADAPTER_T prAdapter);
- /*====== P2P FSM ======*/
- VOID p2pFsmRunEventConnectionRequest(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventDeviceDiscoveryRequest(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventDeviceDiscoveryAbort(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventRxGroupNegotiationReqFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- WLAN_STATUS
- p2pFsmRunEventGroupNegotiationRequestTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- WLAN_STATUS
- p2pFsmRunEventGroupNegotiationResponseTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- WLAN_STATUS
- p2pFsmRunEventGroupNegotiationConfirmTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- WLAN_STATUS
- p2pFsmRunEventProvisionDiscoveryRequestTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- WLAN_STATUS
- p2pFsmRunEventProvisionDiscoveryResponseTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- WLAN_STATUS
- p2pFsmRunEventInvitationRequestTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- VOID p2pFsmRunEventRxDeauthentication(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec, IN P_SW_RFB_T prSwRfb);
- VOID p2pFsmRunEventRxDisassociation(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec, IN P_SW_RFB_T prSwRfb);
- VOID p2pFsmRunEventBeaconTimeout(IN P_ADAPTER_T prAdapter);
- WLAN_STATUS
- p2pFsmRunEventDeauthTxDone(IN P_ADAPTER_T prAdapter,
- IN P_MSDU_INFO_T prMsduInfo, IN ENUM_TX_RESULT_CODE_T rTxDoneStatus);
- #if 1
- #endif
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /* //////////////////////////////////////////////////////////////////////// */
- /*======Mail Box Event Message=====*/
- VOID p2pFsmRunEventConnectionAbort(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventConnectionTrigger(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventP2PFunctionSwitch(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventChGrant(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventJoinComplete(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventConnectionPause(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID
- p2pIndicationOfMediaStateToHost(IN P_ADAPTER_T prAdapter,
- IN ENUM_PARAM_MEDIA_STATE_T eConnectionState, IN UINT_8 aucTargetAddr[]);
- VOID p2pUpdateBssInfoForJOIN(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec, IN P_SW_RFB_T prAssocRspSwRfb);
- /*======Mail Box Event Message=====*/
- VOID p2pFsmInit(IN P_ADAPTER_T prAdapter);
- VOID p2pFsmUninit(IN P_ADAPTER_T prAdapter);
- VOID p2pFsmSteps(IN P_ADAPTER_T prAdapter, IN ENUM_P2P_STATE_T eNextState);
- VOID p2pStartGO(IN P_ADAPTER_T prAdapter);
- VOID p2pAssignSsid(IN PUINT_8 pucSsid, IN PUINT_8 pucSsidLen);
- VOID p2pFsmRunEventScanDone(IN P_ADAPTER_T prAdapter, IN P_MSG_HDR_T prMsgHdr);
- VOID p2pFsmRunEventIOReqTimeout(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Param);
- VOID p2pFsmRunEventSearchPeriodTimeout(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Param);
- VOID p2pFsmRunEventFsmTimeout(IN P_ADAPTER_T prAdapter, IN ULONG u4Param);
- VOID p2pFsmRunEventRejoinTimeout(IN P_ADAPTER_T prAdapter, IN UINT_32 u4Parm);
- /*=============== P2P Function Related ================*/
- /*=============== P2P Function Related ================*/
- #if CFG_TEST_WIFI_DIRECT_GO
- VOID p2pTest(IN P_ADAPTER_T prAdapter);
- #endif /* CFG_TEST_WIFI_DIRECT_GO */
- VOID p2pGenerateP2P_IEForBeacon(IN P_ADAPTER_T prAdapter, IN P_MSDU_INFO_T prMsduInfo);
- VOID p2pGenerateP2P_IEForAssocReq(IN P_ADAPTER_T prAdapter, IN P_MSDU_INFO_T prMsduInfo);
- VOID p2pGenerateP2P_IEForAssocRsp(IN P_ADAPTER_T prAdapter, IN P_MSDU_INFO_T prMsduInfo);
- VOID
- p2pGenerateP2P_IEForProbeReq(IN P_ADAPTER_T prAdapter, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pCalculateP2P_IELenForBeacon(IN P_ADAPTER_T prAdapter,
- IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex, IN P_STA_RECORD_T prStaRec);
- UINT_32
- p2pCalculateP2P_IELenForAssocRsp(IN P_ADAPTER_T prAdapter,
- IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex, IN P_STA_RECORD_T prStaRec);
- UINT_32
- p2pCalculateP2P_IELenForProbeReq(IN P_ADAPTER_T prAdapter,
- IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex, IN P_STA_RECORD_T prStaRec);
- VOID p2pGenerateWSC_IEForProbeResp(IN P_ADAPTER_T prAdapter, IN P_MSDU_INFO_T prMsduInfo);
- VOID
- p2pGenerateWSC_IEForProbeReq(IN P_ADAPTER_T prAdapter, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_16 p2pCalculateWSC_IELenForProbeReq(IN P_ADAPTER_T prAdapter, IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex);
- UINT_32
- p2pCalculateWSC_IELenForProbeResp(IN P_ADAPTER_T prAdapter,
- IN ENUM_NETWORK_TYPE_INDEX_T eNetTypeIndex, IN P_STA_RECORD_T prStaRec);
- UINT_32
- p2pAppendAttriStatus(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriCapability(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriGoIntent(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriCfgTimeout(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriGroupBssid(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriDeviceIDForBeacon(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriDeviceIDForProbeReq(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriDeviceIDForDeviceDiscoveryReq(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriListenChannel(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriIntendP2pIfAddr(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriChannelList(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32 p2pCalculateAttriLenChannelList(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- UINT_32
- p2pAppendAttriNoA(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriDeviceInfo(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32 p2pCalculateAttriLenDeviceInfo(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- UINT_32
- p2pAppendAttriGroupInfo(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32 p2pCalculateAttriLenGroupInfo(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- UINT_32
- p2pAppendAttriP2pGroupID(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriOperatingChannel(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriInvitationFlag(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- VOID
- p2pGenerateWscIE(IN P_ADAPTER_T prAdapter,
- IN UINT_8 ucOuiType,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset,
- IN PUINT_8 pucBuf,
- IN UINT_16 u2BufSize, IN APPEND_VAR_ATTRI_ENTRY_T arAppendAttriTable[], IN UINT_32 u4AttriTableSize);
- UINT_32
- p2pAppendAttriWSCConfigMethod(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriWSCVersion(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame, IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriWSCGONegReqDevPasswordId(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- UINT_32
- p2pAppendAttriWSCGONegRspDevPasswordId(IN P_ADAPTER_T prAdapter,
- IN BOOLEAN fgIsAssocFrame,
- IN PUINT_16 pu2Offset, IN PUINT_8 pucBuf, IN UINT_16 u2BufSize);
- WLAN_STATUS
- p2pGetWscAttriList(IN P_ADAPTER_T prAdapter,
- IN UINT_8 ucOuiType,
- IN PUINT_8 pucIE, IN UINT_16 u2IELength, OUT PPUINT_8 ppucAttriList, OUT PUINT_16 pu2AttriListLen);
- WLAN_STATUS
- p2pGetAttriList(IN P_ADAPTER_T prAdapter,
- IN UINT_8 ucOuiType,
- IN PUINT_8 pucIE, IN UINT_16 u2IELength, OUT PPUINT_8 ppucAttriList, OUT PUINT_16 pu2AttriListLen);
- VOID p2pRunEventAAATxFail(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- WLAN_STATUS p2pRunEventAAASuccess(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- WLAN_STATUS p2pRunEventAAAComplete(IN P_ADAPTER_T prAdapter, IN P_STA_RECORD_T prStaRec);
- WLAN_STATUS p2pSendProbeResponseFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- BOOLEAN p2pFsmRunEventRxProbeRequestFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- VOID p2pFsmRunEventRxProbeResponseFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb, IN P_BSS_DESC_T prBssDesc);
- WLAN_STATUS p2pRxPublicActionFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- WLAN_STATUS p2pRxActionFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- VOID p2pFsmRunEventRxGroupNegotiationRspFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- VOID p2pFsmRunEventRxGroupNegotiationCfmFrame(IN P_ADAPTER_T prAdapter, IN P_SW_RFB_T prSwRfb);
- #if 0 /* frog */
- BOOLEAN scanMatchFilterOfP2P(IN P_SW_RFB_T prSWRfb, IN PP_BSS_DESC_T pprBssDesc);
- #endif /* frog */
- VOID
- p2pProcessEvent_UpdateNOAParam(IN P_ADAPTER_T prAdapter,
- UINT_8 ucNetTypeIndex, P_EVENT_UPDATE_NOA_PARAMS_T prEventUpdateNoaParam);
- VOID p2pFuncCompleteIOCTL(IN P_ADAPTER_T prAdapter, IN WLAN_STATUS rWlanStatus);
- /*******************************************************************************
- * F U N C T I O N S
- ********************************************************************************
- */
- #ifndef _lint
- /* Kevin: we don't have to call following function to inspect the data structure.
- * It will check automatically while at compile time.
- * We'll need this for porting driver to different RTOS.
- */
- static inline VOID p2pDataTypeCheck(VOID)
- {
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(IE_P2P_T) == (2 + 4 + 1)); /* all UINT_8 */
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRIBUTE_T) == (3 + 1));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_STATUS_T) == (3 + 1));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_REASON_T) == (3 + 1));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_CAPABILITY_T) == (3 + 2));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_DEV_ID_T) == (3 + 6));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_GO_INTENT_T) == (3 + 1));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_CFG_TIMEOUT_T) == (3 + 2));
- #if CID52_53_54
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_LISTEN_CHANNEL_T) == (3 + 5));
- #else
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_LISTEN_CHANNEL_T) == (3 + 5));
- #endif
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_GROUP_BSSID_T) == (3 + 6));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_EXT_LISTEN_TIMING_T) == (3 + 4));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_INTENDED_IF_ADDR_T) == (3 + 6));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_MANAGEABILITY_T) == (3 + 1));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_CHANNEL_T) == (3 + 4));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(CHANNEL_ENTRY_FIELD_T) == 3);
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_NOA_T) == (3 + 3));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(NOA_DESCRIPTOR_T) == 13);
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(DEVICE_TYPE_T) == 8);
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_DEV_INFO_T) == (3 + 6 + 2 + 8 + 1 + 8));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(DEVICE_NAME_TLV_T) == (4 + 32));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_CLIENT_INFO_DESC_T) == (1 + 6 + 6 + 1 + 2 + 8 + 1 + 8));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_GROUP_INFO_T) == (3 + (1 + 6 + 6 + 1 + 2 + 8 + 1 + 8)));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_GROUP_ID_T) == (3 + 38));
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_INTERFACE_T) == (3 + 13));
- #if CID52_53_54
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_OPERATING_CHANNEL_T) == (3 + 5));
- #else
- DATA_STRUCT_INSPECTING_ASSERT(sizeof(P2P_ATTRI_OPERATING_CHANNEL_T) == (3 + 5));
- #endif
- }
- #endif /* _lint */
- #endif /* _P2P_FSM_H */
|