Re: [Anima] Roman Danyliw's No Objection on draft-ietf-anima-grasp-api-08: (with COMMENT)

Brian E Carpenter <> Wed, 02 December 2020 00:34 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 59B9F3A0D2C; Tue, 1 Dec 2020 16:34:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id IsStRM_MKNmY; Tue, 1 Dec 2020 16:34:16 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4864:20::102c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id CAB8D3A0D1C; Tue, 1 Dec 2020 16:34:16 -0800 (PST)
Received: by with SMTP id m5so132775pjv.5; Tue, 01 Dec 2020 16:34:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=vACYK8NtdNRgzUCMmmhs5qWemRjEdXzPGwAFRkdFYCA=; b=mWw7euJNSmk8AiEHg+MGLB62uuuJc7hIJLnxqodJ0EEuEp6NJ9UU1GTV9gExrJWYhS 7HqzvGsCKfXU2Ec4nd5HnqAFNvvGcbAyyvyIBM6l2PPCayFnRb5YYZf27tg1WcpRj3zN XE1XXqNOaV7CKbEClrzydHXp+jzcSrNrn0JoDjYbdcPZOfC2ADIoMLIhIsH1wY4BXsnK GgF6rT8+LEajpza+SU7KqpZPVYYnJYthRrgDnDZZFwVEqrXPtLR3HTbsbp9I+ih/633+ +QT5X7Z+IgH7K/Lkq6YQHUhAV9AFE3mYtRMT38xTVInyjmH4i7REv4GX/k3eqpi6oxym A/vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=vACYK8NtdNRgzUCMmmhs5qWemRjEdXzPGwAFRkdFYCA=; b=WMPuFxNWgMdDoBG0E2RWBsiNM7we6HPahluC8zwsRVXfBthELOoOnI8DCbdyDb8h5c nFrEtkiXO7MN4EET0Wuqpq68Zy+hrQwjMv/8b71z/8zWsXqB97FTz0zzCOGfpzl8xGFt cHpa4dC6Jj5i1Rp2E8yyc32b8gdDy5RiyLaCMMZ74kgkC6McpCy2lZQhCKgy1M/qnWny xLV0yl3yVRbWqwOZAvmdR+L6T6j/wIqk1OsAvAQiQ+Z3LxwIDeDbkulC4EIsY1H0XhxI fmjfbicN6bGEPrzjRf1gZtZICWTVuTdkw3ca6x9T0JgALQwL83nbwD8YC8kL/rpLUR4T pgQA==
X-Gm-Message-State: AOAM533AiAXVgYxWQkk9zQHZn1L00WGhLRKx1u3G5O9JziL+6/ckaVIR nf+ZmltvDNBtu4cANDj8+ok=
X-Google-Smtp-Source: ABdhPJyxieEOOiMTtyGkzi9xYi3FsR99O/H6rbHMMcHlfnJrPmA21fQVWMDvN4wXqrg248CJlUTe/A==
X-Received: by 2002:a17:902:b60d:b029:da:20e8:319 with SMTP id b13-20020a170902b60db02900da20e80319mr111834pls.51.1606869256200; Tue, 01 Dec 2020 16:34:16 -0800 (PST)
Received: from [] ( []) by with ESMTPSA id h7sm94904pfq.76.2020. (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Dec 2020 16:34:15 -0800 (PST)
To: Roman Danyliw <>, The IESG <>
Cc:,,, Sheng Jiang <>
References: <>
From: Brian E Carpenter <>
Message-ID: <>
Date: Wed, 2 Dec 2020 13:34:09 +1300
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Subject: Re: [Anima] Roman Danyliw's No Objection on draft-ietf-anima-grasp-api-08: (with COMMENT)
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 02 Dec 2020 00:34:18 -0000

Hi Roman,

Thanks. Assuming we get to "New ID needed" we'll
look at all these. One or two quick comments in line.

On 02-Dec-20 13:00, Roman Danyliw via Datatracker wrote:
> Roman Danyliw has entered the following ballot position for
> draft-ietf-anima-grasp-api-08: No Objection
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
> Please refer to
> for more information about IESG DISCUSS and COMMENT positions.
> The document, along with other ballot positions, can be found here:
> ----------------------------------------------------------------------
> ----------------------------------------------------------------------
> Thank for responding to the SECDIR reviewer and thank you to Joseph Salowey for
> performing it.
> ** Since this is an API spec a few more example pseudo code snippets showing
> common ASA “tasks” invoking this API from both sides of the connection (like
> Figure 2) would be very helpful.

We have some of that in draft-ietf-anima-asa-guidelines, which is
still evolving.

> ** More precise references to draft-ietf-anima-grasp might helpful to
> implementers (e.g., in Section, “… default GRASP_DEF_LOOPCT, see
> [I-D.ietf-anima-grasp]” ==> “... see Section 2.6 of [I-d.ietf-anima-grasp]”)

Assuming the GRASP spec soon enters AUTH48, we can actually get the
references right.

> ** Section 1.  Per “An ASA runs in an ACP node and therefore inherits all its
> security properties, i.e., message integrity, message confidentiality and the
> fact that unauthorized nodes cannot join the ACP.”, in the spirit of precise,
> things like message integrity and message confidentiality are not properties of
> the ASA or of the ACP _node_ but instead properties of the protocol used on the
> control plane.
> ** Section 2.1.  Recommend using consistent terminology.  In this section ASA
> call a “GRASP module”.  However, Section 1 lays out an architecture of GRASP
> Core + API.
> ** Section 2.2.  I found the placement of this section confusing.  There is a
> discussion of the calling conventions for an API that hasn’t been discussed
> yet.  IMO, this should be after Section 2.3.  That said, thanks for describing
> these different calling conventions.  Showing these in examples would be very
> helpful.
> ** Section  Per the definition of TTL, is it worth clarifying here and
> in the subsequent descriptions that this is an unsigned of a particular size
> (unsigned 32-bit at least) per Section 5 of draft-ietf-anima-grasp?
> ** Section  Is it worth clarifying that loop_count should be between 0
> and 255 per Section 5 of the draft-ietf-anima-grasp?
> ** Section  Provide a normative reference to which version of C and
> Python will be used.
> ** Section  If an older C is used, is “char *name” the right way to
> handle a UTF-8 string?

Dunno. Has there ever been a stable answer to "How do I process strings in C?"
> ** Section Per the C data structure of an objective, should loop_count
> and value_size be unsigned integers of some kind?
> ** Section  Why does the Python implementation set a default value of
> loop_count but C does not?
> ** Section  Please provide a reference to libcbor
> ** These examples in C and Python found Section were helpful.  I was
> hoping to find them in the other sections.  Also a C-style .h file with
> function prototypes and constants would also be nice (e.g., GRASP_DEF_TIMEOUT,
> IPPROTO_*, all the error types)
> ** Section 2.3.4.  Typo. s/tiemout/timeout/
> ** Section  The constants IPPROTO_TCP and IPPROTO_UDP aren’t defined
> here.  Recommend a reference to the grasp draft.

Yes, I guess that's correct, although the actual values are IANA-assigned
and widely used in the socket API.

> ** Section 2.3.7.  Double checking -- per the info input parameter, is the ASA
> supposed to provide this content or is this something from GRASP Core?
> ** Appendix A.  This list doesn’t appear to be a complete crosswalk of function
> to error codes to possible APIs.  For example, “NotObj” is listed as a general
> error code, but would that get returned by register_asa()?
> ** Per the GENART Review, IMO, Paul makes a number of good points, in
> particular: -- a reference or further explanation of the flow for dry run and
> how this would be used in other API calls
> -- additional clarifying language on request_negotiate
> -- Renaming the “session nonce” to “session handle” (or something like it)
> might improve clarity so the API doesn’t have to deal with multiple “nonce”