Re: Proposal for changing how IPv6 Hop-by-Hop Options are processed

Tom Herbert <tom@herbertland.com> Fri, 04 December 2020 15:55 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AE3D43A0DBB for <ipv6@ietfa.amsl.com>; Fri, 4 Dec 2020 07:55:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] 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 BKUJ6mkv9yz9 for <ipv6@ietfa.amsl.com>; Fri, 4 Dec 2020 07:55:01 -0800 (PST)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (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 501C03A0DB4 for <ipv6@ietf.org>; Fri, 4 Dec 2020 07:55:01 -0800 (PST)
Received: by mail-ed1-x534.google.com with SMTP id d18so6312926edt.7 for <ipv6@ietf.org>; Fri, 04 Dec 2020 07:55:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=8IqV2IIXTiXiVdR7ASt580ojtqKomGN0te8lpvpb0/4=; b=QbPAozuoV8DWWZcncK/03+ekayEVd/Wspt9Rj/QoD+Y4JWPU3VtYYm6c125XlyOWKO VFu4x95lwtBWwBbvlfdJFGS9YsYsOIW6WJdtcLZmXRHcK1HsSXvogsS1NImWKQhrBAAu nGQsVSfDQFknCK01NztLDaeSa+vIS2aUnNzK+eb8JYceEId92RD8GDoXfwGqOOjdUCtZ TaYNZ3PeVI1bsW5p0ncY7OUYoeIfdjKtimuQbshl/drPIq22r8wnH5l6YvThyehKVFh0 S/cFJAt0KCwKQ/d74+UKIwaw/2Brr8kUpTNZ0hUMvB65KoiGNqVvr5oKIa1zOoBQPfqi ruBQ==
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=8IqV2IIXTiXiVdR7ASt580ojtqKomGN0te8lpvpb0/4=; b=AXTf1mm2p/dAQKEi+Mu/peMcWFsHxNVhuhyl4xy6TI6bKSoBwkteY1olZkiWT0Q2db qyjPsYDJ9pDXstyMQwEtVZfT0QHditIc6X6VU2kO9r6TdhcwQGduqikKH697mejonzu/ fpYuPQeCKSUfAU1JnAJGpYJzod9YGpzB3Wwov/M7LiwDTNIW4G2AIpVEeuYLTSy1zX76 Nao4yh0Jm/XKsHAQ2WwsGBIPArHFL2xJ+bZqmp3sHjg60GtfnSNBW1ypF/YHlQfWkV+8 Ex4MpZqw6qGv62bcHlA5xPyHZBNHb2t1Rw3WqOMUXidzgMg274I5Nz8wGylXFIS86Sc2 wHyA==
X-Gm-Message-State: AOAM531gtNunt4is5wccnDWR5k3kv9hk44z3ej5jsOhWd52saVlOi+Gp M1AFZPONxXvwv09Iwc2cU3qwbMDv0ZPGmxfxK5X+MA==
X-Google-Smtp-Source: ABdhPJxaS66ekJXKvxywlTDHFbMzEGIu71Zbv8YRSLwSOe2booDaLjmX8+RVuUUIMclg/BxJdtqgGh0uemBZeoZUUJI=
X-Received: by 2002:aa7:c313:: with SMTP id l19mr8295925edq.293.1607097299369; Fri, 04 Dec 2020 07:54:59 -0800 (PST)
MIME-Version: 1.0
References: <160703668657.9405.8891046478566468162@ietfa.amsl.com> <C573A554-9221-49C2-94AB-E552F1BA69E4@gmail.com> <8360e9919d46478cb471ccbafe923c7a@huawei.com> <DM6PR13MB27623A5EEB29F8294C3291C89AF10@DM6PR13MB2762.namprd13.prod.outlook.com> <a6c1a352-5f31-3c4b-9b75-50a64f82c925@erg.abdn.ac.uk>
In-Reply-To: <a6c1a352-5f31-3c4b-9b75-50a64f82c925@erg.abdn.ac.uk>
From: Tom Herbert <tom@herbertland.com>
Date: Fri, 04 Dec 2020 08:54:48 -0700
Message-ID: <CALx6S37zOXx5T=3wACpiif91dGnpykUEcpX9DhQ9cH2zD_jGFQ@mail.gmail.com>
Subject: Re: Proposal for changing how IPv6 Hop-by-Hop Options are processed
To: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Cc: Haoyu Song <haoyu.song@futurewei.com>, Tianran Zhou <zhoutianran@huawei.com>, Bob Hinden <bob.hinden@gmail.com>, IPv6 List <ipv6@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/dIzMwzYqAkyB6yxZloVw3ejkDGA>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 04 Dec 2020 15:55:04 -0000

On Fri, Dec 4, 2020 at 2:34 AM Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote:
>
> I see lots of thoughts - all of which might help see us through towards
> some conclusions.
>
> Just on (1). Whether one HBH option si enough, might depend on the
> use-case.
>
Gorry,

If one option only is a MUST then that would force all use cases to conform.

> The HBH options do not need to be set on every packet.

Many network devices like uniformity in packets being sent on a flow.
For instance, packets may be routed differently based where there is a
HBH EH as opposed when they don't (for instance, some device does
parse over the EH to find the transport ports for ECMP) so this could
cause OOO or other performance issues. Per the transmit clause of
robustness principle, it's best to make all packets of a flow look
alike as much as possible.

