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>