This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC3235MODSF: soft roaming - how to set it up

Part Number: CC3235MODSF

Having 2 routers: #1 in _router_ mode the other #2 running as _acces_point_, they are over ethernet cable connected to the same network and located ~50meters apart.

I used the example code from SWRU455L chapter 4.3.6.
The RSSI threshold is -75 with hysteresis 3.
The api is called 1x at startup and then sl_WlanConnect to #1 _router_.

The system connects at startup to the _router_ then when I move around while streaming data to a server and as I move further from #1 I see that the rssi quality trigger is fired/called but nothing else really happens afterwards.
Even when I get further away from the _router_ I get the disconnect notification but also nothing else happens.
When I move back to the _router_ the system doesn't even reconnect.

I tried to use the same and also different SSID names for the _router_ and for the _access_point_. No luck.
I tried to add them to the profiles. Did not help.

As far as I understood this feature I would need to have the SSID (or SSIDs if they are different) stored among the profiles and then when the link quality callback is triggered it should perform and scan and connect to a stronger AP when there is one.

Power policy is set to SL_WLAN_LOW_POWER_POLICY,.
Connection policy is set to AUTO (Fast,anyp2p, autoprov is disabled).

What do I miss in the setup or how could I test the soft roaming behavior?

  • Hi User,

    This feature should be working in the background, so if you get the trigger callback, it means the NWP is attempting to do the soft roaming and keep you connected to the strongest Access Point. I don't believe you will get further callbacks, if all goes well, your connection should stay stable.

    BR,

    Vince 

  • Obviously I ask because it doenst go well. So the question is how can I make sure that my setup is correct and I'm not seeing a bug?

  • So here is a log:

    PING...PONG
    PING...PONG
    ..[wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-77 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-76 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-77 TriggerId=1
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_DISCONNECT ssid=TEST_2G4 reason=109

    I have a router "TEST_2G4" on channel 10 and a "TEST_2G4_2" on channel 10 connected to the same network.
    Both SSID and passwords are added as profiles to the device.
    This "log" shows when I move out of range router "TEST_2G4" , for a while I get ping messages then the link quality report and a disconnect message.
    I'm pretty sure the roaming does not work in this case. The device doesnt even reconnect when the #1 router "TEST_2G4" again gets back to range.

  • HI,

    Can you take NWP logs of this issue? Please look at the NWP logs section in the following document for instructions - 

    http://www.ti.com/lit/swru455

    BR,

    Vince 

  • roaming.log
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-66 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-68 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-70 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-73 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-78 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-80 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-84 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-83 TriggerId=1
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-85 TriggerId=1
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-87 TriggerId=1
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_DISCONNECT ssid=TEST_2G4 reason=109
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_CONNECT channel=10 bssid=D8:47:32:52:6A:F6 ssid=TEST_2G4_2
    [netapp] IP Acquired: IP=10.0.0.186 , Gateway=10.0.0.1
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-72 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-70 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    [wifi] SimpleLinkWlanEventHandler SL_WLAN_EVENT_LINK_QUALITY_TRIGGER rssi=-69 TriggerId=1
    PING...PONG
    PING...PONG
    PING...PONG
    PING...PONG
    
    8712.teraterm.log
    �z	�
    6
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"��)w"G
    	x"	y"	�
    "�	
    "	"2	c"	ͧ		Q	H�	+	$(!#B�12�1?�kR2
    �)z#6��6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"/�*)w"`
    	x"	y"	�
    "�	
    "
    	"1	c"	ͧ		Q	H�	5	$(!#B�12�1?�kR2x
    �z	�
    6
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"�O)w"[
    	x"	y"	�
    "�	
    "	"2	c"	ͧ		Q	H�		$(!#B�12�1?�kR2n
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"�$)w";
    	x"	y"	�
    "�	
    "	"2	c"	ͧ		Q	H�		$(!#B�12�1?�kR2d
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v":�)w"P
    	x"	y"	�
    "N
    "	".	c"	ͧ		Q	H�		$(!#B�12�1?�kR2Z
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"��s)w"n
    	x"	y"	�
    "
    "	".	c"	ͧ		Q	H�	!	$(!#B�12�1?�kR2P
    �z	�
    )	
    6
    �z	�
    6
    �)z-6��6
    �z	�
    11c��
    @�Z`$
    \<	)v"�:)w"E
    	x"	y"	�
    "�	
    "	"/	c"	ͧ		Q	H�	+	$(!#B�12�1?�kR2F
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"R�	)w"a
    	x"	y"	�
    "�	
    "	"1	c"	ͧ		Q	H�	5	$(!#B�12�1?�kR2<
    �z	�
    6
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"'�A)w"o
    	x"	y"	�
    "�	
    "	"2	c"	ͧ		Q	H�		$(!#B�12�1?�kR22
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"�Q)w"Z
    	x"	y"	�
    "�	
    "	"1	c"	ͧ		Q	H�		$(!#B�12�1?�kR2(
    �z	�
    6
    �z	�
    6
    �z	�
    11c��
    @�Z`$
    \<	)v"*�4)w"d
    	x"	y"	�
    "�	
    "	"1	c"	ͧ		Q	H�		$(!#B�12�1?�kR2
    �z	�
    6
    �z	�
    0@!�`,,!�`,,		
    		
     				�	�'�/www/index.html	)C�	!'�/www/index.html	)C�))C�	�	�	�))C��0@!�`r,!�`r,!�`\l,))C���))C��V�	!'�/sys/ap.cfg	%�)%�	�)%�4)%�4)	%�	��	4"V�	4"	."mysi	."mple	."link	."-27E	."288))C�\�))C�"�))C��&�))C��.�))C�t6�))C�:>�))C�F�))C��M�))C�
    U�))C�R]t)	)C���c	0@!�`,,!�`,,	0@!�`,,!�`,,	P		
    		
     				�	�'�/www/sps_login.cfg	�h	!'�/www/sps_login.cfg	�h)�h	�	�	�)�h+)	�h	�+	0@!�`,,	0@!�`,,	P0@!�`,,!�`,,		
    		
     				�	�'�/www/favicon.ico	aAT[e(	�'�www/favicon.ico	��o[e(	�'�/www/safe/favicon.ico	m�[e(	�'�www/safe/favicon.ico	
    k[e(	�	�	�	�
    	�
    	�
    	�s	�2	�
    	�	�	���$6x0)	x)	x)T!x.�.	�	�	�	0@!�`,,	0@!�`,,	P6
    �z	�
    0@!�`,,!�`,,		
    		
     				�	� ND] N	E
    	x�
    �	T	�	�)XL* �
    )D	 N)и�6{)	{	��		.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$	r	)"++)/#
    ����	0#>
    
    	=	�)VL* ;	T	r	)",,	
    )���D] N	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )D	 N0@!�`,,	0@!�`,,	P	�)VL* ;	T	r	)",,	
    )���D] N	E
    	x	�
    >
    
    	=	T	�	�)XL* �
    )D	 N	.$Appl	r	)"++)/#$����	0#Appl>
    
    	=	.$APOL	r	)"++)/#$����	0#APOL>
    
    	=	.$Appl	r	)"++)/#$����	0#Appl>
    
    	=	.$APOL	r	)"++)/#$����	0#APOL>
    
    	=	.$Serv	r	)"++)/#,����	0#Serv>
    
    	=	.$Serv	r	)"++)/#,����	0#Serv>
    
    	=	�)VL* ;	T	r	)",,	
    )���>
    
    	=6
    �z	1_7�="d
    C`w�1_7�="d
    C`w�0@!�`,,!�`,,		
    		
     				�	�'�/www/netlist.txt	�[e(	�'�www/netlist.txt	RmE[e(	�'�/www/safe/netlist.txt	[e(	�'�www/safe/netlist.txt	[e(	�	�	0@!�`,,	0@!�`,,	P11�Q���
    @�Z`$
    \<	)v"m�[)w"�	x"	y"	�
    "�
    ""	".	c"	ͧ		Q	K�		$(!#B�12�1?�kR2~6
    �z�
    )	
    6
    �z	�
    6
    �z	�
    6
    �z	�
    11�Q���
    @�Z`$
    \<	)v"L��)w":
    	x"	y"	�
    "�	
    "	"0	c"	ͧ		Q	K�		$(!#B�12�1?�kR2t6
    �)z12��6
    �z	�
    	E
    	x�
    �	T	�	�)XL* �
    )D	 N	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	�)VL* ;	T	r	)",,	
    )���D] N	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )D	 N6
    �z	�
    	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	�)VL* ;	T	r	)",,	
    )���D] N	E
    	x	�
    >
    
    	=	T	�	�)XL* �
    )D	 N	
    		.$Appl	r	)"++)/#$����	0#Appl>
    
    	=	.$APOL	r	)"++)/#$����	0#APOL>
    
    	=	.$edur	r	)"++)/#$����	0#edur>
    
    	=	.$FHGu	r	)"++)/#$����	0#FHGu>
    
    	=	.$APOL	r	)"++)/#$����	0#APOL>
    
    	=	.$Lock	r	)"++)/#$����	0#Lock>
    
    	=	.$inte	r	)"++)/#$����	0#inte>
    
    	=	.$Appl	r	)"++)/#$����	0#Appl>
    
    	=	.$Serv	r	)"++)/#,����	0#Serv>
    
    	=	.$Serv	r	)"++)/#,����	0#Serv>
    
    	=	�)VL* ;	T	r	)",,	
    )���>
    
    	=0@!�`,,!�`,,		
    		
     				�	�'�/www/netlist.txt	�[e(	�'�www/netlist.txt	RmE[e(	�'�/www/safe/netlist.txt	[e(	�'�www/safe/netlist.txt	[e(	�	�	0@!�`,,	0@!�`,,	P6
    �z�11Q����
    @�Z`$
    \<	)v"\�)w"e
    	x"	y"	�
    "�
    "	"7	c"	ͧ		Q	K�		$(!#B�12�1?�kR2j6
    �z	�
    6
    �z	�
    11Q����
    @�Z`#
    \<	)v"���)w"q
    	x"	y"	�
    	"	
    "	".	c"	ͧ		Q	K�	!	$(!#B�12�1?�kR2`6
    �z	�
    	E
    	x�
    �	T	�	�)XL* �
    )D	 N	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	�)VL* ;	T	r	)",,	
    )���D] N	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )D	 N6
    �z	�
    	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	�)VL* ;	T	r	)",,	
    )���D] N	E
    	x	�
    >
    
    	=	T	�	�)XL* �
    )D	 N	.$Appl	r	)"++)/#$����	0#Appl>
    
    	=	.$APOL	r	)"++)/#$����	0#APOL>
    
    	=	.$edur	r	)"++)/#$����	0#edur>
    
    	=	.$APOL	r	)"++)/#$����	0#APOL>
    
    	=	.$FHGu	r	)"++)/#$����	0#FHGu>
    
    	=	.$inte	r	)"++)/#$����	0#inte>
    
    	=	.$Lock	r	)"++)/#$����	0#Lock>
    
    	=	.$FHGu	r	)"++)/#$����	0#FHGu>
    
    	=	.$inte	r	)"++)/#$����	0#inte>
    
    	=	.$Lock	r	)"++)/#$����	0#Lock>
    
    	=	.$	r	)"++)/#$����	0#
    >
    
    	=	.$Appl	r	)"++)/#$����	0#Appl>
    
    	=	.$Serv	r	)"++)/#,����	0#Serv>
    
    	=	.$Serv	r	)"++)/#,����	0#Serv>
    
    	=	�)VL* ;	T	r	)",,	
    )���>
    
    	=0@!�`,,!�`,,		
    		
     				�	�'�/www/netlist.txt	�[e(	�'�www/netlist.txt	RmE[e(	�'�/www/safe/netlist.txt	[e(	�'�www/safe/netlist.txt	[e(	�	�	0@!�`,,	0@!�`,,	P11�k���
    @�Z`$
    \<	)v"�	)w"�		x"	y"	�
    "�
    "!	"%	c"	ͧ		Q	K�	+	$(!#B�12�1?�kR2V6
    �z�6
    �z	�
    6
    �z	�
    11�k���
    @�Z`$
    \<	)v"
    �D)w"V
    	x"	y"	�
    "�	
    "	"/	c"	ͧ		Q	K�	5	$(!#B�12�1?�kR2L6
    �z	�
    6
    �z	�
    6
    �z	�
    6�	)"11	E
    	x�
    �>
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r	.$APOL	r	)"++)/#
    ����	0#APOL(aAPOL$a
    1%APOL�>
    
    	=	z	.$APOL	H
    		.$APOL	r	)"++)/#
    ����	0#APOL(aAPOL$a
    1%APOL�>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	�)VL* ;	T	r	)",,)���D] N	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )D	 N	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	�)VL* ;	T	r	)",,!1
    APOL� 1
    APOL� >
    
    	=0@!�`,,!�`,,		
    		
     				�	�'�/www/netlist.txt	�[e(	�'�www/netlist.txt	RmE[e(	�'�/www/safe/netlist.txt	[e(	�'�www/safe/netlist.txt	[e(	�	�	0@!�`,,	0@!�`,,	P11S����
    @�Z`$
    \<	)v"~�)w"
    	x"	y"	�
    "1
    "	".	c"	ͧ		Q	K�		$(!#B�12�1?�kR2B6
    �z	6�	)"11	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r6
    �)z	:��	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	�)VL* ;	T	r	)",,)���D] N	E
    	x	�
    >
    
    	=	T	�	�)XL* �
    )D	 N	.$Serv	r	)"++)/#$����	0#Serv>
    
    	=	.$Serv	r	)"++)/#$����	0#Serv>
    
    	=	�)VL* ;	T	r	)",,!>
    
    	=1_7�="d
    �bw�1_7�="d
    �bw�6
    �zn6�	)"11	E
    	x	�
    >
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r	.$Serv	r	)"++)/#$����	0#Serv>
    
    	=	�)VL* ;	T	r	)",,)���!>
    
    	=11�"���
    @�Z`$
    \<	)v"��N
    )w"I
    	x"	y"	�
    "�
    ""	"(	c"	ͧ		Q	K�		$(!#B�12�1?�kR286
    �z	�
    )	
    6�	)"11	E
    	x�
    �>
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	�)VL* ;	T	r	)",,)���D] N	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )D	 N6
    �z	�
    	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	�)VL* ;	T	r	)",,!>
    
    	=61_7�="d
    	cw�6
    �z	x6�	)"11	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r	�)VL* ;	T	r>
    
    	=61_7�="d
    cw�0@!�`,,!�`,,		
    		
     				�	�'�/www/netlist.txt	�[e(	�'�www/netlist.txt	RmE[e(	�'�/www/safe/netlist.txt	[e(	�'�www/safe/netlist.txt	[e(	�	�	11#���
    @�Z`$
    \<	)v"��m
    )w"T
    	x"	y"	�
    "^
    ""!	"+	c"	ͧ		Q	K�		$(!#B�12�1?�kR2.1_7�="d
    'cw�0@!�`,,	0@!�`,,	P6
    �z	
    6�	)"114B�6��)	�	r>
    
    	=6661_7�="d
    Ecw�61_7�="d
    Ecw�6
    �z	1_7�="d
    Ecw�6666�	)"114B�6��)	�	r>
    
    	=6
    �z61_7�="d
    ccw�1_7�="d
    ccw�61_7�="d
    ccw�11'���
    @�Z`$
    \<	)v"���
    )w"�
    	x"	y"	�
    "m
    "�	""	c"	ͧ		Q	K�	!	$(!#B�12�1?�kR2$61_7�="d
    mcw�661_7�="d
    mcw�6
    �z�1_7�="d
    mcw�61_7�="d
    wcw�1_7�="d
    wcw�61_7�="d
    wcw�66�	)"114B�6��)	�	r>
    
    	=6
    �z
    61_7�="d
    cw�1_7�="d
    cw�61_7�="d
    cw�1_7�="d
    cw�66
    z�
    661_7�="d
    
    cw�1_7�="d
    
    cw�1_7�="d
    
    cw�666�	)"114B�6��)	�	r>
    
    	=1_7�="d
    
    cw�11+���
    @�Z`$
    \<	)v"<
    )w"�
    	x"	y"	�
    "7
    "	"	c"	ͧ		Q	K�	+	$(!#B�12�1?�kR261_7�="d
    cw�61_7�="d
    cw�1�P�d
    lgTf66
    �z1_7�="d
    cw�1�P�d
    lgTf1_7�="d
    cw�61�P�d
    lgTf1_7�="d
    cw�61�P�d
    lgTf61_7�="d
    cw�1�P�d
    lgTf1�P�d
    lgTf1�P�d
    lgTf61�P�d
    lgTf1�P�d
    lgTf6
    z061�P�d
    lgTf66�	)"114B�6��)	�	r>
    
    	=1_7�="d
    cw�1�P�d
    lgTf61`
    1_7�="d
    cw�1�P�d
    lgTf61_7�="d
    cw�1�P�d
    lgTf61_7�="d
    cw�1�P�d
    lgTf61_7�="d
    cw�1�P�d
    lgTf1_7�="d
    cw�1�P�d
    lgTf61_7�="d
    cw�1�P�d
    lgTf1_7�="d
    cw�1`
    1�P�d
    lgTf6
    1_7�="d
    cw�1�P�d
    lgTf61_7�="d
    cw�6
    �z1�P�d
    lgTf61_7�="d
    cw�6	!LY
    	�		�)-	
    	�)/)/)	*	�	�	�	r	)";�G2R:Bk�@"m!a>
    
    	=	
    !aBB�
    !a!aBB�
    !a!aBB�
    !a!aBB�
    9
    7!`G	), ieX��), .-X��9
    V	�!		�
    A
    "	5	)�"mk��APOL6L)		3	(aR�	`	Y#APOL	�"APOL	�	Y#APOL	Y#APOL	Y#APOLx
    (a!`G
    !!"!
    1#AAPOLLO_T1#AAPOLLO_T1#AAPOLLO_T1#AAPOLLO_T	T	�	�)A				.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL(aAPOL$a
    1%APOL�>
    
    	=	z	.$APOL	H
    		.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	
    	r&&	)"00!1
    APOL� (a4�"�>
    
    	=	�		8#APOL		L$APOL	M
    4�"�!L$�!L$
    7!`G	q	
     	�	
    	
    	�	
    	�	�			�	�	
    >
    
    	=	 $
    )��)��	r		#	�)V�* ;	T	r	)",,	
    )���D] N	E
    	x	�
    >
    
    	=	T	�D	 N	) 
    	�	!L��k!	�	.$)E	�	�	!
    )"$�G2Rj�
    )#����))	
    )
    )
    ?"q	r""	)"7>
    
    	=)
    )=	))0
    )1 
    	�	!	r!!>
    
    	=	r  >
    
    	=	r>
    
    	=	,	r	)">
    
    	=9
    7!`G!L$�!L$�!L$g\��), -.��!L$k	!`G!L		 #y�G2)� y!L$�		*?"�	r""	)"!L$k	!L�	!L$�	 #c�G2)� c!a>
    
    	=!aBB�
    		!`G!a!aBB�
    	�	*>
    
    	=	5		��A
    "	�"j��APOL6L)			L$APOL	M
    � !�`(a!
    	!'�/tmp/table.arp	l�%)l�%	�)l�%4)l�%4)	l�%���b!`G	), 
    ��), gh��), .4��), 
    ��), hi��), 4.��!L$�		r�a)	!��!�!p!
    '�/tmp/chanhist.tbl	!	�)
    ) )�	�	�	)	�	�	�)XL* �
    	-
    	G$APOL	H$LO_T	I$EST_	J$�G2R	Kj�	�
    
    )
    F)�P)
    )�P
    A)	��H)-)	N$		.$APOL))]"
    )"	Z"d1�P�d
    lgTf1	@d
    1
     d
    1`d
    	.$APOL)]"
    )"	Z"d	(
    	N$	1@d
    @81�bd
    ��hL!'�/tmp/table.arp	l�%)`	�)VL* ;	T	r	)",,	
    )���>
    
    	=	+)l�%	�)�l�%4)�l�%4)	l�%��1�d1_7�="d
    cw�	(
    �!	)w
    
    )$�
    ���
    
    	$
    �!�` )!1`
    	�
    6%�
    )	%	!'�/sys/dhcp.bin	y)y	�)y4)y4)	y��!�`�!'�/sys/dhcp.bin	y)@)/1@
    @81�b
    GتkR2!'�/tmp/table.arp	l�%)p	+	+	+)l�%	�)�l�%4)�l�%4)	l�%��1�d1	@
    1 d
    )�d
    7�=")y	�)�y4)�y4)	y��1��1��
    1��jR2
    
     1�
    t�
    1t�t�t�X!�A)3)2
    
    "B�11Z�$��
    @�Z`$
    \:	)v"��O
    	)w"9�	x"	y"	�
    "�
    "�	"	c"	ͧ			Z�	5	$(!#B�12	1?�jR21�P�d
    lgTf0@!�`,,!�`,,		
    		
     			0@!�`r,!�`r,!�`\l,6�	)"11	E
    	x�
    �>
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r	.$APOL	r	)"++)/#
    ����	0#APOL(aAPOL$a
    1%APOL�>
    
    	=	z	.$APOL	H
    		.$APOL	r	)"++)/#
    ����	0#APOL>
    
    	=	.$APOL	r	)"++)/#
    ����	0#APOL(aAPOL$a
    1%APOL�>
    
    	=	z	.$APOL	H
    		�)VL* ;	T	r	)",,)���D] N	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )D	 N			�
    	�
    	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=		.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=			�)VL* ;	T	r	)",,!1
    APOL� 1
    APOL� >
    
    	=0@!�`,,!�`,,	6
    z�
    0@!�`,,!�`,,	P		
    		
     									�
    	�
    6
    �z�
    6�	)"11	E
    	x)�
    ��>
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#8����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$WLAN	r	)"++)/#d����	0#WLAN>
    
    	=	.$5Lag	r	)"++)/#����	0#5Lag>
    
    	=	�)VL* ;	T	r	)",,)���D] N	E
    	x	�
    >
    
    	=	T	�	�)XL* �
    )D	 N6
    )z�5��	
    		�)VL* ;	T	r	)",,!>
    
    	=1_7�="d
    �cw�1_7�="d
    �cw�11*���
    @�Z`$
    \<	)v"s�5
    )w"��	x"	y"	�
    "y
    ",*	"<	c"	ͧ			Z�			$(!#B�12	1?�jR26�	)"11	E
    	x	�
    >
    
    	=	T	�	�)XL* �
    )4B�6��)	�	r	�)VL* ;	T	r	)",,)���!>
    
    	=6
    �z�6
    �z	�
    

    Attached application LOG and teraterm (nwp log). During roaming I was standing next to AP #2 when the rssi=-80 trigger happened.

    In this example I used the Threshold=-65 value.

    What I see: "when there is a link quality trigger, nothing really happens, however when getting disconnected around -85dB the device reconnects to a (probably strongest?) AP from profiles"

    My expectation is: "when there is a link quality trigger reported, the device performs a scan and selects the strongest AP from the profiles."

    I'm not exactly sure how the soft-roaming is implemented, but roaming to me means "somewhat seamless transition" (so no dropout->disconnect necessary to change to a stronger AP).

    Please let me know if my expectations are different than the soft-roaming implementation or if I do something wrong with the setup.

  •             SlWlanNetworkEntry_t Entries[32];
                _u8 i;
    
                _i16 resultsCount = sl_WlanGetNetworkList(0,32,&Entries[0]);
    
                UART_PRINT("[SCAN] Results: \r\n");
    
                for(i=0; i< resultsCount; i++)
                {
                    UART_PRINT("%d. ", i + 1);
                    UART_PRINT("BSSID: %x:%x:%x:%x:%x:%x    ", Entries[i].Bssid[0], Entries[i].Bssid[1], Entries[i].Bssid[2], Entries[i].Bssid[3], Entries[i].Bssid[4], Entries[i].Bssid[5]);
                    UART_PRINT("RSSI: %d    ", Entries[i].Rssi);
                    UART_PRINT("SSID: %.32s        ", Entries[i].Ssid);
                    UART_PRINT("\r\n");
                }

    Once I get the disconnect notification this  sample-code results nothing. There are no more entries retrieved via the function call. Seems like the wifi driver is down?

  • I believe I foudn the issue. To set the profiles I was using the sl_WlanProfileUpdate(n, ...). The function returns without any error and on the captive portal site you can see the profiles listed.

    The issue is when I tried to read a profile sl_WlanProfileGet returned "SLNETERR_WLAN_GET_PROFILE_INVALID_INDEX".

    The only way to activate/mark a profile valid is to Add it via the WlanProfileAdd.

    It is kind of missleading that the Update does not return INVALID INDEX. Or there is no "Enable/Disable" API for marking what profile is valid.

    I still can not explain: how I got connected to my accesspoint when there were no valid profiles (and I did not use the wlanConnect api) and why the scanning fails if the profiles are not valid and link quality/roaming triggers.

    Once I added the profiles with Del/Add functions the roaming worked.