Re: [Int-area] [EXTERNAL] Re: New Version Notification for draft-herbert-ipv4-eh-03.txt

Tom Herbert <tom@herbertland.com> Thu, 21 March 2024 15:56 UTC

Return-Path: <tom@herbertland.com>
X-Original-To: int-area@ietfa.amsl.com
Delivered-To: int-area@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 586A7C15154E for <int-area@ietfa.amsl.com>; Thu, 21 Mar 2024 08:56:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.106
X-Spam-Level:
X-Spam-Status: No, score=-2.106 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=herbertland.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oqayhMff3wlC for <int-area@ietfa.amsl.com>; Thu, 21 Mar 2024 08:56:01 -0700 (PDT)
Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3EA88C14CF1D for <int-area@ietf.org>; Thu, 21 Mar 2024 08:56:01 -0700 (PDT)
Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-56ba6c83805so1410204a12.0 for <int-area@ietf.org>; Thu, 21 Mar 2024 08:56:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland.com; s=google; t=1711036559; x=1711641359; darn=ietf.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=raKH70WKJzJVsBYBXlH3Xz6Bz+NIEiNnGcIjqfqEDLs=; b=eEIkxVx3SkUcgKGAwEjsuaXdB3RM8B+ZqeOpWBB4CqE6YvYft8Xz2CC4w3J3frRZGr yPcSCa/VuCobZ7M49SWQaMkYvAeE9HzgZhNPt7Ji3wh3JWpv91wfonmKFA6LCZYE3MDO b7GjGncCgTt8nRmZQ55tB7MJhZMZCnWAfmJMXd+OE2+rd/dBq2MXpAMXiSEtX47URart sTr40l9KnUsc6iPoizi9ei8Tj2Mc6AYOwYXXi/StZ1bNsRhjrMkoujHwNmpfkLb+rreV WxmyFEG5Fv+H9UUBzMKV/O2lzjisu9yAn+6E/JHP0t0utXq/w0vAfD8bkKbQP1iUMWwS 15Wg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711036559; x=1711641359; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=raKH70WKJzJVsBYBXlH3Xz6Bz+NIEiNnGcIjqfqEDLs=; b=l1AabQqGyeuH/tyweHBGW8HcYG0JXWufBKhNJTRuiLd5UQdbsvJGG6K7fXrUamJGPe pkiTLGrX8My8rufpjY7ARaYauldh/RqT8AOKL50zKel132ML/LtpdxpKItDyGEGWLiAP B63Jac/WBkvz2re0gdLa1znhUfD8rK2L1Wxrtxf/tilL13nlUhyOT7sspN9+/alSUWKF A7F/gKJPtajbBhaX6Q4AlAE7Q1vY1KIlXWTeVscqBYpcBRCLzT2PcNyDZU7UM5Hcfojn 8aVTLYbH7fKP6hPDvkSwXIt294vrnYF0DaQJ4zddtMA+xvEbJnNLUfRSPNElSrhMH2/D QMUg==
X-Forwarded-Encrypted: i=1; AJvYcCXVsbOic+cziHuqvS4dbudUTafGfVh6WQxG2pMt0fTTse1MzANxr6jgHhiI6aq9otu0bPFzXF2/MFDK4TtrPe1THw==
X-Gm-Message-State: AOJu0YwXzabzjjmjMU1S1rFIfbIusCvD86iuRiqKarYtySgntReY31cb Cff+eRSMQNl0uMn85faZpww7BmxXPHd3tYEzin6ummCxla4eNF4R586orBRt7WBOhSLPjlBsR2e /xHQAW2VDnjhRLOdZLqd/vXekTH1B4T6zrjc6
X-Google-Smtp-Source: AGHT+IGD/hYo6ZTxWlTOdqSJhGIWHInVKygq6C+YM0R3aqcQzFejtQUO5GqVFo6MKyfTnNsKEIG/aVihzm9CUthiWlM=
X-Received: by 2002:a05:6402:5516:b0:568:1248:9f49 with SMTP id fi22-20020a056402551600b0056812489f49mr15775972edb.18.1711036559595; Thu, 21 Mar 2024 08:55:59 -0700 (PDT)
MIME-Version: 1.0
References: <170865175505.14082.3856617737779580933@ietfa.amsl.com> <CALx6S363oh+7rNMaMa0s+9A-xeyLBy+ct-Q_Bx0xQm_di1PPJA@mail.gmail.com> <ZeZjGyxmuapXz5tb@faui48e.informatik.uni-erlangen.de> <CALx6S34OFL7tzabL+RMvB3nkad5k9esCD_dFpMi6DUtUEG-Dmg@mail.gmail.com> <ZedO1u7aheBhZ26N@faui48e.informatik.uni-erlangen.de> <ZfurRK_oNVES2hVz@faui48e.informatik.uni-erlangen.de> <CALx6S36L57vPa5YkiV3khYbFpPPgPUVynWaRVno0BufvXcALeA@mail.gmail.com> <Zfu5GQ7101lMnHGs@faui48e.informatik.uni-erlangen.de> <DCE2D4E2-9C5D-40B7-952F-7424E7FCBAFE@strayalpha.com> <SN6PR08MB3920E4B4094B92CC54BA43F1E6322@SN6PR08MB3920.namprd08.prod.outlook.com> <CALx6S36_ST0wjo+yDqezKMGtrLYp1ONX-mtaYCD2n1w2j_oT7w@mail.gmail.com> <SN6PR08MB3920DE4FE846735FD308E5E7E6322@SN6PR08MB3920.namprd08.prod.outlook.com>
In-Reply-To: <SN6PR08MB3920DE4FE846735FD308E5E7E6322@SN6PR08MB3920.namprd08.prod.outlook.com>
From: Tom Herbert <tom@herbertland.com>
Date: Thu, 21 Mar 2024 08:55:48 -0700
Message-ID: <CALx6S35sBYy918aLrqx0AWNDaCtBgVyo2ttWkzf=M43ys-UPhQ@mail.gmail.com>
To: "Robinson, Herbie" <Herbie.Robinson=40stratus.com@dmarc.ietf.org>
Cc: "Robinson, Herbie" <Herbie.Robinson@stratus.com>, int-area <int-area@ietf.org>, Toerless Eckert <tte@cs.fau.de>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-area/C1CUnZ_Djp-HtaIyhSQDtcuMYeI>
Subject: Re: [Int-area] [EXTERNAL] Re: New Version Notification for draft-herbert-ipv4-eh-03.txt
X-BeenThere: int-area@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF Internet Area WG Mailing List <int-area.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/int-area>, <mailto:int-area-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/int-area/>
List-Post: <mailto:int-area@ietf.org>
List-Help: <mailto:int-area-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-area>, <mailto:int-area-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Mar 2024 15:56:05 -0000

