Re: [tcpm] IETF 114 TCPM WG - NG TCPM Yang Model

"Scharf, Michael" <Michael.Scharf@hs-esslingen.de> Wed, 27 July 2022 14:13 UTC

Return-Path: <Michael.Scharf@hs-esslingen.de>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5378BC05CD37 for <tcpm@ietfa.amsl.com>; Wed, 27 Jul 2022 07:13:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.103
X-Spam-Level:
X-Spam-Status: No, score=-2.103 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_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 (1024-bit key) header.d=hs-esslingen.de
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 j3yP-Ut_kTdy for <tcpm@ietfa.amsl.com>; Wed, 27 Jul 2022 07:13:30 -0700 (PDT)
Received: from mail.hs-esslingen.de (mail.hs-esslingen.de [134.108.32.78]) (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 D3965C1345EC for <tcpm@ietf.org>; Wed, 27 Jul 2022 07:13:12 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.hs-esslingen.de (Postfix) with ESMTP id D147125A17; Wed, 27 Jul 2022 16:13:09 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hs-esslingen.de; s=mail; t=1658931189; bh=5LObTRXqH3n70Z0V+nj3hGhwmTD+1Zv1Qbl8vDjBMBg=; h=From:To:CC:Subject:Date:References:In-Reply-To:From; b=M/uLiBoqO8YPhzagemP+34zF0UhqiheULe5kwvcI3cSmadU6S8RsIF89mQVgmvNlC lJOS1XvXgtccgHOBBcvJVddPx1pQrWwMl1MUBHY1Ez6ibTlP0/M6+UcC+RLNhfj2Nq GXSfvcdfFOOt4DScUC5LaJH9wE1eggul056TJobc=
X-Virus-Scanned: by amavisd-new-2.7.1 (20120429) (Debian) at hs-esslingen.de
Received: from mail.hs-esslingen.de ([127.0.0.1]) by localhost (hs-esslingen.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f7As3dzCvfpX; Wed, 27 Jul 2022 16:13:08 +0200 (CEST)
Received: from rznt8201.rznt.rzdir.fht-esslingen.de (rznt8201.hs-esslingen.de [134.108.48.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.hs-esslingen.de (Postfix) with ESMTPS; Wed, 27 Jul 2022 16:13:08 +0200 (CEST)
Received: from rznt8202.rznt.rzdir.fht-esslingen.de (134.108.48.165) by rznt8201.rznt.rzdir.fht-esslingen.de (134.108.48.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Wed, 27 Jul 2022 16:13:06 +0200
Received: from rznt8202.rznt.rzdir.fht-esslingen.de ([fe80::aca4:171a:3ee1:57e0]) by rznt8202.rznt.rzdir.fht-esslingen.de ([fe80::aca4:171a:3ee1:57e0%3]) with mapi id 15.01.2375.028; Wed, 27 Jul 2022 16:13:06 +0200
From: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
To: "touch@strayalpha.com" <touch@strayalpha.com>, Michael Tuexen <michael.tuexen@lurchi.franken.de>
CC: Gyan Mishra <hayabusagsm@gmail.com>, tcpm IETF list <tcpm@ietf.org>, Robert Raszuk <robert@raszuk.net>, "Van De Velde, Gunter (Nokia - BE/Antwerp)" <gunter.van_de_velde@nokia.com>, Jeffrey Haas <jhaas@pfrc.org>, Susan Hares <shares@ndzh.com>
Thread-Topic: [tcpm] IETF 114 TCPM WG - NG TCPM Yang Model
Thread-Index: AQHYoKGoW046/3H2EESU3kMEwKIQVq2RGNiAgABBR4CAAKxjoA==
Date: Wed, 27 Jul 2022 14:13:06 +0000
Message-ID: <aea35a2d93c544a8affe6b0b75d69eca@hs-esslingen.de>
References: <CAJhXr9-zcJg99ML3MSNMTvRFiT_BLzJihQucAdX8MZGDZ84dWw@mail.gmail.com> <CABNhwV1wz2Uhx+DWjabzVz8GAhQD78NFKhq2az=E7dhnxTC-Ww@mail.gmail.com> <A8851A57-748D-4504-97B6-677807EE0DB6@lurchi.franken.de> <EF72E595-0B1E-4AD9-BDFE-603B9B200F0D@strayalpha.com>
In-Reply-To: <EF72E595-0B1E-4AD9-BDFE-603B9B200F0D@strayalpha.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [134.108.140.249]
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="SHA1"; boundary="----=_NextPart_000_0008_01D8A1D3.BFDAAB60"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/e2CYODGPrnFRn1BymXpq0TcpaQk>
Subject: Re: [tcpm] IETF 114 TCPM WG - NG TCPM Yang Model
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Jul 2022 14:13:34 -0000

Hi all,

See below...

> -----Original Message-----
> From: tcpm <tcpm-bounces@ietf.org> On Behalf Of touch@strayalpha.com
> Sent: Wednesday, July 27, 2022 4:13 AM
> To: Michael Tuexen <michael.tuexen@lurchi.franken.de>
> Cc: Gyan Mishra <hayabusagsm@gmail.com>; tcpm IETF list
> <tcpm@ietf.org>; Robert Raszuk <robert@raszuk.net>; Van De Velde,
> Gunter (Nokia - BE/Antwerp) <gunter.van_de_velde@nokia.com>; Jeffrey
> Haas <jhaas@pfrc.org>; Susan Hares <shares@ndzh.com>
> Subject: Re: [tcpm] IETF 114 TCPM WG - NG TCPM Yang Model
> 
> Notes below.
> 
> > On Jul 26, 2022, at 6:19 PM, Michael Tuexen
> <michael.tuexen@lurchi.franken.de> wrote:
> >
> >>
> >>
> >> Dear TCPM
> >>
> >> Attached is the slide deck for the NG TCP Yang model discussion.
> >>
> >> Sue, Robert, Jeff, Gunter
> >>
> >> Please review and let me know if I missed any talking points for the NG
> TCP Yang model.
> > A couple of clarifying questions related to slide "What to add to NG TCP
> Yang Model?",
> > especially since I know almost nothing about YANG:
> >
> > • All TCP states part of the FSM state machine.
> > Understood.
> These make sense.

Indeed.

draft-ietf-tcpm-yang-tcp-07 already models the states of a TCP connection, using the definitions from 793bis:

<snip>
leaf state {
             type enumeration {
               enum closed {
                 value 1;
                 description
                   "Connection is closed. Connections in this state
                    may not appear in this list.";
               }
               enum listen {
                 value 2;
                 description
                   "Represents waiting for a connection request from any
                    remote TCP peer and port.";
               }
               enum syn-sent {
                 value 3;
                 description
                   "Represents waiting for a matching connection request
                    after having sent a connection request.";
               }
               enum syn-received {
                 value 4;
                 description
                   "Represents waiting for a confirming connection
                    request acknowledgment after having both received
                    and sent a connection request.";
               }
               enum established {
                 value 5;
                 description
                   "Represents an open connection, data received can be
                    delivered to the user. The normal state for the data
                    transfer phase of the connection.";
               }
               enum fin-wait-1 {
                 value 6;
                 description
                   "Represents waiting for a connection termination
                    request from the remote TCP peer, or an
                    acknowledgment of the connection termination request
                    previously sent.";
               }
               enum fin-wait-2 {
                 value 7;
                 description
                   "Represents waiting for a connection termination
                    request from the remote TCP peer.";
               }
               enum close-wait {
                 value 8;
                 description
                   "Represents waiting for a connection termination
                    request from the local user.";
               }
               enum last-ack {
                 value 9;
                 description
                   "Represents waiting for an acknowledgment of the
                    connection termination request previously sent to
                    the remote TCP peer (this termination request sent
                    to the remote TCP peer already included an
                    acknowledgment of the termination request sent from
                    the remote TCP peer)";
               }
               enum closing {
                 value 10;
                 description
                   "Represents waiting for a connection termination
                    request acknowledgment from the remote TCP peer.";
               }
               enum time-wait {
                 value 11;
                 description
                   "Represents waiting for enough time to pass to be
                    sure the remote TCP peer received the acknowledgment
                    of its connection termination request, and to avoid
                    new connections being impacted by delayed segments
                    from previous connections.";
               }
             }
             description
               "The state of this TCP connection.";
           }
           description
             "List of TCP connections with their parameters. The list
              is modeled as writeable, but implementations may not
              allow creation of new TCP connections by adding entries to
              the list. Furthermore, the behavior upon removal is
              implementation-specific. Implementations may support
              closing or resetting a TCP connection upon an operation
              that removes the entry from the list.";
         }
</snip>

This creates feature parity with the TCP MIB regarding state.

All: Please have a look at this model, which was added to address the IETF LC feedback, and let us know if anything is missing.

> > • All TCP flags and respective states.
> > Do you mean the TCP flags SYN, FIN, PSH, ... Does a YANG module all to
> describe
> > packets sent and received?
> 
> I can’t see how this can model the TCP flags; all it should be modeling is the
> states of the connection. The model is for TCP, not TCP packets.

I am very confused here, too.

> > • All TCP parameters that would be accessible with a local OS kernel hook.
> > Doesn't that mean the complete set of state variable the kernel has and
> isn't that implementation dependent?
> > • All windowing parameters including window scaling as well as any
> windowing related optimizations.
> > You mean the receiver window including the window scaling.
> > • All TCP options and optimizations set such as Selective ACK.
> > I guess you mean the set of TCP extensions which have been negotiated.
> > • All TCP slow start congestion control parameters CWIN etc.
> > There are a multiple Congestion Controls, even ones not being specified by
> the IETF.
> > So this might get very hard to do. Or do you require a specific CC when
> using TCP for BGP?
> 
> This is where things get confusing to me; it seems that there is either a model
> for TCP or a model for TCP implementations. The two should not be confused
> with each other

Yep, and a lot of details are very implementation specific and differ a lot in the long tail of existing TCP implementations.

In the first discussions regarding draft-scharf-tcpm-yang-tcp, I have shown some examples for TCP parameters that are implemented relatively similarly across major TCP stacks and that a more comprehensive TCP YANG model could possibly include. This includes for instance enabling/disabling ECN, Window Scaling, Timestamps, etc. But even in that case different stacks differ *a lot* and I am not aware of a simple way to work around that. Details can be found in the IETF proceedings for previous TCPM meetings.

If there is interest in modeling TCP beyond draft-ietf-tcpm-yang-tcp-07, the discussion needs to ensure that the model roughly corresponds to running code. 

Unfortunately, I probably cannot attend this TCPM session because of my day job, but I obviously follow the mailing list.

Thanks

Michael


> 
> Joe
> 
> >
> > Best regards
> > Michael
> >>
> >> Thanks
> >>
> >> Gyan
> >>
> >> ---------- Forwarded message ---------
> >> From: Mishra, Gyan S <gyan.s.mishra@verizon.com>
> >> Date: Mon, Jul 25, 2022 at 11:36 PM
> >> Subject: IETF 114 TCPM WG - NG TCPM Yang Model
> >> To: Hayabusanew <hayabusagsm@gmail.com>
> >>
> >>
> >> --
> >>
> >>
> >> Gyan Mishra
> >> Network Solutions Architect
> >> Email gyan.s.mishra@verizon.com
> >> M 301 502-1347
> >>
> >>
> >> <IETF-114 TCPM TCP Yang
> Model.pdf>_______________________________________________
> >> tcpm mailing list
> >> tcpm@ietf.org
> >> https://www.ietf.org/mailman/listinfo/tcpm
> >
> > _______________________________________________
> > tcpm mailing list
> > tcpm@ietf.org
> > https://www.ietf.org/mailman/listinfo/tcpm
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm