Re: [Hls-interest] 1.1b1 update to HLS Content Steering preliminary spec

Phil Cluff <phil@mux.com> Tue, 16 March 2021 14:24 UTC

Return-Path: <pcluff@mux.com>
X-Original-To: hls-interest@ietfa.amsl.com
Delivered-To: hls-interest@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BE2E63A0FBF for <hls-interest@ietfa.amsl.com>; Tue, 16 Mar 2021 07:24:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.099
X-Spam-Level:
X-Spam-Status: No, score=-0.099 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_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URI_TRY_3LD=1.999] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mux.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 wgtuqvhmgP2b for <hls-interest@ietfa.amsl.com>; Tue, 16 Mar 2021 07:24:12 -0700 (PDT)
Received: from mail-vs1-xe2f.google.com (mail-vs1-xe2f.google.com [IPv6:2607:f8b0:4864:20::e2f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC0973A0FBB for <hls-interest@ietf.org>; Tue, 16 Mar 2021 07:24:12 -0700 (PDT)
Received: by mail-vs1-xe2f.google.com with SMTP id v123so18293257vsv.9 for <hls-interest@ietf.org>; Tue, 16 Mar 2021 07:24:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mux.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=B/w9KJUgjvL+lNA3WqVawy8OJjpuB0Wp2CBAyoGnbAA=; b=c8iprf/lDrdXrx9WGVIyF5wUNqcwU9q/y7Gd0wWxH+KV5Xg/F9+wpXfzAzodpwTH3W VjnSHoJiQ2eipv+T9X5kq6yiBQM6xNv1LJDgI3KuuB9jQrGSJmpf/qhhHVOCle1NyIIx bEdsKyBoGuRyi4q5J1vb9IKHNMpHDmNVm0rao=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=B/w9KJUgjvL+lNA3WqVawy8OJjpuB0Wp2CBAyoGnbAA=; b=qywpSVoeq9T917FJ15H55kNDH68ciNVdohFMiCzVfKRDtuo5tj0RMNnnAon2L9xxsL E2EqEMqC4nmOALVff7BHxFofb7tbeScuseRsu1+mAwcGhvZo9iOeCbdhkpUBB/aTi/OU Pj0xcZDPrL31VDnVWRbdMLOiBMbga7yMaWPKPl9b4P+4m6wEo5TQief0nO2XapAMZ9mu oHU6LwOh540CkX4a3fvujx0CUP/HBmusyE2nQ9/9yVX4dVn/c3Vm4bH8LUYKCIRjY30j n0W7SsDrM0h3jhnGNpzBjEsdi3yBG/e1z4rJu0/Cx8yEoz4gxXjdVAkRFkf7JbdD4fdG AU8w==
X-Gm-Message-State: AOAM530WZOv+Pdp21gCgYZ6yAUUAKPZES25vTaQfXJS32CDKoZlfiXWl t1c37MYIheasaTgY1U7oRATwVocS9paqy9ra6BMIfwCYDw64lg==
X-Google-Smtp-Source: ABdhPJxmV6fQLJDnHaDZw+eWMnsCAH4mT2GgW+echGtuIPqT4SuOlsxpEsDvgJC6AkZM2jbTiVqTHlUam99lKVhMgx0=
X-Received: by 2002:a05:6102:32d0:: with SMTP id o16mr1155622vss.52.1615904647232; Tue, 16 Mar 2021 07:24:07 -0700 (PDT)
MIME-Version: 1.0
References: <BF2CBF28-531D-4968-9620-732D2B277EF6@apple.com>
In-Reply-To: <BF2CBF28-531D-4968-9620-732D2B277EF6@apple.com>
From: Phil Cluff <phil@mux.com>
Date: Tue, 16 Mar 2021 14:23:41 +0000
Message-ID: <CAHuKqSBpYZB+VvANLhjxDTHb7MwNzkPyM79oK2mCSkRyqL99VQ@mail.gmail.com>
To: hls-interest@ietf.org
Cc: hls-announce@lists.apple.com
Content-Type: multipart/alternative; boundary="0000000000007d5ef305bda81e3d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/hls-interest/nE7RNoKivG0Ef64rwypQ1LzhF2U>
Subject: Re: [Hls-interest] 1.1b1 update to HLS Content Steering preliminary spec
X-BeenThere: hls-interest@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussions about HTTP Live Streaming \(HLS\)." <hls-interest.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/hls-interest/>
List-Post: <mailto:hls-interest@ietf.org>
List-Help: <mailto:hls-interest-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hls-interest>, <mailto:hls-interest-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Mar 2021 14:24:15 -0000

Hey Roger,

Thanks for the update, while I like the stronger back-compatibility of this
approach, but I think the other limitations it introduces are significant.
Specifically, it would limit the ability for many in the industry
(including my current and previous employer) to use this approach with
modern multi-CDN setups when leveraging token authentication in query
parameters.

As you highlighted, with this approach, it's not possible to change the
suffix (query string) of the segment URLs. This means that if the two
delivery paths you're using are on two independent CDN vendors, and you're
using any form of query string based token auth, both CDNs have to use the
same query parameters and signing implementations. Unfortunately today,
it's effectively impossible to use a single signing method, and query
parameter names and values for tokens across all the major CDNs vendors.
While some vendors may have some level of customizability that may make 2
token auth approaches interchangeable, to achieve this in a wider market is
simply impossible.

Take the following two implementations for example:

AWS Cloudfront uses 3 query parameters, with no customizability: Expires,
Signature, and Key-Pair-Id -
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-canned-policy.html

Akamai uses a single parameter, which you can control the name of (usually
"token") or alike -
https://learn.akamai.com/en-us/webhelp/object-delivery/object-delivery-implementation-guide/GUID-EB3329D1-C7C5-4F23-9B69-1B1FBFEBF436.html
 https://github.com/akamai/EdgeAuth-Token-Node

While you can in theory add both tokens to the URL, from a practical
standpoint this becomes really complicated as each signing method also has
to take into account the signing params of the other CDNs, and it becomes
very bloated as soon as you're using more than 2 token auth strategies.

If the aim of this work is to enable 2 disparate encoding paths through the
same CDN vendor, this approach works fine, but if it's to enable more
redundant multi-CDN behaviour, without sacrificing token auth, then we need
to be able to customise the query string on a per-pathway basis, using
something like the SUFFIX as discussed in the previous threads.

It's also worth mentioning that I think SUFFIX needs some design work
though, as it'd be important to add/replace/remove query parameters
selectively, rather than in bulk, as some query parameters may be critical
to functionality, and may vary segment-to-segment, but are unrelated to
authentication.

Thanks.

On Fri, Mar 5, 2021 at 5:18 PM Roger Pantos <rpantos=
40apple.com@dmarc.ietf.org> wrote:

> As discussed on hls-interest, we’ve updated the HLS Content Steering spec
> to address concerns with the first version. The 1.1 design is fully
> backward-compatible to older clients, and allows all pathways to carry the
> exact same Master Playlist,
>
> The new approach has some limitations that I’d like to highlight:
>
> (1) Only the front part of a URL can be replaced by a pathway switch. If
> you distribute content to multiple endpoints and rely on per-endpoint query
> parameters, filenames, URL fragments, etc. please let us know what you’re
> doing.
>
> (2) The PATHWAY-ID is now optional so the Master Playlist can be identical
> across Pathways. If it is absent, the first steering manifest request will
> not indicate that client’s current pathway.
>
> Comments are welcome, either to hls-interest or directly to us at
> http-live-streaming-review@group.apple.com.
>
>
>
>
> cheers,
>
> Roger Pantos
> Apple Inc.--
> Hls-interest mailing list
> Hls-interest@ietf.org
> https://www.ietf.org/mailman/listinfo/hls-interest
>


-- 
Phil Cluff | Product Lead | +44 7983 406 937 | phil@mux.com