A query regarding sctp_bindx api in SCTP
Randall Stewart
rrs at cisco.com
Thu Sep 6 06:26:34 PDT 2007
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 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
NSSTG - Cisco Systems Inc.
803-345-0369 <or> 803-317-4952 (cell)
More information about the freebsd-net
mailing list