Re: [CDNi] Request for WG Adoption: Capacity Insights

Andrew Ryan <andrew@andrewnryan.com> Wed, 09 November 2022 22:05 UTC

Return-Path: <anr1@anr1.com>
X-Original-To: cdni@ietfa.amsl.com
Delivered-To: cdni@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2D8A6C14F748 for <cdni@ietfa.amsl.com>; Wed, 9 Nov 2022 14:05:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.212
X-Spam-Level:
X-Spam-Status: No, score=-0.212 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, NICE_REPLY_A=-0.001, NORMAL_HTTP_TO_IP=0.001, NUMERIC_HTTP_ADDR=1.242, RCVD_IN_DNSWL_NONE=-0.0001, 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=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=neutral reason="invalid (public key: not available)" header.d=andrewnryan.com
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 9mVWQ8Og3Soh for <cdni@ietfa.amsl.com>; Wed, 9 Nov 2022 14:05:15 -0800 (PST)
Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2FCCFC14F74F for <cdni@ietf.org>; Wed, 9 Nov 2022 14:05:14 -0800 (PST)
Received: by mail-qt1-x82a.google.com with SMTP id l2so2856qtq.11 for <cdni@ietf.org>; Wed, 09 Nov 2022 14:05:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=andrewnryan.com; s=google; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=I5S+6gzHJDJsx8mTbF+ApijZpRNmvf1xYJK6ZbdkXCo=; b=w3y3bjEnY9/aHFps2E/GZ5fbHagO/OXeynQEmixNkjr9E54EYTKXAcagsVWRHuBBrT iwwgsalJQFwRPRngK+DLkHiWJYrgCfMR+gifZ20kvmaOrpZ552efmvs9jKc9/SvCCZRi ihUziXaaO4luMzjERco33J692S63Tg16v8wQU=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=I5S+6gzHJDJsx8mTbF+ApijZpRNmvf1xYJK6ZbdkXCo=; b=Qnz4Fu2FH9FbkiGQooByTpF3CdUYki95C5ujPrA098GC4r0iRoCyP6X8vsKEtSyb6d MijSFXV1DuM0TwUyg2lqZvplYozx/jAOrVEyx+6hw2PIbkJVrID7sQr0t3LTITiQkla/ iltZPRNeex0yVTaTI5H6c4zeH7KmfBMPBPD1izUDcnEpYUZ1kNAQiAIrNU8DpkpiNh9F a5/1JJZ1hGq5oUW6tRYVK6biPZXR5Thr/BS5+KUtnCKx0g819gAswN8npHApfiF+yrva tuCGClcjJ+E4Yc3dxY0UQImTloxFnucK4XIMTmnXwr8CpQZOnLLDMmOJzeTMbEGnYuuL o/jQ==
X-Gm-Message-State: ACrzQf3PQyf+mvD5WAZ00qM2OSEHaVJMffE3BhEiHq2QxQ+oasNX9+Jg 8qJhlH0ivYt/SfYwxEAaD8fJGA==
X-Google-Smtp-Source: AMsMyM70f4AuM6OPTiJUzAZHLot5HOgu8vTizbh02rspaHfO7176IXdN5O6GQU+sbRulxFHWk8berw==
X-Received: by 2002:ac8:604b:0:b0:3a5:161c:1153 with SMTP id k11-20020ac8604b000000b003a5161c1153mr1109184qtm.505.1668031513422; Wed, 09 Nov 2022 14:05:13 -0800 (PST)
Received: from [192.168.1.179] (cpe-72-228-183-169.buffalo.res.rr.com. [72.228.183.169]) by smtp.gmail.com with ESMTPSA id az8-20020a05620a170800b006bb87c4833asm11683337qkb.109.2022.11.09.14.05.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Nov 2022 14:05:12 -0800 (PST)
Content-Type: multipart/alternative; boundary="------------Z2Eh30BuHq6ktIkuXYULQO6B"
Message-ID: <bef1c8f6-fdab-31b2-8c05-51a25db7e576@andrewnryan.com>
Date: Wed, 09 Nov 2022 17:05:09 -0500
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1
Content-Language: en-US
To: Kevin Ma <kevin.j.ma.ietf@gmail.com>
Cc: "cdni@ietf.org" <cdni@ietf.org>, ben@rosenblum.dev, "Mishra, Sanjay" <sanjay.mishra@verizon.com>
References: <926af66d-e51b-3565-2099-f9344378f034@andrewnryan.com> <CAMrHYE3XUQrhxgZPuQi=xsGt7MMqjHUCk4JUBByXPT6DbxP04w@mail.gmail.com> <59cc06ae-fb40-8b1a-8451-3d50cf013560@andrewnryan.com> <CAMrHYE1F7rK0erFkCGuZ_n=KqzEgSqJndyjOjKYX8fCCss7+GQ@mail.gmail.com> <a95628f9-114d-f618-d335-6ab254ed5050@andrewnryan.com> <CAMrHYE13U8k+=VaapO3sxCeu02xStcZJER4z=V6MXqgxS7vg2g@mail.gmail.com> <CAMrHYE26Q1Y9QJfYS0+h9t027ndA_xzSMX6vte2e1RG90MVRAQ@mail.gmail.com>
From: Andrew Ryan <andrew@andrewnryan.com>
In-Reply-To: <CAMrHYE26Q1Y9QJfYS0+h9t027ndA_xzSMX6vte2e1RG90MVRAQ@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cdni/8Xsp97ToZnMHtRyH5SKVLHOgoW4>
Subject: Re: [CDNi] Request for WG Adoption: Capacity Insights
X-BeenThere: cdni@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "This list is to discuss issues associated with the Interconnection of Content Delivery Networks \(CDNs\)" <cdni.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cdni>, <mailto:cdni-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cdni/>
List-Post: <mailto:cdni@ietf.org>
List-Help: <mailto:cdni-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cdni>, <mailto:cdni-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 09 Nov 2022 22:05:21 -0000

