Re: [Anima] Mirja Kühlewind's Discuss on draft-ietf-anima-grasp-12: (with DISCUSS and COMMENT)

Brian E Carpenter <brian.e.carpenter@gmail.com> Tue, 30 May 2017 02:45 UTC

Return-Path: <brian.e.carpenter@gmail.com>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C5540127698; Mon, 29 May 2017 19:45:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 dlKxSIugrbHq; Mon, 29 May 2017 19:45:34 -0700 (PDT)
Received: from mail-pf0-x241.google.com (mail-pf0-x241.google.com [IPv6:2607:f8b0:400e:c00::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 54D641274D0; Mon, 29 May 2017 19:45:34 -0700 (PDT)
Received: by mail-pf0-x241.google.com with SMTP id n23so14595394pfb.3; Mon, 29 May 2017 19:45:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:organization:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=UI28Y9dKqexFGjh/apa3L4+71LiC7t4O5OUcnIR1M78=; b=tojG0AJWPBBX9D98+f+2wrPRYc5ZWtFkMADkAwSOy680F/69+bfxguoVPEMvECsEs+ My/NBUpMXogFnqCJoeS1xSQoIyM9LDWH8jzjked+F/FyrnZNW+K7sSZWpshSt43ZR08e MIzlJm8tVHRWOamyhAe3rmgG49wltqiLOoHdwDRPFTxVOtJURJT8nX2nUyzji5cCXXtU zvTYc6FQI4iU0+CL8JJg1duAYDnOmtKMo81twb63nYKWm8V1+qP8LZzz3UxK+xDYVlhT v4AZgwJpO3Si742Rsn5rGFt9mDLsi5IDNonFMzeeHhFeZoXdnihsDYi2egHdJc9IzLkL nJjA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=UI28Y9dKqexFGjh/apa3L4+71LiC7t4O5OUcnIR1M78=; b=uigdK7xqIr96teje8VhZrGL1KUsTQ4DDEmDIN988oOZv+WPcKMKMUih+t97z2Q8evY EDdHAu+x2gzX94fzsxDrxkNzCx8TE0OTozDi7ZJeGgKklp6kcmhcO1cOUCVvpVIIfYiS cUG4roUfPe+1JFwDK6N5NyZWvexp09WMgb4IF0FQX9whYevNjH2q4IcYD81QPu7NoUQd 63bNo+S0QnGS4FKHlJZYO2hG5L4IKu81QsZAYvZrZ8Au8RO7niEVYDVbyPC38MUK3lhG IeHsvzEwPnOylOwEw80G55h12OM/DFJA/uDciXheZEPeVyIv9gPKBJ0M4fGK6drTU608 P/2w==
X-Gm-Message-State: AODbwcDhM7KU72F3DzkGqvwFxdU/Zn1CRSU2lHpyR28TEE2mHjq5Sxxg 72WEMdnxM35FQDYl
X-Received: by 10.98.60.8 with SMTP id j8mr20597236pfa.72.1496112333504; Mon, 29 May 2017 19:45:33 -0700 (PDT)
Received: from [130.216.38.132] (sc-cs-567-laptop.uoa.auckland.ac.nz. [130.216.38.132]) by smtp.gmail.com with ESMTPSA id k79sm18957882pfj.6.2017.05.29.19.45.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 May 2017 19:45:33 -0700 (PDT)
To: Mirja Kühlewind <ietf@kuehlewind.net>, The IESG <iesg@ietf.org>
Cc: draft-ietf-anima-grasp@ietf.org, Sheng Jiang <jiangsheng@huawei.com>, anima-chairs@ietf.org, anima@ietf.org
References: <149555276275.18049.7515853778089282062.idtracker@ietfa.amsl.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
Message-ID: <dd715d9c-8b30-e591-fbff-2c3c9c031bda@gmail.com>
Date: Tue, 30 May 2017 14:45:28 +1200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
In-Reply-To: <149555276275.18049.7515853778089282062.idtracker@ietfa.amsl.com>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/3X4K1Xo7BmstzbkgZFtZ22YP-ec>
Subject: Re: [Anima] Mirja Kühlewind's Discuss on draft-ietf-anima-grasp-12: (with DISCUSS and COMMENT)
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 May 2017 02:45:36 -0000

Responding to Mirja's comments (her DISCUSS points were
already discussed in other messages):
On 24/05/2017 03:19, Mirja Kühlewind wrote:

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> Other mostly editorial comments:
> - ASA needs to be spelled out in the intro.

It is ;-)

