Re: [tcpm] [GROW] How to reuse the tcp model in the BMP model - asking for suggestions

Jeffrey Haas <jhaas@pfrc.org> Mon, 22 August 2022 16:08 UTC

Return-Path: <jhaas@slice.pfrc.org>
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 20DA2C14CE44; Mon, 22 Aug 2022 09:08:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-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
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 jy49vYCI04Ux; Mon, 22 Aug 2022 09:07:56 -0700 (PDT)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id 666C7C14CE28; Mon, 22 Aug 2022 09:07:55 -0700 (PDT)
Received: by slice.pfrc.org (Postfix, from userid 1001) id 114491E32F; Mon, 22 Aug 2022 12:07:55 -0400 (EDT)
Date: Mon, 22 Aug 2022 12:07:54 -0400
From: Jeffrey Haas <jhaas@pfrc.org>
To: "Scharf, Michael" <Michael.Scharf@hs-esslingen.de>
Cc: Camilo Cardona <camilo@gin.ntt.net>, "draft-ietf-tcpm-yang-tcp.authors@ietf.org" <draft-ietf-tcpm-yang-tcp.authors@ietf.org>, "draft-ietf-tcpm-yang-tcp@ietf.org" <draft-ietf-tcpm-yang-tcp@ietf.org>, "tcpm@ietf.org" <tcpm@ietf.org>, "grow@ietf.org" <grow@ietf.org>
Message-ID: <20220822160754.GA14484@pfrc.org>
References: <39BBD72C-808D-45CF-B832-9EF786F45F06@gin.ntt.net> <a8e7d4449ded44cd805f2a20f75b14e8@hs-esslingen.de> <7F96BC15-66B6-4F6B-9B68-AC59FAA0FF39@gin.ntt.net> <3577f12509e949a49ba9494c4f9bb1d7@hs-esslingen.de> <20220725181224.GC14067@pfrc.org> <73CA533F-0911-4A4A-9FF2-21377E3185F4@gin.ntt.net> <47bee885617e4694a6735b80aea9d352@hs-esslingen.de> <20220809145355.GA26219@pfrc.org> <3d87ff887dc74f26b011acc31ac967be@hs-esslingen.de>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <3d87ff887dc74f26b011acc31ac967be@hs-esslingen.de>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/50jAJSOscf2LxB2gS-YRh15GT0k>
Subject: Re: [tcpm] [GROW] How to reuse the tcp model in the BMP model - asking for suggestions
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, 22 Aug 2022 16:08:01 -0000

Michael,

On Fri, Aug 19, 2022 at 08:39:14AM +0000, Scharf, Michael wrote:
> > From: Jeffrey Haas <jhaas@pfrc.org>
> >
> > The underlying issue that Camilo is trying to raise isn't so much
> > interface-specific as it is session specific.  Consider the following
> > examples:
> > 
> > https://www.juniper.net/documentation/us/en/software/junos/bgp/topics
> > /ref/statement/tcp-mss-edit-protocols-bgp.html
> > https://www.cisco.com/c/en/us/td/docs/iosxr/cisco8000/bgp/73x/b-bgp-cg-
> > 8k-73x/implementing-bgp.html#task_sq1_xdk_4jb
> 
> Thanks for the pointers. Actually, I have looked at several router operating systems (including also Nokia SROS) when preparing the first individual versions of this draft.
> 
> For what it is worth, an old summary shown during IETF 105 (see https://datatracker.ietf.org/meeting/105/materials/slides-105-tcpm-yang-groupings-for-transmission-control-protocol-tcp-configuration-01) includes both router and host operating systems as examples.
> 
> In addition, I have now also checked the OpenConfig YANG models, and they also have ways to set the MSS, for instance:
> 
>     leaf tcp-mss {
>       type uint16;
>       description
>         "Sets the max segment size for BGP TCP sessions.";
>     }

An example above, where a typedef for the uint16 might be helpful.

>     leaf mtu-discovery {
>       type boolean;
>       default false;
>       description
>         "Turns path mtu discovery for BGP TCP sessions on (true)
>         or off (false)";
>     }
> 
> The details, i.e., whether to configure a maximum value for the MSS as system default, per network interface, or per (BGP) neighbor may be specific to the system, but in general most router and host operating systems have ways to influence the MSS.

And thus a motivation to discuss this in the context of the broader IETF
YANG work.  The IETF BGP module similarly covers MSS.  GROW is looking to
copy similar patterns.

> So, this clearly shows that the MSS might be relevant. But the reality is a bit more complex:
> 
> 1/ The MSS value is per direction of a TCP connection, and the effective send MSS (called Eff.snd.MSS in RFC 9293) can be different from the receive MSS (called RMSS in RFC 9293)
>
> 2/ It is relatively common to also enable/disable PMTU discovery as alternative to an explicit MSS configuration (not only in OpenConfig, see again e.g. my old survey in https://datatracker.ietf.org/meeting/105/materials/slides-105-tcpm-yang-groupings-for-transmission-control-protocol-tcp-configuration-01)
> 
> 3/ If a TCP stack allows setting a maximum, the effective MSS may be smaller than this configured parameter (config vs. operational state)
> 
> None of this is a fundamental problem for a YANG model, and we could figure out how to model this specific detail. Both MSS and PMTU discovery was in the list of features that were originally discussed in TCPM as potentially in scope of this document. But there was no strong interest in this inside TCPM without a clear use case.
> 
> If the feedback from BGP implementers is that MSS and MTU discovery is a MUST-HAVE, that situation could change.

What you're seeing is that interest from the parties working on the modeling
for BGP with similar parties who are realizing similar issues must be dealt
with for other protocols.  (In this case, BMP.)

You're also seeing this interest late for the usual reason in IETF modeling
work: YANG module "interwork" efforts have come late in the process.

> > For the first point, it might make sense to expose the effective MSS in the
> > tcp/connections container.  Doing so in a typedef defined in this module may
> > be helpful for the second point.
> 
> As already pointed out, we would have to understand whether it should be the MSS, or also PMTU discovery, or even more.

MSS and PMTUD are certainly reasonable items.

> As the upcoming revision of the draft will have other changes, the authors could make a proposal in this space, too. But I'd really be more comfortable with this if there was some further list support from the community before going down that road.

I think your largest problem is going to be the list of SME on this are few
and thus interest will appear to be low.

Speaking as someone who works at a larger vendor, I'd prefer to see this
work addressed in the main effort.  If it isn't, vendors will end up
implementing their own operational state for this as augmentations which
might lead to inconsistencies.

> Thanks for this good discussion!

Thanks for entertaining these late discussions for this work.

-- Jeff