Re: [DMM] I-D Action: draft-ietf-dmm-ondemand-mobility-17.txt

Tom Herbert <tom@quantonium.net> Wed, 06 March 2019 15:47 UTC

Return-Path: <tom@quantonium.net>
X-Original-To: dmm@ietfa.amsl.com
Delivered-To: dmm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 052521277CE for <dmm@ietfa.amsl.com>; Wed, 6 Mar 2019 07:47:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=quantonium-net.20150623.gappssmtp.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 8zGlybq7GO-n for <dmm@ietfa.amsl.com>; Wed, 6 Mar 2019 07:47:46 -0800 (PST)
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) (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 47CE7127287 for <dmm@ietf.org>; Wed, 6 Mar 2019 07:47:45 -0800 (PST)
Received: by mail-wr1-x429.google.com with SMTP id l5so13949595wrw.6 for <dmm@ietf.org>; Wed, 06 Mar 2019 07:47:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantonium-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=Q7DiGekQ3UgnK0Q3TN/ODjibl1AQMTBBDeqaghODXLk=; b=WPGfJ/ygGlqPQkiI/a6TPWkuZFHCsYSbuMBx5SHbm5u53LDXUI/ksy+ZhXp30V3YBI gCQKOKNlYECIykfb/Jcnxe9Mvyd3N1FfBW6RzCLsEg0b9G/mS2NULxSW9i2CgyeII2AG PtsH3CLwPF8udeuEIcr58V26ZjShmjZDaIK4g+85tEP8F9kL8ktHg5U4vBsItiSmPK2t ZrvCBFw9/saaUOcufWv8uZzqs9L2IAtA3ZT1Q3TFqDmNtmZgOKsZsFjbZ22QsDoJy1Lp /giTUoUrk5OemKgh39+jcePBfZtQO6YwtDbuQVZQUBENu6mVBk4x4Lqy+D/rmDTxKm+U tEwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=Q7DiGekQ3UgnK0Q3TN/ODjibl1AQMTBBDeqaghODXLk=; b=H1J7xR9uypwgod0jU7wfwdluNLwt+vE23479tOEjKTPIeiKkxU+h0qSJen93OCEnuU 55CAo7KkGSdXZgoEizFXz2Zc+mo+GZZstiqPtS4xQtq6iwlRKxOBKvwqunL//vAhnBnF d++xdwPhn0wsq02V7ZNLtBh/eD6Hu/DFx1ybAEtcnta76BCWCsdEZ3IkX6skpPO0N3Q+ 6USs7nw2JozIraUBijQ6cJR6WS9jd8lDlWM76ingu1obGAGB6cx0JmSVNpAogFU3mFRx LX7oGoeVxTNhatz2iON6pkcDjdU/uAbvVZ+Il9EY6QAHEUDNOLW8TWnHii44G7gfmV16 EAqg==
X-Gm-Message-State: APjAAAUc1qZTh+vx8lWMghfk85Gu82ulR0DCheA6yTwbA9SU2oyL9rMS wbVh62zAXf1LXiRJiQ2c+OQhvw3YMq/ycilGk+2/fla6
X-Google-Smtp-Source: APXvYqxGT+uIb4OOLPuLVLuqYfsJDAYZmYVF9jXA70QfJPr+JhGquY9+FuB0EWli0v5nu8tyBN+Zx5+OVeEsSb7fSS0=
X-Received: by 2002:adf:ee0f:: with SMTP id y15mr3343477wrn.197.1551887263079; Wed, 06 Mar 2019 07:47:43 -0800 (PST)
MIME-Version: 1.0
References: <155084512373.5443.16190139225888494776@ietfa.amsl.com> <CAPDqMery=rDJhFTPx-YWo4yVybrq3YAjVv7L=2mPiUMP_SeAVA@mail.gmail.com> <F0CF5715D3D1884BAC731EA1103AC281441DCE35@HASMSX106.ger.corp.intel.com> <CAPDqMerXojrc4HNTWU1s0n3k=7+dRWfGn7Hhhu2SZ41Oa=VzOA@mail.gmail.com> <F0CF5715D3D1884BAC731EA1103AC281441E30BE@HASMSX106.ger.corp.intel.com> <CAPDqMeoikbGGyaOwSin_hAEbszA648hwgeaUFvUssvdiDEpamg@mail.gmail.com> <F0CF5715D3D1884BAC731EA1103AC281441E3466@HASMSX106.ger.corp.intel.com>
In-Reply-To: <F0CF5715D3D1884BAC731EA1103AC281441E3466@HASMSX106.ger.corp.intel.com>
From: Tom Herbert <tom@quantonium.net>
Date: Wed, 06 Mar 2019 07:47:32 -0800
Message-ID: <CAPDqMerOxL1WkyrTo-TkgLJ5VTr7UBT0J3=oqXR5-cXHu+O8sw@mail.gmail.com>
To: "Moses, Danny" <danny.moses@intel.com>
Cc: dmm <dmm@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/dmm/RQgnC-Sg6FI7VhXXXaCFWj0o9nw>
Subject: Re: [DMM] I-D Action: draft-ietf-dmm-ondemand-mobility-17.txt
X-BeenThere: dmm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Distributed Mobility Management Working Group <dmm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dmm>, <mailto:dmm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dmm/>
List-Post: <mailto:dmm@ietf.org>
List-Help: <mailto:dmm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dmm>, <mailto:dmm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Mar 2019 15:47:49 -0000

On Wed, Mar 6, 2019 at 3:05 AM Moses, Danny <danny.moses@intel.com> wrote:
>
> Yes, now I see your point. Setsockopt() will trigger the exchange of packets between the mobile host and the network to allocate the desired prefix (if not already allocated), and connect() will be blocked until the prefix is allocated and the TCP handshaking is completed.
>
> Some pros and cons that come to mind are:
> Pros:
> Setsockopt() is still non-blocking.
> Non need to pass the address as a parameter.
> No need for defining a new function.
>
> Conns:
> It is not clear how the connect() should act if the desired address type is not allocated by the network. Should it still connect with the address available to the host or should it fail?

It should fail with EADDRNOTAVAIL. If the application wants to
fallback to any available address it can do that itself when the error
is returned.

> If it continues to connect, the application is not aware of the type of mobility service it will receive from the network.
> If it should not connect, we are changing the definition of the behavior of connect(). Furthermore, applications that do not care about mobility service, will use connect() without setsockopt(). So now, connect() need to know whether or not setsockopt() was invoked for setting the desired mobility service type - also a new functionality of connect().
> It will not work for UDP (were connect() is not invoked). However, this is not a strong conn, since we can define that as a default address type for UDP sockets should be 'non-persistent'.

bind can be called in that case for the same effect.

>
> When the concern regarding the 'blocking' nature of setsockopt() was discussed in DMM, we provided several alternatives for resolution, and after some discussion, the one defined in the document was chosen.
>
> Your alternative is also viable, but it is not clear to me that it is significantly better and is worth reopening the discussion once again in DMM. But, our correspondence is on the list and everyone is welcome to post an opinion.

Danny,

The problem is that this is API and not protocol being standardized--
it may or may not be adopted by implementations. Adding a new socket
call is a big deal. You'll need to justify that this it is necessary
and that the functionality can't be acheived with existing API. I
would suggest that you post patches for this to Linux netdev to get
feedback from the developer community.

Tom

>
> Regards,
> Danny
>
>
>
> -----Original Message-----
> From: Tom Herbert [mailto:tom@quantonium.net]
> Sent: Tuesday, March 05, 2019 18:26
> To: Moses, Danny <danny.moses@intel.com>
> Cc: dmm <dmm@ietf.org>
> Subject: Re: [DMM] I-D Action: draft-ietf-dmm-ondemand-mobility-17.txt
>
> On Tue, Mar 5, 2019 at 2:29 AM Moses, Danny <danny.moses@intel.com> wrote:
> >
> > Can you please provide a calling sequence of your proposal?
> >
>
> Something like:
>
> s = socket(AF_INET6, SOCK_STREAM, 0) ;
> setsockopt(s, IPPROTO_IP, PREFERRED_ADDRESS_TYPE,
> IPV6_REQUIRE_SESSION_LASTING_IP)
> if (connect(s, &serverInfo, sizeof(serverInfo)) < 0) {
>    if (errno == EADDRNOTAVAIL) {
>             // Didn't get address for requested type
>   }
>   ...
> }
>
> // To get address local address that was selected...
> getsockname(s, &myaddr, &myaddrlen);
>
>
> > Thanks,
> > Danny
> >
> > -----Original Message-----
> > From: Tom Herbert [mailto:tom@quantonium.net]
> > Sent: Monday, March 04, 2019 17:17
> > To: Moses, Danny <danny.moses@intel.com>
> > Cc: dmm <dmm@ietf.org>
> > Subject: Re: [DMM] I-D Action: draft-ietf-dmm-ondemand-mobility-17.txt
> >
> > On Mon, Mar 4, 2019 at 4:25 AM Moses, Danny <danny.moses@intel.com> wrote:
> > >
> > > Hi Tom,
> > >
> > > Fair question.
> > >
> > > I believe I mentioned that in one of my responses. The original definition was to use setsockopt() with new flags. However, some people raised the concern that this new feature changes the behavior of the function in a way that may confuse programmers and requested to use a new function (setsc()).
> > >
> > > The issue was due to the time it takes the function to process the request. In current Socket implementation, setsockopt() is a function that returns immediately to the caller. On the other hand, this new feature may trigger an exchange of packets between the IP stack in the mobile node and the network allocating the IP prefix. This exchange takes time and the function can return only after the exchange is completed. They insisted that we maintain the current 'immediate' return behavior of setsockopt() and introduce a new function that might 'block' the calling thread until it completes.
> > >
> > Hi Danny,
> >
> > It is unclear to me why address selection has to be done outside of binding the socket. It seems like the required functionality of the draft could be achieved by calling setsockopt to express desired address type and then calling connect on the socket. Connect will bind an address with the requested type and can obviously block if work needs to be done to find an appropriate address. This simplifies the API and addresses an ambiguity in the draft-- when setsc returns it is unclear if the address was somehow reserved for the socket use (e.g.
> > this becomes pertinent if we were to add an interface to bind a unique address to a socket).
> >
> > Tom
> >
> > > Regards,
> > > Danny
> > >
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: dmm [mailto:dmm-bounces@ietf.org] On Behalf Of Tom Herbert
> > > Sent: Friday, February 22, 2019 22:08
> > > To: dmm <dmm@ietf.org>
> > > Subject: Re: [DMM] I-D Action:
> > > draft-ietf-dmm-ondemand-mobility-17.txt
> > >
> > > Out of curiosity, why is the new API being portrayed as a system
> > > call
> > > (setsc) instead of a socket option (the bar for adding a socket option is much lower ).
> > >
> > > Tom
> > >
> > > On Fri, Feb 22, 2019 at 6:19 AM <internet-drafts@ietf.org> wrote:
> > > >
> > > >
> > > > A New Internet-Draft is available from the on-line Internet-Drafts directories.
> > > > This draft is a work item of the Distributed Mobility Management WG of the IETF.
> > > >
> > > >         Title           : On Demand Mobility Management
> > > >         Authors         : Alper Yegin
> > > >                           Danny Moses
> > > >                           Seil Jeon
> > > >         Filename        : draft-ietf-dmm-ondemand-mobility-17.txt
> > > >         Pages           : 18
> > > >         Date            : 2019-02-22
> > > >
> > > > Abstract:
> > > >    Applications differ with respect to whether they need session
> > > >    continuity and/or IP address reachability.  The network providing the
> > > >    same type of service to any mobile host and any application running
> > > >    on the host yields inefficiencies, as described in [RFC7333].  This
> > > >    document defines a new concep of enabling applications to influence
> > > >    the network's mobility services (session continuity and/or IP address
> > > >    reachability) on a per-Socket basis, and suggests extensions to the
> > > >    networking stack's API to accomodate this concept.
> > > >
> > > >
> > > > The IETF datatracker status page for this draft is:
> > > > https://datatracker.ietf.org/doc/draft-ietf-dmm-ondemand-mobility/
> > > >
> > > > There are also htmlized versions available at:
> > > > https://tools.ietf.org/html/draft-ietf-dmm-ondemand-mobility-17
> > > > https://datatracker.ietf.org/doc/html/draft-ietf-dmm-ondemand-mobi
> > > > li
> > > > ty
> > > > -17
> > > >
> > > > A diff from the previous version is available at:
> > > > https://www.ietf.org/rfcdiff?url2=draft-ietf-dmm-ondemand-mobility
> > > > -1
> > > > 7
> > > >
> > > >
> > > > Please note that it may take a couple of minutes from the time of
> > > > submission until the htmlized version and diff are available at tools.ietf.org.
> > > >
> > > > Internet-Drafts are also available by anonymous FTP at:
> > > > ftp://ftp.ietf.org/internet-drafts/
> > > >
> > > > _______________________________________________
> > > > dmm mailing list
> > > > dmm@ietf.org
> > > > https://www.ietf.org/mailman/listinfo/dmm
> > >
> > > _______________________________________________
> > > dmm mailing list
> > > dmm@ietf.org
> > > https://www.ietf.org/mailman/listinfo/dmm
> > > --------------------------------------------------------------------
> > > - A member of the Intel Corporation group of companies
> > >
> > > This e-mail and any attachments may contain confidential material
> > > for the sole use of the intended recipient(s). Any review or
> > > distribution by others is strictly prohibited. If you are not the
> > > intended recipient, please contact the sender and delete all copies.
> > >
> > ---------------------------------------------------------------------
> > A member of the Intel Corporation group of companies
> >
> > This e-mail and any attachments may contain confidential material for
> > the sole use of the intended recipient(s). Any review or distribution
> > by others is strictly prohibited. If you are not the intended
> > recipient, please contact the sender and delete all copies.
> ---------------------------------------------------------------------
> A member of the Intel Corporation group of companies
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.