From: Michael T. <Mic...@lu...> - 2009-09-18 23:03:52
|
On Sep 18, 2009, at 9:25 PM, Bhaskar Dutta wrote: >> From: Michael Tüxen [mailto:Mic...@lu...] >> >> On Sep 18, 2009, at 1:34 PM, Bhaskar Dutta wrote: >> >>> Hi All, >>> >>> Section 4.2.1 (Add IP Address) of RFC 5061 (SCTP Dynamic Address >>> Reconfiguration) says: >>> >>> " Address Parameter: TLV >>> If the address 0.0.0.0 or ::0 is provided, the source address of >>> the packet MUST be added." >>> >>> Since sctp_bindx API doesn't provide any arguments to specify the >>> source IP address, how can a client send an ASCONF chunk with source >>> IP different from the INIT's source? >>> >>> The linux kernel upon reception of an ASCONF Chunk, uses the >>> packet's source IP when the IP address parameter is 0.0.0.0 or ::0. >>> But I couldn't find any analogous code when the user calls a >>> sctp_bindx >> The kernel can send the packets using 0.0.0.0 without explicitly >> being >> asked to do so via the socket API. >> >> For example if the application binds to the wildcard address, the >> kernel >> can setup the association single homed and then add the addresses. > > My application server using SCTP over SIP cannot bind to *, it can > bind to a specific set of addresses only. I can start with single- > homed all right, but how do I achieve the above then? I guess you mean SIP/SCTP, right? But what is the sense of explicitly binding to a set of private addresses the peer never sees? Could you provide some information about the addressing you are expecting to use? > > Thanks, > Bhaskar > > >>> >>> I looked into function sctp_setsockopt_bindx -> sctp_bindx_add -> >>> sctp_send_asconf_add_ip, sctp_send_asconf, >>> sctp_make_asconf_update_ip >>> (net/sctp/socket.c). >>> >>> Am I missing something or this requires an extension in the >>> sctp_bindx API as well as the kernel implementation? >>> >>> TIA. >>> >>> Regards, >>> Bhaskar > > > |