Re: [Dots] Yangdoctors early review of draft-ietf-dots-telemetry-09

mohamed.boucadair@orange.com Tue, 07 July 2020 14:26 UTC

Return-Path: <mohamed.boucadair@orange.com>
X-Original-To: dots@ietfa.amsl.com
Delivered-To: dots@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 00BD63A0D25; Tue, 7 Jul 2020 07:26:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 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, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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=orange.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 hPgqoGdP0fMd; Tue, 7 Jul 2020 07:26:29 -0700 (PDT)
Received: from relais-inet.orange.com (relais-inet.orange.com [80.12.66.39]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EF6CE3A0D18; Tue, 7 Jul 2020 07:26:28 -0700 (PDT)
Received: from opfedar01.francetelecom.fr (unknown [xx.xx.xx.2]) by opfedar24.francetelecom.fr (ESMTP service) with ESMTP id 4B1PrM3zD4z5w9v; Tue, 7 Jul 2020 16:26:27 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.com; s=ORANGE001; t=1594131987; bh=JZk7T4QCNxzKSb5g807Ni51MWGP7KoL3GWJz9C1IxUI=; h=From:To:Subject:Date:Message-ID:Content-Type:MIME-Version; b=F13OifxpkWmQOHRhKSbxqHyS5wp/o1v43jC66Tux6WYa4/9C2yiKRpZ+KVAf53ejh LyCiGg5kAWrFoYoiX7lT97qhXwNhUa+nYtsAbjC4IOOJjNGpH0pSP5I/jGvOp0qBDE TTsNL7MSgMophMEUUBkyqY9Gd6dt9zI+jTfQRtgEyW9aciPhMSDJH84QlnpfcsMzV4 yBuv08vqxOMbCwYD5Lj5XCTdoxR6tO2GiQqP1+8tgfaC0MomK/U9k13xBseDhdM5Hn Vg5IUvlyIY2FoPt765ATf/RWr6Zu8VFMDfPBPG+RWG+jndliaXPZrcJiCub9Ag3wE7 f30qz/rRG0GoA==
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.67]) by opfedar01.francetelecom.fr (ESMTP service) with ESMTP id 4B1PrM22dwzBrLr; Tue, 7 Jul 2020 16:26:27 +0200 (CEST)
From: mohamed.boucadair@orange.com
To: Jan Lindblad <janl@tail-f.com>
CC: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "dots@ietf.org" <dots@ietf.org>, "draft-ietf-dots-telemetry.all@ietf.org" <draft-ietf-dots-telemetry.all@ietf.org>
Thread-Topic: Yangdoctors early review of draft-ietf-dots-telemetry-09
Thread-Index: AQHWVF99zHY6zynqkkCdCx+tS06vUqj8G1tQ
Date: Tue, 07 Jul 2020 14:26:25 +0000
Message-ID: <16820_1594131987_5F048613_16820_137_2_787AE7BB302AE849A7480A190F8B9330314F168E@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <159353177839.29172.8254735147639701580@ietfa.amsl.com> <5252_1593761623_5EFEDF57_5252_57_9_787AE7BB302AE849A7480A190F8B9330314EE318@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <4B4D2FC8-68E0-4C59-96AF-17E0D77F325D@tail-f.com> <10654_1594040372_5F032034_10654_248_1_787AE7BB302AE849A7480A190F8B9330314F0712@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <D2BAD546-91B5-4009-B8F4-3879C8C8F755@tail-f.com>
In-Reply-To: <D2BAD546-91B5-4009-B8F4-3879C8C8F755@tail-f.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.247]
Content-Type: multipart/alternative; boundary="_000_787AE7BB302AE849A7480A190F8B9330314F168EOPEXCAUBMA2corp_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dots/QCicNkksUZY8n6ZGC8KljNOTpYM>
Subject: Re: [Dots] Yangdoctors early review of draft-ietf-dots-telemetry-09
X-BeenThere: dots@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "List for discussion of DDoS Open Threat Signaling \(DOTS\) technology and directions." <dots.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dots>, <mailto:dots-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dots/>
List-Post: <mailto:dots@ietf.org>
List-Help: <mailto:dots-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dots>, <mailto:dots-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Jul 2020 14:26:32 -0000

Hi Jan,

Thank you for the follow-up.

Please see inline.

Cheers,
Med

De : Jan Lindblad [mailto:janl@tail-f.com]
Envoyé : mardi 7 juillet 2020 15:07
À : BOUCADAIR Mohamed TGI/OLN
Cc : yang-doctors@ietf.org; dots@ietf.org; draft-ietf-dots-telemetry.all@ietf.org
Objet : Re: Yangdoctors early review of draft-ietf-dots-telemetry-09

Med,

Great. Thanks.

Focusing now on #2.

[Janl] Very good.


We are adhering to the base spec defined in RFC7252 with specifics defined in the DOTS documents.

If we consider error handling for example, the general rule is:

  DOTS agents MUST support GET, PUT, and DELETE CoAP methods.  The
  payload included in CoAP responses with 2.xx Response Codes MUST be
  of content type "application/dots+cbor".  CoAP responses with 4.xx
  and 5.xx error Response Codes MUST include a diagnostic payload
  (Section 5.5.2 of [RFC7252]).  The diagnostic payload may contain
  additional information to aid troubleshooting.

