Re: [tcpm] Paul Wouters's Discuss on draft-ietf-tcpm-yang-tcp-07: (with DISCUSS and COMMENT)

"Scharf, Michael" <Michael.Scharf@hs-esslingen.de> Mon, 05 September 2022 08:52 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 8D126C152576; Mon, 5 Sep 2022 01:52:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.104
X-Spam-Level:
X-Spam-Status: No, score=-7.104 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_HI=-5, 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 v1ww2eoSRuEI; Mon, 5 Sep 2022 01:52:48 -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 51AD7C152574; Mon, 5 Sep 2022 01:52:48 -0700 (PDT)
Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.hs-esslingen.de (Postfix) with ESMTP id B02FB25A3F; Mon, 5 Sep 2022 10:52:44 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hs-esslingen.de; s=mail; t=1662367964; bh=ulu4XhRpqR2Q7kHL6zGvXg5uV8rgHy9vWLIJzQd+MzY=; h=From:To:CC:Subject:Date:From; b=ex0uVpwWsd8yywLibtCnqEdAWdbgM9bTCbYYGdCh23ZeIx2pGVeWGgvI2IqR+wHKa LAOsNhBRhM6q6fuJ3j8WoxCDXFxEWt6sLinurdmUWS3IHu9AcuwST/OicHCZHQ06qS E3K2GTOzzE0GN1/yU4RdEFv1YUWhnscT25nfnqts=
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 Zh0JXJBPvH5t; Mon, 5 Sep 2022 10:52:43 +0200 (CEST)
Received: from rznt8202.rznt.rzdir.fht-esslingen.de (rznt8202.hs-esslingen.de [134.108.48.165]) (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; Mon, 5 Sep 2022 10:52:43 +0200 (CEST)
Received: from rznt8202.rznt.rzdir.fht-esslingen.de (134.108.48.165) by rznt8202.rznt.rzdir.fht-esslingen.de (134.108.48.165) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Mon, 5 Sep 2022 10:52:43 +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.031; Mon, 5 Sep 2022 10:52:43 +0200
From: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
To: "paul.wouters@aiven.io" <paul.wouters@aiven.io>, The IESG <iesg@ietf.org>
CC: "draft-ietf-tcpm-yang-tcp@ietf.org" <draft-ietf-tcpm-yang-tcp@ietf.org>, "tcpm-chairs@ietf.org" <tcpm-chairs@ietf.org>, "tcpm@ietf.org" <tcpm@ietf.org>, "nsd.ietf@gmail.com" <nsd.ietf@gmail.com>
Thread-Topic: RE: Paul Wouters's Discuss on draft-ietf-tcpm-yang-tcp-07: (with DISCUSS and COMMENT)
Thread-Index: Adi+AhMEh6PGXwrXRV2dARqFUzGWtg==
Date: Mon, 05 Sep 2022 08:52:43 +0000
Message-ID: <c0a91ebed96d430a80e371feb014eed9@hs-esslingen.de>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [134.108.140.249]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/lu9ZVz7Dn0Iu89iUfxExePYgxJY>
Subject: Re: [tcpm] Paul Wouters's Discuss on draft-ietf-tcpm-yang-tcp-07: (with DISCUSS and COMMENT)
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: Mon, 05 Sep 2022 08:52:52 -0000

Hi Paul,

Sorry, apparently I have not received an e-mail regarding this DISCUSS.

I have copied the text from datatracker and replied inline.

The complete diff for version -08 can be found at:  https://www.ietf.org/rfcdiff?url2=draft-ietf-tcpm-yang-tcp-08

> Discuss (2022-06-28 for -07)
> [ballot text incomplete as cloudflare triggers a weird refusal if I include a certain sentence, see Cloudflare Ray ID: 722aa6477e01a1db]
>
> Thanks for the -07 changes in response to the various area reviews!
> 
> I still have two small discuss questions left which might be caused by a limited
> understanding of the underlying yang model inclusions.
>
>
>              1. For an application willing to accept both IPv4 and
>                IPv6 datagrams, the value of this object must be
>                 ''h (a zero-length octet-string), with the value
>                 of the corresponding 'type' object being
>                 unknown (0).
>
>              2. For an application willing to accept only IPv4 or
>                 IPv6 datagrams, the value of this object must be
>                 '0.0.0.0' or '::' respectively, with
>                 'type' representing the appropriate address type.
>
> #D1
>
> To me, it seems very counter-intuitive that '' means (0.0.0.0 or ::). For
> LISTEN, I find it concerning because it means that '' as a default means to
> listen to any IP, rather than the more secure default of '' meaning 'none'.

This syntax is identical to the TCP MIB. We have not created this definition on our own. At least to me it is not obvious why this specific detail of the TCP MIB would be broken. Also, I don't understand why "none" would be required at all in this context (see below).

> Is it possible to have some kind of "None" default? (or is that achieved by
> omission of this option?

As far as I understand, this entry is about the list "tcp-listeners".

By definition, a TCP endpoint in state "listen" is willing to accept (some) TCP connections. This is the connection acceptor, i.e., typically the server side of an application. An application that is not willing to accept any connections (e.g., a client) is not in "listen" state and therefore not included in this list "tcp-listeners". 

As this list "tcp-listener" only includes endpoints that indeed listen on at least one IP address, I am not aware of a case in which a value "none" would be used.

In -08, we have slightly changed this description to address some other comments and to avoid "MIB speak", but we have not added a way to encode "none".

Please get back to us if we should have missed something.

> #D2
>
> Is it intended that this cannot be specified using names

Again, I assume that this refers to the list "tcp-listeners".

This is a read-only list, i.e., a TCP listener will never be created by configuring the YANG model. Instead, an application will use the usual ways to create a TCP endpoint (e.g., the socket API, which may understand names depending on the used socket calls).

Once a TCP listener exists, the TCP stack must know the port number internally, and it internally operates using the port number. So, the port number can always be listed.

It may be possible to list names for port numbers if the mapping is known, but it is not exactly clear if all TCP stacks are able to do so.

The TCP MIB just uses the port number in the corresponding list. As a result, in version -08 we just kept this as in the TCP MIB.

If there is really a strong reason to model more than the TCP MIB, please let us know.

> Comment (2022-06-28 for -07)
> #C1
>
> It is unclear to me if '0.0.0.0' denotes the type inet:ip-address or
> the type string with text value "0.0.0.0". I also worry that if this is
> represented in C with a struct with union, that than it is unclear what
> a zero'ed out struct is set to? The string or the v4 ANY or the v6 ANY ?
> (I personally like enums to start from value 1 for that reason)
>
> #C2
> 
> How is this option set when fully disabled (eg not listening on anything, only
> willing to make an outgoing TCP connection). Is it by being omitted?

Yes. A connection initiator (i.e., a client making only outgoing connections) is not a tcp listener and thus just omitted. See also the previous comments.
 
> NITS:
>
> listner -> listener
>
> for TCP connection that -> for a TCP connection that

Thanks, this has been fixed in -08.

Michael