[erlang-questions] SCTP PPID change

Raimo Niskanen raimo+erlang-questions@REDACTED
Wed Oct 14 12:33:59 CEST 2009


On Wed, Oct 14, 2009 at 03:09:33AM +0400, Ahmed Ali wrote:
> Hi,
> 
> I'm experminting with SCTP support in Erlang. I'm using Solaris 10
> with Erlang R13B02. SCTP support is enabled during compiling Erlang.
> 
> I'm having problem with changing ppid to 3 (M3UA). The first thing I
> did is to add sctp_default_send_param in gen_sctp:connect/4. However,
> I got the error below. I've tried to used gen_sctp:send/3 instead of
> send/4 as below but I get exactly the same error. I also tried to
> troubleshoot the issue and found out the error is generated from
> module prim_inet.erl in erts code. My guess is that type_value/3
> function checks that the values of the supplied #sctp_sndrcvinfo{} are
> valid but appearntly, something is not correct in #sctp_sndrcvinfo{}
> record I'm sending.
> 
> Without setting PPID, everything works and I could see traffic is sent
> and received correctly. Any help is appreciated.
> 
> gen_sctp:send(S, #sctp_sndrcvinfo{stream=Stream,
>                                       assoc_id=Assoc,
>                                       ppid=3}, Data)
I guess this is what you ment:

gen_sctp:send(S,
    #sctp_sndrcvinfo{stream=Stream,
                     assoc_id=Assoc#sctp_assoc_change.assoc_id,
                     ppid=3}, Data)

The shortcut of using #sctp_assoc_change{} as assoc_id
in gen_sctp:send/4 is not appropriate for gen_sctp:send/3.
Argument 2 has to be a #sctp_sndrcvinfo{} and 
#sctp_sndrcvinfo.assoc_id has to be an integer.
Read inet_sctp.hrl.

> 
> {error,
>       {type,
>           {record,set,
>               {sctp_sndrcvinfo,
>                   [uint16,0],
>                   [],
>                   [{bitenumlist,
>                        [{unordered,1},{addr_over,2},{abort,4},{eof,8}],
>                        uint16},
>                    []],
>                   [uint32,0],
>                   [uint32,0],
>                   [uint32,0],
>                   [],[],
***>                   [sctp_assoc_id,0]},
>               {sctp_sndrcvinfo,0,undefined,undefined,3,undefined,undefined,
>                   undefined,undefined,
***>                   {sctp_assoc_change,comm_up,0,5,17,1}},
>               10
> 	  }
>        }
> }

*** Type mismatch

> 
> Best regards,
> 
> Ahmed
> 
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB


More information about the erlang-questions mailing list