[Janl] This is good, but 7252 says nothing about operation semantics or how YANG comes into the picture.
[Med] YANG is only used for DOTS as a descriptive language to define the structure of the messages. The structure is also defined as json schema that are provided in many places of the specs. We don’t provide the YANG module for the internal datastore used by the server. The WG may work on that in the future.

Let me exemplify what I mean by a few questions. I'll abbreviate the DOTS-signal-protocol "DSP" for now.
[Med] Thanks.

+ So the POST operation in CoAP is not used in DSP?
[Med] It is not.

+ In a PUT message, what is the mapping between YANG paths and the target resource URI? CoAP does not define this, but the CoMI draft has some suggestions. Is that what you are planning to use?
[Med] We are relying on Uri-Paths and the rules in 7252. Here is an example of DOTS-supplied Uri-Paths.


     Uri-Path: ".well-known"

     Uri-Path: "dots"

     Uri-Path: "mitigate"

     Uri-Path: "cdid=7eeaf349529eb55ed50113"

     Uri-Path: "cuid=dz6pHjaADkaFTbjr0JGBpw"

     Uri-Path: "mid=123"

The order is important as discussed in the spec:


   The order of the Uri-Path options is important as it defines the CoAP

   resource.  In particular, 'mid' MUST follow 'cuid'.


+ Is a GET on the root resource a valid operation?
[Med] Yes. For example,


   *  Figure 12 shows the example of a GET request to retrieve all DOTS

      mitigation requests signaled by a DOTS client.

If it is, will that return the entire data tree?
[Med] Yes, assuming all validation checks are OK.

If so, can that returned data tree be sent back in a PUT operation later?

[Med] No:


   Because of the complexity of handling partial failure cases, this

   specification does not allow the inclusion of multiple mitigation

   requests in the same PUT request.  Concretely, a DOTS client MUST NOT

   include multiple entries in the 'scope' array of the same PUT

   request.


+ Would such a that PUT operation (which contains a configuration that was valid at an earlier point) always succeed, or are there any situations in which the server would return an error when doing so? What errors?
[Med] This is covered in many places of the spec, e.g.,


   This PUT request MUST use the

   same 'mid' value, and it MUST repeat all the other parameters as sent

   in the original mitigation request apart from a possible change to

   the 'lifetime' parameter value.  In such a case, the DOTS server MAY

   update the mitigation request, and a 2.04 (Changed) response is

   returned to indicate a successful update of the mitigation request.

   If this is not the case, the DOTS server MUST reject the request with

   a 4.00 (Bad Request).

or


   The PUT request used for the efficacy update MUST include all the

   parameters used in the PUT request to carry the DOTS mitigation

   request (Section 4.4.1<https://tools.ietf.org/html/rfc8782#section-4.4.1>) unchanged apart from the 'lifetime' parameter

   value.  If this is not the case, the DOTS server MUST reject the

   request with a 4.00 (Bad Request).


+ Is there any way to only GET the configuration data?
[Med] Yes:

   The 'c' Uri-Query option is used to control selection of
   configuration and non-configuration data nodes.

+ Will a DELETE operation on a valid resource always succeed, or are there any conditions under which a deletion may be invalid?
[Med] Yes this is covered in many places in the spec, e.g.,


   If the DOTS server finds the 'mid' parameter value conveyed in the

   DELETE request in its configuration data for the DOTS client, then to

   protect against route or DNS flapping caused by a DOTS client rapidly

   removing a mitigation, and to dampen the effect of oscillating

   attacks, the DOTS server MAY allow mitigation to continue for a

   limited period after acknowledging a DOTS client's withdrawal of a

   mitigation request.  During this period, the DOTS server status

   messages SHOULD indicate that mitigation is active but terminating

   (Section 4.4.2<https://tools.ietf.org/html/rfc8782#section-4.4.2>).

Or


For example, the DOTS client

   may send a PUT request to convey an efficacy update to the DOTS

   server followed by a DELETE request to withdraw the mitigation

   request, but the DELETE request arrives at the DOTS server before the

   PUT request.  To handle out-of-order delivery of requests, if an If-

   Match Option is present in the PUT request and the 'mid' in the

   request matches a mitigation request from that DOTS client, the

   request is processed by the DOTS server.  If no match is found, the

   PUT request is silently ignored by the DOTS server.


+ If the target URI is already deleted (not present), is that considered an error, and if so what error code should be used?
[Med] That’s covered as follows:


   Once the request is validated, the DOTS server immediately

   acknowledges a DOTS client's request to withdraw the DOTS signal

   using 2.02 (Deleted) Response Code with no response payload.  A 2.02

   (Deleted) Response Code is returned even if the 'mid' parameter value

   conveyed in the DELETE request does not exist in its configuration

   data before the request.

+ If a server has started sending back a response to a client request, but then hits an internal error, and is unable to filfil the request, what should it do? Is closing the connection a reasonable response?
[Med] We don’t have text as this is implementation-specific. That’s said I expect implementations to maintain the session alive as we are dealing with DDoS attack mitigation.

+ YANG rpc, action, and notification statements have no mapping to DSP?
[Med] These do not apply for the signal channel. I think that things are now clear with the use of sx:structure.

_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.