Re: [v6ops] Flow label setting [WG Doc? draft-gont-v6ops-ipv6-ehs-packet-drops]

Tom Herbert <tom@herbertland.com> Mon, 14 March 2016 22:32 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 32B6112D7CD for <v6ops@ietfa.amsl.com>; Mon, 14 Mar 2016 15:32:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland-com.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 RTE9ruRVsEgu for <v6ops@ietfa.amsl.com>; Mon, 14 Mar 2016 15:32:22 -0700 (PDT)
Received: from mail-io0-x235.google.com (mail-io0-x235.google.com [IPv6:2607:f8b0:4001:c06::235]) (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 3F72E12D7C9 for <v6ops@ietf.org>; Mon, 14 Mar 2016 15:32:22 -0700 (PDT)
Received: by mail-io0-x235.google.com with SMTP id n190so2818362iof.0 for <v6ops@ietf.org>; Mon, 14 Mar 2016 15:32:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=VsljBgPwhiwaLpLR9BA8tvrHmo1Gf2VMbY4rcOyRwOQ=; b=LK7mDHMpoRcYJO6SFTQIX3K6yEFKaB9ijNoT0kRuyUmN0KeLLGWCEzA7jxnfNng/ZH hL09avi1eUuB4GjIfXepnzcxlK2+CNjt6VJpJcWvx1GP+nTbBpexYiuRJ+5PUTjQFWME 7tPU1hZ/v7oSXHshZWcS7X/UcBCFwL8x30o92fnYrwT1PeRlxTXqyiGjhOp1M4SeAD9y nKzfwyul2AGliOFqqdQ8JX6vzeSmBw9y3dU3zrnYKj46LRoKZlQvipQGiIJ5/502NCLU 6eK7ZdBH2mqKb0CQRcTD5T+VKSi2iSvDRvWnHmxAl3vTXhoYB7BY62Iylu4eONAMEXBo w5Dw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=VsljBgPwhiwaLpLR9BA8tvrHmo1Gf2VMbY4rcOyRwOQ=; b=AdTXiJejs5ZoL7IWUsxZ+0Ly84xzUvy+dToNvFNtGZ/Xk7fiufKg0rx2RkhvOUjt2P Gc/4wLzn2sYlREWAdPz9OT7y2MIxYML3Aa5W2BCKhl41i1oWBBDG7ZDHL74rxU/p4Ntw /0jXmZK4sDn+KE4AIX4sJiroddfJMi2QrEIrLB09CXBCpc97h1JO4ggAOmY5Xrbo3bqd qbyKIoug/IAzFTucRTrohA9PjDlzZU0U4R1+PN4wWY/6E+b7k63JypOhIgHwP/j/lTLr VHqpWfHcOvDUnAVOkPg/Y5XZ0ty0RMgn5FqNFnwK1cLe5Z1H5zyqfiZ6fMHdY8Vouh4z apUg==
X-Gm-Message-State: AD7BkJKiUdxJAJlvt2ag9JmKFu9Fs5Qz2qfWqd01cEHonbMsGgPxg9EP1JZOvl6uEuMkfzPMN3AsT+Ojogx05g==
MIME-Version: 1.0
X-Received: by 10.107.152.142 with SMTP id a136mr26704482ioe.84.1457994741614; Mon, 14 Mar 2016 15:32:21 -0700 (PDT)
Received: by 10.107.160.203 with HTTP; Mon, 14 Mar 2016 15:32:21 -0700 (PDT)
In-Reply-To: <56E71F40.9030102@gmail.com>
References: <A277BE71-BD70-4AFE-97DA-F224D7DBBCB8@cisco.com> <BDA56C2D-788D-421C-B44A-1A29578F0F78@employees.org> <56E318C7.5020200@gmail.com> <F57DFD38-FC99-45AE-B41D-51B0565148B1@employees.org> <CALx6S37vNXk-g=W4n_Qvd2J=7xkgydvGEUwrhu8pRQig0hoqLg@mail.gmail.com> <1BB37194-0F5B-45C1-9DFA-87B1C28264D2@employees.org> <CALx6S37vfDcchTa5Tch+BS8rQAGgPP_EeYbVz19WBchSHTqExg@mail.gmail.com> <56E60B0D.6070600@gmail.com> <CALx6S36_Vi4XZfPvCNY42zpbXy9dXeXzwE8KedxYDhne371HHA@mail.gmail.com> <56E6326B.2090303@gmail.com> <CALx6S353ognNHWnjbNSdW5hb_e6Hv3LqLa_r+e9yEW4F=cjH=A@mail.gmail.com> <56E6FC18.1060304@foobar.org> <CALx6S35pcSj_LLnDWJ68KwSYiHeu6FwrXTaR4N2xE6aY7MRO1A@mail.gmail.com> <56E71F40.9030102@gmail.com>
Date: Mon, 14 Mar 2016 15:32:21 -0700
Message-ID: <CALx6S34XYWe=BB5xw8gwmZF7m3LP=fY=5Mf9PZuz4h8FkzsEZg@mail.gmail.com>
From: Tom Herbert <tom@herbertland.com>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <http://mailarchive.ietf.org/arch/msg/v6ops/NLb9D5HBWDubS52EoNrdK8gqzqI>
Cc: "v6ops@ietf.org" <v6ops@ietf.org>
Subject: Re: [v6ops] Flow label setting [WG Doc? draft-gont-v6ops-ipv6-ehs-packet-drops]
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Mar 2016 22:32:24 -0000

On Mon, Mar 14, 2016 at 1:29 PM, Brian E Carpenter
<brian.e.carpenter@gmail.com> wrote:
> On 15/03/2016 07:12, Tom Herbert wrote:
> ...
>> iOS already sends non-zero IPv6 flow labels, we have changed Linux
>> default to use IPv6 flow label so once Android rebases the kernel the
>> majority of IPv6 end hosts should be sending non-zero flow labels. It
>> is far easier and shorter time to change the software stacks to send
>> them than upgrading all the HW in the paths to use them productively.
>
> True, and upgrading the client stacks will break the chicken/egg
> blockage in this case.
>
> You don't mention Windows, which is still quite present in the market,
> and for full impact servers need to be setting the flow label too.
>
> Also, what algorithms are the various stacks using? It isn't just a matter
> of setting any old non-zero value.
>
- FreeBSD (and presumably iOS): sets the flow label for a new
connection using the ip6_randomflowlabel function. This calls
randomid() which implements a pseudo random number generator. Flow
label is saved in connection state for use in transmitted packets.
This automatic flow label generation is controlled by a socket option
and a sysctl.

- Linux (e.g. Android will): sets the flow label for new connections
(TCP or connected UDP socket) using prandom_u32 (pseudo random
number). The flow label for a connection may change if the connection
is failing in hopes of finding a better route-- either the networking
stack detects a bad route (i.e. TCP is retransmitting) or userspace
can request a route change if it has information about path quality.
So flow labels are not necessarily persistent which probably makes
flow label filtering a bad idea at least if persistence for the
lifetime of a connection is required for that (see
http://www.maths.tcd.ie/~dwmalone/p/ec2nd05.pdf). For cases with no
connection state (unconnected UDP, forward and encapsulate), the flow
label is generated by parsing the packet to determine a hash based on
L3/L4 information.

- Windows: I believe you mentioned that Windows 7 doesn't seem to have
support for setting flow labels. Maybe someone from Microsoft can
clarify this and let us know what the prospects are for getting flow
label support.

These describe use of stateless flow labels. There are also interfaces
to set specific stateful flow labels, but since on the wire there is
no distinction between stateful and stateless labels we need to assume
that stateful labels retain reasonable properties for stateless uses
like ECMP (as in sec. 3 of RFC6437), however there is no effort by the
stack to enforce any properties of stateful labels.

Tom

>    Brian