Re: [Anima] I-D Action: draft-liu-anima-grasp-distribution-06.txt

Brian E Carpenter <brian.e.carpenter@gmail.com> Thu, 12 July 2018 05:26 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 23E25131031; Wed, 11 Jul 2018 22:26:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 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, URIBL_BLOCKED=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 xvrfwr51tP0g; Wed, 11 Jul 2018 22:26:11 -0700 (PDT)
Received: from mail-pf0-x232.google.com (mail-pf0-x232.google.com [IPv6:2607:f8b0:400e:c00::232]) (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 3E52913102C; Wed, 11 Jul 2018 22:26:08 -0700 (PDT)
Received: by mail-pf0-x232.google.com with SMTP id b17-v6so19884339pfi.0; Wed, 11 Jul 2018 22:26:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=WHeGzt2pV9jzgEM8gQYe+rL+eMW3dKnoTGhW5N6FZzM=; b=HKsPC2xwGLoU46+YfUCoAiDzVvjYr6vezHsxHG7FIsQZ8OYkq4OYkH1815wUcKhPwi 1u0jrej+dK+P3sUItJ/MD/SlNG4eK9sAmk7P3pz4oo5JXwKqj3xaU2wUTznsSIk5afk+ dXudHN39P8jIhSApvRwXXVgiqYbfck9J4gY+aEGkr6vpOnMMxowXiNus9Ja4MPoDiaFS bhoTar3j8QuNwePKhqjyf0LWO0GB2C/cJddTAwaoy+iqxlesPw3rqCPl+GBr0jx0yT8L 6KYuM3kYIWfJifJN/6EkC7llioC//yYHYox4RCrrXgEaYuNASDfgsfWScoMxC0Q+CGHC CaGQ==
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:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=WHeGzt2pV9jzgEM8gQYe+rL+eMW3dKnoTGhW5N6FZzM=; b=Lc9wPTMpY7MUNihho0hUaKyTQdDptR1JSlcYTmn33qR4ygGLLFgRmzRrNdfsuzynXH NgWfgFX7yRKk52l9hxR70dvgJy8VJtKf237WMkIrbikoKMnW1meCi70odQCw5XPJuM4t mG5Rk22w/kSqUeT1Frx7G3FCQz/QTANj5Zh75cs9PfqJAt5wlxZY/GBbm4qsnuOnX4dm xejqqIk1chqKZfRqt06L5U8mfLf7Oju3lvY2U5hqwBx2kgPvzw7FLb9Wk2kmrNjiwEnY LunJY/TouHKUKLH396gDVqb8sG7RgWxoE1QqrXzK8vYl6cO0T3L7kEqRC2esKXcU8tSb /WBw==
X-Gm-Message-State: AOUpUlHxE2DvxXBi77fNL5YxVGx4Bs7DmmTcpBvZoadyLVeIJrtSQO3o 0RkwZMOaGKlqk4rbBwWCQWJpQA==
X-Google-Smtp-Source: AAOMgpc6SYLZMkzkY5CJZykA89dB0RUJ0KXHercCC+jpy2ZKB4IPT/KN4RxL9kCEgoWUim0XleZ5Dw==
X-Received: by 2002:a62:c819:: with SMTP id z25-v6mr862881pff.44.1531373167443; Wed, 11 Jul 2018 22:26:07 -0700 (PDT)
Received: from [192.168.178.40] ([118.148.121.80]) by smtp.gmail.com with ESMTPSA id q207-v6sm36033240pgq.11.2018.07.11.22.26.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Jul 2018 22:26:06 -0700 (PDT)
To: "Liubing (Leo)" <leo.liubing@huawei.com>, Anima WG <anima@ietf.org>
Cc: "draft-liu-anima-grasp-distribution@ietf.org" <draft-liu-anima-grasp-distribution@ietf.org>
References: <153052861098.28235.15477231715646760940@ietfa.amsl.com> <8d3e90f7-8792-824a-32d2-cbafabc9f45c@gmail.com> <8AE0F17B87264D4CAC7DE0AA6C406F45C7A9D6A9@nkgeml514-mbx.china.huawei.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Message-ID: <18735321-2e66-45b9-ac40-c57102b74b49@gmail.com>
Date: Thu, 12 Jul 2018 17:26:10 +1200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1
MIME-Version: 1.0
In-Reply-To: <8AE0F17B87264D4CAC7DE0AA6C406F45C7A9D6A9@nkgeml514-mbx.china.huawei.com>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/WmkoAkaHeAvizMZV2-nI83Gv9ag>
Subject: Re: [Anima] I-D Action: draft-liu-anima-grasp-distribution-06.txt
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.27
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, 12 Jul 2018 05:26:15 -0000

Hi Bing,

Responses in line:

On 12/07/2018 15:58, Liubing (Leo) wrote:
> Hi Brian,
> 
> Thanks for your comments! Since this new version proposed some protocol extensions, we really need review from GRASP perspective. Please see reply inline.
> 
>> -----Original Message-----
>> From: Anima [mailto:anima-bounces@ietf.org] On Behalf Of Brian E Carpenter
>> Sent: Thursday, July 12, 2018 11:15 AM
>> To: Anima WG <anima@ietf.org>
>> Subject: Re: [Anima] I-D Action: draft-liu-anima-grasp-distribution-06.txt
>>
>> Hi,
>>
>> I haven't had time to carefully read sections 1-5, but I think their general
>> message is fine. Here are some first comments on section 6, the proposed
>> GRASP extensions:
>>
>>>    In fragmentary CDDL, a Un-solicited Synchronization message follows
>>>    the pattern:
>>>
>>>       unsolicited_synch-message = [M_UNSOLDSYNCH, session-id,
>>> objective]
>>>
>>>    A node MAY actively send a unicast Un-solicited Synchronization
>>>    message with the Synchronization data, to another node. This MAY be
>>>    sent to port GRASP_LISTEN_PORT at the destination address, which
>>>    might be obtained by GRASP Discovery or other possible ways. The
>>>    synchronization data are in the form of GRASP Option(s) for specific
>>>    synchronization objective(s).
>>
>> Three comments on that:
>>
>> 1. For this to work, the receiving node must always be listening for a new TCP
>> session on that port. So that means a new API function
>> (listen_unsolicited?) and of course either a separate thread or an additional
>> entry in the event loop. Not a problem, just an implementation comment.
> 
> [Bing] I believe so, another API should be needed.
> 
>> 2. We need to specify that a new session_id is generated for each new
>> M_UNSOLDSYNCH message.
> 
> [Bing] Yes, detailed behavior will be completed in the next version.
> 
>> 3. Is this available for any synchronization objective, or do we need to add a new
>> flag bit?
> 
> [Bing] Ideally, I think the possibility should be open for any Synchronization Objective. But personally I prefer to avoid revising the base protocol as much as possible (e.g. changing the flag bits). How about we just assume any Sync Obj could be Un-solicited, would there be any harmfulness?

I think it's fine. Effectively it just means this is a read-only objective,
whether flooded, synchronized on request, or unsolicited. The NEG flag means
it is read/write, by negotiation.
 
>>>    The selective flood option encapsulates a match-condition option
>>>    which represents the conditions regarding to continue or discontinue
>>>    flood the current message.
>>
>> To be clear, the match is evaluated in every node, and the flooded objective is
>> dropped if there is a match? So we save on storage, not on processing.
> 
> [Bing] Yes, it's even more flexible that we can define either "something matched" or "something not matched" to let the node drop the flooded messages.
> Save on storage is surely one benefit, but I think maybe the more beneficial is saving on network traffic, especially in an constrained environment. And also on security benefit, that some sensitive informative won't be propagated too far.

Yes, you can reduce relayed (forwarded) flooding, that's true.

>  
>>> 6.5 Publishing Objective Option
>>>
>>>    In fragmentary CDDL, a Publish Objective Option follows the pattern:
>>>
>>>       publish-objection-option = [PUBLISH, 2, 2, pubobj] objective-name
>>>       = PUBLISH
>>>       objective-flags = 2
>>>       loop-count = 2
>>>       pubobj = text
>>>
>>>    This option MAY be included in GRASP M_Synchronization, when
>>>    included, it means this message is for a publish of a specific object
>>>    data.
>>
>> Can it also be included in M_UNSOLDSYNCH ? (In other words, the pub/sub bus
>> does not need to send M_REQ_SYN, but always listens for M_UNSOLDSYNCH.)
> 
> [Bing] Currently, we follow the principle that Sub/Pub should be a more strict transaction model. Un-solicited Pub seems too arbitrary.
> But we can leave it as an open question, let's see if we could find some scenarios that really benefited from un-solicited Pub.

In any case this would be easy to add later, if found useful.

> 
> Btw, we actually cared more about another question regarding to Sub/Pub. From semantic perspective, we actually preferred to make Sub/Pub as new messages, rather than current objective extension. But later we thought we should utilize the base protocol as much as possible, so we chose objective extension. May I ask your opinion on this?

I think that's a good choice. In fact it gives you more flexibility at the
ASA level, without changing the GRASP core. (In the same way, we could
define the bulk transfer mechanism at the objective level, with literally
zero changes needed in the protocol definition. I believe I could code
a simple version of pub/sub tomorrow, without touching the basic GRASP code,
except that I have to catch a plane.)

Regards
     Brian
> 
> Best regards,
> Bing
> 
>>
>>
>> Regards
>>    Brian
>>
>> _______________________________________________
>> Anima mailing list
>> Anima@ietf.org
>> https://www.ietf.org/mailman/listinfo/anima
>