Re: [fdt] [Rift] RIFT protocol implementation

Tony Przygienda <tonysietf@gmail.com> Thu, 14 May 2020 18:06 UTC

Return-Path: <tonysietf@gmail.com>
X-Original-To: fdt@ietfa.amsl.com
Delivered-To: fdt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3B5B83A0BEE; Thu, 14 May 2020 11:06:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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=gmail.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 vr3H0nKp5jZX; Thu, 14 May 2020 11:06:52 -0700 (PDT)
Received: from mail-io1-xd30.google.com (mail-io1-xd30.google.com [IPv6:2607:f8b0:4864:20::d30]) (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 4BC053A076E; Thu, 14 May 2020 11:06:52 -0700 (PDT)
Received: by mail-io1-xd30.google.com with SMTP id e18so3438327iog.9; Thu, 14 May 2020 11:06:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9LBz9He5KiJaABvh5w75qv/JnJ7XAsUUd3vIgdGVa7g=; b=oF9GkeClYuLDfd4ZTs0zjDGsdlgvAAMiA+jCAYhZ7YfHYm9rTdcrWbRtTpcKawmYcw lkaf5U/Zycv1AE4ZsALu5pAPoM6ISfiYNoDazSs2En1HYIz5MyCIjInq7CK/j7K8vAMb Ldnnduy+1U/CQJjhh+WDa3d4J8hOfdDI6O6i7Vc4+GMM6ki+SElzbo+WICuAjLOXBWCA Xz28ZfsktjinndlE9qoHn2edSuwrC2+L05I8XkjEXBURcbVJ9s+3D48al/3u1eSjza6T R7E1jwtKmIVTVt4etgopuoScw0rLBC+B0vVKgi4DrV2nWmxoN1DRQvUIn41BHZqu/SG0 d7YQ==
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; bh=9LBz9He5KiJaABvh5w75qv/JnJ7XAsUUd3vIgdGVa7g=; b=RE3aioiomQFBV7Uak3vMU7c1eudaMDvb3AmfX38ZYWZ5sjIywsbWwgfWEUyT7nTEBg 2nB+FkB54Cba09hv+mx1cC1pmurfKuleiUfQGpevY++yrBOjOQKcLWhQBVbCqS0I5qXs qDShUKpoVrqL+r9756uisyB9uhVWDZBBUxfG/88ujtrisDlXc/o20GOADnQ984QEi0bW n0F6sM2HfENbkUcSemOjmqaqNkCtvwzATfvsJZb4lnbUrPleoJFGK9ynLWe0ji0gbERr VAEqfc6i05FQ37bukjM5DFpOO5dR8coTC/nP+E5h65juDcyILAz5mqoxkqgCfvkITX9e hAQA==
X-Gm-Message-State: AOAM530hEXD+HrzGhuz/79+q7rR2GTBbyk4WbWQ8j2rVyRcJvy9sj5OE E7MlzcaHDJ9G0lELCKkaAPzjQ67UFx2wMDnGHJwdJOwo
X-Google-Smtp-Source: ABdhPJzLpsCFDTAv3zPDQmVXudb5ivb0v/PIyfkjcLyYaq+09BhkMBiD5iVmkzoLxjzKWItA3vv22EAF2g7ocNk6X2I=
X-Received: by 2002:a6b:7c45:: with SMTP id b5mr5299530ioq.31.1589479611654; Thu, 14 May 2020 11:06:51 -0700 (PDT)
MIME-Version: 1.0
References: <AM6PR04MB432519F740317CFE30ED33C8C1420@AM6PR04MB4325.eurprd04.prod.outlook.com> <9EA55459-D718-4575-ADE6-D061023AAE34@gmail.com> <b642570c-caed-9de4-4a5e-dcd4943c3f0e@fing.edu.uy> <16a8f23f-db46-ebe0-4503-1cbeee076ffb@os.uniroma3.it> <CAObb+j7j8MQRzax3UDyN4KWNC6sB0jfOSop+Vf2YxZ+EjcVjtw@mail.gmail.com> <8a55226e-d428-f195-cfb5-c427229eb081@os.uniroma3.it> <87FBCCFA-A2E9-41EA-9C8F-BC87AAF1A9CF@gmail.com> <5b48347b-4156-bc4e-dcb2-14ec70159ee6@os.uniroma3.it> <E824E104-63BF-415E-BBBB-8A6EF7FAE332@gmail.com> <2528b464-c368-6e31-54c7-6ff200b6dafb@os.uniroma3.it> <A24BFF42-9AAE-4837-85EA-ACD55BDCEF41@gmail.com> <8977A74B-B0AE-430D-9817-2608952DDCF7@juniper.net> <CA+wi2hN2LziBFx68VEk5HLEVv3Jwj+0uWiZdf=QzJKfaXY1CTw@mail.gmail.com> <fe29024c-7170-97f5-fe3c-d381ef1d62d2@os.uniroma3.it> <C8542AB2-9C17-42FF-8DD8-1AB3C8C65159@juniper.net> <b82cfbc9-6531-cb3a-a7b2-01ed723f37b4@fing.edu.uy> <CA+wi2hOYT-xzh89=SkGexbqV_ZuEqnUD7nSc35veTR=Q+=KEnA@mail.gmail.com> <9b6c08ec-dbb1-234e-5b10-d16426923394@fing.edu.uy> <CA+wi2hPT_19kZ7t1D6BhPBxcjJMyarw5yq3YZ9OHrQ265QEWPw@mail.gmail.com> <CA+wi2hMa46PeDcCWdg_tdMJOpmoLW8sGoHwYKsu30aWDRi=KWg@mail.gmail.com> <3594E151-C392-4959-A4F9-8744D3621CCA@gmail.com> <CA+wi2hMP2SG83ehqXRGO2roNTSdoTSm3erNyBGhverb6LRfRYg@mail.gmail.com> <59C6BFC1-774B-4835-ABE8-247894711ECB@gmail.com>
In-Reply-To: <59C6BFC1-774B-4835-ABE8-247894711ECB@gmail.com>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Thu, 14 May 2020 11:05:16 -0700
Message-ID: <CA+wi2hNXH7ggas_Q1-k-CzA=Xm=p0nry-URe7bbnRaEtVYnCjQ@mail.gmail.com>
To: Bruno Rijsman <brunorijsman@gmail.com>
Cc: Leonardo Alberro Zimmermann <lalberro@fing.edu.uy>, rift@ietf.org, fdt@ietf.org
Content-Type: multipart/alternative; boundary="000000000000a166e405a59f8f09"
Archived-At: <https://mailarchive.ietf.org/arch/msg/fdt/b6902g0lSVsqYh-K_kXaOnkGglg>
X-Mailman-Approved-At: Thu, 14 May 2020 11:13:34 -0700
Subject: Re: [fdt] [Rift] RIFT protocol implementation
X-BeenThere: fdt@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Mailing list for the discussion of the use of formal description techniques in IETF documents <fdt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/fdt>, <mailto:fdt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/fdt/>
List-Post: <mailto:fdt@ietf.org>
List-Help: <mailto:fdt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/fdt>, <mailto:fdt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 May 2020 18:06:54 -0000

1. count me in on the draft if you put in the main work ;-)
2. my experience with thrift (apache) community have been very good. they
listen, they let you upstream. professional folks. I don't think they'll be
averse to what you suggest (index annotation on the decoder on the elements)
3. I was listening into the formal language stuff since a while but they
are holding interims @ 4AM PDT so I was out ;-)