On Thu, Mar 21, 2024 at 8:18 AM Robinson, Herbie
<Herbie.Robinson=40stratus.com@dmarc.ietf.org> wrote:
>
> But they aren’t independent.  There are going to be dozens of places where it scans the packet in order to extract the port number from the ULP headers (TCP, UDP, etc).  Those will all break.  And that includes all of the processing offload and packet routing done in the NIC.
>
>
>
> And those are just a few things I could think of in 2 minutes…

Hi Herbie,

But none of those things break any *protocol standard*. When
intermediate nodes do deep parsing into packets to find port numbers
they are not following a standard protocol, they are doing that on
their own accord. And note that port number extraction is an
opportunistic mechanism, it only works when a device has support for
specific protocols in a packet.  For instance, most devices can
extract ports from TCP and UDP, but can they extract them from DCCP or
SCTP? What about GRE or IPIP and other tunneling protocols? Even if
they do all of those, they can't extract port numbers from an ESP
packet. So port number extraction already doesn't work in a bunch of
cases, and IPv4 EH doesn't create a new problem in that regard.

As for NICs, I don't think that is much of a problem any more. We now
expect them to be programmable to easily support new protocols. So
skipping over some new EH to find port numbers isn't much of an issue
(actually, it's the same code they would use with IPv6 so it's just a
matter of enabling the protocol numbers for new EH).

