[Anima-signaling] Draft message on proposed change to GRASP

Brian E Carpenter <brian.e.carpenter@gmail.com> Wed, 20 April 2016 20:50 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 37A6C12EB01 for <anima-signaling@ietfa.amsl.com>; Wed, 20 Apr 2016 13:50:58 -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 iu6LnQ5wxfUg for <anima-signaling@ietfa.amsl.com>; Wed, 20 Apr 2016 13:50:56 -0700 (PDT)
Received: from mail-pa0-x233.google.com (mail-pa0-x233.google.com [IPv6:2607:f8b0:400e:c03::233]) (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 AE85912EB65 for <anima-signaling@ietf.org>; Wed, 20 Apr 2016 13:50:44 -0700 (PDT)
Received: by mail-pa0-x233.google.com with SMTP id zm5so21274071pac.0 for <anima-signaling@ietf.org>; Wed, 20 Apr 2016 13:50:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:subject:organization:to:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=nQr7pD7YRMaw7LPbooE+PE3jl6ya613Wam2XqsosWmw=; b=Ye7avfBnYCNli8giMWZGX0KW7bAj8skPUEb/Bus2Bvt6T3HTYxrQReSdyucEt0Vrjp fjTjJ7j6q2nTyCf2GgZjdVvA0d7eWggHv/DwPeV32klWaGVaglvrEZG94Irer1HnMCmg cibSzyQ9XAYeVZZCGRPTVo0zrJGA4YMGuYRXOpxuBF7sHGIHvSsEtIljFdPhN31bEvVe 7wK2RKhYRiIbny+wcN+Pn5/rz8MbroNFtRiymlVdk2lm+lBXQeXcvrahQ7PW8Y7e7A5R W0rxxbVXTRxde/XYK3RssWqGQ+2lf6yhJKRgp/1LMC8AXwHdJV7mMsZFrox6pMH3Ed1s cDKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:organization:to:message-id:date :user-agent:mime-version:content-transfer-encoding; bh=nQr7pD7YRMaw7LPbooE+PE3jl6ya613Wam2XqsosWmw=; b=Tah3FY2mqPPIKFlwRxbzehMX77dSj8M++UO3Ty3HnwlOzCAJTUi11Az5ZSB3pBL3s+ LqzHJtnpXLBgqaX33woFwA25S36MHrXwdPzbyn/oR2VESTlMBN9zSKnEuq4O3F9aV+hJ 1FZ+jQBUbSiA8z/9XeKhAuiaESVHJGqnd0Gy00ND5ezN3Tu33bNhqVXugImselEgLeJs 28+ZoyQAFBC0UHxpmZ+BC3q4x4O5kbsLlxwnsUwI6O1mEjNqoehyCXVcUFtlQ+jQ0L+3 VGQQOQIQ7FEAbzE5NMJpW/Wa3j0r09Fpz69qahBOo/cVEIfIDkeuMxKhqAOfWWv7fWOd EwdQ==
X-Gm-Message-State: AOPr4FVC3Hc37Z8RMqaYtPTBQ5IbT5gruRhi2A+kmt6PWIHNK5Dxnb8uclSlvg25u+di+A==
X-Received: by 10.66.118.70 with SMTP id kk6mr15203465pab.74.1461185444241; Wed, 20 Apr 2016 13:50:44 -0700 (PDT)
Received: from ?IPv6:2406:e007:4b0f:1:28cc:dc4c:9703:6781? ([2406:e007:4b0f:1:28cc:dc4c:9703:6781]) by smtp.gmail.com with ESMTPSA id to9sm100643749pab.27.2016.04.20.13.50.41 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 20 Apr 2016 13:50:43 -0700 (PDT)
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
Organization: University of Auckland
To: Anima signaling DT <anima-signaling@ietf.org>, "Joel M. Halpern" <jmh@joelhalpern.com>
Message-ID: <5717EBA6.4020901@gmail.com>
Date: Thu, 21 Apr 2016 08:50:46 +1200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/anima-signaling/QVXqseyNN_eia7wMOrGwWP2P2tk>
Subject: [Anima-signaling] Draft message on proposed change to GRASP
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: Wed, 20 Apr 2016 20:50:58 -0000

Hi,

Design team, and Joel,

Some of us have been discussing a GRASP design issue raised by Toerless.
There was quite a long off-list thread (nothing secret, so if people are
interested we could make it available). But here is a draft of a proposal
to the WG. Please comment - especially, does the text make sense? The actual
decision belongs to the WG, of course.

Short version:

We propose that when an ASA listens for negotiation or synchronization requests,
it should do so on its own port number rather than sharing the generic GRASP
port number as currently defined. The consequence for the protocol is that
discovery responses must include a complete transport address (locator+port)
instead of just the locator.

Long version:

We want ASAs to run as separate modules in user address space, as applications,
rather than being bundled with the GRASP engine in kernel space. To achieve this
with all ASAs listening on the same port number would require quite complicated
inter-process communication between the GRASP kernel and the indvidual ASAs.
The details of this would be different in every operating system. If we
allow each ASA to have its own port this can be avoided, and each ASA can have
its own copy of the GRASP API library if required. This will make the systems
engineering of portable ASAs much easier, and will make the adaptation of
the GRASP API library and the GRASP kernel to various operating systems easier
too.

We propose to redefine the locator returned by GRASP discovery accordingly. For
the IPv6 case that would give:

locator-option /= [ipv6-locator-option, port-number]
ipv6-locator-option = bytes .size 16
port-number = 0..65535

We did consider making this optional, but that would raise interoperability
issues. If an implementation does choose to use the GRASP_LISTEN_PORT
for all ASAs, that could simply be returned as the port-number.
(Alternatively, we could define that port-number==0 means GRASP_LISTEN_PORT,
but that seems like optimisation of a corner case.)

Implementation note:

An ASA will obtain an ephemeral port number when it starts up and that
will be used in discovery responses. If more than one transport protocol
is to be used, it will need to secure the same port number for each protocol.
For example, if it gets port X when binding to a TCP socket, it must then
bind to port X on a UDP socket.

Note:

Toerless Eckert brought up this problem and outlined the proposed solution.