Re: [spring] SRv6 Network Programming: ENH = 59

Ole Troan <otroan@employees.org> Wed, 08 May 2019 19:37 UTC

Return-Path: <otroan@employees.org>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 313E0120203; Wed, 8 May 2019 12:37:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 1b5gDviCtzkr; Wed, 8 May 2019 12:37:49 -0700 (PDT)
Received: from bugle.employees.org (accordion.employees.org [198.137.202.74]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7EABA1201CA; Wed, 8 May 2019 12:37:49 -0700 (PDT)
Received: from astfgl.hanazo.no (30.51-175-112.customer.lyse.net [51.175.112.30]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bugle.employees.org (Postfix) with ESMTPSA id ECDC8FECBE91; Wed, 8 May 2019 19:37:48 +0000 (UTC)
Received: from [IPv6:::1] (localhost [IPv6:::1]) by astfgl.hanazo.no (Postfix) with ESMTP id 5C3D214E5E84; Wed, 8 May 2019 21:37:47 +0200 (CEST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\))
From: Ole Troan <otroan@employees.org>
In-Reply-To: <A1AE8525-F7A8-4375-AA53-BCFC466433AC@steffann.nl>
Date: Wed, 08 May 2019 21:37:47 +0200
Cc: Ron Bonica <rbonica=40juniper.net@dmarc.ietf.org>, SPRING WG <spring@ietf.org>, Bob Hinden <bob.hinden@gmail.com>, 6man WG <ipv6@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <34C1C972-6814-4F35-84B1-3C3A8D81C8B4@employees.org>
References: <BYAPR05MB4245988C3A47C3665BD91172AE300@BYAPR05MB4245.namprd05.prod.outlook.com> <AA81898A-9E6C-4AD5-9629-4BA283378A79@cisco.com> <BYAPR05MB4245AEA785C959D29E4ECE61AE310@BYAPR05MB4245.namprd05.prod.outlook.com> <58529f07-acfc-3678-5381-4ae271143a45@gmail.com> <94EF12FB-0598-4E76-9A60-0CF67096DD04@employees.org> <CALx6S360dJD4_YcqMMy9k8NOLNdy1UZPAzBNOw1WpAz6iYfWag@mail.gmail.com> <CAO42Z2wBL=h=MKLshKUJa4m6aqTSGn4XQgKao06wKvvreKpB8w@mail.gmail.com> <CALx6S36q+7L7=7m_TgFJL5BN1ryM=9Kgb3sND1Rw+Pmza5OVYQ@mail.gmail.com> <DD003840-92D2-4878-B1CC-CDCB18FA527B@gmail.com> <BYAPR05MB42459C7A22F5AF2F1AB75CD1AE320@BYAPR05MB4245.namprd05.prod.outlook.com> <B2E808BB-E995-4AEE-A9E4-8AA7F92E4939@employees.org> <A1AE8525-F7A8-4375-AA53-BCFC466433AC@steffann.nl>
To: Sander Steffann <sander@steffann.nl>
X-Mailer: Apple Mail (2.3445.104.8)
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/AD5WtEM9HPf-IVi_xb0swYR1XGc>
Subject: Re: [spring] SRv6 Network Programming: ENH = 59
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Source Packet Routing in NetworkinG \(SPRING\)" <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 May 2019 19:37:51 -0000

Sander,

> 
> The next-header should identify what follows, so that anybody parsing the packets knows what to expect. Using "No Next Header" should mean "nothing follows". Once we start using No-next-header for "some stuff may follow" it will become very hard to make sense of packets. Overloading the meaning of no-next-header will only create confusion. What when someone starts using it for "encrypted stuff follows"? How do we distinguish between "payload is ethernet" and "payload is encrypted"?
> 
> The whole point of these identifies is to tell the reader what the meaning is of what follows. Using value 59 like this looks like "when we say 'no-next-header' we actually mean 'ethernet' (probably)". That's just bad engineering, and reminds me of MPLS implementations that tried to guess what the payload was by looking at the first nibble (if it's 4 then it's probably an IPv4 packet, if it's a 6 then it's probably IPv6 and otherwise we treat it as ethernet). That kind of worked until MAC addresses starting with 4 and 6 started to be used... Let's not make such mistakes again and put proper labels on our payloads.

That is not correct in the general.
E.g. you could  use a control protocol or some other mechanism to signal the required information.
I think in the "Patterns of Networking" J Day proposes a scheme without demuxing on protocol/ports (but the details elude me at the moment).

Cheers,
Ole