I-D for a YANG data model to configure HTTP clients and servers

Kent Watsen <kent+ietf@watsen.net> Tue, 05 May 2020 17:29 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6FA833A0A74 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 5 May 2020 10:29:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.45
X-Spam-Level:
X-Spam-Status: No, score=-2.45 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=fail (1024-bit key) reason="fail (body has been altered)" header.d=amazonses.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 9zBugztjTy-F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 5 May 2020 10:29:48 -0700 (PDT)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 569653A0A73 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 5 May 2020 10:29:47 -0700 (PDT)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1jW1Ki-0002a3-Rb for ietf-http-wg-dist@listhub.w3.org; Tue, 05 May 2020 17:26:16 +0000
Resent-Date: Tue, 05 May 2020 17:26:16 +0000
Resent-Message-Id: <E1jW1Ki-0002a3-Rb@lyra.w3.org>
Received: from www-data by lyra.w3.org with local (Exim 4.92) (envelope-from <01000171e5dd76ed-e0bb6d02-faa5-4672-93ab-74bc96ae9775-000000@amazonses.watsen.net>) id 1jW1Kh-0002ZG-0F for ietf-http-wg@listhub.w3.org; Tue, 05 May 2020 17:26:15 +0000
Received: from mimas.w3.org ([128.30.52.79]) by lyra.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <01000171e5dd76ed-e0bb6d02-faa5-4672-93ab-74bc96ae9775-000000@amazonses.watsen.net>) id 1jW1IX-0002Ux-Fk for ietf-http-wg@listhub.w3.org; Tue, 05 May 2020 17:24:01 +0000
Received: from a8-31.smtp-out.amazonses.com ([54.240.8.31]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.92) (envelope-from <01000171e5dd76ed-e0bb6d02-faa5-4672-93ab-74bc96ae9775-000000@amazonses.watsen.net>) id 1jW1IV-000149-L5 for ietf-http-wg@w3.org; Tue, 05 May 2020 17:24:01 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=224i4yxa5dv7c2xz3womw6peuasteono; d=amazonses.com; t=1588699428; h=From:Content-Type:Mime-Version:Subject:Message-Id:Date:Cc:To:Feedback-ID; bh=SL98gJyWxSvmpGlrEf5G+EcQd3zbz5fO4em7qqUzoAk=; b=VyQ3/H2fGirFCmBbl4MV6x+J/yMjV/EZUB9doGFnZBjBMak2gBL65gxRuc290b7r h/+BCjEaZqFCnSJPFoDQmurp9rgLE4eeS6MBCKjD4BxydRykBR3Wejv4LRyZ7inHY72 149H9CacdZFyPc6l/0dDz3npOK6kMSozXYFfK8So=
From: Kent Watsen <kent+ietf@watsen.net>
Content-Type: multipart/alternative; boundary="Apple-Mail=_632EC9F4-5BED-4E53-BD18-9FCBB248E327"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Message-ID: <01000171e5dd76ed-e0bb6d02-faa5-4672-93ab-74bc96ae9775-000000@email.amazonses.com>
Date: Tue, 05 May 2020 17:23:48 +0000
Cc: "netconf-chairs@ietf.org" <netconf-chairs@ietf.org>
To: HTTP Working Group <ietf-http-wg@w3.org>
X-Mailer: Apple Mail (2.3445.104.11)
X-SES-Outgoing: 2020.05.05-54.240.8.31
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
Received-SPF: none client-ip=54.240.8.31; envelope-from=01000171e5dd76ed-e0bb6d02-faa5-4672-93ab-74bc96ae9775-000000@amazonses.watsen.net; helo=a8-31.smtp-out.amazonses.com
X-W3C-Hub-Spam-Status: No, score=-3.9
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1jW1IV-000149-L5 a1821b3b4dfe18c218d1a985101ecdb2
X-caa-id: 48997f9fcb
X-Original-To: ietf-http-wg@w3.org
Subject: I-D for a YANG data model to configure HTTP clients and servers
Archived-At: <https://www.w3.org/mid/01000171e5dd76ed-e0bb6d02-faa5-4672-93ab-74bc96ae9775-000000@email.amazonses.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/37565
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hi Folks,

This I-D should be of interest to you: draft-ietf-netconf-http-client-server <https://tools.ietf.org/html/draft-ietf-netconf-http-client-server>.   It would be great to get some feedback from the HTTP group!

Mark had asked me to present this work to the HTTP WG @ IETF 107, but I never saw a call for presentations for that meeting.  Upon seeing the recent HTTP virtual interim announcement, I again reached out to Mark, but noting that the VI agenda is packed, he asked me to send an email to the list, which is what this message is about.

Please note that the I-D is being run out the NETCONF WG because it is part of a suite of drafts that have been in progress to configure NETCONF and RESTCONF clients and servers…and HTTP is a base protocol for RESTCONF.  

The NETCONF WG’s goal is for this I-D to be minimally viable.  A previous version had more things in it (e.g., all HTTP authentication schemes), but has since been stripped down to the core.  Its current scope is minimally sufficient for the NETCONF WG's goal…there is no desire to increase its scope on our side.

To get a feel for how the configuration model defined in this draft ties in with the suite of a drafts mentioned above, please see the simplified YANG tree diagrams (RFC 8340) below, pulled from the draft-ietf-netconf-restconf-client-server <https://tools.ietf.org/html/draft-ietf-netconf-restconf-client-server> draft.   [Pro tip: the ‘u’ in the diagram stands for “uses”, i.e., where a YANG model pulls in a definition from a grouping.]

FWIW, RESTCONF MUST be layered on top of TLS, as depicted in the “restconf-client” model below but, as a RESTCONF server MAY be fronted by a TLS-terminator (i.e., a load balancer), the “restconf-server” model supports both cases with and 
without the "tls-server-grouping” grouping mixed in.  Important: the ability to mix-in protocol layers as needed is a key aspect of the general approach taken by the NETCONF WG.


   grouping restconf-client
     +-- (transport)
        +--:(https)
           +-- https
              +-- tcp-client-parameters
              |  +---u tcpc:tcp-client-grouping
              +-- tls-client-parameters
              |  +---u tlsc:tls-client-grouping
              +-- http-client-parameters
              |  +---u httpc:http-client-grouping   <-- defined by this I-D
              +-- restconf-client-parameters
                 +---u rcs:restconf-client-grouping


   grouping restconf-server
     +-- (transport)
        +--:(http)
        |  +-- http
        |     +-- external-endpoint!
        |     |  +-- address    inet:ip-address
        |     |  +-- port?      inet:port-number
        |     +-- tcp-server-parameters
        |     |  +---u tcps:tcp-server-grouping
        |     +-- http-server-parameters
        |     |  +---u https:http-server-grouping   <-- defined by this I-D
        |     +-- restconf-server-parameters
        |        +---u rcs:restconf-server-grouping
        +--:(https)
           +-- https
              +-- tcp-server-parameters
              |  +---u tcps:tcp-server-grouping
              +-- tls-server-parameters
              |  +---u tlss:tls-server-grouping
              +-- http-server-parameters
              |  +---u https:http-server-grouping   <-- defined by this I-D
              +-- restconf-server-parameters
                 +---u rcs:restconf-server-grouping


PS:  I’ve CC-ed the NETCONF chairs for visibility, rather than CC the NETCONF list.  If needed, I’ll be the liaison between the two WGs if needed, or we can cross-post if that is deemed better...

Kent (the author of the I-D)