> For instance,
> they might be sent on packet that carries a transport-layer control
> payload (with no "data") to solict some feedback from the path. This
> might have good deployment possibilities ...

That's pushing a lot of complexity to the host stack, especially if it
has to decide which among multiple options need to be sent at every
packet.

> because even if there is
> loss of such a packet because of its EH, this loss can be detected by
> the upper layer protocol, and it does not impact the data transmission.
>
> A node can send multiple control such packets with different HBH options
> to perform different actions. That means even with only one HBH option
> per packet, I could still envisage performing different actions,
> MTU-discovery, etc.

Having a HBH container option that could efficiently encode multiple
HBH options (not in TLVs!) is an interesting idea. The flag-fields
approach used by GRE and GUE allows efficient encoding of some number
of fixed length options that are well ordered and allow random access.
For instance, in thirty bit flags we could encode the presence of all
currently defined HBH options (those that are variable length could be
limited to a few lengths). The flags indicate presence of options and
hardware can process this in array or TCAM lookups, in particular the
serial processing needed for processing options in TLVs goes away.

>
> I do expect other use cases, and we should identify and evaluate these!
>
> On (2), I do think we can improve the wording. My own thoughts are that
> we need to find words that set the expectation correctly, to avoid
> people seeing this as just a significant DoS vector.
>
Please look ar section 5.3 of RFC8504 and that should probably be a
reference because it is addressing the same DoS vector.

Tom