>From the POV of intermediate nodes, extension headers are just another
protocol they might see. If they want to parse them that's fine, if
they want to ignore them like they would need to do with ESP or some
other protocol they don't implement that's fine. What they shouldn't
do is just drop packets because they don't approve of the protocols
they encapsulate. If we accept that they can do that, then we're
accepting the ossification of the Internet as status quo.

Tom

>
>
>
> In the host it's not a horrible amount of work since extension headers
> are mostly independent of the IP protocol and we'll be able to share a
> lot of implementation. For instance, supporting Fragment Header in
> IPv4 is fairly straightforward, most of the logic dealing with
> fragments in reassembly is agnostic to the IP protocol (except for
> using the addresses to match fragments to the reassembly queue). I
> imagine it's probably less than fifty Lines of Code to support IPv4
> Fragment Header in Linux.
>
> Support in routers is already there inasmuch that they can forward
> packets of any unresognized IP Protocol. Router support for IPv4 HBH
> or the IPv4 flow label is completely optional.
>
> Tom
>
>
>
> >
> >
> >
> > From: Int-area <int-area-bounces@ietf.org> On Behalf Of touch@strayalpha.com
> > Sent: Thursday, March 21, 2024 10:46 AM
> > To: Toerless Eckert <tte@cs.fau.de>
> > Cc: int-area <int-area@ietf.org>
> > Subject: [EXTERNAL] Re: [Int-area] New Version Notification for draft-herbert-ipv4-eh-03.txt
> >
> >
> >
> > [EXTERNAL SENDER: This email originated from outside of Stratus Technologies. Do not click links or open attachments unless you recognize the sender and know the content is safe.]
> >
> >
> >
> > ________________________________
> >
> > On Mar 20, 2024, at 9:35 PM, Toerless Eckert <tte@cs.fau.de> wrote:
> >
> >
> >
> > On Wed, Mar 20, 2024 at 09:20:24PM -0700, Tom Herbert wrote:
> >
> > In other words, Destination Option Headers do not have fundamentally distinct
> > processing requirements on the destination host examining it than any other
> > possible protocol header (e.g.: UDP, TCP), or at least we could not find such a description
> > for any such guiding rules or treatment differences in RFC8200.
> >
> >
> > Yes, that's mostly how all the IP protocols are implemented.
> > Processing of an encapsulated protocol isn't completely independent,
> > for instance the pseudo header for the TCP and UDP checksum is
> > different for IPv4 and IPv6.
> >
> >
> > Right. But it seems unrelated to whether or not a header is an extension header,
> > TCP and UDP not being extension headers for example.
> >
> >
> >
> > I haven’t seen it mentioned yet (apologies if so), but there is a big difference between extension headers and encapsulated protocols.
> >
> >
> >
> > Extension headers - no matter how many - can each refer back to the base header. Same for the first encapsulated protocol.
> >
> >
> >
> > E.g.:
> >
> >
> >
> > IP1 IP2 IP3 TCP…. TCP uses a pseudo header based on IP3
> >
> > But:
> >
> > IPv6a EHb EHc TCP… TCP uses a pseudo header based on IPv6a; each of the EH’s can also refer back to IPv6a
> >
> >
> >
> > I see NO way to do this with any mechanism for IPv4 except options (whose space is limited). There’s no way to redefine protocol processing to ensure that information can be “Carried” forward across EHs.
> >
> >
> >
> > This seems like a show-stopper; has it been addressed?
> >
> >
> >
> > Joe
> >
> > _______________________________________________
> > Int-area mailing list
> > Int-area@ietf.org
> > https://www.ietf.org/mailman/listinfo/int-area
>
> _______________________________________________
> Int-area mailing list
> Int-area@ietf.org
> https://www.ietf.org/mailman/listinfo/int-area