Re: [Anima] Review comments on draft-ietf-anima-grasp-api

"Liguangpeng (Roc, Network Technology Laboratory)" <liguangpeng@huawei.com> Thu, 19 September 2019 01:23 UTC

Return-Path: <liguangpeng@huawei.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 DE9C71200B2 for <anima@ietfa.amsl.com>; Wed, 18 Sep 2019 18:23:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=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 JUu5H9ZHsfKU for <anima@ietfa.amsl.com>; Wed, 18 Sep 2019 18:23:53 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3548712008A for <anima@ietf.org>; Wed, 18 Sep 2019 18:23:53 -0700 (PDT)
Received: from lhreml708-cah.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id 384E779DF38FAFCF1099; Thu, 19 Sep 2019 02:23:51 +0100 (IST)
Received: from lhreml728-chm.china.huawei.com (10.201.108.79) by lhreml708-cah.china.huawei.com (10.201.108.49) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 19 Sep 2019 02:23:50 +0100
Received: from lhreml728-chm.china.huawei.com (10.201.108.79) by lhreml728-chm.china.huawei.com (10.201.108.79) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 19 Sep 2019 02:23:50 +0100
Received: from DGGEMM401-HUB.china.huawei.com (10.3.20.209) by lhreml728-chm.china.huawei.com (10.201.108.79) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.1.1713.5 via Frontend Transport; Thu, 19 Sep 2019 02:23:50 +0100
Received: from DGGEMM533-MBX.china.huawei.com ([169.254.5.252]) by DGGEMM401-HUB.china.huawei.com ([10.3.20.209]) with mapi id 14.03.0439.000; Thu, 19 Sep 2019 09:23:44 +0800
From: "Liguangpeng (Roc, Network Technology Laboratory)" <liguangpeng@huawei.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>, "anima@ietf.org" <anima@ietf.org>
Thread-Topic: Review comments on draft-ietf-anima-grasp-api
Thread-Index: AQHVbmERtpw7kJuDqkiyv51Nt/0PrKcyLc9A
Date: Thu, 19 Sep 2019 01:23:44 +0000
Message-ID: <6F4E6B0C717D4641A2B79BC1740D8CF4A7E22D04@DGGEMM533-MBX.china.huawei.com>
References: <6F4E6B0C717D4641A2B79BC1740D8CF4A7E22578@DGGEMM533-MBX.china.huawei.com> <59be9ae2-9ccf-a5aa-1b70-5075574a05d3@gmail.com>
In-Reply-To: <59be9ae2-9ccf-a5aa-1b70-5075574a05d3@gmail.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.130.157.47]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/zOsdV-4H9sUKVpah_yKXcPHgk-A>
Subject: Re: [Anima] Review comments on draft-ietf-anima-grasp-api
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 19 Sep 2019 01:23:55 -0000

Please see inline.

> -----Original Message-----
> From: Brian E Carpenter [mailto:brian.e.carpenter@gmail.com]
> Sent: Thursday, September 19, 2019 4:39 AM
> To: Liguangpeng (Roc, Network Technology Laboratory)
> <liguangpeng@huawei.com>; anima@ietf.org
> Subject: Re: Review comments on draft-ietf-anima-grasp-api
> 
> On 18-Sep-19 18:22, Liguangpeng (Roc, Network Technology Laboratory) wrote:
> > Hi authors,
> >
> > I read the draft. I think the API list for grasp is complete and good. But I have
> some comments on section 2.2.
> >
> > 2.2. Asynchronous Operations
> >
> > '... there are two main techniques for such parallel operations:
> multi-threading, or a polling or 'event loop' structure.'
> >
> > According to my knowledge, 'multi-threading' is a different thing with
> asynchronous programming mechanism. So I prefer to 'asynchronous
> programming mechanisms with multi-threading' here.
> 
> OK, will rephrase.
> 
> > The main techniques for asynchronous programming discussed in draft should
> be 'polling', however, polling is not so efficient. The more efficient one is 'call
> back' mechanism.
> 
> Yes, we certainly need to discuss callbacks. I'm not sure it is always more
> efficient, because that depends on the underlying implementation.
> 
Agree that all performance rely on the implementation. Generally saying, polling will consume CPU resource to query response again and again until timeout occurs. In other hand, every implement of agent based on polling mechanism library will couple with the library. That means most time different programmers will write the code respectively for the agent and library. It's more hard to guarantee achieve the best performance. Compared to polling, call back mechanism decouples the whole workflow. Only the library programmer need to care about the asynchronous part performance. The agent programmers just need to implement logics according to 'call back' mechanism then everyone can get the same performance provided by the same library.

> > 'session_nonce' parameter may be useful for polling, but 'call back function
> pointer( or reference in some programming language)' is normally used as
> parameter of invoked functions. All logics should be executed in call back
> functions which will be called when some events occur, for example receiving
> response message for the request, or message timeout.
> 
> Yes. However, if you have two simultaneous negotiations, you will still need the
> session_nonce in the callback, I believe.

Yes or not, I think. If the library is implemented based on call back mechanism, the agent programmer don't need to know anything about 'session-nonce'. This means there needn't be this parameter in this kind of API. Indeed, the implementer of library need to consider 'session_nonce' carefully if its name is still 'session_nonce'. So, my opinion is 'session_nonce' is necessary parameter for polling-based API, but not for call-back-based API.

> Thanks very much,
> 
>     Brian
> 
> >
> > Best regards,
> >
> > Guangpeng Li
> 
Best regards,
Guangpeng