> I hope we find support for something in the near future...
>
> Gorry
>
>
> On 04/12/2020 02:26, Haoyu Song wrote:
> > I share the same concerns. In my opinion, we should only enforce that routers will not drop packets with HbH options and allow the routers to be configured to process 0, 1, or more HbH options or do it in the best effort fashion. So it basically means, packet with HbH options are guaranteed to be forwarded but the processing of the option is optional.
> >
> > BR,
> > Haoyu
> >
> > -----Original Message-----
> > From: ipv6 <ipv6-bounces@ietf.org> On Behalf Of Tianran Zhou
> > Sent: Thursday, December 3, 2020 5:42 PM
> > To: Bob Hinden <bob.hinden@gmail.com>; IPv6 List <ipv6@ietf.org>
> > Cc: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
> > Subject: RE: Proposal for changing how IPv6 Hop-by-Hop Options are processed
> >
> > Hi Bob,
> >
> > " A very short summary is that there can only be one Hop-by-Hop option in a Hop-by-Hop Option header, and that Hop-by-Hop Options must be process in the fast path."
> >
> > I have two concerns:
> > 1. Only one option may restrict many future applications. I believe there are needs to do multiple actions with the hbh behavior. Moreover, the chip capability will improve year by year. We can predict the future the capability to deal with multiple options.
> >
> > 2. The HbH option "must" be processed in the fast path seems also too strict. That means HbH cannot be processed by slow path. I would like to say it "must be firstly processed in the fast path". That means this option should not be blindly sent to slow path. But it should firstly be considered in the fast path. Then several following options: fast path, slow path, by pass.
> >
> > Best,
> > Tianran
> >
> >
> > -----Original Message-----
> > From: ipv6 [mailto:ipv6-bounces@ietf.org] On Behalf Of Bob Hinden
> > Sent: Friday, December 4, 2020 7:16 AM
> > To: IPv6 List <ipv6@ietf.org>
> > Cc: Gorry Fairhurst <gorry@erg.abdn.ac.uk>; Bob Hinden <bob.hinden@gmail.com>
> > Subject: Proposal for changing how IPv6 Hop-by-Hop Options are processed
> >
> > Hi,
> >
> > Gorry and I put together a draft that proposes to change how IPv6 Hop-by-Hop Options are processed.  Links to the draft below.
> >
> > Abstract:
> >
> >    This document specifies procedures for how IPv6 Hop-by-Hop options
> >    are processed.  It modifies the procedures specified in the IPv6
> >    Protocol Specification (RFC8200) to make processing in routers more
> >    practical with the goal of making IPv6 Hop-by-Hop options useful to
> >    deploy in the Internet.  When published, this document updates
> >    RFC8200.
> >
> > A very short summary is that there can only be one Hop-by-Hop option in a Hop-by-Hop Option header, and that Hop-by-Hop Options must be process in the fast path.
> >
> > Please read and comment on the draft (that is, not on just this email).   We think this might make Hop-by-Hop options practical to use in the Internet.
> >
> > Bob & Gorry
> >
> >
> >> Begin forwarded message:
> >>
> >> From: internet-drafts@ietf.org
> >> Subject: New Version Notification for
> >> draft-hinden-6man-hbh-processing-00.txt
> >> Date: December 3, 2020 at 3:04:46 PM PST
> >> To: "Robert M. Hinden" <bob.hinden@gmail.com>, "Godred Fairhurst"
> >> <gorry@erg.abdn.ac.uk>, "Robert Hinden" <bob.hinden@gmail.com>, "Gorry
> >> Fairhurst" <gorry@erg.abdn.ac.uk>
> >>
> >>
> >> A new version of I-D, draft-hinden-6man-hbh-processing-00.txt
> >> has been successfully submitted by Robert M. Hinden and posted to the
> >> IETF repository.
> >>
> >> Name:                draft-hinden-6man-hbh-processing
> >> Revision:    00
> >> Title:               IPv6 Hop-by-Hop Options Processing Procedures
> >> Document date:       2020-12-03
> >> Group:               Individual Submission
> >> Pages:               11
> >> URL:            https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Farchive%2Fid%2Fdraft-hinden-6man-hbh-processing-00.txt&amp;data=04%7C01%7Chaoyu.song%40futurewei.com%7C2d02d0b86be0472a572208d897f5ee10%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637426429867138791%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=CUJFqmkmjLLcT0lFWZn2HVpX0Fp8BU0DN9yskwaeBas%3D&amp;reserved=0
> >> Status:         https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-hinden-6man-hbh-processing%2F&amp;data=04%7C01%7Chaoyu.song%40futurewei.com%7C2d02d0b86be0472a572208d897f5ee10%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637426429867138791%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=FD9nh8S1xvkoCCYAGuCXv%2FiH%2BdGNRX3IBig1BLz0QMk%3D&amp;reserved=0
> >> Html:           https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Farchive%2Fid%2Fdraft-hinden-6man-hbh-processing-00.html&amp;data=04%7C01%7Chaoyu.song%40futurewei.com%7C2d02d0b86be0472a572208d897f5ee10%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637426429867138791%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=TvBfaQURQuZvIMUFT59VdI4wqP8gNdQF1uGo13CC6dY%3D&amp;reserved=0
> >> Htmlized:       https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-hinden-6man-hbh-processing-00&amp;data=04%7C01%7Chaoyu.song%40futurewei.com%7C2d02d0b86be0472a572208d897f5ee10%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637426429867138791%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=VBUOGO%2BkrnPCPP64l4CguOTU5SIQyduVSmT%2BLOMnyOU%3D&amp;reserved=0
> >>
> >>
> >> Abstract:
> >>    This document specifies procedures for how IPv6 Hop-by-Hop options
> >>    are processed.  It modifies the procedures specified in the IPv6
> >>    Protocol Specification (RFC8200) to make processing in routers more
> >>    practical with the goal of making IPv6 Hop-by-Hop options useful to
> >>    deploy in the Internet.  When published, this document updates
> >>    RFC8200.
> >>
> >>
> >>
> >>
> >> 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.
> >>
> >> The IETF Secretariat
> >>
> >>
> > --------------------------------------------------------------------
> > IETF IPv6 working group mailing list
> > ipv6@ietf.org
> > Administrative Requests: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fipv6&amp;data=04%7C01%7Chaoyu.song%40futurewei.com%7C2d02d0b86be0472a572208d897f5ee10%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637426429867138791%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=tWTygpRYLt56POZasHaJY50BnUgtUmOQLQlem47lZSk%3D&amp;reserved=0
> > --------------------------------------------------------------------
>
>
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> ipv6@ietf.org
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------