Kevin,

   Apologies for the delayed response.

The use case for the sub-scoping is as follows:  How could we define a 
limit specific to the type of traffic being delegated. The type of 
traffic being delegated is a more granular component of the Footprint in 
which it would be associated with.

My current understanding of the Footprints (there seems like there is 
some active discussion on this topic which I have yet to catch up with) 
is that these are associated with geoIP and/or network locations.  At 
this level, we would be dealing with a limit which is only defined by 
the user's location.  Some use cases were brought up surrounding the 
idea that "not all traffic is created equal". Example; game download 
traffic might be high bps low rps, where as Low Latency HLS could be 
high rps and high bps.  These different traffic profiles could have 
different impact on the underlying CDN and therefore we wanted to allow 
for some additional granularity which would leverage an association of 
traffic type with the delivery host (or an identifier which maps to a 
configuration)

The idea behind this is that the footprint provides the 
geographical/network boundary, which is consistent with FCI, but within 
the CapacityLimits FCI payload, we would leverage a scope object which 
would further define the limit to apply to not only the footprint but 
also this additional scope-type.

The following was an example that was put together to highlight how this 
might be used in practive

{
   "capabilities":[
     {
       "capability-type":"FCI.CapacityLimits",
       "capability-value":{
           "limits":[
           {
             "id":"capacity_limit_region1",
             "limit-type":"egress",
             "maximum-hard":50000000000,
             "maximum-soft":40000000000,
             "telemetry-source":{
"id":"capacity_metrics_region1",
                 "metric":"egress_5m"
             }
           },
           {
"id":"capacity_limit_serviceA_region1",
             "scope":{
                 "type":"published-host",
                 "values":[
                 "serviceA.cdn.example.com"
                 ]
             },
             "limit-type":"egress",
             "maximum-hard":30000000000,
             "maximum-soft":20000000000,
             "telemetry-source":{
"id":"capacity_metrics_serviceA_region1",
                 "metric":"egress_5m"
             }
           }
           ]
       },
       "footprints":[
           {
           "footprint-type": "ipv4cidr",
           "footprint-value": ["10.0.0.0/8"]
           }
       ]
     },
     {
       "capability-type":"FCI.CapacityLimits",
       "capability-value":{
         "limits":[
         {
           "id":"capacity_limit_region2",
           "limit-type":"egress",
           "maximum-hard":20000000000,
           "maximum-soft":10000000000,
           "telemetry-source":{
             "id":"capacity_metrics_region2",
               "metric":"egress_5m"
           }
          }
           ]
       },
       "footprints":[
           {
           "footprint-type": "ipv4cidr",
           "footprint-value": ["10.0.10.0/24"]
           }
       ]
     }
   ]
}



