[erlang-questions] diameter_sctp problem

Anders Svensson <>
Tue Jan 21 17:42:21 CET 2014


Hi Sharmilla.

On Tue, Jan 21, 2014 at 2:29 PM, Sharmila Pillai
<> wrote:
> Hi Anders,
>
> No, I am not setting the stream identifier explicitly. The SID in the
> request is 10 and the diameter module seems to put that in the response as
> well?

Indeed it does, which is just plain wrong. It's the fact that you have
a more inbound streams than outbound streams that causes you to run
into the fault. You can work around it when replying to a request by
explicitly setting transport_data = undefined in a diameter_packet
record containing the answer message.

A fix should make its way to github by next week. Thanks for the report.

/Anders, Erlang/OTP


>
> regards,
> Sharmila.
>
>
> On Tue, Jan 21, 2014 at 12:15 PM, Anders Svensson <>
> wrote:
>>
>> Hi Sharmilla.
>>
>> On Tue, Jan 21, 2014 at 10:21 AM, Sharmila Pillai
>> <> wrote:
>> > Hi,
>> >
>> > I'm encountering an error when using DIAMETER over SCTP.
>> >
>> > I turned on dbg tracing, and this is what I see.
>> >
>> > (<0.527.0>) call
>> >
>> > diameter_sctp:send(10,Bin,{transport,<0.526.0>,accept,#Port<0.10834>,96747,undefined,{16,10},2})
>>
>> The stream identifier here (first argument) looks to be equal to the
>> number of outbound streams, which is 1 more than the maximal stream
>> identifier. Are you setting the stream identifier explicitly when
>> sending?
>>
>> /Anders, Erlang/OTP
>>
>>
>> > (<0.527.0>) call diameter_sctp:send(#Port<0.10834>,96747,10,Bin)
>> > (<0.527.0>) call diameter_sctp:x({send,einval})
>> > (<0.527.0>) exception_from {diameter_sctp,x,1}
>> > {exit,{shutdown,{send,einval}}}
>> > (<0.527.0>) exception_from {diameter_sctp,send,4}
>> > {exit,{shutdown,{send,einval}}}
>> > (<0.527.0>) exception_from {diameter_sctp,send,3}
>> > {exit,{shutdown,{send,einval}}}
>> > (<0.527.0>) exception_from {diameter_sctp,send,2}
>> > {exit,{shutdown,{send,einval}}}
>> > (<0.527.0>) exception_from {diameter_sctp,transition,2}
>> > {exit,{shutdown,{send,einval}}}
>> > (<0.527.0>) exception_from {diameter_sctp,t,2}
>> > {exit,{shutdown,{send,einval}}}
>> > (<0.527.0>) exception_from {diameter_sctp,handle_info,2}
>> > {exit,{shutdown,{send,einval}}}
>> > (<0.527.0>) call
>> >
>> > diameter_sctp:terminate({shutdown,{send,einval}},{transport,<0.526.0>,accept,#Port<0.10834>,96747,undefined,{16,10},2})
>> > (<0.527.0>) call diameter_sctp:close(#Port<0.10834>,96747)
>> > (<0.527.0>) returned from diameter_sctp:close/2 -> ok
>> > (<0.527.0>) returned from diameter_sctp:terminate/2 -> ok
>> > (<0.315.0>) call
>> >
>> > diameter_sctp:handle_info({'DOWN',#Ref<0.0.0.47966>,process,<0.527.0>,{shutdown,{send,einval}}},{listener,#Ref<0.0.0.1361>,#Port<0.4307>,2,786532,
>> >
>> > I'm not sure why {error, einval} is being returned when a response is
>> > being
>> > sent on the SCTP connection. If I look at the packet capture, it looks
>> > like
>> > an SCTP SHUTDOWN is being sent back. Any pointers please?
>> >
>> > Thanks,
>> > Sharmila
>> >
>> >
>> > _______________________________________________
>> > erlang-questions mailing list
>> > 
>> > http://erlang.org/mailman/listinfo/erlang-questions
>> >
>
>



More information about the erlang-questions mailing list