> - I would recommend to move section 2 and 3.3 into the appendix

Moving the requirements (s2): already asked the WG about this.

"High Level Design Choices" (s3.3): But this is a description
of the design. Are people confused by the word "choice" perhaps?
Just in case that's the issue, I will simply delete it and the
section will be "High Level Design".

> - section 3.5.4.2: "A neighbor with multiple interfaces will respond with
> a cached discovery response if any."
>    "cached response" is explained in the next section and not clear in
> this paragraph.

It's hard to give an overview without deferring some details. We'll try
to simplify the text.

> - section 3.5.4.3: "After a GRASP device successfully discovers a locator
> for a Discovery
>    Responder supporting a specific objective, it MUST cache this
>    information, including the interface index via which it was
>    discovered.  This cache record MAY be used for future negotiation or
>    synchronization, and the locator SHOULD be passed on when
> appropriate
>    as a Divert option to another Discovery Initiator."
>    Not sure why the first is a MUST and the later is a SHOULD. I guess a
> SHOULD for caching would be sufficient.

Fair enough, although not implementing a cache would be a bad idea IMHO.

> - section 3.8.6 "If a node receives a Request message for an objective
> for which no
>    ASA is currently listening, it MUST immediately close the relevant
>    socket to indicate this to the initiator."
>    How is that indicated? Should really be further clarified

That's covered by one of Martin's comments - a transport session
failure indicates a failed negotiation or synchronization.
[BTW I'm impressed that you & Martin picked this up. I discovered
it experimentally with the prototype and we have a couple of API
error codes for it, but I failed to think about adding it to
the text until I saw Martin's comments.]

> - Also section 3.8.6: "In case of a clash, it MUST discard the Request
> message, in
>    which case the initiator will detect a timeout."
>    Why don't you send an error message instead? How does the initiator
> know that is should retry (assuming there is a TCP connection underneath
> that provides reliable transport)?
First of all, this is an incredibly rare event, even given the birthday
paradox: it's a collision of two random 32 bit numbers. So it really
isn't worth any extra machinery.

Second, an ASA always needs to be ready to retry anything in case of
failure. That's kind of the First Law of Autonomics: never give up.

> - Also section 3.8.9: "If not, the initiator MUST abandon or restart the
> negotiation
>    procedure, to avoid an indefinite wait."
>   How does the initiator decide for abandoning or restarting instead?
> Needs clarification!

It's irrelevant here whether the initiator abandons or retries. All
this means is that when the timer pops, the negotiation has failed.
We will reword this accordingly.

> - Could be useful to include an optional reasoning field in the Invalid
> Message and make copying the received message up to the maximum message
> size of this message a SHOULD (section 3.8.12.).

By making the body ?any we certainly allow this. Also, ?any
could be a CBOR array like [reason, rcvd-message]

Personally I think we might leave this undefined until we have some
experience. This is another example where CBOR's flexibility is
a great asset.

> - Not sure I fully understand the purpose of the No Operation Message
> (section 3.8.13.). If you just want to open a socket for probing, you
> perform a TCP handshake and send a RST right after. No need for further
> application layer interactions. And should there also be an optional
> reasoning phrase?

I hope you can agree it's harmless. (Actually your laptop probably
received some of these in Chicago, because we were running GRASP
sessions on the IETF network quite often.) The reason I found it
essential was to discover the port number assigned by the O/S
to a multicast socket, which you can only get by sending a
multicast and then using getsockname(). It seemed more civilised
to use a defined no-op than to just send a null packet.

> - Not sure why the objectives flag is needed. I assume that unknown
> objectives are ignored anyway and if a objective is known the receiver
> should know if that objective is valid for the respective message type
> (section 3.10.2).

Discovery-only can be useful and the "dry run" flag is dynamic. Also
of course it is another hook for extensibility.

> - section 3.10.4: "An issue requiring particular attention is that GRASP
> itself is a stateless protocol."
>    It's not. It caches information and needs to remember previous
> messages sent to reply correctly.

Right, but it isn't transaction-safe (ACID) which I guess is what we meant.

> - section 5: "Generally speaking, no personal information is expected to
> be
>       involved in the signaling protocol, so there should be no direct
> impact on personal privacy."
>    I don't think this is true because the protocol is so generic that you
> cannot say anything about the services it is used for.

Well, we can say what we *expect*, but you're correct. Since we are
requiring crypto, we should be OK anyway. Will reword slightly.

> Please see also further comments from Martin's tsv-art review (Thanks
> again!)!

Thanks
   Brian