Management Scan Message Conflict

Microchip TCP/IP Stack

Microchip TCP/IP Stack Help
Management Scan Message Conflict

Management scan message conflict 

Management messages must always return successful or it causes an assert in the host driver. An unsuccessful management message can occur when the connection retry is enabled (MY_DEFAULT_LIST_RETRY_COUNT>0) causing the device to be scanning due to a dropped connection, and then a disconnect, or connect, or scan command is sent. 

 

Work around: 

If you are controlling connect/reconnect from the host actively, then disable all firmware retry by using “no scan retry” and “no de-authorization action”. 

 

a. To disable Scan Retry 

WF_CASetListRetryCount(MY_DEFAULT_LIST_RETRY_COUNT); should be 0 

 

b. To disable De-authorization action 

WF_CASetDeauthAction(WF_DO_NOT_ATTEMPT_TO_RECONNECT); 

 

c. To disable De-authentication action 

WF_CASetBeaconTimeoutAction(WF DO NOT ATTEMPT TO RECONNECT); 

 

d. Use “Connect” only on “permanent loss” or “connection failure”. 

 

e. To do a Scan, first check the firmware state first by using WF_CMGetConnectionState() 

i. If the return state is WF_CSTATE_NOT_CONNECTED (or WF_CSTATE_CONNECTION_PERMANENTLY_LOST), then this means firmware is in IDLE, so host can issue host scan safely 

ii. If the return state is WF_CSTATE_CONNECTED_INFRASTRUCTURE, then this means firmware is in CONNECTED. In this case a scan command can be issued but a watchdog timer must be used to time for conflict. Also, ensure the management timer is set for at least 0.4seconds per channel scanned to prevent queued Tx buffer requests from timing out. 

iii. If return state is WF_CSTATE_CONNECTION_IN_PROGRESS ( or WF_CSTATE_RECONNECTION_IN_PROGRESS), then this means firmware is in the middle of connection process and a scan must not be initiated. 

 

f. If “Disconnect” function is desired, a watchdog timer needs to be used to address the case where a conflict occurs with an over the air disassociate or deauthorize. 

 

g. For watchdog timing, advised timing is 2x the management packet timeout (that is, use 4seconds unless the management timeout has been increased). 

 

b. If you are only using the firmware retry and not doing ANY connection management (scan, connect, idle, etc.) then you can use MY_DEFAULT_LIST_RETRY_COUNT>0 or retry forever (MY_DEFAULT_LIST_RETRY_COUNT=255). If you lose connection, you can reconnect using the “connect” API. Do not use “Disconnect”. 

a. If “Disconnect” function is desired, a watchdog timer needs to be used to address the case where a conflict occurs with an over the air disassociate or deauthorize.

Microchip TCP/IP Stack 5.42.08 - June 15, 2013
Copyright © 2012 Microchip Technology, Inc.  All rights reserved.