> On 16 Jul 2015, at 13:13, Karen Elisabeth Egede Nielsen 
> <karen.niel...@tieto.com> wrote:
> 
> HI Michael,
> 
>> -----Original Message-----
>> From: Michael Tuexen [mailto:michael.tue...@lurchi.franken.de]
>> Sent: Thursday, July 16, 2015 12:45 PM
>> To: Karen Elisabeth Egede Nielsen
>> Cc: Joe Touch; Pal Martinsen (palmarti); taps@ietf.org
>> Subject: Re: [Taps] TAPS Transports and ICMP
>> 
>>> On 16 Jul 2015, at 12:26, Karen Elisabeth Egede Nielsen
>> <karen.niel...@tieto.com> wrote:
>>> 
>>> HI Michael,
>>>>> 
>>>>> [Karen ] This might (the MAY) results in  hard trouble if the
>>>>> association is closed due to entering of dormant state.
>>>>> That's why we believe that this MAY reaction should be coupled with
>>>>> robust dormant state handling.
>>>> I think we have to distinguish two things here:
>>>> 
>>> [Karen ] Yes, I agree.
>>> 
>>>> 1. When you receive an ICMP message you might increment the path
>>>> error  counter or change the path state. When changing the path state
>>>> notify the user about it. This is about ICMP handling
>>> [Karen ]
>>> Yes. But user is not notified of the receipt of ICMPs.
>>> 
>>> I should perhaps tell that we have some SCTP SW versions that follow
>>> the MAY and others which ignores these destination unreachable ICMPs.
>>> 
>>> 2. Deal with the case
>>>> that all paths are inactive, which means deal  with the dormant
>>>> state. This is NOT related to the ICMP handling,  since it doesn't
>>>> matter how you end up in the dormant state.
>>>> It might make ending up there more often, but and implementation
>>>> needs to deal with it anyway.
>>>>> 
>>>>> However, the user is provided with the
>>>>>> information, if requested, either about an association or path
>>>>>> state
>>>>> change.
>>>>> [Karen ] Yes, but the user is not provided with the information that
>>>>> the association was closed due to the receipt ICMPs.
>>>> Correct. But does the application care if the peer sent an ABORT or
>>>> an
>>> ICMP
>>>> Destination unreachable?
>>> 
>>> [Karen ] For TCP the socket api provides the information.
>> How? Isn't it the same as for SCTP? A system call returns -1 and errno is
> set to
>> some value line ECONNRESET or ECONNREFUSED?
> 
> [Karen ] TCP maps the received  soft destination unreachable ICMPs to
> ENETUNREACH or EHOSTUNREACH  pending errors on socket.
OK. FreeBSD provides EHOSTUNREACH instead of ETIMEDOUT for TCP.
It doesn't support ENETUNREACH. I don't think we do this in SCTP...

