Re: [Taps] TAPS Transports and ICMP

Michael Tuexen <Michael.Tuexen@lurchi.franken.de> Thu, 16 July 2015 08:49 UTC

Return-Path: <Michael.Tuexen@lurchi.franken.de>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3CC011B37AF for <taps@ietfa.amsl.com>; Thu, 16 Jul 2015 01:49:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.561
X-Spam-Level:
X-Spam-Status: No, score=-1.561 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, SPF_HELO_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XMbkyMVcrf4q for <taps@ietfa.amsl.com>; Thu, 16 Jul 2015 01:49:27 -0700 (PDT)
Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 662481B37AD for <taps@ietf.org>; Thu, 16 Jul 2015 01:49:27 -0700 (PDT)
Received: from [192.168.1.200] (p4FE31A5B.dip0.t-ipconnect.de [79.227.26.91]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTP id 5E4671C0B462F; Thu, 16 Jul 2015 10:49:24 +0200 (CEST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\))
From: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
In-Reply-To: <b12ebf1f4f628e0cc38787a035ac0b92@mail.gmail.com>
Date: Thu, 16 Jul 2015 10:49:23 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <86015ACB-0C19-41CF-B16E-765DD5DD29A6@lurchi.franken.de>
References: <00597CB8-D128-408A-8F35-BA98CDF45A62@cisco.com> <55707211.8010609@isi.edu> <26B9DE0B-4D38-430D-A9A1-921CD0067C70@cisco.com> <5570988A.6040208@isi.edu> <97FD8853-7345-40E9-A523-8AF53FB2303B@lurchi.franken.de> <2b5eb97add78e6c5b3c91b94080479da@mail.gmail.com> <55A6A53C.3010009@isi.edu> <b12ebf1f4f628e0cc38787a035ac0b92@mail.gmail.com>
To: Karen Elisabeth Egede Nielsen <karen.nielsen@tieto.com>
X-Mailer: Apple Mail (2.2102)
Archived-At: <http://mailarchive.ietf.org/arch/msg/taps/kVA7cUxm46HGPubcOFUnzb2Gca8>
Cc: "Pal Martinsen (palmarti)" <palmarti@cisco.com>, taps@ietf.org, Joe Touch <touch@isi.edu>
Subject: Re: [Taps] TAPS Transports and ICMP
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussions on Transport Services <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Jul 2015 08:49:30 -0000

> On 16 Jul 2015, at 09:01, Karen Elisabeth Egede Nielsen <karen.nielsen@tieto.com> wrote:
> 
> HI Joe,
> 
> I generally agree with your comments, but the situations is not
> necessarily as bad as you say.
> Please see below.
> 
> BR, Karen
> 
>> -----Original Message-----
>> From: Taps [mailto:taps-bounces@ietf.org] On Behalf Of Joe Touch
>> Sent: Wednesday, July 15, 2015 8:24 PM
>> To: Karen Elisabeth Egede Nielsen; Michael Tuexen
>> Cc: Pal Martinsen (palmarti); taps@ietf.org; touch@isi.edu
>> Subject: Re: [Taps] TAPS Transports and ICMP
>> 
>> 
>> 
>> On 7/15/2015 4:16 AM, Karen Elisabeth Egede Nielsen wrote:
>> ...
>>>>>> Any pitfalls with ICMP when doing SCTP?
>>>>> 
>>>>> In many ways, SCTP subsumes similar requirements as TCP, but that's
>>>>> probably buried in the SCTP docs.
>>>> It is. See
>>>> https://tools.ietf.org/html/rfc4960#appendix-C
>>>> 
>>> 
>>> [Karen ] In this context then it is noteworthy to observe that SCTP
>>> defacto API (spec or implementations, I know) does not prescribe for
>>> that the SCTP transport passes information of received ICMP messages
>>> (any kind/type/code) up to SCTP User.
>>> Here SCTP is significantly different from UDP and TCP defacto APIs.
>>> 
>>> For security reasons SCTP  demands for hard reaction to receipt of
>>> protocol unreachable, but that is a protocol feature not an api issue.
>> 
>> Agreed, however the other ways that SCTP doesn't pass validated ICMPs to
>> the user seems like a mistake to me.
>> 
> [Karen ] I agree and we have for our SW recently discussed as to whether
> we should implement such notification following
> the UDP and TCP semantics. But at present none of our applications has the
> need (on why that is, see below).
Hi Karen,

can you elaborate what ICMP related information you provide for TCP?

My understanding is that if you follow
https://tools.ietf.org/html/rfc1122#section-4.2.3.9
and ignore Source Quench as specified in
https://tools.ietf.org/html/rfc6633
you end up honouring Destination Unreachable (protocol unreachable,
port unreachable or fragmentation needed and DF set). I guess you
can handle this similar to an TCP RST in the API.
Note: Not sure why "fragmentation needed and DF" SHOULD result in an
abort. I would just use the information or PMTUD...
I'm not sure how you expose Net unreachable, host unreachable or source
route failed in the API. I think the sockets API doesn't do this.

For SCTP, the port unreachable is ignored and for the protocol unreachable
it is a MUST abort. For the Net unreachable, host unreachable you might
use this to indicate some soft error. However, the user is provided with
the information, if requested, either about an association or path state
change.

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
>