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

"jmh.direct" <jmh.direct@joelhalpern.com> Wed, 20 April 2016 21:04 UTC

Return-Path: <jmh.direct@joelhalpern.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 52DE012E0FD for <anima-signaling@ietfa.amsl.com>; Wed, 20 Apr 2016 14:04:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=joelhalpern.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 QADlefflhqK5 for <anima-signaling@ietfa.amsl.com>; Wed, 20 Apr 2016 14:04:39 -0700 (PDT)
Received: from mailb1.tigertech.net (mailb1.tigertech.net [208.80.4.153]) (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 21F3B12D9EC for <anima-signaling@ietf.org>; Wed, 20 Apr 2016 14:04:39 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mailb1.tigertech.net (Postfix) with ESMTP id CFC8CD5B32F; Wed, 20 Apr 2016 14:04:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelhalpern.com; s=1.tigertech; t=1461186278; bh=tBRMKuFArs4bsV24KPI2WqtJLnvGo8mOTjxaD6qjHjg=; h=Date:Subject:From:To:From; b=BPZY95UY61T58im2aUp8x3Wk0X09/oObpdSr2puRhv5P3M4/KTy46Ro3Olci3SAsv CwHR9X/K+PA446VcNGPNQZt0xpkrlF+1HgytcvDkyKpVB5zKpD+cKcywU9AIjfQHfs IrXmP+3Ougm5M4LSKndeYA5FuFKhDLn/C/WlyOfU=
X-Virus-Scanned: Debian amavisd-new at mailb1.tigertech.net
Received: from [10.10.2.88] (50-206-118-3-static.hfc.comcastbusiness.net [50.206.118.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mailb1.tigertech.net (Postfix) with ESMTPSA id 29224D404CA; Wed, 20 Apr 2016 14:04:38 -0700 (PDT)
Date: Wed, 20 Apr 2016 14:04:35 -0700
Message-ID: <rp2lvm5kwna9glg8ejv0hq4y.1461186275978@email.android.com>
Importance: normal
From: "jmh.direct" <jmh.direct@joelhalpern.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>, Anima signaling DT <anima-signaling@ietf.org>, "Joel M. Halpern" <jmh@joelhalpern.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="--_com.samsung.android.email_1144767639512860"
Archived-At: <http://mailarchive.ietf.org/arch/msg/anima-signaling/1lsV00bAVAeO6BJjgx3SV5OUiME>
Subject: Re: [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 21:04:46 -0000

How common is the case of an ASAP wanting to use both TCP and UDP?  If it is not rare, the requirement to get the same ephemeral port in both stacks seems tricky to meet in an operational system.
Yours,Joel


Sent via the Samsung Galaxy S® 6, an AT&T 4G LTE smartphone-------- Original message --------From: Brian E Carpenter <brian.e.carpenter@gmail.com> Date: 4/20/2016  1:50 PM  (GMT-08:00) To: Anima signaling DT <anima-signaling@ietf.org>rg>, "Joel M. Halpern" <jmh@joelhalpern.com> Subject: Draft message on proposed change to GRASP 
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.