Best regards
Michael
> Thus at least temporarily this information is available and is notified
> towards the user.
> True that when the connection is closed, the information is overwritten -
> unless multiple pending errors are maintained by the implementation.
> 
>> I think the user can't distinguish from receiving an TCP RST.
>> Am I missing something?
>>> Presumably this is because the application could care.
>>> For implementations that do the "suboptimal" dormant state handling
>>> and follow the MAY here, then an application would care, I think.
>>> 
>>>> I don't think so. And I think both cases are signalled to the
>>>> application for TCP in the same way.
>>>>> [Karen ] Yes, but even if the information is provided, then closing
>>>>> the association does not constitute a soft reaction.
>>>> ICMP9) of https://tools.ietf.org/html/rfc4960#appendix-C tells you
>>>> that
>>> it is
>>>> OK to increment the error counter or mark the destination as
> unreachable.
>>> It
>>>> is up to you to decide what is appropriate in your implementation.
>>> However,
>>>> you should not increment the association error counter, so it
>>>> shouldn't
>>> be an
>>>> association failure.
>>> [Karen ] I agree.
>>>> An association failure can only occur if you move the path state to
>>>> unreachable, have no reachable destinations anymore (dormant state)
>>>> and have decided that this means failing the association. But again,
>>>> this is
>>> related
>>>> to an, in my view, suboptimal handling of the dormant state. FreeBSD
>>> doesn't
>>>> fail the association in this case.
>>> [Karen ] I  agree that this is suboptimal handling of dormant state.
>>> We also do not to this suboptimal handling.
>>> I think that one could say that RFC4960 Appendix C prescriptions for
>>> how to handle soft icmps  could relate to that this can make the
>>> assocs enter dormant state fast and that dormant state implementation
>>> need to relate to this fact if the MAYs are followed.
>> OK.
> [Karen ] Thanks for understanding.
> 
> BR, Karen
>> 
>> Best regards
>> Michael
>>> 
>>> BR, Karen
>>>> 
>>>> Best regards
>>>> Michael
>>>>> 
>>>>> BR, Karen
>>>>>> 
>>>>>> Best regards
>>>>>> Michael
>>>>>>> 
>>>>>>>> In particular, destination unreachables can cause the SCTP
>>>>>>>> connection to
>>>>>>> go
>>>>>>> [Karen ] MAY force. And this MAY of the RFC I  (and we) believe is
>>>>>>> questionable.  We believe that for an implementation to support
>>>>>>> this MAY the implementation MUST implement dormant state
>> handling
>>>>>>> as described (right now) in the SCTP Failover draft = SCTP
>>>>>>> continues to transmit data also when the destinations are
> considered
>> unreachable.
>>>>>>> (and our SCTP implementations do this). Further we think that the
>>>>>>> appropriate soft reaction to ICMP destination unreachable is to
>>>>>>> increment the path error counter, NOT to mark the destination as
>>>>>>> INACTIVE.
>>>>>>> Hopefully we will see these things be clarified in future SCTP
>>>>>>> drafts or ideally in the eventual RFC4960 revision.
>>>>>>> 
>>>>>>>> into a dead state (mark the dest unreachable or increment the
>>>>>>>> path error
>>>>>>>> counter) without indicating anything to the user.
>>>>>>>> 
>>>>>>> [Karen ] The state is not dead if "appropriate" dormant state
>>>>>>> handling is implemented.
>>>>>>> 
>>>>>>>> This seems incorrect to me, given the number of other ways in
>>>>>>>> which SCTP
>>>>>>> can
>>>>>>>> shut down a connection (heartbeat failure, retransmission failre)
>>>>>>>> and is supposed to pass that info to the user.
>>>>>>>> 
>>>>>>> [Karen ] I agree that  when the association is closed as a direct
>>>>>>> result of receipt of ICMPs then this should be communicated to the
>>>>> Users.
>>>>>>> The envisaged approach (from our side) is to define a new error
>>>>>>> code for the sac_error of the SCTP_ASSOC_CHANGE (the notification
>>>>>>> of
>>>>>> comm_LOST):
>>>>>>> 
>>>>>>> sac_error:  If the state was reached due to an error condition
>>> (e.g.,
>>>>>>>   SCTP_COMM_LOST), any relevant error information is available in
>>>>>>>   this field.  This corresponds to the protocol error codes
> defined
>>>>>>>   in [RFC4960].
>>>>>>> 
>>>>>>> Right now we have the possibility to use proprietary error codes
>>>>>>> here, but we would like to go beyond that of course.
>>>>>>> 
>>>>>>> For the destination error counter the information goes into the
>>>>>>> spc_error of the SCTP_PEER_ADDR_CHANGE (the notification of
>>>>>>> destination address unreachability).
>>>>>>> 
>>>>>>> PLEASE allow me to explain the abstract API in terms of a concrete
>>>>>>> one. I do understand the difference.
>>>>>>> The new thing is that the abstract transport API, which if nothing
>>>>>>> else exists in our heads and in our overall modeling, now with
>>>>>>> TAPS, may be defined as a concrete one.
>>>>>>> And I agree with everybody else that this is a good exercise and
>>>>>>> that it is doomed to (correct and) improve things substantially.
>>>>>>> 
>>>>>>>> So, IMO, this is a great example of why studying these APIs as
>>>>>>> abstractions is
>>>>>>>> important and would have prevented this (IMO) oversight.
>>>>>>> [Karen ] We have studied this. But is only bringing this to the
>>>>>>> IETF
>>>>> now.
>>>>>>> Possibly to be addressed for RFC4960 revision.
>>>>>>>> 
>>>>>>>> Or can someone in the SCTP team explain why shutting connections
>>>>>>>> down due to other reasons is a user signal but validated ICMP
>>>>>>>> signals are
>>>>> not?
>>>>>>> [Karen ] NA.
>>>>>>>> 
>>>>>>>> Joe
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> Taps mailing list
>>>>>>>> Taps@ietf.org
>>>>>>>> https://www.ietf.org/mailman/listinfo/taps
>>>>>>> 
>>>>> 
>>> 
> 

_______________________________________________
Taps mailing list
Taps@ietf.org
https://www.ietf.org/mailman/listinfo/taps

Reply via email to