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

Brian E Carpenter <brian.e.carpenter@gmail.com> Wed, 27 April 2016 23:52 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 ABCF412D108 for <anima-signaling@ietfa.amsl.com>; Wed, 27 Apr 2016 16:52:34 -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 w88Hv05zJNM0 for <anima-signaling@ietfa.amsl.com>; Wed, 27 Apr 2016 16:52:33 -0700 (PDT)
Received: from mail-pf0-x22c.google.com (mail-pf0-x22c.google.com [IPv6:2607:f8b0:400e:c00::22c]) (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 4FD4A12D09F for <anima-signaling@ietf.org>; Wed, 27 Apr 2016 16:52:33 -0700 (PDT)
Received: by mail-pf0-x22c.google.com with SMTP id y69so26334855pfb.1 for <anima-signaling@ietf.org>; Wed, 27 Apr 2016 16:52:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:subject:to:organization:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=Fmlha719sLHu+FIgPD8DOuB6DSo2gpXnjW7qM10U2PM=; b=OGU58S6xZDMWQ+E5TS0FfCh2W5vrVey/R6AFLDjPcs1zLNVGipwZJvQMoSNIJZfXF1 U9Zyqm1P8kgEzyXuUWkEk0noIykZPuN0NhNihzGNcjFHreVwRWRwmpJA71GtuOs46u7i SyX8Js2xbLG9h8qIDeSjWGzEOdVmVP37yX90UwyajM2ehLRenStnE9LoaErR4YuChjOl wXSKJkKn63wpxJacjxKp5BCs43N6BAHyukndCDmZVHByknGS1yiO2WS6Z1CdF26N1gmQ hz9y/QBQT8xgCY5UYHvgKY08onTOr0qT7EMfgopwEMMnUQKkKlqVlUFuucUpnCArDzYX IIDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:to:organization:message-id:date :user-agent:mime-version:content-transfer-encoding; bh=Fmlha719sLHu+FIgPD8DOuB6DSo2gpXnjW7qM10U2PM=; b=Ugpz82DVRaaD/RVA0K6mVX2tQKlp46TV6sdQaplCMreMaQLewrWrmbZ+r+nB4bgOjn h/zufFrsH0IMhExuXZ6yxNixbXfvZdBQHBgktZXOtNQbBhbsb8GyKdA+zMDQU2znVBKY 9ZxNB5R9uDtMyt70GE+rdZHpSI2JwXS7vb4loW9jeg5ZHbwqJgiNNlsMX49VvPQv/DK/ 8zX3g/gLSf6r3qkT8D29OTQ5+/YZ/Ex4YalhFtCBwnY5d/JWiOMMDe0NbeHq0xLTvxSL GAcKzO3qbGL3RP+DM4V51Ij/sLq7B6f/QAnHVC27/IhfnYO02RB5mCvcbRJP54RjAjRF i19w==
X-Gm-Message-State: AOPr4FWLhUzzhAptsLIBsX9ER5k+C55cLuaBF8YFoylAMMnwxHBDxEfwSgw3oih/eHVeBQ==
X-Received: by 10.98.36.12 with SMTP id r12mr16054827pfj.86.1461801152888; Wed, 27 Apr 2016 16:52:32 -0700 (PDT)
Received: from ?IPv6:2406:e007:6337:1:28cc:dc4c:9703:6781? ([2406:e007:6337:1:28cc:dc4c:9703:6781]) by smtp.gmail.com with ESMTPSA id 17sm9401592pfp.96.2016.04.27.16.52.30 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Apr 2016 16:52:31 -0700 (PDT)
From: Brian E Carpenter <brian.e.carpenter@gmail.com>
To: Anima signaling DT <anima-signaling@ietf.org>, "Joel M. Halpern" <jmh@joelhalpern.com>
Organization: University of Auckland
Message-ID: <8d68aa68-b88f-b888-3d12-0d0d3982a43b@gmail.com>
Date: Thu, 28 Apr 2016 11:52:38 +1200
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0
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/7e_ZG61xyIST6dTEHCsNSn-bpp0>
Subject: [Anima-signaling] Take 2: 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, 27 Apr 2016 23:52:34 -0000

Hi,

Design team, and Joel,

Updated following the feedback received and trial implementation. Please
let me know if OK; I would like to send this to the WG tomorrow.

Short version:

We propose that when an ASA listens for negotiation or synchronization
requests, it should do so on its own transport 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+protocol+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.

In practice we need to indicate the protocol (TCP or UDP) as well, since
dynamic ports are assigned for a specific socket and protocol.

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

locator-option /= [O_IPv6_LOCATOR, ipv6-address, transport-proto, port-number]
ipv6-address = bytes .size 16
transport-proto = IPPROTO_TCP / IPPROTO_UDP
IPPROTO_TCP = 6
IPPROTO_UDP = 17
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.

Implementation note:

When it starts up, an ASA will obtain an ephemeral port number for each
transport protocol that it supports, and that will be used in discovery
responses.

Comments?

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

    Brian