Re: [Anima-signaling] GRASP issue 51: Flooded objectives

Brian E Carpenter <brian.e.carpenter@gmail.com> Tue, 30 August 2016 01:58 UTC

Return-Path: <brian.e.carpenter@gmail.com>
X-Original-To: anima-signaling@ietfa.amsl.com
Delivered-To: anima-signaling@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5A2F712B02F for <anima-signaling@ietfa.amsl.com>; Mon, 29 Aug 2016 18:58:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 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_LOW=-0.7, 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 AHyUrviYs-BO for <anima-signaling@ietfa.amsl.com>; Mon, 29 Aug 2016 18:57:58 -0700 (PDT)
Received: from mail-pf0-x22d.google.com (mail-pf0-x22d.google.com [IPv6:2607:f8b0:400e:c00::22d]) (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 DF0B512B019 for <anima-signaling@ietf.org>; Mon, 29 Aug 2016 18:57:58 -0700 (PDT)
Received: by mail-pf0-x22d.google.com with SMTP id x72so2080447pfd.2 for <anima-signaling@ietf.org>; Mon, 29 Aug 2016 18:57:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:cc:from:organization:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=TwUGZc+1XNNR9Rd5TGO9bOmMmR+wHu1wFUTcKs6Y6u0=; b=K/AiKjV1iPmJi8V1LbRmtVXqSXywrY/wnEfYNQDCiddkBd4xE79v2qkpzcYztxPPtE PJke3vVZ1QIMakV1zcYsk33JmWdEIpUj9P5o219ZoKPHaV6KJQKvxqrH0r5bWu43pRwg WCeiBGqXH/2CtpNFXm/87zRSUNL6rayfrNNPCuUG+0/ND0zPa7cqlf2NJ3ZV2gc28i+o b4dYdgH7dYHBpCxMBMiiJ8olPi0JiEPZ/kq5KoraSjs/sbxY/3Q23pCNs4AvXrKzA70b oZpCaNpUrUuNudxBrgZfNtHDg5jsL143c3I7birriCgN4QSDyxL0DteRpgiwCz3SSEvt MaOw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-transfer-encoding; bh=TwUGZc+1XNNR9Rd5TGO9bOmMmR+wHu1wFUTcKs6Y6u0=; b=LWoUYMUL9n6NDJD06rd62VN+SNh+HVYqigAejBma6mnGntexzRzQTLT2RQDokrjSAD 276VH7/DU1qlf4BmyJrEcdJJErJ/fLvIkEjSplVtUkovUOMScZ2Ra2wkRQxDdft1ekLG kbY76Ui+phF+Svf2QMVHzZ/b2bCIaMjFxCjUXYfEMvj9009ma+ci86MQ54HKIX4S3bvl dZHzB157qPEsF3hQrTWv5xbpoyQ5pvMwgn/wqLRcrDbiYERMXtw92XgtgfscFpxScepc QNOkrGa4COJMLQTD66csPcoqFBDgH6QutCAMZ5hmz4t+b+LgSGrxVKH98nt+lWltau5/ un6w==
X-Gm-Message-State: AE9vXwP0LmV8X6AyVWSI6KF08dHUDjsk92req8/BJq7lNxxgCwY7KkHU5/CGV+QfocbObw==
X-Received: by 10.98.93.204 with SMTP id n73mr1864100pfj.87.1472522278317; Mon, 29 Aug 2016 18:57:58 -0700 (PDT)
Received: from ?IPv6:2001:df0:0:2006:c0da:ac17:5f6d:8e76? ([2001:df0:0:2006:c0da:ac17:5f6d:8e76]) by smtp.gmail.com with ESMTPSA id s89sm51967078pfi.83.2016.08.29.18.57.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 Aug 2016 18:57:57 -0700 (PDT)
To: Toerless Eckert <eckert@cisco.com>
References: <47c158b3-92f4-8a36-1bc1-c5c19afdc6b3@gmail.com> <20160801085529.GT21039@cisco.com> <97815aec-a36f-8dda-6798-eb0c1c5eda17@gmail.com> <20160805083457.GH21039@cisco.com> <f541b926-cde7-db52-a0fa-226761d0c3c8@gmail.com> <20160808140326.GA6295@cisco.com> <a09050d0-ce14-d628-13b6-28e73a79d238@gmail.com> <20160809063909.GZ21039@cisco.com>
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
Message-ID: <22940237-a706-2ceb-9c54-ded4585f4521@gmail.com>
Date: Tue, 30 Aug 2016 13:57:57 +1200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <20160809063909.GZ21039@cisco.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima-signaling/5iwMzfQvYVN4j2IPuA4h_Zx8J4w>
Cc: Anima signaling DT <anima-signaling@ietf.org>
Subject: Re: [Anima-signaling] GRASP issue 51: Flooded objectives
X-BeenThere: anima-signaling@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Mailing list for the signaling design team of the ANIMA WG <anima-signaling.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima-signaling>, <mailto:anima-signaling-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima-signaling/>
List-Post: <mailto:anima-signaling@ietf.org>
List-Help: <mailto:anima-signaling-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima-signaling>, <mailto:anima-signaling-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Aug 2016 01:58:00 -0000

Hi Toerless,

Catching up on your issues. I think most of them are covered by
adding the TTL and locator info to Flood. A couple of points remain:

> When we
> use link-local-multicast, there is no guarantee that it will be received
> by all nodes. I would actually prefer to use the ACP TCP connections also
> for the flood-sync inside the ACP to make them reliable. One for each ACP
> neighboring autonomic node. No UDP multicast.

Actually this gets back to something I was beating Michael (Behringer) up
about. I would love it if the ACP could do this. From a coding point of
view it would be nicest if the ACP could catch packets sent to a
LL multicast socket (by behaving like a virtual link) but that's a detail.
It would be OK too if the ACP simply provides functions to call instead
of sendto(msg,0,(ALL_GRASP_NEIGHBOR_6, GRASP_LISTEN_PORT)) and the
matching recvfrom().
...
> What happens with a node newly rebooting. How does it get those existing
> flood objectives ? 
...
> Aka: periodic, low-frequency broadcast is a proven stable solution. Its
> not the nicest. It may not be the only one we want in GRASP, but i'd
> feel a lot safer if we could make that option work.

Yes, and it's easy - because the sending ASA can just do it, at a
frequency that suits the particular objective. Also, a node that
doesn't want to wait for the next flood can do a standard GRASP
unicast synchronize action.

> But we will still be left with
> the issue of withdrawal...

Like DNS TTLs. If you know in advance that something should be
withdrawn soon, you refresh it with a short TTL. But if there's
a fault:

> Example: Registrar announces lifetime of LONG. WHole network learns it
> AN3 goes down, AN4, AN5 stay up. Registrar is replaced by other registrar.
> AN3 comes up. AN4, AN5 will still have ld registrar flood sync cache
> entry - which will not time out for a LONG time.

When a client (a proxy in this case) tries to connect to the old registrar,
there will be a hard socket failure. So the client needs to look for
another registrar by repeating discovery or waiting for a new flood.

But looking at sone of the pseudocode you sent earlier in the thread,
I added a new call to my Python API:
 expire_flood()
# Mark a flooded objective as expired
#
# This is a call that can only be used after a preceding
# call to get_flood() by an ASA that is capable of deciding
# that the flooded value is stale or invalid. To be used
# with care.

It needs 8 lines of python :-). It's only local; to expire
something globally would need a new GRASP message type, but
wouldn't actually be hard to do if we wanted.

Regards
   Brian