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

Tom Herbert <tom@herbertland.com> Tue, 07 May 2019 14:24 UTC

Return-Path: <tom@herbertland.com>
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 DA03712006B for <spring@ietfa.amsl.com>; Tue, 7 May 2019 07:24:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, URIBL_BLOCKED=0.001] autolearn=unavailable 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 w6jroigvsJiw for <spring@ietfa.amsl.com>; Tue, 7 May 2019 07:24:43 -0700 (PDT)
Received: from mail-qt1-x836.google.com (mail-qt1-x836.google.com [IPv6:2607:f8b0:4864:20::836]) (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 CD8C7120141 for <spring@ietf.org>; Tue, 7 May 2019 07:24:42 -0700 (PDT)
Received: by mail-qt1-x836.google.com with SMTP id i31so19169403qti.13 for <spring@ietf.org>; Tue, 07 May 2019 07:24:42 -0700 (PDT)
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=HFK0M8RL8wItqRvwWzavrepEA3MN8rBKfeG16hofFSE=; b=gIm7BBiImkn7VSKdfF18NI1bg/2WrUxlJ/kcdOa4f937rO6WOMYXWljCGDmHYP9RuT QAbvuiBq42OQTAh0qha0sICEBcBDtjB1ZBrUtyl2nmd6FphkgoyU8jyIxzRUT/lbkuOk ZbcYxYXP/7/9W6IFZz1jw75ce/t7uo4F7MrSJFbaBrVbK/j+2MtVwNXju8Ub/5IKWgYD MV9xRkf5qI9l/gCDb02/BVEC0ZaHoqxNoZrOnyBLm69XaXWvC+Yzqy6BpbbA1r+LUmIU CXIcMbzo/XrM5tQ68UDKlD8/YNbpr1+pKo2NXu+PxflX2l449r/mQZxWTeWyguKmDKqN bvqg==
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=HFK0M8RL8wItqRvwWzavrepEA3MN8rBKfeG16hofFSE=; b=leljI7by+jdpOgPfYH4sC6AW9f+npMFjMLSqznC8zRjOG8m1B2vX5cCm8iD/yPcioS JZBdsXH2IofyF79ANMg20g24SA412s8u9Gq2wbLX8CKnbgu5uF11M/6stt2Mqh5RtAdo EcIXv23iRYurq0lqRNLhaM4lyYj5rphhU4a4yRLbsiR7zuLWo6BylXgpDCkmZA/TUE5d HWvk7EHJjJ4EeYihf2Xd06O6Vgni3vUjBzL77S202efweIPEJF7qw1VLnuoKmemScmy0 LRAle85ixcASoSOgleGct3OrEy1PGwlXotHzORF9xbkXhwTEw+RedTdT1+73PvcNmeRx jNTw==
X-Gm-Message-State: APjAAAUd29DhSrkl69w7G/u4xh6hXb9W2XWUHxVYHBl5gGWH/u0AVk7L +LbOopXEyt32zfbrQNp5z7WBK9GquCHHWtZ1G5q1lg==
X-Google-Smtp-Source: APXvYqwEtzsd+YlthKk0wl2obDdR5lSbk9Q0GBAUFvuq+9ux8nLehpjXd3w7b3/4L33QIBExmww4BWLGjhHayRWDQsI=
X-Received: by 2002:ac8:2228:: with SMTP id o37mr28019532qto.200.1557239081794; Tue, 07 May 2019 07:24:41 -0700 (PDT)
MIME-Version: 1.0
References: <BYAPR05MB4245988C3A47C3665BD91172AE300@BYAPR05MB4245.namprd05.prod.outlook.com> <AA81898A-9E6C-4AD5-9629-4BA283378A79@cisco.com> <6e954124-675f-f97d-dc7b-f64b4141c8b8@joelhalpern.com> <CAO42Z2ymJ-hUSL+M0Qrb=4S9BUHms0LOG-awqEMxnC+ANynA8A@mail.gmail.com> <CALx6S36xAouXEO5xXHcgLX_DBg1fLzH8phrqaVcTA_PQf8DKRA@mail.gmail.com>
In-Reply-To: <CALx6S36xAouXEO5xXHcgLX_DBg1fLzH8phrqaVcTA_PQf8DKRA@mail.gmail.com>
From: Tom Herbert <tom@herbertland.com>
Date: Tue, 07 May 2019 07:24:30 -0700
Message-ID: <CALx6S36xSjTNtGQmqWvy1TNXeHd_m_R1SbdMidYbA16KO0rmWA@mail.gmail.com>
To: Mark Smith <markzzzsmith@gmail.com>
Cc: "Joel M. Halpern" <jmh@joelhalpern.com>, SPRING WG <spring@ietf.org>, 6man WG <ipv6@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/xeJRB5j_OP8Or3mJpFhUwQBxL2Y>
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: Tue, 07 May 2019 14:24:47 -0000

On Tue, May 7, 2019 at 7:17 AM Tom Herbert <tom@herbertland.com> wrote:
>
> On Tue, May 7, 2019 at 7:05 AM Mark Smith <markzzzsmith@gmail.com> wrote:
> >
> >
> >
> > On Tue., 7 May 2019, 23:39 Joel M. Halpern, <jmh@joelhalpern.com> wrote:
> >>
> >> That is not what Next-Header means.
> >> Even with this explanation, it is clear that 59 is NOT the right value
> >> for the next header.
> >
> >
> > If the SID value isn't a reserved for this purpose, permanent and globally unique value, how would a troubleshooting tool like Wireshark know to decode the Ethernet packet after the no next header?
> >
> > Any capex cost savings from not encoding this information in the packet will be eliminated by the opex costs of increased time to resolve faults and the corresponding negative reputation with customers consequences.
> >
> > The more obvious it is how something works, the quicker and easier it is to fix when it breaks. This is the really the principle of least astonishment.
> >
> > https://en.m.wikipedia.org/wiki/Principle_of_least_astonishment?wprov=sfla1
> >
> There are already many IP protocols that allow encpasulation of non-IP
> protocols. The aforementioned GRE and EtherIP, but also MPLS also (as
> well as UDP variants of these in GRE/UDP, MPLS/UDP).
>
> If this is just encapsulating Ethernet then the correct type is
> EtherIP "EtherIP: Tunneling Ethernet Frames in IP Datagrams"
> (RFC3378). EtherIP has a two byte encapsulation header, but really its
> primary purpose is to align the Ethernet payload (e.g. it could be an
> IP protocol) to four bytes as stated in the RFC "The 16-bit header
> field provides memory alignment advantages in some implementation
> environments." AFAICT lignment is still relevant on

That is aligment is still relevant on modern CPU architectures (e.g.
ARM, RISC-V).

I also believe that concerns that the additional two byte header is
not hardware friendly are unwarranted. Parsing buffers, cache lines,
etc. are typically sized to power of two bytes. So if a packet with an
encapsulated Ethernet header may have length 4N + 2, and parsing
bufferor cache line size of 4M. If the packet fits into the parsing
buffer then 4N + 2 <= 4m=M. But then adding an additional two bytes
for EtherIP still keeps the packet in the parsing buffer range since
4N + 2 + 2 <= 4M also.

Tom

>
>
> > Regards,
> > Mark
> >
> >
> >>
> >> Yours,
> >> Joel
> >>
> >> On 5/7/19 3:08 AM, Pablo Camarillo (pcamaril) wrote:
> >> > Hi Ron,
> >> >
> >> > We use the next header value 59 to identify at the receiver that there is no other kind of Internet Protocol beneath to be processed.
> >> > Note that we are *not* using 59 to identify the fact that it is an ethernet header (i.e. other non Internet-Protocols would also use the 59 to identify that no further IP header processing has to be performed). The SID identifies that an Ethernet header follows the IPv6 extension headers.
> >> >
> >> > Thanks,
> >> > Pablo.
> >> >
> >> > -----Original Message-----
> >> > From: ipv6 <ipv6-bounces@ietf.org> on behalf of Ron Bonica <rbonica=40juniper.net@dmarc.ietf.org>
> >> > Date: Monday, 6 May 2019 at 02:48
> >> > To: SPRING WG <spring@ietf.org>, 6man WG <ipv6@ietf.org>
> >> > Subject: SRv6 Network Programming: ENH = 59
> >> >
> >> >      Folks,
> >> >
> >> >      According to Section 4.4 of draft-ietf-spring-srv6-network-programming-00, when processing the End.DX2 SID, the Next Header must be equal to 59. Otherwise, the packet will be dropped.
> >> >
> >> >      In the words of the draft, "We conveniently reuse the next-header value 59 allocated to IPv6 No Next Header [RFC8200].  When the SID corresponds to function End.DX2 and the Next-Header value is 59, we know that an Ethernet frame is in the payload without any further header."
> >> >
> >> >      According to Section 4.7 RFC 8200, " The value 59 in the Next Header field of an IPv6 header or any  extension header indicates that there is nothing following that header.  If the Payload Length field of the IPv6 header indicates the presence of octets past the end of a header whose Next Header field contains 59, those octets must be ignored and passed on unchanged if the packet is forwarded."
> >> >
> >> >      Does the WG think that it is a good idea to reuse the Next Header value 59? Or would it be better to allocate a new Next Header value that represents Ethernet?
> >> >
> >> >                                                                Ron
> >> >
> >> >
> >> >      Juniper Internal
> >> >
> >> >      --------------------------------------------------------------------
> >> >      IETF IPv6 working group mailing list
> >> >      ipv6@ietf.org
> >> >      Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> >> >      --------------------------------------------------------------------
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > spring mailing list
> >> > spring@ietf.org
> >> > https://www.ietf.org/mailman/listinfo/spring
> >> >
> >>
> >> --------------------------------------------------------------------
> >> IETF IPv6 working group mailing list
> >> ipv6@ietf.org
> >> Administrative Requests: https://www..ietf.org/mailman/listinfo/ipv6
> >> --------------------------------------------------------------------
> >
> > --------------------------------------------------------------------
> > IETF IPv6 working group mailing list
> > ipv6@ietf.org
> > Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> > --------------------------------------------------------------------