-- tony

On Thu, May 14, 2020 at 9:49 AM Bruno Rijsman <brunorijsman@gmail.com>
wrote:

> I am not disagreeing with you, Tony. Having to hand-craft a RIFT decoder
> for Wireshark stinks to high heaven. It would be infinitely better if we
> could use the message decoding C code that is generated by the Thrift-C
> compiler.
>
> I think we are discovering some new requirements for model-based routing
> protocols that are new relative to the original use case of model-based
> APIs.
>
> And we are discovering that those new requirements are not well supported
> by existing compilers (Thrift or otherwise).
>
> I always had the urge to write an Internet-Draft on the topic of using
> Thrift as a modeling language for RIFT (what worked well, what didn’t work
> well, etc.) but I never got around to doing it.
>
> Such a draft would be useful input for the formal languages BOF (WG?)
> https://www.ietf.org/mailman/listinfo/fdt
>
> — Bruno
>
>
> On May 14, 2020, at 10:34 AM, Tony Przygienda <tonysietf@gmail.com> wrote:
>
> That runs in a sense completely counter a model based  encoding (don't
> forget, thrift can run binary compressed messages as well, so how will you
> offset that ;-)  But as I said, I didn't look @ the decode/encode too
> closely, especially not in the C code.
>
> Also, you'll have other effects like certain encoders omitting required
> with default values if not set since it's in a sense "implied" for the
> decoder.
>
> We do break fairly new ground here ;-) but I think over time the benefits
> of model based encoding/decoding will start influence other routing
> protocols (there are other types of protocols running today that are fully
> model based on encoding) given the advantages we were seeing in RIFT
>
> -- tony
>
> On Thu, May 14, 2020 at 5:59 AM Bruno Rijsman <brunorijsman@gmail.com>
> wrote:
>
>> One issue with using the Thrift decoder generated by the Thrift compiler
>> is that the user interface of Wireshark allows you to highlight certain
>> fields in the decoded message and automatically highlights the
>> corresponding bytes in the hexdump of the binary message. Thus the Thrift
>> decoder used in Wireshark must (a) know the exact order in which the fields
>> occurred in the binary message, which may not be the same order as in the
>> model and (b) know which bytes in the binary message correspond to which
>> fields in the decoded message.  As far as I know the code generated by the
>> Thrift compiler currently does not generate that information. An
>> interesting approach would be to enhance the Thrift C back-end to include
>> that information.
>>
>> — Bruno
>>
>> On May 12, 2020, at 4:51 PM, Tony Przygienda <tonysietf@gmail.com> wrote:
>>
>> and quick question, why didn't you just push the binary into thrift
>> backend to deserialize? People may send compressed binary formats etc and
>> the encoding may change. Point of the modelling exercise
>>
>> -- tony
>>
>>
>> On Tue, May 12, 2020 at 3:48 PM Tony Przygienda <tonysietf@gmail.com>
>> wrote:
>>
>>> multiple people were looking JUST for this.
>>>
>>> maybe next interim implementation experience. this was lighting fast ;-)
>>>
>>> -- tony
>>>
>>>
>>> On Tue, May 12, 2020 at 3:47 PM Leonardo Alberro Zimmermann <
>>> lalberro@fing.edu.uy> wrote:
>>>
>>>> Hello all,
>>>>
>>>> regarding the development of a wireshark dissector for RIFT, we are
>>>> happy to introduce you our work. It is available at
>>>> https://gitlab.com/fing-mina/datacenters/rift-dissector
>>>>
>>>> RIFT C dissector is a complete Wireshark dissector for decoding RIFT
>>>> protocol. The code identifies all the RIFT packets and builds a complete
>>>> dissection for the TIE ones. This dissector has been tested with the
>>>> current implementations of RIFT.
>>>>
>>>> Regards,
>>>> Leonardo
>>>>
>>>
>