Re: [CDNi] Cache management interface | Triggers v2

Alan Arolovitch <alan@2you.io> Wed, 06 March 2024 14:32 UTC

Return-Path: <alan@2you.io>
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 84295C14F68C for <cdni@ietfa.amsl.com>; Wed, 6 Mar 2024 06:32:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.904
X-Spam-Level:
X-Spam-Status: No, score=-1.904 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=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
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=2you-io.20230601.gappssmtp.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 mhN4urK5m5un for <cdni@ietfa.amsl.com>; Wed, 6 Mar 2024 06:32:43 -0800 (PST)
Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) (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 059E9C14F5FA for <cdni@ietf.org>; Wed, 6 Mar 2024 06:32:42 -0800 (PST)
Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-5134d7e16a8so1284473e87.3 for <cdni@ietf.org>; Wed, 06 Mar 2024 06:32:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=2you-io.20230601.gappssmtp.com; s=20230601; t=1709735561; x=1710340361; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ARur6hbhlvzB8GNzOJ9Kh6A+1xZtIxNfeL9Zt5xXoCU=; b=t0FeFPbFqTNTl53/p6TwtaO3eJg8wemzfXz1rUfwtQ5whOnGLpHJf3JtU8Rp4mx0Yu 7zZAQ1p7pN9pI15utBmk2+UYNwJoY6m6ARXZh6ghgIbnQyqS8sTpzyM2+DSYQY7uiX5k Bgdcxcck1hkbg9HKC8aRpveehOMKtc+PYlai/ptUHzlY/kJYWYJxOUU9kUb5a9F+Ch6G ioPIH8laFRFjYF+bleM2SN0FlcRwJD8YlyPL0QvUiFmHbye0eRcnFhJRFEwpO3bkWWqy /JNu4eOK0FOlEX5dTYpcaLgl24j+DTIFvbP1Cnmw0v8Gwu8jDyvr15XqlA+X0/N/P5Gc PKgA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709735561; x=1710340361; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ARur6hbhlvzB8GNzOJ9Kh6A+1xZtIxNfeL9Zt5xXoCU=; b=G1xd/In6Ir7w3x2qcodlHVq4WS19cLQMxVfJOCWh2VG87LqW6QZXUXGhluZSW1xt3z VqcJoK8AVfvdEXPMJQd59+CYpr/8NGYRV4HIuxICl/5uN+yuc4IxkbEvQvgER4NiWzi0 ZXW6KF/SvFwFjeNrL1jSp+9D3VbbeEjMnvC5d5U8u8bhjueswtzxKBwTYuAoNpI7xfX3 NO1bdgyBKnmSxkFqVb18J1R9oBgpBFVUT51NLuxynlTBMEKBHHZqJ0VRZsqFxWPjc/Hw SqX9//jAt9llLjFvxvYre5YZ9xB9X9BhNkGPc9jMu8rVxJFSP1VAQa0goDHLWL8+Q+Ph Ra+A==
X-Gm-Message-State: AOJu0YwDgOrnnBm7O07PsXj6IuuRx57aZSNVdg5nZpPV+pdCwy3UIz3K msKuRUfHXMB5aRMBDpyhOhos1+ywuxTDsarYMiN0aMkOw8UjoOWkPq0Ja2yqy9w0l8rlHpXXS8Y gN+KmBh8LJqrmp1u2RY4NoJqNEAYNuxrCn2BTIw==
X-Google-Smtp-Source: AGHT+IE+fb/3DShl+v6mkTZbBSLolm5u7l2lAHbouPMzr7Ly3QwCe6d+IvleSjWt03J1CrleO7xmNe0xKgPB0FmLTFA=
X-Received: by 2002:ac2:5df5:0:b0:513:600c:4ae1 with SMTP id z21-20020ac25df5000000b00513600c4ae1mr1078525lfq.27.1709735560631; Wed, 06 Mar 2024 06:32:40 -0800 (PST)
MIME-Version: 1.0
References: <F2A083C3-CD48-4D76-A27A-91F53717C99B@2you.io> <CANv64+4Q0tK92+kj2jEfYWinPG43icF9+4+kmSbcXt51e1Z5GA@mail.gmail.com> <CANv64+6Nsdn=FOxiJWHiP7a4rHXWEL4RtYNLBWFzVhhtR=AJxQ@mail.gmail.com> <PR3PR10MB42396C9CC5A30AA43B6ED742E1222@PR3PR10MB4239.EURPRD10.PROD.OUTLOOK.COM>
In-Reply-To: <PR3PR10MB42396C9CC5A30AA43B6ED742E1222@PR3PR10MB4239.EURPRD10.PROD.OUTLOOK.COM>
From: Alan Arolovitch <alan@2you.io>
Date: Wed, 06 Mar 2024 09:32:29 -0500
Message-ID: <CANv64+4fDpy0VZ0CDfSz1dew+3kOSqd-i+SweS52wjyO84ieAw@mail.gmail.com>
To: Guillaume Bichot <Guillaume.Bichot@broadpeak.tv>
Cc: "cdni@ietf.org" <cdni@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c075c90612fed40d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cdni/qnHXgDHqr9U5Dw0QZbvfybyYUWI>
Subject: Re: [CDNi] Cache management interface | Triggers v2
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, 06 Mar 2024 14:32:47 -0000

Guillaume,

PIDs allocated by dCDN is one option, and it's probably sufficient for
directly attached CDNs and when multiple uCDNs work with one dCDN.
In case of cascading and assuming you want transparency across the chain
(CDNA <--> CDNB <--> CDNC), having a shared identity server (as in OAuth
2.0) would be needed.
Also, I think we want to optimize for a single uCDN accessing multiple
dCDNs using common identifier and credentials.
So it seems that once you look at many-to-many relationships, we would need
a 3rd party identity provider option.
The full CDN PID would consist of at least CDN identifier and identity
provider URI.
dCDN can provide its own URI for simple and/or private use cases.
In my response to Jay, I proposed that we leave room for such PID in the
CI/T v2 draft as an optional field.

Best regards,
Alan

On Tue, Mar 5, 2024 at 4:49 AM Guillaume Bichot <
Guillaume.Bichot@broadpeak.tv> wrote:

> Hi Alan.
>
> There are several use cases wherein the AS number is not appropriate and
> also several ones wherein we do not need the cdn-path at all.
>
> Therefore, I would go with your two proposals: 1/ making the cdn-path
> optional and 2/ allowing an alternative format for the CDN PID. The latter
> is related to CDN identification as a general problem in SVTA OC. This came
> up as a subject related to authentication where the uCDN is identified
> through a dedicated claim. The token used during authentication is computed
> by the dCDN that decides by itself how to identify the uCDN. We could have
> imagined reusing this uCND id as a the CDN PID. However, this is not
> standardized process as the form of the token is not imposed in Open
> Caching.  So, we are back with the pb: how to identify uniquely a CDN. I
> would propose a mechanism where the dCDN selects and impose the uCDN PID.
> This could be done through a dedicated API as part of the bootstrap API.
> For now, regarding the I-D, allowing an alternative scheme would be
> sufficient maybe like instead of an id starting with AS, we would have a
> scheme starting with PR (for private) .
>
>
>
> Guillaume
>
>
>
>
>
> *From:* CDNi <cdni-bounces@ietf.org> *On Behalf Of *Alan Arolovitch
> *Sent:* Tuesday, March 5, 2024 1:43 AM
> *To:* cdni@ietf.org
> *Subject:* Re: [CDNi] Cache management interface | Triggers v2
>
>
>
> One of the goals of the CI/T v2 changes proposed below is to make the
> cache management interface defined under the open caching architecture
>
> fully interoperable with the CI/T v2 triggers.
>
> One of the topics that came up in this context is cascaded CDN use case
> and I would like to solicit the group's feedback to the following:
>
> The CDNI architecture in several places deal with CDN cascading, including
> at least:
> - request redirection loops (
> https://www.rfc-editor.org/rfc/rfc7337.html#section-5)
> - trigger loop detection (CI/T v1
> https://datatracker.ietf.org/doc/html/rfc8007#section-4.6,  CI/T v2
> https://datatracker.ietf.org/doc/html/draft-ietf-cdni-ci-triggers-rfc8007bis-11#name-loop-detection-and-preventi
> )
> - distribution of metadata in a chain (
> https://datatracker.ietf.org/doc/html/rfc8006#section-3.2)
>
> RFC8007 p4.6 prescribes use of CDN Provider ID (CDN PID) based on ASN, to
> prevent loops in a cascaded use case
>
> The CI/T v2 draft prescribes attaching CDN PID to trigger commands going
> from uCDN down the chain and error statuses going up the chain from dCDN(s)
> to uCDN.
>
> This is clearly lacking flexibility for actual deployments, where neither
> uCDNs nor dCDNs necessarily align on AS boundaries.
>
>
>
> By contrast, the open caching architecture takes a simpler view of the
> topology and concerns itself with directly attached CDNs only.
>
> It doesn't preclude cascading, so it is possible for CDN A to delegate
> traffic to CDN B which in turn delegates it to CDN C, so that CDN B (tCDN
> in CDNI terminology)
> acts as dCDN to CDN A, and as uCDN to CDN C.
>
> However under open caching it would be the duty of CDN B to relate
> commands and metadata between CDN A and CDN C, in a way that prevents loops
> and without
> CDN A and the CDN C on either side of CDN B being aware of each other's
> existence.
>
> Also the loop detection appears to be less of a concern, because of how
> the open caching primarily handles delegation from CDNs with broad coverage
> footprint down to
> (ISP-based) CDNs with increasingly narrowing footprint. This is unlike
> CDNi which initially envisioned a federated delegation model, which made
> loops in a delegation chain much more likely.
>
> One way to make CI/T v2 triggers (and broader CDNI architecture)
> interoperable with the open caching specs is by either:
> a. making CDN cascading information optional (e.g. "cdn-path" in CI/T v2
> trigger command and "cdn-id" in Error.v2 Description in the CI/T v2 draft)
> b. OR by allowing self-allocated CDN PIDs that are not AS-based
>
> Alternatively, if there's a real need to support explicit cascading, we
> would minimally need a mechanism for CDN PID allocation and management that
> doesn't depend on AS numbers.
>
>
>
> Is it a fair assessment of the status quo?
> Thoughts and comments are welcome.
>
> Cheers
>
> Alan
>
>
>
>
>
> On Tue, Feb 13, 2024 at 7:18 PM Alan Arolovitch <alan@2you.io> wrote:
>
> Hello,
>
> As a follow-up to my email from last year, I have had sidebar
> conversations with Nir and Sanjay about the below.
>
> There's an interim proposal for the CI/T v2 draft modifications outlined
> here
>
> https://docs.google.com/document/d/11oBs3CMnYSbuXR0rHNU26qe3lLKaug2yKp81aML265c/edit?usp=sharing
>
>
>
> To summarize it briefly, the CI/T trigger execution model today leaves
> room for dCDN to process triggers submitted to it by uCDN
> in any order, in parallel or sequentially, immediately or in batches.
> There's a need for uCDN to determine trigger processing in further
> detail, including order and timing of processing, trigger
> inter-dependencies, and to monitor trigger processing queueing in further
> detail.
>
>
>
> To address the above, it is primarily proposed to:
>
> - Introduce ExecutionPolicy trigger extension, that would allow uCDN to
> indicate (i) relative trigger priority (ii) trigger urgency (iii) trigger
> dependency on other triggers
>
> - Introduce trigger labels in key-value format, that can be set at trigger
> level and/or by trigger extensions, so that trigger status collections
> can include trigger labels in addition to the trigger URLs, and trigger
> status collections can be filtered by label in addition to being filtered
> by
>
> trigger state
>
> We would like to merge the proposal into the next CI/T v2 draft
>
>
>
> Kind regards,
>
> Alan
>
>
>
>
>
> On Thu, Oct 26, 2023 at 1:26 PM Alan Arolovitch <alan@2you.io> wrote:
>
>
> Hello
>
> I'm leading the cache management interface project at SVTA. The scope is
> to define a full-fledged CDNi-compliant cache management interface as part
> of the open caching architecture
> We are heading towards completion of the initial spec draft, and I would
> like to share my thoughts on how to best bring this work into CDNi.
> The current high-level scope includes:
> - Trigger-based cache data operations that rely on and extend CDNi
> triggers v2 as currently defined in CDNI CI/T 2nd edition
> - Additional CDNi metadata objects allowing uCDN to assign cache objects
> in configuration hierarchy to cache buckets; tag cache objects for use in
> triggers via content.ccid trigger type; indicate cache object priority
> - Cache bucket management API
>
> The current thinking is to split the work into two documents - one that
> specifies extensions to triggers v2, and the other that pertains to cache
> management specific metadata and related API.
>
> If so, would it make sense to incorporate the triggers v2 changes into the
> current draft - all or some of them, or introduce them as a separate
> document?
>
> The proposed triggers v2 change scope is as follows:
> 1. New trigger extension PrepositionPolicy, per paragraph 8 of CDNI CI/T
> v2, governing prepositioning policies like retry, patrial retrieval,
> preposition methods, concurrency and bandwidth, and use of CDNi metadata
> 2. New trigger extension PurgePolicy, governing purge semantics
> 3. New trigger extension CommonPolicy, governing trigger execution
> priority and type of URLs referenced in triggers (published vs. cache-key
> URLs)
> 4. Changes to trigger extension TimePolicy (8.2 in CDNi CI/T v2), adding
> trigger execution scheduling, based on JSON-based iCAL [RFC7265], allowing
> specifying start, stop, recurrence, duration, timezone etc.
> 5. Changes of new content.playlist trigger spec(7.5.1 in CDNi CI/T v2) to
> content.objectlist spec, in conjunction of introducing new types of object
> list, in addition to hls, dash and mss types per 7.5.2 in CDNi CI/T v2,
> allowing specifying lists of objects for trigger in JSON-encoded and plain
> text formats
> 6. Changes to Trigger Status Resource v2 (6.1.3 in CDNi CI/T v2) to
> specify objectlists that were derived from content.objectlist triigger spec
> 7. Changes to error codes in Error v2 to support the new extension
> functionality
>
> One possible option is to incorporate changes to existing objects (items
> 4-7) in the current draft, and defer the new trigger extensions (1-3) to a
> separate document.
>
> Sanjay, Kevin,
> I would appreciate some time in the open mic section in Prague to talk
> about this
>
> Kind regards
> Alan
>
>
>
> <http://www.2you.io/>
>
> Broadpeak, S.A. Registered offices at 3771 Boulevard des Alliés, 35510
> Cesson-Sévigné, France
> Trade Register: 524 473 063
> This e-mail and its attachments contain confidential information from
> Broadpeak S.A. and/or its affiliates (Broadpeak), which is intended only
> for the person to whom it is addressed.
> If you are not the intended recipient of this email, please notify
> immediately the sender by phone or email and delete it. Any use of the
> information contained herein in any way, including, but not limited to,
> total or partial disclosure, reproduction, or dissemination, by persons
> other than the intended recipient(s) is prohibited, unless expressly
> authorized by Broadpeak. Broadpeak, S.A. and its affiliates respect privacy
> laws, and is committed to the protection of personal data. Emails and/or
> attachments thereof exchanged between us may include your personal data
> which may be processed by Broadpeak and/or its affiliates according to
> applicable privacy laws & regulations.
> In compliance with Regulation (EU) 2016/679 (GDPR) and applicable
> implementation in local legislations, you can exercise at any time your
> rights of access, rectification or erasure of your personal data, as well
> as your rights to restriction, portability or object to the processing.
> For such purpose, or to know more about how Broadpeak processes your
> personal data, you may contact Broadpeak by email privacy@broadpeak.tv.
> Local authority : Commission Nationale Informatique et Libertés (CNIL): 3
> Place de Fontenoy - TSA 80715 - 75334 PARIS CEDEX 07 or www.cnil.fr
>