The following is a summary of what the FCI.CapacityLimits payload 
specifies represented in a hierarchical manner of the IPv4 CIDR ranges.

  * 10.0.0.0/8
      o ALL traffic <= 50000000000
      o serviceA.cdn.example.com <= 30000000000
  * 10.0.10/24
      o ALL traffic <= 20000000000


In a scenario a uCDN is considering how to delegate traffic for 
serviceA.cdn.example.com towards 10.0.10/24,   the following conditions 
need to be met:

  * traffic within 10.0.10/24 must stay under 20000000000 as per
    capacity_metrics_region2
  * traffic for serviceA.cdn.example.com within 10.0.0.0/8 must stay
    under 30000000000 as per capacity_metrics_serviceA_region1


Ideally, the scoping would be fully contained within the Footprint 
object but in lieu of that, we implemented sub-scope specific to the 
CapacityLimits object

This will likely be a good topic for discussion during IETF115. We 
welcome any feedback on the topic.  Thanks!

Andrew

On 10/23/2022 11:27 PM, Kevin Ma wrote:
> Hi Andrew,
>
>   I wanted to restart the Capacity Limit Scope Object discussion.  If 
> I understand correctly, you want to associate capacity more virtually 
> with a specific host (in the Metadata interface HostMatch sense) and 
> possibly with a specific path (in the Metadata interface PathMatch 
> sense), as opposed to a Footprint which is more of a physical 
> association?  Could we tie it back to the Metadata configuration?  
> Having something generic/opaque makes me uncomfortable.  Would a 
> reference back to a Metadata interface HostMatch/PathMatch object 
> work, or even to a specific Generic Metadata object?
>
> thanx!
>
> --  Kevin J. Ma
>
>
> On Fri, Jul 29, 2022 at 11:09 AM Kevin Ma <kevin.j.ma.ietf@gmail.com> 
> wrote:
>
>     Hi Andrew,
>
>       Some quick responses:
>
>     > Do you feel that clarifying the range to be positive integers
>     and leaving the limits "unbounded" would be sufficient here?
>     Yeah.  That's probably good.
>
>     > I would propose that we state that invalid payloads can be
>     ignored and even state that any previously valid payloads can be
>     honored until such a time as a new valid payload can be acquired.
>     That works for me.
>
>     > We may need some guidance on how to best define this.
>     You can look at how the footprint registry was defined here (it
>     should be pretty similar):
>     https://datatracker.ietf.org/doc/html/draft-ietf-cdni-metadata-21#section-7.2
>
>     > ... Would the above two statements be useful if included into
>     the document?
>     Yes.  Thanks.  I think it is always better to show the IESG that
>     we did think about it and here's a quick explanation of the risks
>     if something bad were to happen.
>
>     > I am wondering if it make sense to try and schedule a breakout
>     session to discuss this further, especially with several of the
>     folks who have been heavily involved with new draft for footprints.
>     It is probably worth starting a separate thread, and if necessary,
>     we can schedule an interim meeting if email is too cumbersome.
>
>     thanx!
>
>     --  Kevin J. Ma
>
>     On Tue, Jul 19, 2022 at 10:48 AM Andrew Ryan
>     <andrew@andrewnryan.com> wrote:
>
>         Hi Kevin,
>
>           I wanted to take a moment before diving in to thank you for
>         the fantastic feedback and engagement!  I am excited to have
>         more and more folks involved with this.  As an FYI I will be
>         unable to make the IETF CDNI session coming up, so I am hoping
>         to drive a lot of progress on this through the email list.
>
>         Please see answers inline
>
>         On 7/9/2022 10:37 AM, Kevin Ma wrote:
>>         Hi Andrew,
>>
>>           Thanks for the responses.  Some additional comments:
>>
>>         > > - What is the scope of uniqueness for the id?  If it
>>         needs to be global, then it needs a registry.  If it needs to
>>         be dCDN unique, then it is just on the dCDN to ensure?
>>         > @Ben keep me honest here, but the intention is that the ID
>>         be unique within the scope of the uCDN and dCDN, i.e. the
>>         namespace is specific to this CDNi delegation relationship.In
>>         this case, it would be up to the dCDN to ensure uniqueness in
>>         the payload that it is returning to the uCDN.
>>
>>         This could probably just be clarified and made more explicit
>>         in the text.
>
>         ack - I agree we can clarify this
>
>
>>
>>         > > - Is there a valid range for time-granularity,
>>         data-percentile, and/or latency, e.g., 0-31622400, 0-100,
>>         and/or 0-2678400, respectively?  And what happens if values
>>         are out of range?
>>         > In terms of valid ranges, I think the data-percentile would
>>         have a natural range of 0-100.  The others, I believe would
>>         not necessarily have a bound (outside of integer limits). 
>>         The usefulness of very large time-granularity and latency
>>         values somewhat diminish the usefulness of this data for near
>>         real time traffic steering decisions.
>>
>>         I guess if you are only specifying a transport encoding, and
>>         not providing any guidance on how to interpret a given value,
>>         I guess I can see how you would want to limit restrictions on
>>         those fields.  Percentages outside of 0-100 are obvious ones,
>>         but I also don't know what a negative latency or negative
>>         time-granularity means, and a latency/time-granularity beyond
>>         a certain point (1yr?) is pretty meaningless.  My concern is
>>         that, from an interoperability standpoint, if the
>>         interpretation is different, then it could cause problems. 
>>         If the interpretation is going to be defined in a different
>>         spec or customized by individual CDNs, then we could make a
>>         stronger statement about that, but it feels like we could
>>         still be a little bit tighter on the bounds.
>
>         You raise a very valid point in that at a bare minimum, we
>         should be restricting to non negative values, as you point
>         out, there is no situation that I can think of where an
>         advertisement of negative capacity makes any sense.  Do you
>         feel that clarifying the range to be positive integers and
>         leaving the limits "unbounded" would be sufficient here?
>
>
>>
>>         > > - What happens if there are duplicate names in a source
>>         object?
>>         > I think the intention behind declaring that the name needs
>>         to be unique circumvented any discussion on how to handle
>>         duplicate names
>>
>>         With respect to error handling, I think it might be worth
>>         going a step beyond just specifying what a correctly
>>         formatted object looks like and provide some guidance on how
>>         to handle foreseeable error conditions (e.g., non-unique or
>>         duplicated ids, out-of-range values, etc.).  I don't think
>>         we've done this as much in the past, but the previous
>>         capabilities were very binary (i.e., they contain a list of
>>         tokens and either you understand the token or not); but the
>>         complexity of information in the telemetry objects feels to
>>         me like there is more room for ambiguity and so could benefit
>>         from more discussion of how to handle unexpected data.  It
>>         may be as simple as: If the data doesn't make sense,
>>         ignore/discard it.  I could be off here, but that's my gut feel.
>
>         I agree that specifying what to do if the payload doesn't make
>         sense is a valuable addition.  I would propose that we state
>         that invalid payloads can be ignored and even state that any
>         previously valid payloads can be honored until such a time as
>         a new valid payload can be acquired.  This will prevent
>         situations where uCDNs who fail to get a valid payload from a
>         dCDN don't stop all delegation due to a lack of updated
>         limits, the uCDN will continue to use previously negotiated
>         limits.  Using stale information might be considered a risk if
>         the dCDN is truly having an outage, but in this case, this
>         payload is more so about capacity guidance rather than any
>         guarantee of service reliability, so I feel that the "use
>         stale" case is probably more productive.
>
>>
>>         > > - Should there be a registry for telemetry source types? 
>>         Will these be globally unique and well specified (in an RFC?)
>>         for interoperability?
>>         > @Ben I do think we will want a registry for telemetry
>>         source objects.
>>         > > - Should there be a registry for capacity limit types? 
>>         Will these be globally unique and well specified (in an RFC?)
>>         for interoperability?
>>         > I do believe this would make sense
>>
>>         I agree that these should be registries.
>>
>         ack.  We may need some guidance on how to best define this.
>
>>         > > - I think we also need a privacy section that discusses
>>         the potential issues of divulging internal information about
>>         the CDN.
>>         > part of the data requirements are such that the data for
>>         capacity is scoped specifically to the uCDN,->dCDN delegation
>>         relationship..i.e. the data is very narrowly scoped.  The
>>         data being presented is also data about the dCDN by the
>>         dCDN.  Would there be any suggestions on how we might want to
>>         frame a statement for this?
>>
>>         Though we rely on the underlying FCI protocol to handle auth
>>         and encryption (and the rest is out of the hands of the FCI
>>         object designer), I think it is worth discussing what happens
>>         if there is a breach, if there are specific consequences of
>>         specific data loss; or a statement that the data is so
>>         generic that it doesn't matter.  I think the question is: is
>>         there anything a competitor/adversary could gain from this
>>         data?  Since it only describes the source and doesn't contain
>>         the actual telemetry, the value of units and limits is
>>         minimal without hacking the actual source stream?  If so, a
>>         statement to that effect would probably suffice.
>
>         In terms of the FCI.CapacityLimits payload, part of the design
>         of the limits provided are what the dCDN is willing to offer
>         to a specific uCDN for capacity.  If we look at this another
>         way, it's not a full and complete mapping of all available
>         capacity a dCDN may have.  We decided on this approach for
>         several reasons, but at least one potential benefit of this is
>         that it would limit the exposure to a dCDN of competitors
>         being able to map out a full capacity footprint of the dCDN.
>
>
>         In terms of someone gaining access to Telemetry endpoints
>         which are referenced in FCI.Telemetry, this could be
>         considered a issue for both the uCDN and the dCDN as this
>         exposes actual usage information which is problematic for many
>         reasons.  This particular data set though is provided outside
>         the scope of the FCI payload, and relies on external
>         APIs/datrasources/etc..
>
>         Would the above two statements be useful if included into the
>         document?
>
>>
>>         > > - This is subdividing a footprint? Would it make more
>>         sense (or at least be simpler) to just define more granular
>>         footprints.  It seems confusing to make essentially another
>>         way specify footprints.
>>         > This was a very lengthy part of our discussion in this
>>         draft.  There are use cases where "all traffic is not created
>>         equal" i.e Low Latency HLS will have much different request
>>         characteristics than Bulk game downloads or even Video On
>>         Demand.  The CDNi Footprint object doesn't allow for
>>         granularity on a published host basis.  We were working under
>>         the fundamental premise that we were trying to cause as
>>         little disruption to the fundamental components of CDNi and
>>         trying to encapsulate as much as we could related to capacity
>>         management without major overhauls to the original spec. We
>>         would greatly welcome discussion on this topic.
>>
>>         I think this is the big one, and I too would welcome some
>>         discussion on the topic.  My initial reaction is: maybe we
>>         should try to define a new footprint type, rather than create
>>         a sub-footprint for just this one object; it sets a bad
>>         precedent.  But, it needs more thought.
>
>         :-) this one may open up a large can of worms to be sure. 
>         Part of our thought process with this draft was to keep it as
>         isolated as we could to help with the adoption process, but
>         perhaps that was not the right approach to take.
>
>         As we mentioned, the purpose of providing the "scope" within
>         the FCI.CapacityLimits object was to allow finer granularity
>         within a Footprint, such that if an uCDN is delegating lots of
>         different types of traffic to a dCDN, that the dCDN had a way
>         to differentiate capacity advertisements for identifiers which
>         might correlate to the type of delivery.  Another way of
>         saying that would be that in a lot of cases, uCDNs would have
>         different published hosts for different forms of video
>         delivery (live.example.com <http://live.example.com>,
>         vod.example.com <http://vod.example.com>, etc..). The dCDN
>         would be aware of these published hosts due to the
>         configuration metadata associated with it, and would be able
>         to be aware of "traffic type" and could decide to offer
>         different rps or other such limits based on that.
>
>         Published host is not the only differentiating factor though,
>         different delivery types could be handled on the same domain,
>         but with different paths (www.example.com/live
>         <http://www.example.com/live>, www.example.com/vod
>         <http://www.example.com/vod>). In this case, using a published
>         host in a scope within the FCI.CapacityLimits object would not
>         be sufficient, but we did attempt to incorporate the ability
>         to reference service-id or property-id which maps into
>         groupings of configurations that the dCDN and uCDN are aware of.
>
>         The summary of the issue is that we have a potential gap in
>         the definition of footprint, the specificity that is provided
>         by the configuration spec, and the potential use case for
>         allowing capacity payloads to share the same specificity as
>         the configuration spec.
>
>         A counter point to providing this level of granularity is that
>         in practice, it may be very cumbersome for dCDNs to provide
>         very granular advertisements to a uCDN, and may simply opt to
>         provide more of a blanket capacity advertisement, which the
>         uCDN is free to use as it will (I feel like this will be the
>         case for the most part).  There may be instances though where
>         a dCDN does want to get very granular though, which is why we
>         attempted to bring this functionality into the payload.
>
>         I am wondering if it make sense to try and schedule a breakout
>         session to discuss this further, esspecially with several of
>         the folks who have been heavily involved with new draft for
>         footprints.
>
>
>
>>
>>         thanx!
>>
>>         --  Kevin J. Ma
>>
>>         On Fri, Jul 8, 2022 at 12:30 PM Andrew Ryan
>>         <andrew@andrewnryan.com> wrote:
>>
>>
>>             On 7/4/2022 12:35 PM, Kevin Ma wrote:
>>>             Hi Andrew,
>>>
>>>               (As a chair) Given the reduced scope, i.e., just two
>>>             FCI objects (though see my comments below), I think
>>>             adoption would be within scope of the current charter if
>>>             other folks feel this is good work for the WG to take
>>>             on.  I don't have a problem with issuing a formal call
>>>             for adoption. I've included some comments on the current
>>>             draft below.
>>>
>>>             thanx.
>>>
>>>             --  Kevin J. Ma
>>>
>>>             section 1.3:
>>>               - In the new paragraph about the uCDN calling a dCDN
>>>             API interface, what interface is that?  Is that an
>>>             interface outside of CDNI.  It's not clear if that
>>>             relates to anything in this particular draft?  It would
>>>             be good to clarify this.
>>
>>
>>             The intention here was that the uCDN would interact with
>>             an interface which provides FCI payloads.  To remove
>>             ambiguity I can remove the the reference all together:
>>
>>             Original:
>>
>>             In normal operation a uCDN will communicate with a dCDN,
>>             via an interface, to collect and understand any limits
>>             that a dCDN has set forth for traffic delegation from a uCDN
>>
>>             Proposed:
>>
>>             In normal operation a uCDN will communicate with a dCDN
>>             to collect and understand any limits that a dCDN has set
>>             forth for traffic delegation from a uCDN
>>
>>
>>>
>>>             section 2.1.1:
>>>               - What is the scope of uniqueness for the id?  If it
>>>             needs to be global, then it needs a registry.  If it
>>>             needs to be dCDN unique, then it is just on the dCDN to
>>>             ensure?
>>
>>             @Ben keep me honest here, but the intention is that the
>>             ID be unique within the scope of the uCDN and dCDN, i.e.
>>             the namespace is specific to this CDNi delegation
>>             relationship.In this case, it would be up to the dCDN to
>>             ensure uniqueness in the payload that it is returning to
>>             the uCDN.
>>
>>>               - the configuration descriptions references a yet to
>>>             be defined Telemetry Interface?  Is that in the scope of
>>>             this document?  If not, it would be good to clarify (or
>>>             remove) this.
>>
>>             The Telemetry interface is NOT in scope of this document,
>>             we can add clarifying language to explicitly state this. 
>>             In Section 2.1.1.1 an additonal sentence can be added:
>>             Proposed:  The definition of a CDNI Telemetry interface
>>             is outside the scope of this document.
>>
>>
>>>
>>>             section 2.1.1.1 <http://2.1.1.1>:
>>>               - Should there be a registry for telemetry source
>>>             types?  Will these be globally unique and well specified
>>>             (in an RFC?) for interoperability?
>>
>>             @Ben I do think we will want a registry for telemetry
>>             source objects.  The declaration of a "generic" type was
>>             meant as a place holder until a formal Telemetry
>>             Interface was defined.  The Generic source type also
>>             allows CDNs which already have an existing relationship
>>             and have already established data channels for providing
>>             and consuming Telemetry to be used "as is" without
>>             requiring additional integration steps.
>>
>>
>>>
>>>             section 2.1.1.2 <http://2.1.1.2>:
>>>               - What happens if there are duplicate names in a
>>>             source object?
>>
>>             I think the intention behind declaring that the name
>>             needs to be unique circumvented any discussion on how to
>>             handle duplicate names
>>
>>
>>>               - Is there a valid range for time-granularity,
>>>             data-percentile, and/or latency, e.g., 0-31622400,
>>>             0-100, and/or 0-2678400, respectively?  And what happens
>>>             if values are out of range?
>>
>>             The intention is that these are meant to provide guidance
>>             to the uCDN in terms of how accurate and how far behind
>>             real time the data set is, to help inform how to react
>>             from a traffic steering perspective.
>>
>>             In terms of valid ranges, I think the data-percentile
>>             would have a natural range of 0-100.  The others, I
>>             believe would not necessarily have a bound (outside of
>>             integer limits).  The usefulness of very large
>>             time-granularity and latency values somewhat diminish the
>>             usefulness of this data for near real time traffic
>>             steering decisions.
>>
>>
>>
>>>
>>>             section 2.2.1:
>>>               - "CAN" is not an RFC2119 term.  "CAN" -> "MAY"?
>>
>>             Understood, we will work to change this
>>
>>
>>>               - What is the scope of uniqueness for the id?  If it
>>>             needs to be global, then it needs a registry.  If it
>>>             needs to be dCDN unique, then it is just on the dCDN to
>>>             ensure?
>>
>>             This should be unique between the uCDN and dCDN
>>
>>
>>>               - Are there limits related to maximum-hard,
>>>             maximum-soft, and current? Should those be specified
>>>             along with the capacity limit types?  And what happens
>>>             if values are out of range?
>>
>>             I am not sure we want to introduce an artificial cap
>>             outside of the definition of the Integer itself as this
>>             will allow for the most flexibility and hopefully prevent
>>             having to revisit the draft to increment values in the
>>             future.
>>
>>
>>>               - section 2.2.1 already defines a "Telemetry Source
>>>             Object"; can we come up with a different name to make it
>>>             less confusing?
>>
>>             @ben ^^
>>
>>
>>>
>>>             section 2.2.1.1 <http://2.2.1.1>:
>>>               - Should there be a registry for capacity limit
>>>             types?  Will these be globally unique and well specified
>>>             (in an RFC?) for interoperability?
>>             I do believe this would make sense and part of the
>>             intention of defining it in this draft was an attempt to
>>             address that.  If there is a more appropriate way to
>>             accomplish this, I would welcome guidance.
>>>
>>>             section 2.2.1.2 <http://2.2.1.2>:
>>>               - so, these are pointers back into a "Telemetry Source
>>>             Object"?  What happens if the reference is not found?
>>
>>             @Ben we will need to discuss this case.  It might be
>>             enough to require that dCDNs ensure consistency in this
>>             manner, and if not, the payload could be rejected by the
>>             uCDN.
>>
>>
>>>
>>>             section 2.2.1.3 <http://2.2.1.3>:
>>>               - This is subdividing a footprint? Would it make more
>>>             sense (or at least be simpler) to just define more
>>>             granular footprints.  It seems confusing to make
>>>             essentially another way specify footprints.
>>
>>             This was a very lengthy part of our discussion in this
>>             draft.  There are use cases where "all traffic is not
>>             created equal" i.e Low Latency HLS will have much
>>             different request characteristics than Bulk game
>>             downloads or even Video On Demand.  The CDNi Footprint
>>             object doesn't allow for granularity on a published host
>>             basis.  We were working under the fundamental premise
>>             that we were trying to cause as little disruption to the
>>             fundamental components of CDNi and trying to encapsulate
>>             as much as we could related to capacity management
>>             without major overhauls to the original spec.  We would
>>             greatly welcome discussion on this topic.
>>
>>
>>>
>>>             section 4:
>>>               - I think there should probably be discussions of the
>>>             potential attacks if the data is intercepted/spoofed.
>>
>>             Would there be any additional considerations outside of
>>             what is already established for FCI in general?
>>
>>
>>>               - I think we also need a privacy section that
>>>             discusses the potential issues of divulging internal
>>>             information about the CDN.
>>
>>             part of the data requirements are such that the data for
>>             capacity is scoped specifically to the uCDN,->dCDN
>>             delegation relationship..i.e. the data is very narrowly
>>             scoped.  The data being presented is also data about the
>>             dCDN by the dCDN.  Would there be any suggestions on how
>>             we might want to frame a statement for this?
>>
>>>
>>>             nits:
>>>
>>>             section 1.3:
>>>               "it's current usage" -> "its current usage"
>>>               "uCDN of limits of" -> "uCDN limit on"
>>>               ", so that the uCDN can use to" -> " so that the uCDN
>>>             can use it to"
>>>               " i.e. " -> ", i.e., "
>>>               "In the event that a" -> "In the event a"
>>
>>             ACK
>>
>>
>>>
>>>             section 2.1:
>>>               "CDNi" -> "CDNI"
>>>               "reference, allows" -> "reference allows"
>>>               "non ambiguous metric use use" -> "non ambiguous
>>>             metric use be used"
>>>               "current usage and how" -> "current usage.  How"
>>>               "to it's dCDN" -> "to its dCDN"
>>>
>>             ack
>>
>>
>>>             section 2.1.1.2 <http://2.1.1.2>:
>>>               " .  I.e. is" -> ", e.g., is"
>>>               "5 minutes" -> "300 seconds (i.e., 5 minutes)"
>>>               "one hour" -> "3600 seconds (i.e., one hour)"
>>>
>>>
>>
>>             ack
>>
>>>
>>>
>>>             On Tue, Apr 5, 2022 at 9:08 AM Andrew Ryan
>>>             <andrew@andrewnryan.com> wrote:
>>>
>>>                 Greetings,
>>>
>>>                    Similar to the recent solicitation for adoption
>>>                 of the CDNI Metadata
>>>                 Model Extensions, I would like to submit a draft for
>>>                 consideration of
>>>                 adoption:
>>>
>>>                 https://datatracker.ietf.org/doc/draft-ryan-cdni-capacity-insights-extensions/
>>>
>>>                 The draft outlines extensions to the FCI payload
>>>                 registry, which will
>>>                 enable communication of Capacity/Delegation limits
>>>                 between a uCDN and
>>>                 dCDN.  This draft has been presented at IETF 111,
>>>                 IETF 112 and most
>>>                 recently at IETF 113  from which we have
>>>                 incorporated some great feed
>>>                 back into several revisions of the draft.
>>>
>>>                 I look forward to any feedback and/or support for
>>>                 the adoption of this
>>>                 draft.  Thank you very much for your time.
>>>
>>>                 Andrew Ryan
>>>
>>>                 _______________________________________________
>>>                 CDNi mailing list
>>>                 CDNi@ietf.org
>>>                 https://www.ietf.org/mailman/listinfo/cdni
>>>