[erlang-questions] diameter_sctp problem

Anders Svensson anders.otp@REDACTED
Thu May 22 08:57:48 CEST 2014


On Tue, Jan 21, 2014 at 5:42 PM, Anders Svensson <anders.otp@REDACTED> wrote:
> Hi Sharmilla.
>
> On Tue, Jan 21, 2014 at 2:29 PM, Sharmila Pillai
> <pillai.sharmila@REDACTED> 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.

The "fix" in 17.0 is broken unfortunately. More broken than it was in
fact, and the test case that should have noticed turns out not to
exist. Both problems will be fixed (in the proper sense) in 17.1.

Anders



>
> /Anders, Erlang/OTP
>
>
>>
>> regards,
>> Sharmila.
>>
>>
>> On Tue, Jan 21, 2014 at 12:15 PM, Anders Svensson <anders.otp@REDACTED>
>> wrote:
>>>
>>> Hi Sharmilla.
>>>
>>> On Tue, Jan 21, 2014 at 10:21 AM, Sharmila Pillai
>>> <pillai.sharmila@REDACTED> 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
>>> > erlang-questions@REDACTED
>>> > http://erlang.org/mailman/listinfo/erlang-questions
>>> >
>>
>>



More information about the erlang-questions mailing list