Re: [Gen-art] Gen-ART Telechat review of draft-ietf-anima-grasp-api-08

Brian E Carpenter <> Thu, 03 December 2020 21:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 81A513A0D40; Thu, 3 Dec 2020 13:22:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Status: No, score=-2.1 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] 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 wbDU-keI0mh3; Thu, 3 Dec 2020 13:22:42 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4864:20::633]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id DEA373A0D38; Thu, 3 Dec 2020 13:22:41 -0800 (PST)
Received: by with SMTP id f1so1869105plt.12; Thu, 03 Dec 2020 13:22:41 -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=rtrijF83sC0q3F4lnyKmKKq1F5KFZbipHly8YVia5NE=; b=GNig8tUQBlRcE29orje7C61mOprO78PeEXvtG5Sw+7TF03Nl3VV0hzdm1sTc9DnotA qahOrwWogS4taBmzHR5AohEVxmaGNsbVSGnm4trMhtwDxIfvzCsBH5DU4yh9ndcxRne1 K/C3gK5FU2X0B8FtFKgD0+OD64oKeA1/02SeJee6sGZqcZtU9ntygOu6eHpFIopkcxN0 nsxWTF9IUBK5FIs2JywwE5jaShWYQSvrzj/N2DvRf4IAW+jzZHn6Yae+lavgycDpm10k c5RRRkHGunX9oT8tw5Efw4VB5FzenDMmJvojXXH+B/Pov0yxzBfNKI0uR76ILpDEnkv8 RqsA==
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=rtrijF83sC0q3F4lnyKmKKq1F5KFZbipHly8YVia5NE=; b=gHgBtpVBsZD6tRBwkTpy9WP4oQDb+wuEFvyhgS8yYqZg1iBjejohm6PempDfnyL6eL 02cXcSPixALsDvn7DpJxiM+WNO4O+Kvy4PrarA7eBnrPS9RaJwRDopAing7kvXldJpTW CoOpr5jRUSXibjV1z3QXt25sVfYZZ5z2DwSVvldrxbxHqg0TieinBs7WJ42fxNBHQn/l FIPeqzHQ5xQmj48PsIXy/F4VLXMHyyIDd0D1WlVu1kx++SEKG9/46z8/9Bgr3htXLS3y 70U5uSUmkFtGEQMrJblz7yNMueziy6PooBS1L3jwrQIh9li+JIQ3WsMmnH2qBvenPHsq hgiA==
X-Gm-Message-State: AOAM532NOQJMEBRtVfvvF6cyWHM45nfaeaQzuEMXOkpkXQLbzMrsHoFm zcZbDl3xI4+ONb5W7QARi5fZbLE7wowFPQ==
X-Google-Smtp-Source: ABdhPJwgN2lpdNvZG1Qej9n/pE8blJdaXQMKH7C7aCtmvLzkNJdE2ej81/8m04Znb2D9XjC09y7idg==
X-Received: by 2002:a17:902:a708:b029:da:1684:c7a9 with SMTP id w8-20020a170902a708b02900da1684c7a9mr1007079plq.55.1607030560899; Thu, 03 Dec 2020 13:22:40 -0800 (PST)
Received: from [] ([]) by with ESMTPSA id r11sm2071599pgn.26.2020. (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Dec 2020 13:22:40 -0800 (PST)
To: Paul Kyzivat <>,
Cc: General Area Review Team <>
References: <> <> <> <>
From: Brian E Carpenter <>
Message-ID: <>
Date: Fri, 4 Dec 2020 10:22:35 +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: 7bit
Archived-At: <>
Subject: Re: [Gen-art] Gen-ART Telechat review of draft-ietf-anima-grasp-api-08
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 03 Dec 2020 21:22:51 -0000


On 04-Dec-20 04:17, Paul Kyzivat wrote:
> Brian,
> One more thing occurred to me:
> On 12/2/20 12:29 PM, Paul Kyzivat wrote:
>>>> Also, the goal of negotiation isn't clear to me. I gather it must be for
>>>> the two sides to agree on a particular value for the objective. But for
>>>> that to work there must be some rules about how values can change in
>>>> each step so that the result stabililizes, rather than causing a battle
>>>> that ends with loop count exhaustion. This could be achieved by always
>>>> negotiating *down*, or always *up*. But that requires that the objective
>>>> value type have an ordering function. Given the general nature of the
>>>> objective I don't think that can be assumed.
>>> No, it explicitly is not defined either in the protocol nor the API.
>>> The syntax and semantics of the objective value are defined 
>>> per-objective,
>>> and the objective might or might not be ordered. So there is 
>>> intentionally
>>> no answer to your question.
>>> In most cases I'd expect that there would be an ordering but we didn't 
>>> want
>>> to constrain the use cases in that way. Also note that a failed 
>>> negotiation
>>> (e.g. the loop count expires, or where one end simply rejects the other's
>>> offer) is not a protocol failure.
>>>> ISTM that more work is needed to define the negotiation process in a way
>>>> that ensures it ends with both sides agreeing on a single value for the
>>>> objective.
>>> As noted, that is per-objective. The most complicated case I've coded
>>> is IP prefix assignment, and it works fine, except that if there is
>>> no prefix available of the maximum desired length, the requester ends
>>> up unsatisfied - as intended. There should be no condition in which
>>> the negotiation loops indefinitely; it either succeeds or fails.
>> Without that the result in non-deterministic. The two sides may have 
>> conflicting goals, and then the result will only be determined by the 
>> loop count and timeout.
>> Alternately, implementors will establish side agreements that aren't 
>> governed by standards.
>> That seems like an undesirable state of affairs.
> One possibility would be to define the negotiation policy on a 
> per-objective basis. This would be required as part of the definition of 
> the objective that is registered with IANA. It would define how the 
> value may change from step to step of negotiation to ensure convergence.

The IANA policy is Specification Required. We already have this in the
GRASP spec itself:

   There must be a well-defined procedure for concluding that a
   negotiation cannot succeed, and if so deciding what happens next
   (e.g., deadlock resolution, tie-breaking, or revert to best-effort
   service).  This MUST be specified for individual negotiation

The natural place to expand on that is in draft-ietf-anima-asa-guidelines
as it develops.