Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 06 Sep 2007 09:26:21 -0400
From:      Randall Stewart <rrs@cisco.com>
To:        sazzadur rahman <rahman.sazzadur@gmail.com>
Cc:        freebsd-net@freebsd.org
Subject:   Re: A query regarding sctp_bindx api in SCTP
Message-ID:  <46DFFFFD.6000309@cisco.com>
In-Reply-To: <82bdb5ec0709051817j16bfea69u74b9f4978c1f00fc@mail.gmail.com>
References:  <82bdb5ec0709051817j16bfea69u74b9f4978c1f00fc@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Definetly a bug... let me dig in a bit further.. it
appears that ASCONF is not happening on sub-set bound
sockets at all ;-(

I will see if I can figure out why :-D

R

sazzadur rahman wrote:
> Hello,
> I am using sctp patch for freebsd6.1. For dynamic address configuration, I
> am calling sctp_bindx() API after successfull bind() and connect() API's.
> Although sctp_bindx() API successfully returns 0, the debug message shows:
> 
> addr_mgmt_assoc: added to pending list...
> asconf_queue_add: appended asconf ADD_IP_ADDRESS...
> 
> And I didn't see any ASCONF chunk sent to the peer in the tcpdump. Hence, I
> am confused why it should be in the pendling list instead of immediate send
> to peer?
> 
> In draft-ietf-tsvwg-addip-sctp-22.txt: page 20, A3, I have found that "If an
> ASCONF chunk is outstanding, then the ASCONF chunk should be queued for
> later transmission and no further action should be taken until the previous
> ASCONF is acknowledged or a timeout occurs." But as I am calling
> sctp_bindx() for the first time, there should not be any previous ASCONF
> existing.
> 
> Does anyone have any idea what I am missing here?
> I would appriciate any help in this regard.
> 
> Best Regards,
> Md. Sazzadur Rahman,
> Graduate Student,
> School of Computer Science,
> University of Oklahoma,
> Norman, USA
> 
> ---------------------------code segment I have used---------------------
> //socket
>         s = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
> 
> //bind
>         memset(&myAddr, 0, sizeof myAddr);
>         myAddr.sin_family = AF_INET;
>         myAddr.sin_port = htons(5060);
>         myAddr.sin_addr.s_addr = inet_addr("129.15.78.125");
>         if (bind(s, (struct sockaddr *)&myAddr, sizeof myAddr) < 0) {
>                 goto close;
>         }
> //connect
>         memset(&farAddr, 0, sizeof farAddr);
>         farAddr.sin_family = AF_INET;
>         farAddr.sin_port = htons(6060);
>         farAddr.sin_addr.s_addr = inet_addr( "129.15.78.114" );
>         int iRet = connect(s, (struct sockaddr *)&farAddr, sizeof farAddr);
> 
> //sctp_bindx
>         struct sockaddr_in my2ndAddr;
>         memset(&my2ndAddr, 0, sizeof my2ndAddr);
>         my2ndAddr.sin_len = sizeof my2ndAddr;
>         my2ndAddr.sin_family = AF_INET;
>         my2ndAddr.sin_port = htons(5060);
>         my2ndAddr.sin_addr.s_addr = inet_addr("129.15.78.126");
> 
>         iRet = sctp_bindx(s,(struct
> sockaddr*)&my2ndAddr,1,SCTP_BINDX_ADD_ADDR);
> 
> ------------------------------------------
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
> 


-- 
Randall Stewart
NSSTG - Cisco Systems Inc.
803-345-0369 <or> 803-317-4952 (cell)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46DFFFFD.6000309>