SCTP : problems in sending ASCONF chunks

Randall Stewart rrs at lakerest.net
Wed Dec 31 20:16:55 UTC 2008


Aman:

You may also want to contact Vlad  (copied above) who is responsible
for the lk-sctp implementation.. he may be able to direct you to
the one that will have all his latest fixes..

Regards

R
On Dec 30, 2008, at 10:59 AM, <ajassal.ext at orange-ftgroup.com> <ajassal.ext at orange-ftgroup.com 
 > wrote:

>
> Hello M.Tüxen,
>
> Today I switched T (the machine I use for testing, and that sends  
> data to my PC) to FreeBSD 7.0. And I was very glad to see that my  
> SCTP hard handover tests went through successfully :-)
>
> I am very grateful to you, for pointing out that I should check the  
> INIT - INIT-ACK exchange, because so far I really didn't understand  
> why my tests failed all the time.
>
> About lksctp : up until now, my problems were due to the fact that  
> the CN was running under Linux, with the lksctp implementation, and  
> that it didn't indicate in the INIT-ACK that it supports ASCONF,  
> ASCONF-ACK and AUTH chunks at least, even if we have set the  
> parameter net.sctp.addip_enable to 1. These are required for Dynamic  
> Address Reconfiguration according to the RFC and very likely in  
> FreeBSD implementation for sending ASCONF.
>
> I will perform tests between my PC running under FreeBSD and T  
> running on Fedora Core 9 to see if I have better results than what  
> I've had so far (since I was using Fedora Core 7). I will keep you  
> updated :-)
>
> Again, thanks a LOT for the help you provided, I'm truly thankful  
> for this.
>
>
> Aman Jassal
>
>
>
> -----Message d'origine-----
> De : Michael Tüxen [mailto:Michael.Tuexen at lurchi.franken.de]
> Envoyé : lundi 29 décembre 2008 19:00
> À : zze-Abac JASSAL A ext RD-RESA-ISS
> Cc : freebsd-net at freebsd.org; DAOUD TRIKI Khadija RD-RESA-ISS
> Objet : Re: SCTP : problems in sending ASCONF chunks
>
> Hi Aman,
>
> comments in-line.
>
> Best regards
> Michael
>
> On Dec 29, 2008, at 6:12 PM, <ajassal.ext at orange-ftgroup.com> <ajassal.ext at orange-ftgroup.com 
>   > wrote:
>
>>
>> Hello M.Tüxen,
>>
>> I performed a quick test and at the INIT/INIT-ACK exchange, I noticed
>> the following :
>>
>> - In the INIT chunk, the Supported Extensions Parameter field
>> indicates that ASCONF, ASCONF-ACK, FORWARD-TSN, PKTDROP, STREAM_RESET
>> and AUTH are supported
> OK. That is the FreeBSD box.
>>
>> - In the INIT-ACK chunk, there is no field indicating that any of
>> the chunks listed above are supported...
> So it does not support ASCONF and AUTH.
> At least on a Fedora 9 box you need to enable ADD-IP by setting the
> sysctl variable
> net.sctp.addip_enable
> to 1.
> To enable SCTP-AUTH you need to set the sysctl variable
> net.sctp.auth_enable
> to 1.
> I'm not sure whether the Linux box support SCTP-AUTH or not... So the
> second step might not work. If this is the case you can disable the
> AUTH requirement for ASCONF chunks by setting on the FreeBSD box the
> sysctl
> variable
> net.inet.sctp.asconf_auth_nochk
> to 1
>
> Let me know if this works...
>>
>>
>> I didn't think about looking in this before >_<
>>
>> Since there is no indication given to my PC, perhaps my PC assumes
>> that T doesn't support ASCONF, ASCONF-ACK, FORWARD-TSN, PKTDROP,
>> STREAM_RESET and AUTH.
> Correct. At least some of the extension are not enabled.
>>
>>
>> Could it be that, because it doesn't see any Supported Extensions
>> Parameter field in the INIT-ACK, my PC doesn't try to send any
>> ASCONF chunk ?? Do we absolutely need to have the ASCONF, ASCONF-ACK
>> and AUTH parameters in the Supported Extensions Parameter, in both
>> the INIT and the INIT-ACK chunks, to have the possibility of sending
>> an ASCONF chunk ?
> In principle, yes! You can work around the AUTH chunks as indicated
> above, but this
> violates the specification and is only supported to interwork with
> legacy implementations.
>>
>>
>>
>> Kind regards
>>
>>
>> Aman Jassal
>>
>>
>> -----Message d'origine-----
>> De : Michael Tüxen [mailto:Michael.Tuexen at lurchi.franken.de]
>> Envoyé : lundi 29 décembre 2008 16:49
>> À : zze-Abac JASSAL A ext RD-RESA-ISS
>> Cc : freebsd-net at freebsd.org; DAOUD TRIKI Khadija RD-RESA-ISS
>> Objet : Re: SCTP : problems in sending ASCONF chunks
>>
>> Hi Aman,
>>
>> I'm not that familiar with the Linux box configuration. If you look
>> at the INIT/INIT-ACK exchange, does the Linux box support ASCONF and
>> the SCTP-AUTH extension? Both are required...
>>
>> Best regards
>> Michael
>> On Dec 29, 2008, at 2:36 PM, <ajassal.ext at orange-ftgroup.com> <ajassal.ext at orange-ftgroup.com
>>> wrote:
>>
>>>
>>> Hello M.Tüxen,
>>>
>>> No, only the PC is running under FreeBSD 7.0. T is running under
>>> Linux
>>> (kernel version is 2.6.21 and the distribution used is Fedora Core
>>> 7).
>>> SCTP is running on T thanks to the lksctp implementation, we loaded
>>> the sctp module on it and made the necessary configurations so that
>>> it
>>> is loaded at boot time.
>>>
>>> Also, I enable net.sctp.addip_enable=1 on T, just in case, I'm not
>>> exactly sure if it has an effect on my tests.
>>>
>>> Kind regards
>>>
>>>
>>> Aman Jassal
>>>
>>> -----Message d'origine-----
>>> De : Michael Tüxen [mailto:Michael.Tuexen at lurchi.franken.de]
>>> Envoyé : lundi 29 décembre 2008 14:09
>>> À : zze-Abac JASSAL A ext RD-RESA-ISS
>>> Cc : freebsd-net at freebsd.org; DAOUD TRIKI Khadija RD-RESA-ISS  
>>> Objet :
>>> Re: SCTP : problems in sending ASCONF chunks
>>>
>>> Hi,
>>>
>>> are both machines (T and you PC) running FreeBSD?
>>>
>>> Best regards
>>> Michael
>>>
>>> On Dec 29, 2008, at 12:33 PM, <ajassal.ext at orange-ftgroup.com> <ajassal.ext at orange-ftgroup.com
>>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I have been working with SCTP and more specifically with the
>>>> mobility
>>>> features of SCTP at my work. Basically, I have been trying to use
>>>> SCTP to perform handover tests between 2 separate Wifi networks. I
>>>> use
>>>> IPv6
>>>> for all my tests.
>>>>
>>>> I have a local LAN (wired-network), on which I have 3 machines, one
>>>> of them is the machine I use to communicate with for the tests  
>>>> (I'll
>>>> call it T to make things simple), and the other two are used as  
>>>> Wifi
>>>> Access Points (say Wifi1 and Wifi2 respectively). Since I work with
>>>> IPv6, I set up both Access Points to send Router Advertisement
>>>> messages periodically (minimum of 3 seconds, maximum of 4 seconds).
>>>> That way I can have automatic address reconfiguration when I  
>>>> connect
>>>> to either of the access points.
>>>>
>>>> The aim of my tests is to use a PC, connect to Wifi1 (for example),
>>>> launch an SCTP association with T (T sends data to my PC), and then
>>>> perform a handover on Wifi2. I do make address reconfiguration
>>>> during
>>>> the handover process. The important point is that I work with only
>>>> ONE address on my network interface. Before I start my tests, I set
>>>> the following sysctl parameters :
>>>>
>>>> # sysctl -w net.inet.sctp.mobility_base=1 # sysctl -w
>>>> net.inet.sctp.mobility_fasthandoff=1
>>>> # sysctl -w net.inet.sctp.debug=0x00f301f0		(that is to dump
>>>> messages in /var/log/messages)
>>>>
>>>> net.inet.sctp.auto_asconf is set to 1 by default.
>>>>
>>>> I use FreeBSD 7.0 on my PC, I don't know if that is extremely  
>>>> useful
>>>> but I'm trying to be thorough. This is the script I use to perform
>>>> handover
>>>> :
>>>>
>>>> ifconfig rum0 inet6 <my old address> delete ifconfig rum0 ssid <the
>>>> target access point> route del -inet6 default <my old gateway>  
>>>> rtsol
>>>> rum0
>>>>
>>>> If I'm not mistaken, the PC should have sent an ASCONF chunk to
>>>> perform dynamic address reconfiguration. However what I observed is
>>>> that nothing happens. No ASCONF chunks are sent, and therefore, T
>>>> doesn't ever know that it should send data on the PC's newly
>>>> acquired
>>>> address.
>>>>
>>>> I tried to investigate the problem myself, by adding some debug  
>>>> logs
>>>> in the sctp source code (to see which functions are called during
>>>> the
>>>> handover process), and it seems as if the kernel doesn't ever add  
>>>> an
>>>> ASCONF chunk to send in its queue... But that's just my
>>>> understanding
>>>> of the problem...
>>>>
>>>> I looked up in the CVS repository for answers, and to see the
>>>> various
>>>> changes that were gradually brought on the code. There, I noticed
>>>> that on the revision dating 24th July 2007, changes were made for
>>>> dynamic address reconfiguration : "Change behaviour so that when  
>>>> the
>>>> last address is deleted (auto-asconf on a boudall endpoint) no
>>>> action
>>>> is taken until an address is added ; at that time an ASCONF
>>>> add+delete is sent (if the asoc is still up)"
>>>>
>>>> In my humble opinion, this is exactly the case that corresponds to
>>>> my
>>>> handover scenario. But I just haven't been able to successfully
>>>> perform it because I don't seem to send any ASCONF chunk. I'm
>>>> struggling to understand why I do not see any ASCONF chunk sent.
>>>>
>>>> If it can help, I'm also attaching links to the kind of debug  
>>>> logs I
>>>> got when performing a handover test. This is the kind of debug logs
>>>> that I got :
>>>>
>>>> http://www.divshare.com/download/6200509-560
>>>>
>>>> This is another debug logfile, but with my own debug logs added in
>>>> the sctp source code :
>>>>
>>>> http://www.divshare.com/download/6200504-2e9
>>>>
>>>>
>>>> Many thanks for your work, and I hope someone will be able to help
>>>> and shed some light on this problem :-)
>>>>
>>>>
>>>> Aman Jassal
>>>>
>>>> _______________________________________________
>>>> freebsd-net at freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>>>> To unsubscribe, send any mail to "freebsd-net-
>>>> unsubscribe at freebsd.org"
>>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>

------------------------------
Randall Stewart
803-317-4952 (cell)
803-345-0391(direct)



More information about the freebsd-net mailing list